戴植毅,黃妙華
(1.武漢理工大學 汽車工程學院,湖北 武漢 430070;2.武漢理工大學 現(xiàn)代汽車零部件技術(shù)湖北省重點實驗室,湖北 武漢 430070)
目標檢測是計算機視覺中一個重要的課題。行人檢測作為其中的子問題,其在智能監(jiān)控、輔助駕駛系統(tǒng)和機器人視覺等領(lǐng)域有著廣闊的應用前景和市場價值。而行人檢測易受人體姿態(tài)、復雜環(huán)境以及存在遮蔽問題的影響,因此如何高效的進行檢測一直是研究熱點。
目前,基于視覺的行人檢測方法主要分為機器學習和深度學習兩大類。機器學習的主要流程分為3步:①待檢圖像候選區(qū)域生成;②提取候選區(qū)域圖像特征;③使用分類器對所提取的特征進行候選驗證。例如在文獻[1]中,Cheng等使用滑動窗口[2]產(chǎn)生候選區(qū)域,候選區(qū)域特征選用的是Haar特征[3],采用Ada Boost級聯(lián)SVM(support vector machine)的方式以加快運算速度[4]。文獻[5]中,Wu等采用經(jīng)典的DPM(deformable parts model)[6]模型,通過使用BING(binarized normed gradients)[7]和EdgBoxes[8]取代滑動窗口加速候選區(qū)域生成,在此基礎(chǔ)上形成圖像金字塔,最后由DPM模型對候選區(qū)域完成驗證。2014年,Dollar等提出了ACF(aggregated channel features)特征[9],將HOG(histogram of oriented gradient)特征改進后與LUV顏色特征相結(jié)合,而后用Real Ada Boost分類器進行檢測,檢測的速度為140 ms,相比以往的非GPU(graphic processing unit)的機器學習算法有了很大的提升。
在深度學習中,檢測對象特征的概念被模糊化,轉(zhuǎn)而由神經(jīng)網(wǎng)絡(luò)通過大量樣本自行學習獲得。越來越多的學者將研究重點轉(zhuǎn)向感興趣區(qū)域提取(region of interesting, ROI)和深度學習(deep learning, DL)。其中ROI大大減少了候選區(qū)域的數(shù)量從而提升了候選區(qū)域生成速度;卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)整合了特征提取和驗證兩個過程,同時對目標的識別效果顯著[10],故在目標檢測問題上CNN得到了廣泛應用。例如前沿的R-CNN[11]、SPP-Net[12]、Fast R-CNN[13]、Faster R-CNN[14]、YOLO(you only look once)[15-16]等算法均是通過構(gòu)建CNN網(wǎng)絡(luò)來實現(xiàn)目標物的檢測。文獻[15]中對YOLO算法進行了試驗,簡單網(wǎng)絡(luò)下VOC 2007數(shù)據(jù)集的檢測速度為13 ms,平均準確率為76.8%;復雜網(wǎng)絡(luò)下的檢測速度為25 ms,平均準確率為78.6%。
這兩類方法都有各自的優(yōu)缺點,機器學習的檢測實時性不好,但是對硬件的要求低,針對具體實際問題的應用性更強;深度學習需要使用GPU進行加速,硬件要求制約了其實際應用。針對上述問題,文獻[17]提出通過傅里葉變換能夠?qū)δ0迮c特征的卷積運算進行加速,其檢測速度可以達到60 ms。由此筆者尋求了一折中的算法F-DPM,通過快速傅氏變換(fast fourier transformation,F(xiàn)FT)將檢測效果優(yōu)異的DPM算法進行了加速優(yōu)化,并且對特征金字塔的搭建進行了改進,使其在CPU下能滿足實時性要求。
DPM本質(zhì)上是HOG特征的擴展,大體思路與HOG一致。通過計算梯度方向直方圖,然后用SVM訓練得到待檢測物體的梯度模型模板,將模型模板和目標進行匹配。DPM只是在模型上做了很多細致的改進。DPM特征除利用梯度算子計算樣本的梯度特征外,還引入了彈簧變形模型[18],提出了分離檢測目標對象的組件和部件的方法。每個DPM模型都包含一個根濾波器和i個可變部件濾波器,其中單個可變部件濾波器的分辨率是根濾波器的兩倍,如圖1所示。由于根濾波器和部件濾波器的分辨率不同,因此對于待測樣本采集DPM特征,也可看作是對圖片在兩種不同分辨率下采集HOG特征。檢測算子進行目標匹配計算得分時,使用滑動窗口掃描法,檢測窗口的得分等于根濾波器與部件濾波器的得分之和,其可視化后如圖1(c)所示。由于DPM采用的是多尺度的檢測方式,每個部件的得分是此部件的各個空間尺度位置得分的最大值,而每個部件的空間位置得分是部件在該子窗口上濾波器的得分減去變形花費。
DPM特征也需進行HOG特征的提取,根濾波器只使用了8×8的Cell,并將該細胞單元與其對角線臨域的4個細胞單元做歸一化操作,如圖2所示。之后提取有符號的HOG梯度,將0~360°度分成18個梯度向量,構(gòu)成特征的前18維;再提取無符號的HOG梯度,將0~360°度分成9個梯度向量,構(gòu)成特征的中間9維;將無符號的HOG梯度按細胞單元累加,得到最后4維,最終得到一個18+9+4=31維的特征。檢測窗口的大小選取120×40,故根濾波器的特征為31×15×5=2 325維。同理,部件濾波器的Cell為4×4,只將0~360°度分成9個梯度向量,窗口大小為24×24,故其特征為4×9×6×6=1 296維。之后運用圖像樣本訓練Latent SVM分類器得到根濾波器模板和部件濾波器模板。算法的檢測流程如圖3所示,最后根據(jù)模板與窗口進行匹配打分,選擇最高分值的窗口作為檢測結(jié)果。
圖1 根模型、部件模型和窗口得分
圖2 DPM改進HOG特征原理
圖3 DPM檢測流程
對于單個部件模型的詳細響應得分按式(1)計算。
di·φd(dx,dy))
(1)
式中:l為圖像金字塔的第l層;點(x,y)為訓練的理想模型的位置;Di,l(x,y)為第i個部件在第l層圖像金字塔的(x,y)點的最大得分;Ri,l(x+dx,y+dy)為該部件分類器與對應特征向量卷積后得到的響應得分;di·φd(dx,dy)為該部件相對理想位置的偏移損失得分;di為偏移損失系數(shù);φd(dx,dy)為部件模型的理想位置與組件模型的檢測點間的距離。
整個檢測窗口的得分按式(2)計算。
score(x0,y0,l0)=R0,l0(x0,y0)+
(2)
式中:score(x0,y0,l0)為在l0層特征金字塔中以(x0,y0)為錨點的窗口分數(shù)值;R0,l0(x0,y0)為l0處的根模型的響應分數(shù);υi為部件模型錨點和理想檢測點之間的坐標偏差;b為不同模型組件之間的偏移系數(shù),用以將窗口與模型模板對齊。
運用圖3的檢測流程進行行人檢測其檢測效果能夠達到要求,但是檢測速度未能達到實時性的要求,因此需對其進行加速優(yōu)化。其中,生成HOG金字塔過程和模型模板與每一層HOG金字塔卷積的過程耗費的時間比例最大,筆者對其分別進行了加速優(yōu)化。
模板與新窗口的卷積過程本質(zhì)上相當于兩個等維向量的點積,在時域下兩個n維相向卷積,其計算的復雜度為Ο(n×n)。而將向量從時域空間轉(zhuǎn)到頻域空間,在頻域中對兩向量進行卷積,其卷積運算的復雜度為Ο(nlgn)。由此可見隨著維度n的增長,頻域的卷積運算的復雜度相對時域的復雜度會大大降低,而DPM特征為2 325維和1 296維的向量,對其進行時頻的轉(zhuǎn)換,從理論上是可以達到節(jié)省運算時間的效果。
針對圖像特征為離散的序列,快速傅里葉變換[19]FFT能夠很好地完成時頻域的轉(zhuǎn)換。但是由于HOG特征金字塔隔層的圖像大小不同,轉(zhuǎn)換到時域后不能直接與模板相乘,因此HOG特征金字塔和模板需填充至同等大小,再轉(zhuǎn)到頻域卷積。由FFT轉(zhuǎn)到頻域的模板可以事先存到頻域模板庫中,這樣在實時檢測時就可以省去模板轉(zhuǎn)化的時間,相應檢測流程如圖4所示。
圖4 F-DPM檢測流程
根據(jù)式(2)計算每一層HOG金字塔中窗口分數(shù),本質(zhì)就是用訓練好的模型模板與HOG金字塔的每一層進行滑動卷積,式(2)中可知l層與l+λ層的圖像分辨率為兩倍關(guān)系,而進行卷積的模型模板是固定的,因此只需計算l層的HOG特征即可,相應的l+λ、l+2λ層等均可通過對l層降維得到。在降維過程中,可先計算第l層的soft binning直方圖,其中l(wèi)大于等于1并且小于λ,然后采用高分辨率下4個值擬合低分辨率下一個值,不斷計算出第l+λ層soft binning直方圖,l+2λ層soft binning直方圖,以此類推。再根據(jù)soft binning直方圖通過歸一化和截斷獲得各層的HOG特征。因此對于整個HOG特征金字塔,只需計算1~λ層的HOG特征即可,其余的各層均可通過降維得到,從而提升了運算效率。相應的HOG特征金字塔構(gòu)建過程如圖5所示。
圖5 特征金字塔降維構(gòu)建原理
在DPM算法中,訓練得到的模型模板有根濾波器F0和可變部件濾波器Fn兩類,如圖6所示。根模型主要是對物體潛在區(qū)域進行定位,獲取可能存在物體的位置,但是否真的存在所期望的物體,還需要部件模型進一步確認。因此,筆者先只采用根模型,在根模型的HOG特征的k層上進行卷積運算,得到根模型的計算結(jié)果,然后各層計算結(jié)果進行非極大值抑制,篩選候選位置。對于每一個候選位置,回到部分模型所在的k+λ層,在各個部分模型期望位置的鄰域中,計算部分模型與HOG特征卷積結(jié)果減去形變懲罰量的最大值,求得該候選位置的根模型與部分模型的最終得分。如果這個得分大于閾值,則該位置存在待檢測的物體。所有計算完成后,刪去分值較低并且與分值高的檢測結(jié)果有很高重合面積的位置,得到最終的檢測結(jié)果。
圖6 分層檢測原理
完成算法改進之后,對該算法在PC端進行了實驗驗證。算法的運行環(huán)境如下:內(nèi)存為8 G,CUP為Intel酷睿i7處理器,主頻為3.6 GHz。
筆者采用INRIA數(shù)據(jù)集作為試驗的圖像數(shù)據(jù)集,該數(shù)據(jù)集中人的姿態(tài)和光照條件等相對全面,包含了城市、海灘和山等各種場景,較為適合做行人檢測。該數(shù)據(jù)集的訓練集具有正樣本614張(包含2 416個行人),負樣本為1 218張;測試集的正樣本為288張(包含行人1 126個),負樣本453張。數(shù)據(jù)集部分圖像如圖7所示。
圖7 部分INRIA訓練正樣本圖
利用其中的訓練集來訓練分類器,通過測試集來說明分類器檢測的可靠性。本文以查準率(precision)和召回率(recall)作為預測結(jié)果的評價指標,計算公式如下:
(3)
(4)
式中:TP為測試集的真正例數(shù);FP為假正例數(shù);FN為假反例數(shù)。
為驗證F-DPM算法的準確性與檢測速度,筆者將DPM、ACF和YOLO算法作為對比算法,3種算法的相應檢測性能如表1所示。3種算法中YOLO的檢測速度和檢測準確性都是最高的,而由DPM改進的算法F-DPM其檢測速度提升幅度巨大,較ACF算法也快了一倍,并且其檢測的準確性較ACF算法表現(xiàn)也更加優(yōu)異,這在機器學習算法中已屬于不錯的成績。
表1 結(jié)果參數(shù)對比
為檢驗本算法的檢測效果,分別對其檢測效果和檢測速度進行比較,檢測結(jié)果對比圖如圖8所示。對比圖8(a)的檢測結(jié)果,可以看出這3種算法都能夠?qū)D片中的行人檢測出來,但目標定位的精確度ACF算法相對而言較差。對比圖8(b),F(xiàn)-DPM與YOLO均能準確檢測出目標,而ACF存在目標漏檢。圖8(c)的場景為一個街區(qū),該圖中只有F-DPM準確無誤的檢測出圖中的目標;而ACF算法誤將櫥窗和街邊的衣物檢測為行人,屬于誤檢現(xiàn)象,并且其中的女性行人檢測框,融合篩選效果較差;YOLO算法的檢測框效果良好,當時也存在誤將衣物識別為行人的誤檢現(xiàn)象。
圖8 檢測效果對比
分析3種算法的原理,不難對上述檢測的結(jié)果做出解釋。ACF算法只是簡單的將表征梯度信息的HOG特征和表示顏色信息的LUV通道特征進行了結(jié)合,形成ACF特征。該算法雖然較以往的CPU機器學習算法其檢測速度相對較快,但如遇到背景復雜或者行人著裝與背景相似的情形,易出現(xiàn)漏檢。同時ACF特征相對DPM特征而言較為粗糙,這就造成誤將圖8(c)中櫥窗和街邊衣服識別為行人的誤檢情形。而DMP算法中有根濾波器和部件濾波器兩種模板,根濾波器先快速對圖形篩選出潛在的檢測目標位置,而后再由部件濾波器對其進行精確判斷,先粗篩后精篩,保證了檢測的準確性。而YOLO算法其主要優(yōu)勢是用來做多分類問題,對于單類問題的細致檢測效果亦沒有DPM算法好,因此YOLO算法在總體檢測效果良好的情形下,有時會將與人相似的物體誤檢為行人。
從檢測速度、檢測準確性以及檢測的圖像效果的算法對比可見,通過FFT變換將卷積計算由時域轉(zhuǎn)到頻域,以及降維后快速得到圖像特征金字塔的方法,對檢測的速度有了很大的提升。而使用分層卷積的方法,同樣對檢測過程進行了加速,并且對行人能夠更加精確地檢測其位置。
筆者基于DPM算法提出了一種新的F-DPM算法,該算法通過FFT將特征與模板的卷積運算從時域轉(zhuǎn)到頻域,并通過降維的方式擬合構(gòu)建特征金字塔,這兩種改進大大提升了F-DPM的檢測速度。以查準率、召回率和平均檢測時間對F-DPM的檢測準確性和檢測速度進行了準確評價。對比ACF、YOLO算法,F(xiàn)-DPM很好地兼顧了檢測速度和檢測效果,使其能夠在CPU下基本滿足檢測的實時性要求,這對行人檢測推向?qū)嶋H應用做出了一定的貢獻。
參考文獻:
[1] Cheng W C, Jhan D M. A Cascade Classifier Using Adaboost Algorithm and Support Vector Machine for Pedestrian Detection[C]∥ IEEE International Conference on Systems, Man, and Cybernetics. [S.l.]:IEEE, 2011:1430-1435.
[2] Zhu Q, Yeh M C, Cheng K T, et al. Fast Human Detection Using a Cascade of Histograms of Oriented Gradients[C]∥2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. [S.l.]: IEEE, 2006:1491-1498.
[3] Zhao X, Heng C. Context Modeling for Facial Landmark Detection Based on Non-adjacent Rectangle (NAR) Haar-like Feature[J]. Image & Vision Computing, 2012,30(3):136-146.
[4] Schapire R E. The Convergence Rate of AdaBoost[C]∥ 2010 Conference on Learning Theory. Haifa:[s.n.], 2010:308-309.
[5] Wu X, Kim K Y, Wang G, et al. Fast Human Detection Using Deformable Part Model at the Selected Candidate Detection Positions[M]. [S.l.]: Springer International Publishing, 2015.
[6] Felzenszwalb P, Mcallester D, Ramanan D. A Discriminatively Trained, Multiscale, Deformable Part Model[C]∥ IEEE Conference on Computer Vision and Pattern Recognition. [S.l.]:IEEE, 2008:1-8.
[7] Cheng M M, Zhang Z, Lin W Y, et al. BING: Binarized Normed Gradients for Objectness Estimation at 300fps[C]∥ Computer Vision and Pattern Recognition. [S.l.]: IEEE, 2014:3286-3293.
[8] Zitnick C L, Dollár P. Edge Boxes: Locating Object Proposals from Edges[C]∥ European Conference on Computer Vision. [S.l.]:Springer, 2014:391-405.
[9] Dollar P, Appel R, Belongie S, et al. Fast Feature Pyramids for Object Detection.[J].IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014,36(8):1532-1545.
[10] 吳正文.卷積神經(jīng)網(wǎng)絡(luò)在圖像分類中的應用研究[D].成都:電子科技大學,2015.
[11] Girshick R, Donahue J, Darrell T, et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. [S.l.]:IEEE, 2014:580-587.
[12] He K, Zhang X, Ren S, et al. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015,37(9):1904-16.
[13] Girshick R.Fast R-CNN[C]∥ IEEE International Conference on Computer Vision. [S.l.]:IEEE Computer Society, 2015:1440-1448.
[14] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015,39(6):1137-1149.
[15] Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-time Object Detection[C]∥ Computer Vision and Pattern Recognition. [S.l.]:IEEE, 2016:779-788.
[16] 劉建國,羅杰,王帥帥,等.基于YOLOv2的行人檢測方法研究[J].數(shù)字制造科學,2018,16(1):50-54.
[17] Dubout C. Exact Acceleration of Linear Object Detectors[C]∥ European Conference on Computer Vision. [S.l.]:Springer-Verlag, 2012:301-311.
[18] Fischler M A, Elschlager R A. The Representation and Matching of Pictorial Structures[J]. IEEE Transactions on Computers, 2006,C-22(1):67-92.
[19] Rao K R, Kim D N, Hwang J J.快速傅里葉變換:算法與應用[M].萬帥,楊付正,譯.北京:機械工業(yè)出版社,2013.