陳光喜 王佳鑫 黃勇 詹益俊 詹寶瑩
摘 要:針對復(fù)雜環(huán)境下行人檢測不能同時滿足高召回率與高效率檢測的問題,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的行人檢測方法。首先,采用CNN中的單步檢測升級版網(wǎng)絡(luò)YOLOv2初步檢測行人;然后,設(shè)計一個網(wǎng)絡(luò)與YOLOv2網(wǎng)絡(luò)級聯(lián)。設(shè)計的網(wǎng)絡(luò)具有目標(biāo)分類和邊界框回歸的功能,對YOLOv2初步檢測出的行人位置進(jìn)行再分類與回歸,以此降低誤檢,提高召回率;最后,采用非極大值抑制(NMS)處理的方法去除冗余的邊界框。實驗結(jié)果顯示,在數(shù)據(jù)集INRIA和Caltech上,所提方法與原始YOLOv2相比,召回率提高6.93.3個百分點,準(zhǔn)確率提高6.85.1個百分點,同時速度上達(dá)到了14.712.711.6幀/s,實現(xiàn)了實時檢測。與現(xiàn)有的流行的行人檢測方法相比,所提方法具有更好的整體性能。
關(guān)鍵詞:行人檢測;卷積神經(jīng)網(wǎng)絡(luò);級聯(lián)網(wǎng)絡(luò);分類回歸;實時檢測
中圖分類號: TP391.413; TP18
文獻(xiàn)標(biāo)志碼:A
Abstract: In complex environment, existing pedestrian detection methods can not be very good to achieve high recall rate and efficient detection. To solve this problem, a pedestrian detection method based on Convolutional Neural Network (CNN) was proposed. Firstly, pedestrian locations in input images were initially detected with single step detection upgrade network (YOLOv2) derived from CNN. Secondly, a network with target classification and bounding box regression was designed to cascade with YOLOv2 network, which made reclassification and regression of pedestrian location initially detected by YOLOv2, to reduce error detections and increase recall rate. Finally, a Non-Maximum Suppression (NMS) method was used to remove redundant bounding boxes. The experimental results show that, in INRIA and Caltech dataset, the proposed method increases recall rate by 6.93.3 percentage points, and the accuracy is increased by 6.85.1 percentage points compared with original YOLOv2. It also reached a speed of 14.712.711.6FPS (Frames Per Second) to realize real-time detection. Compared with the existing six popular pedestrian detection methods, the proposed method has better overall performance.
Key words: pedestrian detection; Convolutional Neural Network (CNN); cascade network; classification and regression; real-time detection
0 引言
隨著智慧城市建設(shè)在國際國內(nèi)如火如荼地展開,針對智能監(jiān)控等相關(guān)計算機(jī)視覺的技術(shù)需求也日益增加。行人檢測作為計算機(jī)視覺領(lǐng)域的基礎(chǔ)任務(wù),引起了國內(nèi)外計算機(jī)視覺領(lǐng)域?qū)<覍W(xué)者的特別關(guān)注[1]。傳統(tǒng)的行人檢測方法是利用人工設(shè)計的特征提取器,通過提取方向梯度直方圖(Histogram of Oriented Gradients, HOG)、局部二值模式(Local Binary Pattern, LBP)等特征來訓(xùn)練分類器,實現(xiàn)對行人的檢測,但人工設(shè)計的行人特征很難適應(yīng)行人行為的大幅度變化。
本質(zhì)上說,行人檢測只是一種特殊的通用目標(biāo)檢測,因而可以借鑒通用目標(biāo)檢測的方法來實現(xiàn)。目前主流的通用目標(biāo)檢測方法主要分為兩種:一種是two-stage;另一種是one-stage。two-stage方法主要使用更快、更富有特征層次的卷積神經(jīng)網(wǎng)絡(luò)(Faster and Rich feature Convolutional Neural NetworkFaster Regions with Convolutional Neural Network feature, Faster R-CNN這個Faster R-CNN的英文全稱是否應(yīng)該為“Faster Regions with Convolutional Neural Network feature”,其他作者寫的是這個英文全稱)[2]、快速且豐富的特征層次結(jié)構(gòu)網(wǎng)絡(luò)(Fast and Rich feature CNNFast Regions with Convolutional Neural Network feature, Fast R-CNN)[3],而one-stage的方法有統(tǒng)一的實時對象檢測(You Only Look Once, YOLO)[4]、YOLO升級版(YOLOv2)[5]、單發(fā)多框檢測器(Single Shot multibox Detector, SSD)[6]。與two-stage的方法相比,one-stage的方法檢測速度更快,但在檢測質(zhì)量上稍低。實時檢測是目前智能產(chǎn)品市場的主流需求,YOLOv2在實時性檢測方面表現(xiàn)突出,速度更快,但是直接使用YOLOv2檢測行人時,因為在INRIA[7]和Caltech[8]中行人的像素比較低,YOLOv2檢測效果較差,行人位置也不夠準(zhǔn)確。此外,在高重疊度(Intersection Over Union, IOU)閾值條件下,YOLOv2的效果也不甚理想。
最新的CNN(Convolutional Neural Network)方法如超網(wǎng)絡(luò)(HyperNet)[9]大量使用了特征融合來提高小目標(biāo)的檢測質(zhì)量,而特征空間網(wǎng)絡(luò)(Feature Pyramid Network請補(bǔ)充FPN的英文全稱, FPN)[10]則利用多層特征預(yù)測來提高檢測質(zhì)量。行人檢測方法也可以融合CNN特征與傳統(tǒng)行人特征,如Mao等[11]提出邊緣特征,分割特征對行人檢測很有效,他們設(shè)計了超學(xué)習(xí)網(wǎng)絡(luò)(Hyperlearn)進(jìn)行特征融合,提高了小目標(biāo)行人的檢測質(zhì)量。特征融合的優(yōu)點在于低層的特征語義信息比較少,但是目標(biāo)位置準(zhǔn)確;高層的特征語義信息比較豐富,但是目標(biāo)位置比較粗略,同時融入了上下文語義特征,利用了高層低層特征易于檢測,但是這些方法的主干網(wǎng)絡(luò)非常深,或者采用多特種融合的方法導(dǎo)致網(wǎng)絡(luò)參數(shù)過于龐大,導(dǎo)致了檢測速度非常慢,影響了在實際檢測中的應(yīng)用性。
分階段檢測方法的優(yōu)點是單個網(wǎng)絡(luò)階段計算量不大,計算效率高。如多任務(wù)級聯(lián)卷積網(wǎng)絡(luò)(Multi-Task Cascaded Convolutional Network, MTCNN此處的MTCNN,是否應(yīng)該為MTCCN,因為大寫字符中有兩個C,而不是CNN?請明確?;貜?fù):是MTCNN)[12]檢測人臉采用了一種級聯(lián)網(wǎng)絡(luò),分3個階段:第一個階段提取人臉候選框,第二個階段定位人臉,第三個階段精確人臉位置,此方法檢測速度快,檢測質(zhì)量高。本文參考了MTCNN方法設(shè)計了一個行人級聯(lián)網(wǎng)絡(luò),根據(jù)深層特征與淺層特征融合的思想改進(jìn)了YOLOv2。首先使用YOLOv2對行人進(jìn)行檢測,在檢測時使其輸出預(yù)測的坐標(biāo);然后利用行人在水平方向上比較密集這一特點設(shè)計網(wǎng)絡(luò)Person用于級聯(lián)YOLOv2,這個網(wǎng)絡(luò)主要具備兩個作用:1)用于對YOLOv2檢測出的行人再次判斷是否為行人;2)對YOLOv2檢測出的行人的位置進(jìn)行回歸。第二個網(wǎng)絡(luò)是一個回歸網(wǎng)絡(luò),其網(wǎng)絡(luò)層數(shù)淺,且檢測速度快。本文的創(chuàng)新之處在于級聯(lián)網(wǎng)絡(luò)方法,結(jié)合了深層特征網(wǎng)絡(luò)與淺層特征網(wǎng)絡(luò)的優(yōu)點,能夠完成實時檢測任務(wù)。
1 本文方法
本文方法首先使用了YOLOv2的算法。YOLOv2的計算流程公式為:y=fn(σn-1)=fn(fn-1(…f1(x)),x為原圖??梢钥闯鯵OLOv2的每一層參數(shù)必須訓(xùn)練恰當(dāng),才能得到合適的檢測效果。YOLOv2網(wǎng)絡(luò)有19層,訓(xùn)練的行人為小目標(biāo)時,網(wǎng)絡(luò)難以訓(xùn)練。
直接采用YOLOv2檢測時,較深的網(wǎng)絡(luò)得到抽象的特征,淺層的網(wǎng)絡(luò)得到圖像的細(xì)節(jié)。上述公式采用的是高級抽象特征作檢測,只能檢測出行人的大致位置,或者會誤檢出一些行人,而不能檢測出行人的具體位置。本文的主要思路是,采用級聯(lián)方法,根據(jù)淺層網(wǎng)絡(luò)提出人的細(xì)節(jié)特征這一特點設(shè)計了一個淺層網(wǎng)絡(luò),精確定位人的位置,但由于網(wǎng)絡(luò)較淺,學(xué)習(xí)到的特征不足以用于定位行人,即輸入原圖無法得到行人位置,但是可用于候選框位置小范圍的修正,因此結(jié)合了淺層網(wǎng)絡(luò)與深層網(wǎng)絡(luò)的特點,用淺層網(wǎng)絡(luò)再次回歸深層網(wǎng)絡(luò)預(yù)測的結(jié)果。
檢測網(wǎng)絡(luò)提取特征的過程公式為D=F4(F3-1這個下標(biāo)對嗎?下標(biāo)是否應(yīng)該為3?請明確(…F1(x)),x為原圖,經(jīng)過4層網(wǎng)絡(luò)提取特征訓(xùn)練,級聯(lián)網(wǎng)絡(luò)檢測公式為Df=F4(F3-1(…F1(y)),y為YOLO的檢測結(jié)果,因此結(jié)合了深層網(wǎng)絡(luò)與淺層網(wǎng)絡(luò)的特點能夠得出高質(zhì)量的檢測效果,且由于是分階段檢測,沒有集中在同一個網(wǎng)絡(luò),網(wǎng)絡(luò)的計算量沒有增大,檢測速度快。與此相對的是,F(xiàn)PN等網(wǎng)絡(luò)是在一個網(wǎng)絡(luò)中結(jié)合了深層、淺層特征,計算量加大,不利于網(wǎng)絡(luò)訓(xùn)練。
本文改進(jìn)的YOLOv2方法首先是在YOLOv2上作了大量的對比,分析在行人檢測場景中使用YOLOv2產(chǎn)生的效果,通過改變其判斷行人的threshold(閾值)來調(diào)整檢測性能。此外,對于如何在降低threshold的同時保持準(zhǔn)確率不變,如何在提高行人定位準(zhǔn)確性的同時提高召回率,如何保證檢測速度盡可能地快,這三個問題上提出了相應(yīng)的解決方案。
1)針對準(zhǔn)確率不理想的問題,設(shè)計新的網(wǎng)絡(luò)架構(gòu),此網(wǎng)絡(luò)具有再次判斷行人類別的功能,作一個二分類預(yù)測,即人和背景,同時在網(wǎng)絡(luò)中通過使用正負(fù)樣本的方法來提高準(zhǔn)確率。
2)針對召回率較低的問題,設(shè)計一個具有邊界框回歸功能的網(wǎng)絡(luò)架構(gòu),通過回歸原始YOLOv2的預(yù)測框,提高行人預(yù)測框定位的準(zhǔn)確性,檢測到的行人正確定位的數(shù)量就會增加,行人召回率隨之提升。
3)針對實時檢測必須保證檢測速度這一問題,這就要求設(shè)計的網(wǎng)絡(luò)層數(shù)比較淺。網(wǎng)絡(luò)層數(shù)越淺,檢測速度越快。
綜合這三個問題的解決方案,在以行人為目標(biāo)的基礎(chǔ)上,設(shè)計一個網(wǎng)絡(luò)Person。此網(wǎng)絡(luò)具有分類與回歸的功能,網(wǎng)絡(luò)層數(shù)很淺,僅有4層。分析行人的真實框縱橫比,選取合適的卷積核,再對上一步Y(jié)OLOv2測試的三種閾值下的預(yù)測框分別傳入Person網(wǎng)絡(luò)中作分析對比,得出threshold為0.01時的效果最優(yōu),最后再與其他行人檢測算法進(jìn)行對比分析。
1.1 YOLOv2初步檢測
為了提高檢測速度,采用YOLOv2初步檢測行人。YOLOv2是目前最快的通用目標(biāo)檢測網(wǎng)絡(luò),能夠在檢測速度和檢測質(zhì)量上進(jìn)行權(quán)衡。
1.1.1 置信度計算
YOLOv2檢測時是整圖輸入的,首先將圖片分成S×S個網(wǎng)格,按式(1)計算每一個網(wǎng)格置信度。首先判斷網(wǎng)格中是否包含目標(biāo),見式(2),如果包含目標(biāo)Pr(Object)=1,再判斷該目標(biāo)是否為人的概率Pr(Person|Object),最后乘以定位的準(zhǔn)確性IOU,即IOU為預(yù)測框與真實框的交并比。預(yù)測框與真實框的交集見式(3):
其中:AO(Area of Overlap)為面積的重疊,表示預(yù)測框的面積與真實框的面積的交集;AU(Area of Union請補(bǔ)充AO、AU的英文全稱)為面積的并集,表示預(yù)測框的面積與真實框的面積的并集。
1.1.2 YOLOv2網(wǎng)絡(luò)結(jié)構(gòu)
采用官方的YOLOv2檢測網(wǎng)絡(luò)結(jié)構(gòu),輸入任意尺寸圖片,重設(shè)大小到416×416(寬×高),經(jīng)各層卷積池化后,圖片大小改為13×13,并將輸出類別修改為2類,即行人與背景。在訓(xùn)練網(wǎng)絡(luò)時,需要預(yù)設(shè)錨點數(shù)量及位置。隨著迭代次數(shù)不斷增加,從網(wǎng)絡(luò)學(xué)習(xí)到行人特征,預(yù)測框參數(shù)不斷調(diào)整,最終接近真實框。YOLOv2結(jié)構(gòu)如圖1所示。
1.2 Person網(wǎng)絡(luò)精確檢測
原始YOLOv2并不是專為行人檢測所設(shè)計的網(wǎng)絡(luò),檢測行人的召回率和準(zhǔn)確率均不高。為提高行人分類的準(zhǔn)確率及行人預(yù)測的召回率,設(shè)計了Person網(wǎng)絡(luò)。Person網(wǎng)絡(luò)的主要功能是對YOLOv2的預(yù)測坐標(biāo)及類別進(jìn)行微調(diào),使預(yù)測更加精準(zhǔn)。
1.2.1 Person網(wǎng)絡(luò)結(jié)構(gòu)
Person網(wǎng)絡(luò)是一個具有目標(biāo)分類和位置回歸兩種功能的網(wǎng)絡(luò),采用4個卷積層、3個Max-pooling層、1個全連接(Full Connection, FC)層如表1。全連接層包含2個分支:一個用于Softmax分類,另一個用于邊界框回歸。Person網(wǎng)絡(luò)的輸入是像素為30×90的行人樣本圖,行人的檢測框都是高比寬長的矩形框且寬高比接近1∶3,因此選取的卷積核寬高比也為1∶3,采用兩個2×6、兩個1×3的卷積核。非線性激活層采用PReLU(Parametric Rectified Linear Unit請補(bǔ)充PReLU的英文全稱)[13],提高網(wǎng)絡(luò)收斂速度。參考全卷積網(wǎng)絡(luò)(Fully Convolutional Network, FCN)分割網(wǎng)絡(luò)思想,采用了不同卷積層之間的特征融合,將Conv3、Conv4的特征通過雙線性插值算法重設(shè)為相同大小并進(jìn)行拼接,這種不同層之間的特征融合可以提高網(wǎng)絡(luò)的檢測性能。例如,原始行人像素為30×90,經(jīng)過4次池化3次池化,行人像素值變?yōu)?×6。檢測這種3×6的圖像發(fā)現(xiàn)其效果不佳,而采用不同層的特征拼接且聯(lián)合了不同層的語義特征,網(wǎng)絡(luò)對于不同大小的行人具有很高的檢測能力。,因此最終網(wǎng)絡(luò)結(jié)構(gòu)添加了兩個上采樣層以及一個用于降維的卷積層。網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖12所示。YOLOv2預(yù)測出的行人框,輸出結(jié)果作為級聯(lián)網(wǎng)絡(luò)的最終預(yù)測框。
1.2.2 代價函數(shù)
Person網(wǎng)絡(luò)代價函數(shù)包含兩個部分:第一個部分是分類,第二個部分是邊界框回歸。
1)分類損失采用交叉熵:
2)邊界框回歸損失采用歐氏距離:
1.2.3 Person算法設(shè)計
在訓(xùn)練階段,簡單樣本、困難樣本不平衡的比率對訓(xùn)練結(jié)果產(chǎn)生較大影響。簡單樣本是指樣本行人比較清晰且容易被網(wǎng)絡(luò)檢測,而另一種樣本行人較為模糊,網(wǎng)絡(luò)學(xué)習(xí)這種模糊樣本較為困難,稱為困難樣本。如果不作樣本平衡,困難樣本對網(wǎng)絡(luò)學(xué)習(xí)過程中產(chǎn)生的權(quán)值影響小,隨著網(wǎng)絡(luò)訓(xùn)練,困難樣本可能會被當(dāng)成背景進(jìn)而被忽視。Person網(wǎng)絡(luò)設(shè)計階段為了提升網(wǎng)絡(luò)分類的準(zhǔn)確率,采用平衡樣本算法。在全連接層的loss階段,對一個batch的樣本進(jìn)行快速排序。選擇loss較高的70%的樣本作為困難樣本進(jìn)行前傳,剩下30%的樣本作為簡單樣本回到原數(shù)據(jù)集。通過這種方式,在每個batch訓(xùn)練時會減少簡單樣本產(chǎn)生,以此來平衡樣本,提高分類的準(zhǔn)確性。
1.3 本文總體算法
本文第一步采用的是卷積神經(jīng)網(wǎng)絡(luò)[14-15]中YOLOv2對行人進(jìn)行初步檢測。為了盡可能多地檢測出復(fù)雜環(huán)境下的行人,降低置信度閾值,在INRIA和Caltech上,總檢測框的數(shù)量從523個提高到653個,但是誤檢率也隨之提升。這一問題利用Person網(wǎng)絡(luò)的分類功能得到解決:第一步再次判斷目標(biāo)是否為行人,去除YOLOv2降低閾值后的背景框;第二步采用Person網(wǎng)絡(luò)的回歸功能,對YOLOv2檢測出的位置進(jìn)行回歸,提高定位的準(zhǔn)確性。Person網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。圖3是本文方法的訓(xùn)練階段網(wǎng)絡(luò),級聯(lián)了YOLOv2算法和Person網(wǎng)絡(luò),訓(xùn)練時分階段訓(xùn)練。傳統(tǒng)CNN網(wǎng)絡(luò)沒有結(jié)合相鄰?fù)ǖ捞卣?,對小目?biāo)的檢測效果不佳,Person網(wǎng)絡(luò)引入了通道特征拼接的方法,提升了小目標(biāo)的檢測性能。從結(jié)構(gòu)圖可看出本文方法是一個多階段訓(xùn)練的網(wǎng)絡(luò)。圖4是本文方法的檢測階段,首先圖片經(jīng)過深層網(wǎng)絡(luò)YOLOv2預(yù)測出行人的位置,在經(jīng)過Person網(wǎng)絡(luò)回歸行人的位置使最終的檢測框比單個的CNN網(wǎng)絡(luò)更加準(zhǔn)確,傳統(tǒng)網(wǎng)絡(luò)沒有邊界框再次回歸的功能。
1.4 總體代價函數(shù)
本文總代價函數(shù)如式(7)所示。訓(xùn)練YOLOv2階段時,(α, β)?。?,0),(λcoord,λnoobj)取(5,0.5);訓(xùn)練Person網(wǎng)絡(luò)時,(α, β)?。?,1)。ωobji:如果目標(biāo)出現(xiàn)在第i個網(wǎng)格中時為1,ωobjij:第i個網(wǎng)格中的第j個邊界框代表這個網(wǎng)格物體的預(yù)測。S代表有S個網(wǎng)格,B表示邊界框的數(shù)量。
2 實驗分析
2.1 實驗環(huán)境及評估
本文算法運行環(huán)境為一臺64位的Ubuntu 14.04LTS,內(nèi)存為16GB,CPU為8核,GPU為GTX750TI。YOLOv2算法和Person網(wǎng)絡(luò)算法在公開數(shù)據(jù)集INRIA和Caltech中選取訓(xùn)練數(shù)據(jù),實驗中采用的評價指標(biāo)為準(zhǔn)確率(Precision, P)、召回率(Recall, R)以及準(zhǔn)確率與召回率的綜合評價指標(biāo)F值(F-score)。一般來說,準(zhǔn)確率和召回率是相互矛盾的,而F值則綜合了這兩個指標(biāo)的評價參數(shù),當(dāng)F值越高時則實驗的檢測性能更好。
2.2 YOLOv2初步檢測實驗
以開源框架Darknet19為基礎(chǔ),使用YOLOv2網(wǎng)絡(luò)模型開始訓(xùn)練。為提高訓(xùn)練速度、防止過擬合,選用的沖量常數(shù)為0.9,權(quán)值衰減系數(shù)為0.0005,初始學(xué)習(xí)率為0.0001,學(xué)習(xí)率下降策略為step。當(dāng)?shù)?5000次,模型趨于穩(wěn)定。為減少訓(xùn)練時間,以Darknet19網(wǎng)絡(luò)模型訓(xùn)練得到的網(wǎng)絡(luò)參數(shù),初始化卷積層網(wǎng)絡(luò)。該預(yù)訓(xùn)練模型是在ImageNet1000類數(shù)據(jù)集訓(xùn)練10個循環(huán)(epoch)后得到的預(yù)訓(xùn)練參數(shù)。
驗證集為288張圖片,選自INRIA和Caltech,驗證時將圖片重設(shè)大小到64×128。NMS為0.4,best_iou控制著正確預(yù)測行人的閾值,當(dāng)IOU>best_iou時才會將預(yù)測出的行人記為正確的行人;反之記為錯誤。threshold控制著預(yù)測是否為人的概率的閾值threshold在YOLOv2階段為置信度(confidence)閾值,在Person網(wǎng)絡(luò)階段控制著預(yù)測是否為人的閾值,初始值為0.24,當(dāng)Pr(Person)置信度置信度>threshold時才會預(yù)測該目標(biāo)為行人。本實驗在驗證集上均采用NMS=0.4、best_iou=0.5、threshold=0.6這個threshold=0.6刪除作為判斷檢測出的行人的閾值,調(diào)整行人的置信度閾值效果如表2(threshold:0.24、0.1、0.01分別代表預(yù)測概率超過0.24、0.1、0.01為行人)。
由表2可以看出,隨著threshold的下降,總檢測出的框的數(shù)量增加,但正確的檢測數(shù)沒有增加,準(zhǔn)確率明顯下降,所以不能通過簡單地降低判斷目標(biāo)概率的閾值threshold來提升recall。
2.3 Person網(wǎng)絡(luò)實驗
以開源框架Caffe為基礎(chǔ),將從YOLOv2網(wǎng)絡(luò)得到的坐標(biāo)作為輸入值,輸入Person網(wǎng)絡(luò)進(jìn)行分類與邊界框回歸,輸入固定尺寸width×height為30×90。當(dāng)沖量為0.9,權(quán)值衰減為0.004,初始學(xué)習(xí)率為0.001,學(xué)習(xí)率下降策略為step,且當(dāng)?shù)?xùn)練達(dá)到1000000次時,模型達(dá)到飽和。訓(xùn)練時樣本是從原始真實行人框上隨機(jī)截取的,按截取的圖片與真實行人框的IOU,將截取的圖片分為正樣本、部分樣本和負(fù)樣本。負(fù)樣本是IOU<0.5的樣本,正樣本是IOU>0.8的樣本,其他樣本為部分樣本,正樣本、部分樣本、負(fù)樣本比例為1∶1∶3。實驗結(jié)果如表3所示,threshold:0.24、0.1、0.01是YOLOv2檢測行人的閾值。對比表2與表3可知,使用級聯(lián)方法可以得到比YOLOv2更高的召回率、準(zhǔn)確率,以及定位的準(zhǔn)確性更為精準(zhǔn)。表4展示卷積核不同寬高比下的Person網(wǎng)絡(luò)效果,從中可以得出選取為1∶3的卷積核時,F(xiàn)值最高,且檢測效果最為突出。
對比圖5(a),圖5(b)出現(xiàn)虛框(誤檢的行人框),通過Person網(wǎng)絡(luò),對YOLOv2檢測出的標(biāo)記框再次判斷是否為行人并將虛框去除。對比圖5(a),圖5(c)檢測出的行人數(shù)量有所增加,且檢測出標(biāo)記框的位置更為精準(zhǔn)。本實驗將YOLOv2閾值設(shè)為0.01時,將YOLOv2的坐標(biāo)傳進(jìn)Person網(wǎng)絡(luò)能夠得到比較高的召回率、準(zhǔn)確率以及高質(zhì)量的定位,因此取YOLOv2 threshold為0.01情況下初步預(yù)測行人,Person網(wǎng)絡(luò)threshold取0.6再次預(yù)測行人的數(shù)據(jù)作為本實驗的最終檢測數(shù)據(jù)。
2.4 不同算法行人檢測性能分析
目前最常用的傳統(tǒng)行人檢測方法是基于滑動窗口策略,具有代表性的工作是Felzenszwalb等[17]提出的形變部位模型(Deformable Part Model, DPM)。在一定程度上,這個方法能消除部分遮擋的影響。其次,提取候選框集的描述特征過程,Dollár等[18]提出積分通道特征(Integral Channel Feature, ICF),利用積分圖技術(shù)對圖像的各個特征通道進(jìn)行快速計算,在文獻(xiàn)[19]中進(jìn)一步提出了聚合通道特征(Aggregate Channel Feature, ACF)。這些方法對嚴(yán)格依賴于手動提取的特征檢測的魯棒性差。基于深度學(xué)習(xí)——卷積神經(jīng)網(wǎng)絡(luò)算法的目標(biāo)檢測,典型的代表性的工作是R-CNN系列的結(jié)合區(qū)域候選框(Region Proposal)和CNN分類的目標(biāo)檢測框架。文獻(xiàn)[17]中針對行人檢測對Faster R-CNN作出改進(jìn),提出了區(qū)域候選框網(wǎng)絡(luò)(Region Proposal Network, RPN)與隨機(jī)提升森林(Boosted Forest, BF)中文名稱和英文名稱不匹配,鑒于縮寫為BF,所以請調(diào)整中文名稱吧,“隨機(jī)森林”要改為“**森林”,要與英文名稱匹配結(jié)合的思想(RPN+BF)用于行人檢測,此方法能有效地降低行人檢測的誤檢率。SSD是一種one-stage算法,沒有候選框預(yù)選的過程,并且適應(yīng)不同尺度的特征圖,可以用于行人檢測。Hyperlearn是關(guān)于行人檢測的研究方法,提出了傳統(tǒng)方法與CNN方法特征融合的思想,其優(yōu)點是利于小目標(biāo)的行人檢測,缺點是對大目標(biāo)的行人適應(yīng)為較差。
表5為各種算法的參數(shù)指標(biāo):準(zhǔn)確率、召回率、F值、檢測時間的對比數(shù)據(jù)。從實驗數(shù)據(jù)可以看出,本文算法對于行人檢測任務(wù)的準(zhǔn)確率略低于RPN+BF方法此處有疑問,本文算法的準(zhǔn)確率為0.97,而RPN+BF方法為0.969,是高于RPN+BF方法?是數(shù)字錯了,還是描述錯了?請作相應(yīng)調(diào)整,高于ACF、DPM、Hyperlearn算法;算法表現(xiàn)出來的檢測速度遠(yuǎn)遠(yuǎn)高于RPN+BF、DPM、Hyperlearn算法,略低于ACF,但是,本文采用的算法是CNN算法,可以端到端地執(zhí)行,且它的召回率最為顯著。由于本文算法在第一階段利用YOLOv2檢測行人,相比two-stage算法,YOLOv2沒有候選框提取這一步驟,直接采取錨點進(jìn)行預(yù)測,候選框提取的時間較長,所以YOLOv2這類one-stage算法檢測速度普遍快,但因為沒有采用候選框提取,產(chǎn)生的預(yù)測結(jié)果一般沒有two-stage算法準(zhǔn)確。YOLOv2是one-stage算法,其特征是圖片越小,其檢測速度越快,檢測質(zhì)量越低;圖片越大,其檢測速度越慢,檢測質(zhì)量越高。行人在圖片中是小目標(biāo),利用級聯(lián)的Person網(wǎng)絡(luò)分類和回歸過程,對行人進(jìn)行篩選并回歸行人的位置,從而使得召回率和準(zhǔn)確率比原始YOLOv2高,本文方法速度比RPN+BF、DPM、Hyperlearn均快,能夠達(dá)到14.712.711.6幀/s(Frames Per Second, FPS)的檢測速度,速度達(dá)到實時檢測的目標(biāo),因此,可以認(rèn)為本文算法的綜合性能最佳。
3 結(jié)語
針對復(fù)雜環(huán)境下行人檢測不能同時滿足高召回率與高效率檢測的問題,本文提出了一種改進(jìn)的級聯(lián)網(wǎng)絡(luò)——原始YOLOv2+Person網(wǎng)絡(luò)的行人檢測方案。結(jié)合了深層CNN網(wǎng)絡(luò)與淺層CNN網(wǎng)絡(luò)的優(yōu)點,進(jìn)而得到更準(zhǔn)確的行人分類和行人預(yù)測框。與原始YOLOv2相比,本文方法的行人預(yù)測的準(zhǔn)確率、召回率均有所提升,與ACF、RPN+BF、DPM、SSD相比,召回率、F值提升較為顯著。本文主要工作在于將原始YOLOv2檢測器改進(jìn)為二階段檢測器,在速度與精度上達(dá)到了均衡且可以在GPU上進(jìn)行并行計算,減少計算開銷。如何進(jìn)一步提高檢測質(zhì)量將是下一步研究的方向。
參考文獻(xiàn) (References)
[1] 蘇松志,李紹滋,陳淑媛,等.行人檢測技術(shù)綜述[J].電子學(xué)報,2012,40(4):814-820.(SU S Z, LI S Z, CHEN S Y, et al. A survey on pedestrian detection [J]. Acta Electronica Sinica, 2012, 40(4):814-820.)
[2] 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 and Machine Intelligence, 2017, 39(6):1137-1149.
[3] GIRSHICK R. Fast R-CNN[C]// Proceedings of the 2015 IEEE International Conference on Computer Vision. Piscataway, NJ: IEEE, 2015: 1440-1448.
[4] REDMON J, DIVVALA S, GIRSHICK R, et al. You Only Look Once: unified, real-time object detection [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2016:779-788.
[5] REDMON J, FARHADI A. YOLO9000: better, faster, stronger [C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2017: 6517-6525.
[6] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single Shot multibox Detector[C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2016: 21-37.
[7] DALAL N, TRIGGS B. Histograms of oriented gradients for human detection[C]// Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2005:886-893.
[8] DOLLAR P, WOJEK C, SCHIELE B, et al. Pedestrian detection: a benchmark [C]// Proceedings of the 2009 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2009: 304-311.
[9] KONG T, YAO A, CHEN Y, et al. HyperNet: towards accurate region proposal generation and joint object detection [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society,2016: 845-853.
[10] LIN T Y, DOLLAR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2017: 936-944.
[11] MAO J, XIAO T, JIANG Y, et al. What can help pedestrian detection? [C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2017:6034-6043.
[12] ZHANG K, ZHANG Z, LI Z, et al. Joint face detection and alignment using multitask cascaded convolutional networks [J]. IEEE Signal Processing Letters, 2016, 23(10):1499-1503.
[13] HE K, ZHANG X, REN S, et al. Delving deep into rectifiers: surpassing human-level performance on ImageNet classification [C]// ICCV 2015: Proceedings of the 2015 IEEE International Conference on Computer Vision. Piscataway, NJ: IEEE, 2015: 1026-1034.
[14] SZEGEDY C, TOSHEV A, ERHAN D. Deep neural networks for object detection [J]. Advances in Neural Information Processing Systems, 2013, 26(1):2553-2561.
[15] TOM D, MONTI F, BAROFFIO L, et al. Deep convolutional neural networks for pedestrian detection [J]. Signal Processing: Image Communication, 2016, 47(1):482-489.
[16] ROTHE R, GUILLAUMIN M, VAN GOOL L. Non-maximum suppression for object detection by passing messages between windows[C]//Proceedings of the 2014 Asian Conference on Computer Vision. Berlin: Springer, 2014: 290-306.
[17] FELZENSZWALB P, MCALLESTER D, RAMANAN D. A dis-criminatively trained, multiscale, deformable part model [C]// Proceedings of the 2008 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2008: 1-8.
[18] DOLLAR P, APPEL R, BELONGIE S, et al. Fast feature pyramids for object detection [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 36(8):1532-1545.
[19] ZHANG L, LIN L, LIANG X, et al. Is Faster R-CNN doing well for pedestrian detection?[C]// ECCV 2016: Proceedings of the 14th European Conference on Computer Vision. Berlin: Springer, 2016: 443-457.