劉艷萍,劉 甜
河北工業(yè)大學 電子信息工程學院,天津300401
近年來,行人檢測受到了研究學者的極大關注,行人檢測為行人語義分割、行人重識別、行人行為分析和步態(tài)分析等提供技術支撐,是自動駕駛和機器人技術等許多實際應用領域的基本組成部分[1-3]。隨著卷積神經(jīng)網(wǎng)絡的迅速發(fā)展,涌現(xiàn)了許多行人檢測算法,其中檢測大尺寸行人的成果最為突出,但是中小尺寸行人的檢測結果仍不理想。在復雜交通路況下,行人尺寸相差較大,一張圖像中大尺寸行人和小尺寸行人像素差別大,導致中小尺寸行人所采集的圖像像素較少[4-6]。而且隨著骨干網(wǎng)絡的加深,小尺寸行人的感受野越來越小,行人與背景相似度高,遮擋嚴重,檢測難度逐漸加大,容易造成漏檢和誤檢。如何提升中小尺寸行人檢測算法的準確度和魯棒性是研究行人檢測的關鍵問題之一[7-9]。
基于深度學習的行人檢測,該方法把行人看作一種特定的目標,對檢測方法進行改進,使之適用于行人目標的檢測。區(qū)域卷積神經(jīng)網(wǎng)絡(region convolutional neural networks,RCNN)是卷積神經(jīng)網(wǎng)絡在行人檢測的重要突破。但是RCNN訓練和測試花費時間較長,并且占用內存空間大。2015年,Ren等提出Faster RCNN算法,該算法采用區(qū)域建議網(wǎng)絡(region proposal network,RPN)替代選擇性搜索算法進行候選框選擇,使整個行人檢測實現(xiàn)了端到端的計算,使檢測速度和檢測質量得到提升[10-12]。在行人檢測中,F(xiàn)aster RCNN 在RPN 進行回歸框預測時準確率不高,導致后續(xù)邊界框回歸的損失變大。
對于基于深度學習的行人檢測,由于骨干網(wǎng)絡中深層特征感受野較大,小尺寸行人特征少,導致小尺寸行人檢測漏檢率高。為此,針對目前基于深度學習的行人檢測方法中的中小尺寸行人漏檢問題,提出了一種改進的Cascade RCNN 的行人檢測算法。主要改進的結構有:(1)在特征金字塔網(wǎng)絡中將淺層特征與深層特征融合,進行深層對淺層的特征增強,提高深層信息的利用率,增加了一條淺層到深層的通道,將淺層信息直接向上進行傳遞,提高淺層信息的利用率;(2)將行人檢測的全連接層改為解耦的回歸與分類分支方法,更加穩(wěn)健地分類和回歸整個預測框。
本文采用改進的Cascade RCNN行人檢測方法,輸入圖片經(jīng)過殘差網(wǎng)絡ResNeXt101 的卷積提取特征,再經(jīng)過改進的特征金字塔進行特征增強,得到特征圖,將每層特征分別輸入RPN 網(wǎng)絡,對錨框所在的特征區(qū)域進行分類,區(qū)分前景和背景,并且提取建議區(qū)域,將建議區(qū)域送入RoI Alian中,候選特征映射到原圖,并池化到一定大小送入解耦的回歸與分類分支中,進行分類和邊界框回歸。改進的Cascade RCNN算法結構圖如圖1所示。本文將分別介紹自提取特征ResNeXt101、改進的特征金字塔結構和解耦的回歸與分類分支方法。
圖1 改進的Cascade RCNN算法結構圖Fig.1 Improved Cascade RCNN algorithm structure diagram
本文采用ResNeXt101 網(wǎng)絡自提取特征,圖像直接作為網(wǎng)絡的輸入,通過卷積核進行特征提取。隨著網(wǎng)絡的加深會造成極高的網(wǎng)絡復雜度,引起梯度彌散和梯度爆炸等問題。殘差網(wǎng)絡ResNeXt101復制一個淺層網(wǎng)絡的輸出,與深層網(wǎng)絡的輸出通過元素相加得到下一層的輸出,ResNeXt101 采用恒等映射。圖2 為殘差結構圖。殘差結構的輸入是256維,經(jīng)過1×1卷積降維成128維,再經(jīng)過64組3×3卷積進行特征提取,再經(jīng)過1×1卷積還原成256維的輸出,最后與原始的輸入進行相加。
圖2 殘差結構圖Fig.2 Residual structure diagram
輸入ResNeXt101 網(wǎng)絡的行人圖像為RGB 形式的三維矩陣,尺寸為640×480×3,卷積運算使用的卷積核為二維矩陣,尺寸為3×3,卷積層的運算公式為:
式中,y(i,j,k)為輸出特征圖矩陣中索引為(i,j,k)的值,Wk表示第k個卷積核的權重,X為輸入矩陣,bk為第k個卷積核的偏置;Hc、Wc和Lc為第k個卷積核的維度,s表示卷積核步長。f為激活函數(shù),用ReLU作為ResNeXt101網(wǎng)絡的激活函數(shù),公式為:
在行人檢測中,行人與環(huán)境相似度高而且尺寸變化較大,大尺寸行人特征相對較多,像素高,漏檢率低,小尺寸行人因為特征少,漏檢率相對較高,特征金字塔網(wǎng)絡(feature pyramid networks,F(xiàn)PN)可以同時利用深層和淺層特征預測尺寸不同的行人[13-15]。淺層特征包含更多行人的細節(jié)信息和更豐富的空間信息;深層特征含有豐富的語義信息,這些語義信息有利于檢測出行人,將深層特征通過自頂向下和橫向連接與淺層特征進行融合[16-17],可以更好地檢測小尺寸行人。
為了充分利用淺層特征信息,增加小尺寸行人特征映射的分辨率,先將深層特征通過雙線性插值逐元素加到淺層特征,進行深層特征對淺層特征的特征增強。深層特征含有豐富語義信息,但淺層到深層的位置信息越來越難以準確定位。為了縮短淺層到深層特征的信息路徑,增加位置信息流,準確定位深層位置信息,增加了一條淺層到深層的路徑增強通道,這樣可以減少深層到淺層的信息流穿過的卷積層,還可以將淺層信息傳遞到深層中。改進的FPN結構如圖3所示。
圖3 改進的FPN結構圖Fig.3 Improved FPN structure diagram
在圖3左側,原來的自底向上的卷積輸出層上的特征是C0、C1、C2、C3,首先在輸入的圖像上進行卷積,然后對C1、C2、C3進行降維操作。C3降維得到C4,并對C4進行上采樣,使得它與C2具有相同的尺寸,然后使對應元素相加,將獲得的結果輸入到C5中,C6和C7采用相同方式獲得。將C4、C5、C6、C7特征采用雙線性插值的方式加到淺層特征中,對應元素相加,增加深層對淺層信息的利用率。其中,雙線性插值的f(x,y)公式如下:
式中,(x1,y1)、(x1,y2)、(x2,y1)、(x2,y2)是已知的4 個點。經(jīng)過雙線性插值之后得到Pi層的特征,公式如下:
在此基礎上再增加一條淺層到深層的通道,將淺層信息直接向上進行傳遞,提高淺層空間信息的利用率,使行人檢測能力提高,如紅線標出。最終生成的特征層是P2、P3、P4、P5。通過融合這些不同層的特征將深淺層特征進行充分利用,以達到更好的預測的效果。
基于RCNN的兩種頭部檢測器,分別為全連接層和卷積層,這兩種頭部結構用于分類和回歸任務[18-19]。Faster RCNN在單層特征圖上使用卷積層,而特征金字塔在多層特征圖上使用全連接層[20]。全連接層在分類分數(shù)和候選框交并比(intersection over union,IoU)之間表現(xiàn)出更多的相關性,因為全連接層在空間上更敏感,全連接層的空間靈敏度有助于區(qū)分一個完整的物體,并且在輸入特征圖的不同位置應用非共享轉換,全連接層的缺點是定位表現(xiàn)差。相比之下,卷積層在輸入特征圖的所有位置上使用共享轉換,定位比全連接層敏感。因此全連接層更適合分類任務,卷積層更適合定位任務。
Cascade RCNN[21-23]的提出主要針對不同階段界定正負樣本的輸入IoU閾值,檢測器因為每個階段輸入的IoU不同,更關注閾值之內的正樣本,輸出的IoU閾值比輸入的IoU閾值更好,這樣為下個階段提供更好的正樣本。每個階段是遞進關系,這樣可以使檢測器效果逐漸變好。
Cascade RCNN 全連接層的級聯(lián)形式如圖4 所示。其中RoI Alian 表示將候選區(qū)的特征池化為固定大小。FC1、FC2和FC3表示全連接層。B0、B1和B2表示候選區(qū)邊界框,B3是結構中的預測邊界框。C1和C2表示預測分類結果,C3是最終預測分類結果。
圖4 Cascade RCNN分類器的級聯(lián)形式Fig.4 Cascade form of Cascade RCNN classifier
在此基礎上,本文提出了解耦的回歸與分類分支,在分類和邊界框預測時,一個專注于分類的全連接層和一個專注于邊界框回歸的卷積層。解耦的回歸與分類分支如圖5所示。
圖5 解耦的回歸與分類分支Fig.5 Decoupled regression and classification branches
在圖5 中,F(xiàn)C1、FC2和FC3是解耦的回歸與分類分支中的全連接層,經(jīng)過兩個全連接層進行分類,Conv1、Conv2和Conv3是卷積層,經(jīng)過兩個卷積層和一個平均池化層進行邊界框的回歸。
為了證明方法的有效性和合理性,本文在Caltech和ETH 行人數(shù)據(jù)集進行行人檢測的訓練和測試。ETH行人數(shù)據(jù)集中訓練集共1 805 幅圖像,其中含有標注行人14 167人,測試集共2 230幅圖像,其中含有標注行人5 484 人[24]。Caltech 是一個10 小時左右車載視頻庫,分辨率640×480 像素,將視頻切分成幀進行訓練和測試,訓練數(shù)據(jù)集共42 782 幅圖像,標準測試集中的4 024 幅圖像用于在不同的設置下進行評估。這些設置用于測量的準確性和健壯性,檢測器針對不同的行人規(guī)模[25-26]。
按行人高度H劃分[27-28]:
(1)合理子集(Reasonable):H≥50;
(2)所有子集(All):
①遠子集(Far):20 ≤H<30;
②中子集(Medium):30 ≤H<80;
③近子集(Near):H≥80。
本文實驗是在Pytorch1.3.0 框架下進行的,操作系統(tǒng)是Ubuntu16.04。輸入圖像大小為640×480 像素。使用隨機梯度優(yōu)化器,并將動量設置為0.9,權重衰減因子設置為0.000 1。訓練時初始學習率設置為0.002 5,在訓練16個批次和19個批次后分別衰減,在20個批次之后停止訓練。圖6展示了Caltech數(shù)據(jù)集中All子集的損失曲線。從損失曲線中可以看出在開始時迅速下降,并隨著學習率的降低,損失曲線緩慢且穩(wěn)步地下降,在迭代次數(shù)達到500 000 時,訓練損失曲線損失值穩(wěn)定在0.055左右。該數(shù)據(jù)充分說明本文改進的Cascade RCNN收斂速度快,且收斂效果好。
圖6 損失曲線收斂過程Fig.6 Convergence process of loss curve
本文采用的評價指標是漏檢率(miss rate,MR)和平均精度均值(mean average precision,mAP)。漏檢率越低越好,平均精度均值越高越好。
漏檢率公式如下:
其中,TP(true positive)是被檢測為正樣本,實際也是正樣本;FN(false negative)是被檢索為負樣本,實際是正樣本。
平均精度均值公式如下:
其中,C為類別。AP(average precision)的計算公式如下:
其中,P(precision)為查準率,R(recall)為查全率。
查準率公式:
查全率公式:
其中,F(xiàn)P(false positive)是被檢測為正樣本,實際是負樣本。
2.4.1 特征提取結果可視化
(1)ResNeXt101特征提取結果
ResNeXt101共有101層運算,分為5個階段(stage),每個階段的殘差單元中3×3 卷積核分別是128、256、512、1 024 和2 048 個,分別得到了通道數(shù)為128、256、512、1 024和2 048的特征,因此每個階段分別輸出128、256、512、1 024 和2 048 幅圖像,將每階段的小圖相加,得到每個階段的可視化結果如圖7所示。
圖7 ResNeXt101提取特征結果Fig.7 ResNeXt101 feature extraction results
在第二階段網(wǎng)絡中3×3 卷積層中有256 個卷積核,特征中有256 個通道,因此該階段的輸出為256 幅圖像。圖8是256幅圖像中的6幅,正如圖中所示,在提取特征時,分別提取了行人關鍵特征的腿部和背部線條、腳的特征、上半身特征(包括臉部特征)、上衣邊角特征、行人腿部特征和背包特征、行人四肢特征。因此,ResNeXt101自提取特征提取了行人的邊緣、顏色、紋理和細節(jié)信息等。
(2)改進的FPN特征提取結果
在改進的FPN 中,C0、C1、C2和C3通道數(shù)分別是256、512、1 024 和2 048,C0~C3、Pi、P2~P5通道數(shù)都是256。將每層通道圖像相加的可視化結果如圖9 所示。從可視化特征圖看出:淺層網(wǎng)絡提取的是行人紋理、細節(jié)特征,深層網(wǎng)絡提取的是行人輪廓等特征,將深層特征與淺層特征融合,融合后的特征更具有代表性。
圖9 改進的FPN特征可視化Fig.9 Improved FPN feature visualization
2.4.2 消融實驗
為了證明改進的FPN 和解耦的回歸與分類分支的有效性,本文以Cascade RCNN 為基準,骨干網(wǎng)絡使用ResNeXt101。在Caltech 和ETH 行人數(shù)據(jù)集的消融實驗中,輸入IoU 分別采用0.4、0.5 和0.6。為了驗證哪幾個IoU的輸入值組合對行人數(shù)據(jù)集更有效,分別對數(shù)據(jù)集進行實驗,同時增加改進的FPN。在Caltech 行人數(shù)據(jù)集下行人檢測的消融實驗結果如表1所示。
表1 Caltech消融實驗結果Table 1 Caltech ablation experiment results %
由表1可以看出,在解耦的回歸與分類分支中,IoU的輸入值為0.5 和0.6 時,行人的漏檢率更低,平均精度均值更高。尤其在Medium 和Far 子集,漏檢率分別降低7.2 個百分點和8.2 個百分點。在增加改進的FPN 之后,兩個子集的漏檢率分別降低了11.4 個百分點和9.1個百分點。實驗證明在解耦的回歸與分類分支中,IoU的輸入值為0.5和0.6對行人檢測的效果最好,同時表明改進的FPN對行人檢測也同樣有效。
在ETH行人數(shù)據(jù)集下行人檢測的消融實驗結果如表2所示。消融實驗結果表明,IoU輸入在0.5和0.6時,相較其他兩種IoU輸入,漏檢率降低最多,降低了2.9個百分點。增加改進的FPN,漏檢率降低5.6 個百分點,mAP提升2.3個百分點。
表2 ETH消融實驗結果Table 2 ETH ablation experiment results %
解耦的回歸與分類分支中,IoU 為0.5 和0.6 上漏檢率降低比其他兩種多,原因是當IoU=0.7時,小尺寸行人尺寸小,與背景相似度高,容易把正樣本誤判為負樣本,漏檢率高。當IoU=0.4時,容易把負樣本判為正樣本,假陽性高,導致平均精度均值不高。因此,當輸入IoU 為0.5和0.6時,行人檢測效果最好。
ETH 行人數(shù)據(jù)集中,行人有不同程度的遮擋,在ETH 行人數(shù)據(jù)集上的提升效果證明本文算法在遮擋行人中也有一定應用價值。圖10 中(a)是IoU 輸入為0.5和IoU輸入為0.6時級聯(lián)檢測結果,(b)是IoU輸入為0.4和IoU 輸入為0.5 時級聯(lián)檢測結果,(c)是IoU 輸入為0.4、0.5和0.6時級聯(lián)檢測結果。為了更清楚地觀察漏檢情況,將圖10中(a)(b)(c)中預測框與真實框的IoU>0.5的結果輸出,如圖(d)(e)(f)所示。其中圖(d)是圖(a)中預測框和真實框的IoU>0.5的預測結果,圖(e)是圖(b)中預測框和真實框的IoU>0.5 的預測結果展示,圖(f)是圖(c)中預測框和真實框的IoU>0.5 的預測結果。從這些結果中可以看出,級聯(lián)IoU=0.4、0.5 和級聯(lián)IoU=0.4、0.5、0.6 對圖像中的行人有漏檢的情況,但是級聯(lián)IoU=0.5、0.6 的結果對行人沒有漏檢,因此IoU=0.5、0.6是效果最好的輸入IoU。
圖10 解耦的回歸與分類分支消融實驗效果圖Fig.10 Ablation experiment effect of decoupled regression and classification branch
2.4.3 對比實驗
本文算法與Faster RCNN、Faster RCNN+PAFPN、Guided-Anchoring和基礎網(wǎng)絡Cascade RCNN等四種方法做對比,骨干網(wǎng)絡都采用ResNeXt101,分類損失函數(shù)采用交叉熵損失,回歸損失采用SmoothL1,其他參數(shù)均相同。在ETH 和Caltech 行人數(shù)據(jù)集的消融實驗中,輸入IoU 在0.5 和0.6 時的效果最好,因此在對比實驗中,本文算法在解耦的回歸與分類分支中輸入IoU 分別是0.5和0.6,同時加入改進的FPN。四種方法在Caltech和ETH行人數(shù)據(jù)集對比結果如表3所示。
從表3 中可以看出,與目前較新的一些方法相比,本文算法的性能在各個尺寸子集上均處于前列,在Caltech 行人數(shù)據(jù)集中,與Faster RCNN 相比,在Far 子集上效果明顯,漏檢率降低了17.2個百分點,在Medium子集上漏檢率降低了10.7 個百分點,在Near 子集上漏檢率降低了7.3個百分點,mAP提高了4.1個百分點。在Reasonable子集上漏檢率降低了7.5 個百分點,mAP 提高了2.7個百分點。在ETH行人數(shù)據(jù)集上,漏檢率降低了8.5 個百分點,mAP 提高了7.9 個百分點。與其他算法相比,漏檢率也有不同程度的降低,并且平均精度均值有一定提升。實驗結果表明,本文提出的改進的特征金字塔網(wǎng)絡和解耦的回歸與分類分支對大中小尺寸行人檢測結果漏檢率有一定降低,平均精度均值有一定提升,同時在解決行人遮擋問題上效果也很理想。
表3 Caltech和ETH行人數(shù)據(jù)集對比結果Table 3 Comparison results of Caltech and ETH pedestrian datasets %
Caltech 行人數(shù)據(jù)集中有許多遠處小尺寸和模糊的行人會漏檢。ETH行人數(shù)據(jù)集含有大中小尺寸行人,行人之間有不同程度的遮擋。為了展示本文算法對小尺寸行人和遮擋行人都有一定的效果,從測試結果中挑選具有代表性的行人檢測結果,比較Cascade RCNN與本文算法的行人檢測效果。Cascade RCNN 算法與本文算法在Caltech和ETH數(shù)據(jù)集上的實際檢測效果對比圖如圖11 和圖12 所示。紅色框為圖片中需要檢測的行人,綠色框為算法檢測到的行人。證明了本文算法在改進Cascade RCNN上效果的優(yōu)越性。
圖11 Caltech行人數(shù)據(jù)集中的結果對比Fig.11 Comparison of results in Caltech pedestrian dataset
圖12 ETH行人數(shù)據(jù)集中的結果對比Fig.12 Comparison of results in ETH pedestrian dataset
隨著自動駕駛技術的不斷發(fā)展,保障行人安全是自動駕駛的重要內容,為了降低復雜交通場景下行人檢測算法中小尺寸行人的漏檢率,本文提出了一種改進的Cascade RCNN 的行人檢測算法。本文算法基本框架采用Cascade RCNN,骨干網(wǎng)絡采用ResNeXt101,改進了特征金字塔和增加了解耦的回歸與分類分支,能充分利用深層特征的語義信息和淺層的空間位置信息,并且增加了解耦的回歸與分類分支可以充分利用全連接層進行分類,卷積層回歸邊界框。本文算法在Caltech 和ETH 行人數(shù)據(jù)集上均取得了較低的漏檢率和較高的平均精度均值。尤其在行人尺寸較小的Far 子集上,效果十分突出,驗證了算法的有效性。本文提出的兩點創(chuàng)新實現(xiàn)簡單,具有很好的通用性。