柴恩惠,馬占飛+,智 敏
1.內(nèi)蒙古科技大學(xué)包頭師范學(xué)院 信息科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古 包頭014030
2.內(nèi)蒙古師范大學(xué) 計算機科學(xué)學(xué)院,呼和浩特010022
隨著計算機視覺和深度學(xué)習(xí)技術(shù)[1-2]的發(fā)展,行人檢測成為解決復(fù)雜和高級視覺問題的重要步驟,而在眾多檢測算法中,可變形部件模型(deformable part model,DPM)算法[3]和卷積神經(jīng)網(wǎng)絡(luò)模型(convolutional neural network,CNN)[4-5]算法的融合成為一大熱點。DPM 相當(dāng)于一個可變形的“彈簧”模型,屬于基于結(jié)構(gòu)的算法,特征提取部分使用的梯度方向直方圖(histograms of oriented gradient,HOG)特征[6]主要針對淺層特征進(jìn)行提取。CNN屬于一種“黑盒子”模型,更適合對深層特征進(jìn)行提取,因此這兩大模型可分別作為兩種空間特征融合進(jìn)行特征提取,也可以在算法結(jié)構(gòu)方面進(jìn)行融合。例如:Ouyang 等提出將DPM算法中的四個步驟分別對應(yīng)到CNN算法中,得到一個深度DPM 結(jié)構(gòu)[7],該結(jié)構(gòu)比傳統(tǒng)DPM 結(jié)構(gòu)在漏檢率方面降低了9 個百分點,但沒有達(dá)到CNN的檢測精度;2017 年高琦煜等提出了一種融合CNN特征和HOG+SVM的行人檢測算法[8],分別使用CNN和HOG 對淺層特征進(jìn)行了多角度提取,比單獨使用DPM算法或者單獨使用CNN算法的檢測精度高;文獻(xiàn)[9]將CNN模型去除池化層,再使用幾何約束對對象部件的變形進(jìn)行建模,提出了一種新的訓(xùn)練策略,該策略用于通用目標(biāo)的檢測,沒有針對行人目標(biāo)檢測進(jìn)行性能的具體分析;Mordan等[10]提出了DP-FCN(deformable part-based fully convolutional network)模型,該模型由全卷積層、基于部件的可變形池化層和變形感知的定位模塊組成,在PASCAL VOC 數(shù)據(jù)集進(jìn)行目標(biāo)檢測的精度驗證,沒有針對行人目標(biāo)檢測進(jìn)行性能的具體分析。Girshick等[11]提出了一種將DPM中的HOG金字塔特征替換成深度金字塔(deformable part model with convolutional neural network,DP-CNN)模型,但DPM算法中的HOG特征金字塔并不能完全匹配CNN 模型,主要原因是CNN 模型中max5 層的深度特征是163×163像素的區(qū)域,而HOG特征是8×8像素的區(qū)域。并且DP-CNN 模型算法的深度特征無法作為訓(xùn)練的正樣本,因此需要像傳統(tǒng)算法一樣依靠數(shù)據(jù)集收集正樣本,從而整個算法中需要樣本提取的步驟。
綜上所述,DP-CNN 算法雖然取得了重大突破,但是由于DPM模型與CNN模型不完全融合,在行人數(shù)量較多、行人姿勢復(fù)雜和有嚴(yán)重遮擋情況時,該算法的精度會受到影響,存在誤檢和漏檢問題,而且正負(fù)樣本的訓(xùn)練也需要額外的時間。因此,本文提出了一種基于Norm-DP 模型的行人檢測優(yōu)化算法:首先,在DP-CNN 模型基礎(chǔ)上加入規(guī)范化函數(shù),提出了一種使用規(guī)范化函數(shù)融合DPM和CNN模型的算法,稱之為規(guī)范化特征金字塔模型(normalization deep pyramid,Norm-DP),該模型解決了原有模型中HOG特征金字塔與CNN 模型不能完全匹配的問題。其次,本文算法在樣本和模型訓(xùn)練階段,可直接通過規(guī)范化深度金字塔特征提取訓(xùn)練所需的正負(fù)樣本,省略了傳統(tǒng)算法中從數(shù)據(jù)集收集樣本的時間。并且只將特征金字塔與DPM 中的根部件濾波器卷積,減少卷積計算量。之后通過增加了潛在值信息的隱變量支持向量機(latent support vector machine,LSVM)[12]進(jìn)行模型的訓(xùn)練。最后,本文算法還結(jié)合了改進(jìn)的柔性非最大抑制算法(soft-non-maximum suppression,Soft-NMS)[13]和邊界框回歸算法(bounding box regression,BBR)[14]相結(jié)合的算法,用于行人定位框的優(yōu)化,實現(xiàn)了高擬合效果。實驗在INRIA和MS COCO數(shù)據(jù)集上對比了DPM、CNN、DP-CNN和帶區(qū)域卷積神經(jīng)網(wǎng)絡(luò)模型(regions with convolutional neural network features,RCNN)[15]算法的檢測結(jié)果,得出本文算法在行人數(shù)量多、姿勢復(fù)雜和有遮擋情況中的檢測精度更高。
本文提出的Norm-DP模型算法分為Norm-DP模型構(gòu)建、訓(xùn)練正負(fù)樣本和模型訓(xùn)練三部分。建模部分是在DP-CNN 模型的基礎(chǔ)上進(jìn)行規(guī)范化回歸操作。由于DP-CNN 原型生成時沒有考慮到DPM 與CNN 模型之間不能完全匹配的問題,因此在行人較多、姿勢復(fù)雜和有遮擋情況下檢測精度不理想,因此本文算法使用規(guī)范化函數(shù)對DP-CNN 進(jìn)行優(yōu)化。正負(fù)樣本的訓(xùn)練與傳統(tǒng)算法也有所不同,傳統(tǒng)算法是通過數(shù)據(jù)集得到正負(fù)樣本,需要消耗時間來訓(xùn)練樣本,正樣本為具有行人框的圖片,負(fù)樣本為周圍環(huán)境。但本文算法中的樣本是直接從生成的norm5 特征金字塔中進(jìn)行采樣,從而省略了單獨訓(xùn)練樣本的時間。模型訓(xùn)練部分使用LSVM。
Norm-DP 模型以圖像作為輸入,先構(gòu)建圖像金字塔,要求每一層圖像金字塔與其在層次結(jié)構(gòu)中的下一層金字塔之間保持的比例因子。以圖像金字塔作為輸入,利用含有conv5的DP-CNN原型進(jìn)行特征提取,生成具有256 個特征圖的conv5 特征金字塔。利用一個3×3 的濾波器,以1 為步長,對256 個conv5特征金字塔進(jìn)行下采樣,生成256個max5特征金字塔,每一層特征圖金字塔的空間分辨率為其對應(yīng)的圖像金字塔層分辨率的1/16。設(shè)max5特征金字塔中每一層的位置為(j,k)處的單元塊對應(yīng)輸入圖像中像素為(16j,16k)的區(qū)域,像素為163×163,因此可以被基于滑動窗口的檢測算法很好地定位。在max5特征金字塔的每一層都添加規(guī)范化步驟,即通過規(guī)范化函數(shù)得到更加擬合的深度金字塔模型,即norm5特征金字塔。例如,對于金字塔第i層的(j,k)位置處的一個256 維特征向量xi,j,k規(guī)范化特征的計算公式如式(1)所示:
其中,μi是平均特征向量,而σi是第i層金字塔的標(biāo)準(zhǔn)偏差。每一層norm5特征金字塔中的特征與DPM中的若干個根濾波器進(jìn)行卷積,得到DPM 分?jǐn)?shù)金字塔。Norm-DP模型構(gòu)建整體流程如圖1所示。
本文算法直接從Norm-DP模型中的Norm5 特征金字塔中采樣,得到訓(xùn)練所需的正樣本。正樣本的IOU值是通過邊界框的維數(shù)和DPM中根濾波器的維數(shù)的差的最小值確定的,公式如下:
其中,l為正樣本的IOU 值,為邊界框維數(shù),(p,q)為DPM根濾波器維數(shù)。得到的IOU>0.5的為正樣本。從而得到了p×q×256 維的norm5 特征的正樣本。負(fù)樣本是隨機選擇與DPM根濾波器像素大小相同的框,其中IOU值<0.5的作為負(fù)樣本。IOU是通過兩個區(qū)域重疊部分的面積除以兩個區(qū)域的并聯(lián)部分的面積得出的結(jié)果,即兩區(qū)域的交集除以兩個區(qū)域的并集。得到的IOU與本文算法中設(shè)定的閾值為0.5作比較,得出正負(fù)樣本集。
支持向量機被廣泛應(yīng)用于目標(biāo)檢測方面的模型訓(xùn)練方法,但常常由于丟失信息,造成訓(xùn)練出的模型檢測性能的下降。因此,本文中使用的LSVM 是在原有的支持向量機基礎(chǔ)上添加了潛在值信息(支持向量機中遺漏的輸入信息)。設(shè)β為根濾波器偏移量的模型參數(shù)向量,z為目標(biāo)匹配參數(shù),集合Z(x)定義了樣本x中可能的隱形變量的值。ψ(x,z)是特征金字塔中的一層Norm-DP 特征向量,通過取最大值得到得分,如式(3)所示:
Fig.1 Process of Norm-DP model building圖1 Norm-DP模型構(gòu)建流程
優(yōu)化模型參數(shù)向量β要通過使用梯度下降算法迭代,使得函數(shù)值收斂到L(β)的最小值,即得到了函數(shù)的局部最優(yōu)值,L(β)的計算如式(4)所示:
利用提取的正負(fù)樣本和DPM根濾波器卷積通過LSVM 算法,讓根濾波器不斷疊加正負(fù)樣本,得到最終用于定位的模型。
本文算法在檢測定位階段將輸入圖像分成若干個區(qū)域,使用訓(xùn)練好的Norm-DP模型遍歷圖像區(qū)域,將得分較高的區(qū)域用定位框的形式進(jìn)行標(biāo)注,從而實現(xiàn)行人檢測。在此基礎(chǔ)上,為了更好地擬合行人目標(biāo),利用Soft-NMS 算法對行人定位框進(jìn)行邊緣細(xì)化,之后融合BBR算法對定位框進(jìn)一步回歸。
本文算法在邊界框優(yōu)化時結(jié)合了Soft-NMS 算法,是對NMS的改進(jìn),分為線性加權(quán)和高斯加權(quán)兩種形式,本文中使用的Soft-NMS屬于在NMS基礎(chǔ)上進(jìn)行高斯加權(quán),NMS算法如式(5)所示。
其中,Si為當(dāng)前檢測框的得分,Νt為IOU的閾值,M為得分最高的檢測框,bi表示與M候選框重疊的候選框。由于傳統(tǒng)的NMS 算法在IOU(M,bi)≥Nt時會將相鄰的兩個候選框的得分強制性歸0,如果圖像中行人之間存在重疊部分會造成檢測失敗或者漏檢。Soft-NMS針對生成的一組候選框計算得分后選取分?jǐn)?shù)最大的候選框,記錄該候選框的位置數(shù)據(jù)存儲到最終目標(biāo)檢測框的數(shù)據(jù)集合中,即M。通過計算最大得分候選框與重疊候選框的IOU 值,并與重疊IOU閾值進(jìn)行比較。小于閾值的候選框得分不變,仍為對應(yīng)的Si,并一起放入到最終檢測數(shù)據(jù)集合中。但大于重疊IOU閾值的候選框得分將不會直接賦值為0,而是通過計算最大得分候選框與重疊候選框的IOU值,用該候選框的Si減去該IOU值與Si的乘積,將最終的值定義為候選框的分?jǐn)?shù)。因此,Soft-NMS只會將重疊候選框的得分通過一個衰減函數(shù)減小,但不會直接變?yōu)?。候選框之間大部分重疊時,得分只會有很大程度上減少;相反的,如果候選框之間只有少部分重疊,候選框的原有檢測得分將減少很小的值,由此來提高定位的精度。如式(6)所示為線性加權(quán)Soft-NMS函數(shù)。
但是,線性加權(quán)函數(shù)并不是一個連續(xù)函數(shù),在重疊程度超過IOU閾值Nt時,分?jǐn)?shù)可能產(chǎn)生突變,導(dǎo)致檢測結(jié)果序列產(chǎn)生大的變動,將當(dāng)前檢測框得分乘以一個高斯權(quán)重函數(shù),就解決了上述問題。它對沒有重疊的檢測框的原有檢測分?jǐn)?shù)不產(chǎn)生衰減,同時對高度重疊的檢測框產(chǎn)生大的衰減。函數(shù)如式(7)所示。其中D表示被選中的候選框組成的集合,σ為候選框一共的數(shù)量。
對于窗口,一般使用四維向量(x,y,w,h)來表示,其中x,y表示區(qū)域的中心點的橫縱坐標(biāo),w,h表示窗口區(qū)域的寬度和高度。如圖2所示,本文算法將Soft-NMS 優(yōu)化后的邊界框定義為行人候選區(qū)域(虛線表示),行人全部范圍定義為真實標(biāo)注區(qū)域(外側(cè)實線表示),計算真實區(qū)域和真實標(biāo)注區(qū)域,計算真實平移量和真實縮放量,通過式(8)的映射函數(shù)計算到回歸區(qū)域的移動和放縮數(shù)據(jù)。其中WT* 為學(xué)習(xí)參數(shù),t*表示4維變量數(shù)據(jù),Φ5(P)表示候選區(qū)域的特征向量。
通過式(9)利用最小二乘法計算候選區(qū)域到真實標(biāo)注區(qū)域和到回歸區(qū)域的移動數(shù)據(jù)的差。
以從候選區(qū)域映射到回歸區(qū)域的映射函數(shù)d*(P)作為自變量,求對應(yīng)的exp的值乘以對應(yīng)的候選區(qū)域的4 維變量,最終得到回歸區(qū)域(如圖2 內(nèi)側(cè)實線表示)的4 維數(shù)據(jù),即最終定位框的區(qū)域的中心點橫縱坐標(biāo),以及寬度和高度。
Fig.2 BBR schematic diagram圖2 BBR原理圖
實驗使用的GPU 為NVIDIA-GTX1080Ti,CPU為Intel i7-5200U,內(nèi)存為32 GB,需要配置Caffe、TensorFlow、Matlab、OpenCV 和Python。使用樣本集結(jié)合標(biāo)準(zhǔn)樣本集和自制樣本集,標(biāo)準(zhǔn)樣本集采用INRIA 和MS COCO 數(shù)據(jù)集,INRIA 包括有正樣本圖像614 個和負(fù)樣本圖像1 218 個的訓(xùn)練數(shù)據(jù)集;以及有正樣本圖像288個,負(fù)樣本圖像453個的測試數(shù)據(jù)集。MS COCO包括訓(xùn)練集123 287個,測試集81 434個,共包含了80 個種類;自制樣本集針對行人數(shù)量多、姿勢復(fù)雜和有遮擋情況,在圖像上手動截取行人圖片。通過對比傳統(tǒng)DPM 算法、傳統(tǒng)CNN 算法、基于DP-CNN 算法、傳統(tǒng)RCNN 算法的檢測精度,對本文算法進(jìn)行評估。
本文算法實驗部分分別對定位框優(yōu)化和模型融合的效果進(jìn)行研究。
融合Soft-NMS 算法和BBR 算法的定位框優(yōu)化算法的實驗效果如圖3 所示:(a)為沒有使用任何定位框優(yōu)化算法的檢測效果,(b)為只使用了Soft-NMS算法后的檢測效果,(c)為使用融合Soft-NMS和BBR算法的檢測效果。沒有使用定位框優(yōu)化算法時,行人的身體部分被其他物體遮擋,導(dǎo)致候選框過度剪切,雖然也可以檢測出行人,但部分定位框已造成損失。使用了Soft-NMS 算法后,定位框可以很好地反映行人位置,但是邊界框擬合效果較差。使用融合Soft-NMS 和BBR 算法后,不僅可以準(zhǔn)確地定位行人,定位框也具備了較高的擬合性。
Fig.3 Comparison of detection results of positioning frame optimization algorithms圖3 定位框優(yōu)化算法的檢測結(jié)果對比
由于本文模型是在DP-CNN 模型基礎(chǔ)上進(jìn)行的改進(jìn),為了說明Norm-DP 模型的性能,對比DP-CNN模型算法和本文Norm-DP模型算法在行人數(shù)量較多和有嚴(yán)重遮擋情況下的檢測效果,如圖4 所示,(a)~(d)為DP-CNN模型算法在行人之間存在遮擋和圖片背景較為復(fù)雜情況下的檢測結(jié)果,(a)中部的三個行人之間由于男性行人手臂遮擋兩邊女性行人導(dǎo)致漏檢;(b)中由于行人無遮擋,DP-CNN 算法正確定位,但邊框擬合效果不好;(c)(d)中都漏檢了被遮擋的女性,并且(d)中圖像兩端的男性沒有被檢測出。這是因為DP-CNN 模型算法中DPM 和CNN 的像素區(qū)域不同,融合效果不佳,最終模型的部件濾波器在掃描整張圖像時,沒有找到對應(yīng)的部件位置,因此出現(xiàn)了明顯漏檢。(e)~(h)則是本文Norm-DP模型算法的檢測結(jié)果,除了在(h)圖中由于左邊男性身體缺失導(dǎo)致漏檢,其他檢測結(jié)果均沒有漏檢的產(chǎn)生。(i)為行人數(shù)量較多情況時DP-CNN模型算法的檢測結(jié)果,部分行人目標(biāo)產(chǎn)生了誤檢,甚至還出現(xiàn)了漏檢,這也是由于HOG 特征不能很好地映射到CNN 模型中導(dǎo)致的。(j)是本文Norm-DP 模型算法在行人較多時的檢測結(jié)果,每個行人都用擬合性很好的邊框進(jìn)行了定位。因此,本文算法具有很好的擬合效果。
Fig.4 Comparison between detection results of DP-CNN algorithm and proposed algorithm圖4 DP-CNN算法與本文算法檢測結(jié)果對比
Table 1 Comparison of experimental results of INRIA data set表1 INRIA數(shù)據(jù)集實驗效果對比
Table 2 Comparison of experimental results of MS COCO data set表2 MS COCO數(shù)據(jù)集實驗效果對比
本文實驗分別在INRIA 和MS COCO 數(shù)據(jù)集測試集中選取各1 000張(多為單個行人或少量行人無遮擋情況)與自制數(shù)據(jù)集500張(多為行人數(shù)量多、姿勢復(fù)雜和有遮擋的行人圖片)組成實驗測試數(shù)據(jù)集,對最優(yōu)的DPM算法、CNN算法、DP-CNN算法,RCNN算法,以及本文算法進(jìn)行實驗,選取檢測精度(檢測精度=正確檢測數(shù)量/數(shù)據(jù)集總數(shù))作為評判標(biāo)準(zhǔn)。表1為INRIA 數(shù)據(jù)集和自制數(shù)據(jù)集的檢測結(jié)果;表2 為MS COCO數(shù)據(jù)集和自制數(shù)據(jù)集的檢測結(jié)果。在單個行人情況下除DPM和CNN算法,其余算法的檢測精度相差不大,但是在行人數(shù)量較多時,分別在INRIA數(shù)據(jù)集和MS COCO 數(shù)據(jù)集中檢測精度比DP-CNN模型算法提高了6.4個百分點和1.2個百分點,比RCNN算法提高了4.0 個百分點和2.8 個百分點;在行人數(shù)量較多且有遮擋時,分別在INRIA數(shù)據(jù)集和MS COCO數(shù)據(jù)集中檢測精度比DP-CNN模型算法提高了6.0個百分點和6.2 個百分點,比RCNN 算法提高了6.0 個百分點和3.0個百分點。
由于本文算法主要針對DP-CNN進(jìn)行改進(jìn),通過定性和定量分析可以得出,在行人數(shù)量較多、姿勢復(fù)雜和有遮擋情況下,本文算法優(yōu)于DP-CNN算法。
本文算法主要步驟為:首先,在深度金字塔網(wǎng)絡(luò)模型的基礎(chǔ)上,構(gòu)建適用于行人檢測的Norm-DP 網(wǎng)絡(luò);其次,直接提取Norm-DP特征作為訓(xùn)練所需的正負(fù)樣本;然后,將傳統(tǒng)DPM算法中的部件濾波器直接省略,只保留根濾波器,使用LSVM 進(jìn)行模型訓(xùn)練;最后,使用Soft-NMS 算法和BBR 算法結(jié)合后,對定位時的邊界框進(jìn)行優(yōu)化,使得在行人數(shù)量較多和行人之間有嚴(yán)重遮擋情況下的檢測效果比較突出。本文算法雖然在性能方面取得了理想的效果,但是對GPU 占用較大,因此,后續(xù)工作將減少GPU 的使用。并且在IOU閾值設(shè)定時,隨著閾值的不同,檢測結(jié)果也會有小程度的影響,針對這一部分也需要繼續(xù)研究。