段瑞雪,馬凱悅,張仰森
(1.北京信息科技大學(xué) 計(jì)算機(jī)學(xué)院,北京 100101;2.國(guó)家經(jīng)濟(jì)安全預(yù)警工程北京實(shí)驗(yàn)室,北京 100044;3.北京信息科技大學(xué) 信息管理學(xué)院,北京 100192)
行人檢測(cè)(pedestrian detection)是計(jì)算機(jī)視覺(jué)領(lǐng)域內(nèi)應(yīng)用比較廣泛和比較熱門的算法,一般會(huì)與行人跟蹤、行人重識(shí)別等技術(shù)進(jìn)行結(jié)合,來(lái)對(duì)區(qū)域內(nèi)的行人進(jìn)行檢測(cè)識(shí)別跟蹤,廣泛應(yīng)用于安防、零售、無(wú)人駕駛等領(lǐng)域。由于行人的外觀易受穿著、尺度、遮擋、姿態(tài)和視角等影響,目前行人檢測(cè)仍然面臨幾大挑戰(zhàn):其一,雜物背景下低分辨率的行人難以檢測(cè),并且此種情況下會(huì)產(chǎn)生大量難例;其二,擁擠場(chǎng)景下難以精確定位每個(gè)行人。
近年來(lái),深度學(xué)習(xí)技術(shù)快速發(fā)展,在行人檢測(cè)方面也取得了較好的結(jié)果。Sermanet等[1]利用卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行行人檢測(cè),Chan等[2]利用自動(dòng)學(xué)習(xí)的濾波來(lái)修改圖像的卷積,提高了準(zhǔn)確率。但是基于深度學(xué)習(xí)的方法其模型泛化能力較差,訓(xùn)練速度慢,而且容易出現(xiàn)過(guò)擬合等現(xiàn)象,并不適合于所有的行人檢測(cè)環(huán)境。
本文采用傳統(tǒng)HOG+SVM的算法,利用多源數(shù)據(jù)融合的方法,在樣本處理、難例選擇等方面對(duì)算法進(jìn)行改進(jìn),設(shè)計(jì)了行人檢測(cè)的各個(gè)模塊,并進(jìn)行了可視化,實(shí)現(xiàn)了在Caltech各個(gè)seq數(shù)據(jù)集和INRIA正負(fù)測(cè)試集之間的檢測(cè)切換,改善了模型難以在Caltech上進(jìn)行評(píng)測(cè)的問(wèn)題。
目前有許多種行人檢測(cè)的方法,其主流是基于統(tǒng)計(jì)的方法和深度學(xué)習(xí)的方法?;诮y(tǒng)計(jì)的方法主要包括兩個(gè)步驟:提取特征和分類。首先需要對(duì)原始圖像進(jìn)行處理,去除噪聲并提取最符合人類屬性的特征用于模型訓(xùn)練,然后在分類器中進(jìn)行分類。常用的特征有HOG、LBP、CSS等。其中HOG是行人檢測(cè)中應(yīng)用最廣泛的一種特征,主要描述圖像局部紋理,能夠較好地描述行人的邊緣信息。Zhu等[3]針對(duì)HOG特征計(jì)算慢的缺點(diǎn),提出了使用積分直方圖加速計(jì)算的方法來(lái)提高檢測(cè)的速度。Wang等[4]提出了將HOG和LBP特征結(jié)合的方式,并采用SVM分類器處理行人部分遮擋的問(wèn)題。Costea等[5]通過(guò)從原始圖片提取HOG、LBP和顏色特征進(jìn)一步提高了檢測(cè)的速度。基于統(tǒng)計(jì)的方法一般是通過(guò)學(xué)習(xí)正樣本和負(fù)樣本的變化、大量訓(xùn)練樣本來(lái)構(gòu)建行人檢測(cè)分類器。
近年來(lái),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法不斷涌現(xiàn)。RFBnet[6]提出了RFB卷積塊的方法并集成到SSD[7]網(wǎng)絡(luò)中以增加卷積網(wǎng)絡(luò)的感受野。ExtremNet[8]提出了一種無(wú)錨框自底向上的方法來(lái)檢測(cè)網(wǎng)絡(luò)。M2Det[9]使用主干網(wǎng)的兩層特征融合輸入到多個(gè)級(jí)聯(lián)的TUM模塊中提取多尺度檢測(cè)特征。
HOG特征是在圖像的局部區(qū)域上進(jìn)行操作,因此其在圖像幾何和光學(xué)上具有一定的魯棒性,這樣保證了行人只需保持大體的站立姿勢(shì)即可檢測(cè),當(dāng)其有一些細(xì)微動(dòng)作時(shí)不會(huì)影響檢測(cè)效果。
模型采用的SVM+HOG方法是速度和效果平衡較好的一種檢測(cè)方法,提取HOG特征以后,可利用分類器對(duì)樣本進(jìn)行訓(xùn)練分類。常用的分類器有SVM[10]、HIKSVM[11]和Adaboost[12]等,其中SVM是行人檢測(cè)中最常用的分類器。
HOG+SVM進(jìn)行行人檢測(cè)的算法主要步驟如下:
1) 輸入圖像并對(duì)圖像進(jìn)行預(yù)處理;
2) 選擇窗口。一般使用滑動(dòng)窗口法;
3) 對(duì)每個(gè)窗口提取HOG特征;
4) 將提取到的特征送入已訓(xùn)練好的SVM分類器中進(jìn)行分類,確定圖像中是否包含行人。
HOG+SVM是一種經(jīng)典的行人檢測(cè)方法,OpenCV中可以直接調(diào)用,采用線性核的方式。
Caltech數(shù)據(jù)集是目前規(guī)模較大的行人數(shù)據(jù)集,采用車載攝像頭拍攝,約10 h,視頻的分辨率為640×480,30幀/s。標(biāo)注了約250 000幀(約137 min),350 000個(gè)矩形框,2 300個(gè)行人,另外還對(duì)矩形框之間的時(shí)間對(duì)應(yīng)關(guān)系及其遮擋的情況進(jìn)行了標(biāo)注。
INRIA數(shù)據(jù)集是行人檢測(cè)中最老的數(shù)據(jù)集,其訓(xùn)練集和測(cè)試集均為圖片。負(fù)樣本包含各種不同地理環(huán)境,正樣本約2 400多張。實(shí)驗(yàn)使用的INRIA數(shù)據(jù)集的正樣本已處理為96×160大小。
為實(shí)現(xiàn)行人檢測(cè)和目標(biāo)追蹤,選擇連續(xù)的視頻集作為最終測(cè)試集。Caltech不僅數(shù)據(jù)量大,視頻也最接近實(shí)際生活的街道場(chǎng)景,標(biāo)注還包含完全被遮擋的人。因此選擇Caltech數(shù)據(jù)集作為最終測(cè)試集。在HOG+SVM算法的基礎(chǔ)上,為在Caltech數(shù)據(jù)集中取得能評(píng)測(cè)的行人檢測(cè)效果并實(shí)現(xiàn)簡(jiǎn)單的目標(biāo)追蹤,本研究分別在訓(xùn)練集類型(Caltech/INRIA)、獲取正負(fù)樣本方法、訓(xùn)練參數(shù)P、難例迭代次數(shù)和測(cè)試參數(shù)w的不斷調(diào)整上進(jìn)行實(shí)驗(yàn),以得到最優(yōu)的數(shù)據(jù)融合方法。
Caltech、INRIA是行人檢測(cè)領(lǐng)域最常用的兩個(gè)數(shù)據(jù)集,符合本文方法的實(shí)驗(yàn)要求。
本文采用2個(gè)評(píng)測(cè)指標(biāo),F(xiàn)1值和平均每張圖片的檢測(cè)時(shí)間RT,其中后者又稱為滿意指標(biāo)。在滿足滿意指標(biāo)的約束下,尋找最優(yōu)的F1值。
行人檢測(cè)至少需要3步:處理數(shù)據(jù)集為正負(fù)樣本;訓(xùn)練正負(fù)樣本得到分類器;根據(jù)獲得的分類器進(jìn)行測(cè)試。為了得到最優(yōu)的模型,本文采用改變正負(fù)樣本的比例、設(shè)置是否獲取難例,以及改變訓(xùn)練集等方法完成6組實(shí)驗(yàn),不斷提高行人檢測(cè)的效果。
在模型訓(xùn)練輸入階段,采用兩種方法:
方法1在計(jì)算圖片特征值時(shí),采用原圖作為輸入,直接將樣本的特征值放入類別矩陣中,并將樣本在樣本數(shù)組中的位置放入樣本標(biāo)簽矩陣中。
方法2在計(jì)算圖像特征值時(shí),采用灰度圖作為輸入,在描述子轉(zhuǎn)化后的矩陣的行或列數(shù)為1時(shí),將特征放入類別矩陣并對(duì)應(yīng)樣本標(biāo)簽。
4.3.1 實(shí)驗(yàn)1
模型訓(xùn)練輸入采用方法1,使用不同訓(xùn)練集類型(Caltech訓(xùn)練集、INRIA訓(xùn)練集),Caltech數(shù)據(jù)集正負(fù)樣本大小分別選取48×96、96×160,正負(fù)樣本比為1∶1或2∶1,分別在Caltech、INRIA上測(cè)試,結(jié)論是無(wú)論改變訓(xùn)練集類型、正負(fù)樣本大小、正負(fù)樣本比、樣本處理方法,都無(wú)法使得模型正常檢測(cè),虛警都非常多,而且只能指出人的大致位置。
通過(guò)實(shí)驗(yàn)1得到結(jié)論,以Caltech為訓(xùn)練集時(shí),在INRIA 及Caltech上不能達(dá)到可以評(píng)測(cè)的效果。雖然一般情況下使用數(shù)據(jù)集本身的訓(xùn)練集訓(xùn)練效果更好,但在Caltech上使用HOG+SVM時(shí)并沒(méi)有體現(xiàn)這點(diǎn)。相同的方法使用Caltech訓(xùn)練不如使用INRIA。
4.3.2 實(shí)驗(yàn)2、3、4
根據(jù)實(shí)驗(yàn)1的結(jié)論,設(shè)計(jì)表1所示的實(shí)驗(yàn)2、實(shí)驗(yàn)3、實(shí)驗(yàn)4,模型訓(xùn)練輸入采用方法2,并采用INRIA為訓(xùn)練集,測(cè)試集為Caltech。
表1 實(shí)驗(yàn)2、3、4的設(shè)置
圖1所示為實(shí)驗(yàn)2測(cè)試集的幾個(gè)結(jié)果,從圖中可以看出虛警的數(shù)量和實(shí)驗(yàn)1相比大幅減少,對(duì)人的識(shí)別雖然還有些遺漏,但是基本能夠正確地框出人的位置。
圖1 實(shí)驗(yàn)2在INRIA正樣本測(cè)試集上不同圖片的結(jié)果
表1中實(shí)驗(yàn)2和實(shí)驗(yàn)3使用相同的訓(xùn)練集和測(cè)試集,實(shí)驗(yàn)3中每個(gè)負(fù)樣本的數(shù)量是實(shí)驗(yàn)2的5倍,從圖2(a)(b)(c)實(shí)例可以看出通過(guò)增加負(fù)樣本的數(shù)量,虛警數(shù)量得到了進(jìn)一步的降低,行為位置的識(shí)別效果也有提高,但是從圖2(d)(e)實(shí)例可以看出還是存在一些虛警現(xiàn)象。
表1中實(shí)驗(yàn)4和實(shí)驗(yàn)2、實(shí)驗(yàn)3使用相同的訓(xùn)練集和測(cè)試集,不同的是實(shí)驗(yàn)4中增加了難例。從圖3實(shí)例可以看出,通過(guò)增加難例的樣本,虛警數(shù)量得到了進(jìn)一步的降低。
圖2 實(shí)驗(yàn)3在INRIA測(cè)試集上不同圖片的結(jié)果
圖3 實(shí)驗(yàn)4在INRIA測(cè)試集上不同圖片的結(jié)果
4.3.3 實(shí)驗(yàn)5
實(shí)驗(yàn)5的訓(xùn)練集和測(cè)試集都選用Caltech,不加入難例的情況下,大多數(shù)情況只在中間框一個(gè)框,并不能實(shí)現(xiàn)行人的檢測(cè)。
4.3.4 實(shí)驗(yàn)6
實(shí)驗(yàn)6采用INRIA為訓(xùn)練集,樣本大小為96×160,Caltech為測(cè)試集,正負(fù)樣本比為2 416∶9120。為了增加負(fù)樣本的數(shù)量,從每張負(fù)樣本原圖中抽取出10個(gè)負(fù)樣本,采用加入難例的方式訓(xùn)練模型。結(jié)果如圖4所示,虛警的數(shù)量大幅下降,可以實(shí)現(xiàn)行人位置的檢測(cè)。
圖4 實(shí)驗(yàn)6 的行人檢測(cè)實(shí)例
通過(guò)以上6組實(shí)驗(yàn)和行人檢測(cè)效果圖可以看出,以INRIA為訓(xùn)練集、Caltech為開(kāi)發(fā)集、除開(kāi)發(fā)集外的任意Caltech的seq為測(cè)試集的模型的檢測(cè)速度和識(shí)別效果都比較好,可以得出以下結(jié)論:
1) 不同的正負(fù)樣本類型及處理方法、訓(xùn)練方法以及檢測(cè)算法是檢測(cè)效果好壞的決定因素。
2) 增加負(fù)樣本的數(shù)量可以提高識(shí)別的效果,減少虛警的情況。(實(shí)驗(yàn)3證明)
3) 加入難例可以有效減少虛警(從編號(hào)2~4的實(shí)驗(yàn)得出結(jié)論)。
4) 利用INRIA為訓(xùn)練集、Caltech為開(kāi)發(fā)集和測(cè)試集可以取得更好的效果。
通過(guò)以上的介紹和實(shí)驗(yàn),采用多數(shù)據(jù)融合的方式,訓(xùn)練語(yǔ)料選取INRIA,Caltech為開(kāi)發(fā)集,Caltech 為測(cè)試集。
實(shí)驗(yàn)需要調(diào)的參數(shù)有:正負(fù)樣本比、訓(xùn)練參數(shù)P(SVM類型為EPR時(shí)表示訓(xùn)練集中的特征向量和擬合出來(lái)的超平面的距離要小于P)、難例獲取次數(shù)以及使用SVM中的參數(shù)w。
初始正負(fù)樣本比取2 416∶1 824;訓(xùn)練參數(shù)P分別選取0.1、0.2、0.3;難例獲取次數(shù)取0或1,a=0表示不添加難例,a=1表示獲取1次難例;測(cè)試參數(shù)w取0.1~0.5。
由圖5可以看出當(dāng)P= 0.2、加入1次難例、w=0.2時(shí)有最大F1值0.231,此時(shí)RT為893.428 ms。從圖5可以看出,加入難例可以有效地提高系統(tǒng)的性能。
圖5 最優(yōu)化F1值
圖6顯示的是另一個(gè)指標(biāo)RT。從圖中可以看出,加入難例以后每張照片的檢測(cè)時(shí)間RT要明顯低于不加入難例的情況。
圖6 每張圖片的檢測(cè)時(shí)間
通過(guò)觀察評(píng)測(cè)的可視化結(jié)果發(fā)現(xiàn)Caltech漏檢的有很多小尺度的行人。為驗(yàn)證這一猜想,分別去除邊框尺度高度<55時(shí)的標(biāo)注。圖7顯示的是分別去除邊框尺度高度<10到高度<55的標(biāo)注框時(shí)F1值的變化。從圖中可以看出,去除小尺度標(biāo)簽可以有效地提高F1值,當(dāng)F1值取最大時(shí),w從0.2變?yōu)?.3。針對(duì)FN(false negative,漏檢):對(duì)于約占一半的小尺度行人,需要利用小尺度特別的方法進(jìn)行檢測(cè),后續(xù)工作會(huì)針對(duì)小尺度檢測(cè)進(jìn)行研究。
圖7 小尺度猜想F1值
本文使用HOG+SVM算法,針對(duì)Caltech和INRIA數(shù)據(jù)集,為得到能在貼合實(shí)際生活場(chǎng)景的Caltech數(shù)據(jù)集上評(píng)測(cè)的模型,在訓(xùn)練集類型、正負(fù)樣本獲取方法、訓(xùn)練方法、加入難例次數(shù)、測(cè)試方法上采用了一系列的方法演進(jìn),得到模型的大致處理方法,以及一些普適性和特殊性的結(jié)論。通過(guò)評(píng)測(cè)找到滿足RT的最大F1值,并在對(duì)模型進(jìn)行錯(cuò)誤分析后,提出了小尺度行人和虛警的處理方法。