劉叢強 王浩森 范 虹 葛成鵬 楊建盛
(河北建筑工程學院 信息工程學院,河北 張家口 075000)
行人檢測是計算機視覺領域的一個經(jīng)典問題,其特點是應用范圍廣泛如無人駕駛,機器人,智能監(jiān)控,人體行為分析,弱視輔助技術等[1,2].傳統(tǒng)的行人檢測方法主要是應用HOG提取行人特征再用SVM進行分類[3],但HOG只能從梯度或者紋理來描述行人特征,判別力較差[4],同時SVM也不再適應規(guī)模越來越大的行人檢測數(shù)據(jù)集.隨著近幾年卷積神經(jīng)網(wǎng)絡的流行與發(fā)展,行人檢測的精度依靠卷積神經(jīng)網(wǎng)絡從大規(guī)模樣本中學習目標特征的能力得到了很大提升,但正負樣本失衡,多尺度,行人之間的相互遮擋等問題仍然影響著檢測性能.
基于深度卷積神經(jīng)網(wǎng)絡的檢測模型可以分為基于錨框(anchor-based)和不基于錨框(anchor-free)兩類,目前基于錨框的目標檢測模型主要有Faster R-CNN[7],SSD[8]等,不基于錨框的主要有YOLOV1[5],CornerNet[6]等.相比于不基于錨框基于錨框的檢測模型盡管靈活性較差,需要調優(yōu)錨框相關的參數(shù),但在精度上表現(xiàn)更好,F(xiàn)aster R-CNN在訓練RPN階段會生成預先設置好尺度與比例的錨框,通過迭代訓練,使RPN能輸出更符合檢測目標的候選框給Fast R-CNN進行進一步的分類和定位,只要生成錨框的尺度和比例能符合檢測目標的分布,就可以提升模型的檢測精度.
本文實驗基于Faster R-CNN進行,為了獲得更適應于行人檢測的錨框比例,提升檢測性能,通過k-均值聚類算法對CityPersons[9]數(shù)據(jù)集的標注信息進行聚類,并將聚類出的行人比例應用到RPN中,將結果與原始Faster R-CNN設置的比例和AdaptedFaster R-CNN[9]使用密集比例的方法得到的結果進行對比.
模型的訓練流程如圖1所示.首先將行人檢測數(shù)據(jù)集輸入卷積神經(jīng)網(wǎng)絡(CNN)中提取特征,生成特征圖,然后RPN根據(jù)特征圖的大小,預先設置好的錨框尺度及通過對行人數(shù)據(jù)集使用k-均值聚類得到的比例來生成錨框,并按照一定規(guī)則挑選部分錨框來來訓練RPN,最后RPN再輸出經(jīng)過非最大值抑制(NMS)的候選框到Fast R-CNN中進行訓練.
圖1 模型訓練流程
實際場景中,行人的寬度會因姿態(tài),遮擋等因素變化很大,但人的高寬比仍然處于一定范圍內,對于行人檢測模型性能的評估都會進行多尺度的評估,將行人樣本根據(jù)高度,或面積可以分為小中大三類,實際情況中行人距離檢測器的遠近表現(xiàn)在圖像中就是像素大小的變化,所以在類別數(shù)范圍已知,類間差別大的情況下可以通過k均值聚類算法找到每一類行人的中心比例.算法的描述及實現(xiàn)過程如下[11]:
a)給定數(shù)據(jù)集D={x1,…,xn},隨機選擇k個聚類中心C={C1,…,Ck}.
b)根據(jù)歐式距離將數(shù)據(jù)集中的對象劃分到某個類之中.
c)計算新的聚類中心Ci:
(1)
d)當滿足最小化誤差函數(shù)E(C)或達到迭代次數(shù),迭代停止,否則轉入b)繼續(xù)迭代:
(2)
FPN[12]是利用CNN本身帶有的層次性特征來構建具有更強語義信息的特征圖,CNN本身的層次性特征是指底層的特征圖分辨率高,有利于定位,但語義信息弱,不利于分類,而頂層的特征圖分辨率低,不利于定位,尤其是對小目標,但包含的語義信息更強,有利于分類.FPN的具體構造流程如圖2所示,以ResNet[13]為例,將conv2,conv3.conv4,conv5每一層最后一組殘差塊輸出的特征圖提取出來,命名為C2,C3,C4,C5,然后先對C5進行11卷積得到M5,將M5上采樣成與C4相同的分辨率后加上經(jīng)過11卷積的C4得到M4,依此類推得到M3,M2,然后將M5,M4,M3,M2都經(jīng)過33的卷積得到P5,P4,P3,P2,通道數(shù)都固定為256.這樣得到的特征圖都包含CNN頂層較強的語義信息.
圖2 FPN構造過程
Faster R-CNN結構與Fast R-CNN基本一致,區(qū)別在于Faster R-CNN不再使用selective search來獲取候選框,而是提出了RPN與CNN結合到一起來生成候選框,實現(xiàn)了端到端的目標檢測,有效提升了檢測效率.
1.4.1 區(qū)域建議網(wǎng)絡
在輸入一張任意大小的圖片后,RPN會輸出一批候選框,每個候選框都會有一個類別得分和相對于真實框(ground truth)的偏移量,在訓練階段會根據(jù)特征圖的大小和預先設置好的尺度和比例生成一定數(shù)量的錨框,在測試階段就不再生成錨框,而是直接將通過卷積計算得到的候選框經(jīng)過最大值抑制后選擇前1000個輸入到Fast R-CNN中得到分類和定位結果[12].
1.4.2 損失函數(shù)
在RPN訓練階段時,會根據(jù)生成的錨框與真實框的交并比分配正負樣本,然后按照設置好的比例和數(shù)量隨機選擇正負樣本進行訓練,根據(jù)文獻[9],損失函數(shù)設置為:
(3)
(4)
(5)
本文使用公開的行人檢測數(shù)據(jù)集CityPersons進行實驗,CityPersons訓練集包含2975張圖像,驗證集包含500張圖像.
表1 Citypersons子集劃分標準
實驗基于Pytorch深度學習框架進行,GPU為單張GTX 1060.使用在ImageNet分類任務上預訓練過的ResNet50[13]作為基礎網(wǎng)絡架構,不使用數(shù)據(jù)增強技巧.訓練RPN時,設置當錨框與真實框交并比大于0.7時,標記為正樣本,當交并比小于0.3時,標記為負樣本,然后隨機挑選256個錨框計算分類損失和回歸損失,正負樣本比例為1:1.在訓練參數(shù)設置方面,batchsize設為1,共30k次迭代,前25k次學習率為0.001,后5k次學習率為0.0001,動量為0.9,權重衰減設為0.0005.
表2 k-均值算法聚類結果
評估標準參照文獻[10],在FPPI(false positive per image)的[10-2,100]范圍內計算對數(shù)平均丟失率,按照官方提供的評估標準根據(jù)高度和遮擋率將驗證集劃分為三個子集.所有實驗交并比(IOU)閾值都為0.5.
如1.2節(jié)所述,會將數(shù)據(jù)集的標注信息聚類成三類及兩類做實驗對比,對于CityPersons數(shù)據(jù)集,只對其可見框的標注信息進行聚類,因為其全身框是根據(jù)固定比例生成的,而檢測時是針對可見部位的檢測.聚類結果如表3所示,橫坐標為寬度,縱坐標為高度,文中所有比例值都為高比寬.由中心點變化可以看出,行人的面積分布具有明顯的尺度變換.
現(xiàn)在將聚類所得比例與Faster R-CNN根據(jù)經(jīng)驗設置的原始比例{0.5,1.0,2.0}及AdaptedFaster R-CNN憑直覺設置的密集比例得到的行人檢測結果進行對比,密集比例是指把區(qū)間[0.5,2]10等分取11個端點作為生成的錨框比例[9],在CityPersons數(shù)據(jù)集上的實驗結果如表3所示,Ori表示原始比例,k-means-3表示錨框比例聚類成3類,k-means-2表示聚類成兩類,Dense表示密集比例.
表3 CityPersons數(shù)據(jù)集上的實驗結果
從表3可以看出,使用聚類得到的比例對比原始比例能有效降低行人檢測的丟失率,在Reasonable,Reasonable_small子集上分別最大降低了2.8%,4.7%.圖4為CityPersons數(shù)據(jù)集在RPN階段生成的正樣本數(shù)量分布圖,橫坐標為圖片生成的正樣本數(shù)區(qū)間,縱坐標為圖片生成的正樣本數(shù)在該區(qū)間范圍內的頻數(shù).從圖4可以看出,對比原始比例,聚類得到的比例使圖片生成的正樣本數(shù)在[0,20]之間的頻數(shù)明顯下降,因為實驗設置為隨機挑選256個正負樣本,所以在這一范圍內的負樣本的數(shù)量為正樣本的10倍到255倍,屬于極端正負樣本不平衡,同時在其他范圍內的頻數(shù)基本呈上升趨勢,在[20,40]的區(qū)間范圍內上升最多,平均上升了144次,這表明合適的錨框比例有效緩解了正負樣本不平衡的狀況,進而提升檢測精度.并且從表3還可以看出使用密集比例得到的丟失率相比使用聚類得到的比例并沒有明顯降低,在Reasonable_small子集上丟失率相比原始比例還上升了0.5%,這表明密集比例對多尺度變換的適應力差.
圖4 CityPerosns數(shù)據(jù)集RPN階段生成的正樣本數(shù)量分布
同時觀察表3不同比例下生成的正樣本總數(shù)及圖4密集比例在RPN階段生成的正樣本數(shù)量分布,從生成的正樣本的總數(shù)來看,使用密集比例生成的正樣本總數(shù)最多,是聚類得到的比例的2倍左右,密集比例生成的正樣本數(shù)對比原始比例在[0,20]范圍內下降最多,雖然在[20,100]范圍內有小幅下降,但在能滿足正負樣本平衡的[120,180]范圍內上升幅度最大,可丟失率相比聚類所得比例卻沒有下降,由此可以推測生成的正樣本數(shù)量并不是降低丟失率的決定因素,再考慮RPN的損失函數(shù),要通過迭代去擬合的是標記為正樣本的錨框相對于真實框的偏移量,該偏移量越小,說明越接近真實框,標記的正樣本質量也就越高,越能提升模型的定位能力.因此,生成的正樣本質量相比正樣本數(shù)量是影響丟失率下降的更重要因素.
本文使用構建了FPN的Faster R-CNN進行行人檢測,通過結合k-均值聚類的方法獲得適應于行人檢測的錨框比例,從而提升了Faster R-CNN應用于行人檢測時的性能.在CityPersons數(shù)據(jù)集上的實驗結果說明聚類得到的比例有效緩解了正負樣本不平衡的問題并且生成的正樣本的質量相比生成的正樣本數(shù)量是影響檢測精度的更重要因素,使用聚類得到的比例能生成相比密集比例稀疏但總體質量更高的正樣本。