胡 輝,曾 琛
(華東交通大學 信息工程學院,江西 南昌 330013)
近年來,在目標檢測方面運用神經網絡[1]變得十分流行。文獻[2-4]分別介紹了Fast RCNN、Faster RCNN、R-FCN目標檢測框架。它們均是二階段目標檢測[5]框架,先提取候選框,然后進行分類。而一階段目標檢測網絡有SSD[6](single shot multibox detector)和YOLO[7](you only look once),它們將候選區域和區域分類結合起來一同輸出。YOLO檢測算法對于相距較近的物體檢測結果不佳。SSD沿用了YOLO中回歸邊框定位,但是網絡中default box的大小和形狀不能直接通過學習獲得,需要一定的調參經驗。
R-FCN作為目前目標檢測領域一種先進的檢測方式,在檢測精確度和檢測時間方面都有著不錯的表現。但是,在檢測小目標以及遮擋等復雜情況下的目標時仍然存在著問題。因此,本文以R-FCN為基礎,結合多尺度訓練、可變形網絡[8]、軟化非極大值抑制[9](soft-nms)的方法,并對參數進行合理調整,將其轉化為車輛二分類的問題,降低了環境因素的影響,提高了檢測的精確度。
基于R-FCN的車輛檢測框架如圖1所示。輸入圖片后,基礎網絡中的卷積層對圖片的特征提取后送入區域建議網絡(region proposal network,RPN)進行訓練,并生成候選區域,每張圖片生成300個候選區域,通過卷積生成的位置敏感得分圖對候選區域加入位置信息,然后完成池化和分類。

圖1 R-FCN檢測框架
R-FCN算法采用RPN提取候選框,把ROI分成k×k的大小,假設數據有C類,加上背景一共(C+1)類,則通過卷積結構生成有k2(C+1)通道的位置敏感得分圖,通過一個位置敏感的ROI Pooling產生(C+1)維的置信度,然后使用softmax進行分類。
1.1.1 區域建議網絡
RPN的輸入為圖像特征圖,輸出為矩形候選框。RPN對特征圖采用滑動窗口的方式,用3×3的卷積核對它進行卷積,生成一個全連接特征之后產生兩個分支的全連接層,一個用來判斷滑動窗口區域內的特征是圖像的前景還是背景,另一個用來預測該區域的回歸坐標值。在每個滑動框中心都有一個錨點,對應于輸入圖像的尺度預測(例如8、16、32)和寬高比(例如0.5、1、2)。這樣每個錨點可以產生9個錨框,RPN結構如圖2所示。

圖2 RPN結構
1.1.2 位置敏感得分圖

(1)
其中,rc對應為第c類第 (i,j) 個塊的池化,zi,j,c是得分圖的輸出, (x0,y0) 是ROI左上角坐標,n為塊中的像素數,Θ代表從網絡中學習到的參數。

圖3 位置敏感得分圖
殘差網絡[10](ResNet)是由何凱明等提出,從深度學習的發展經驗來看,網絡越深分類的效果越好。然而,在實際中如果只是簡單的增加網絡的深度,會出現梯度消失或者梯度爆炸的現象,這樣的結果就是網絡深度加深的同時網絡的誤差也越大了。出現這種現象的原因是深層網絡并不好訓練,求解器很難利用多層網絡擬合同等函數,導致最終的檢測模型效果不佳。
ResNet能夠用來解決梯度的問題,何凱明等提出的殘差結構如圖4所示。

圖4 殘差結構
對于原始需要學習的函數H(x), 如果直接去擬合一個潛在的恒等映射函數H(x)=x會比較困難,但是將網絡設計為H(x)=F(x)+x, 那么我們就轉化為學習一個殘差函數F(x)=H(x)-x, 網絡對殘差的擬合更容易,只要F(x)=0, 就構成了一個恒等映射H(x)=x。 此外,利用快捷連接(short-cut connection)將輸入x傳到輸出,使某一層的輸出可以跨過幾層作為后面某層的輸入,在不增加網絡參數和計算復雜度的情況下提高訓練的效果。
本文提出的方法運用在車輛檢測上,采用的ResNet作為基礎網絡,為了提高檢測的精確度而且能在不同場景下均得到良好的效果,采用了多尺度訓練、可變形位置敏感ROI池化、軟化非極大值抑制的方法。
1.3.1 多尺度訓練
為了使在同一張圖片中尺寸相差較大的目標均有較好的檢測效果,采用了多尺度訓練的方式,相比于原來的單一尺度方式,訓練時目標大小分布更均勻,對小目標的檢測效果更好。本文采用了(600,800,1000)3種圖片尺度,在訓練的時候會隨機選取其中的一種尺度進行訓練,因此能學習到各種尺寸目標的特征。
1.3.2 可變形位置敏感ROI池化
可變形網絡用來提高CNN的模型變換能力,傳統的CNN在卷積的時候在特征圖固定的位置采樣,ROI池化也是把感興趣區域分成固定的空間塊,它們都采用固定的結構,難以適應物體的幾何形變??勺冃尉W絡在原有采樣基礎上加入了偏置,改變了卷積在固定位置采樣的情況。
可變形位置敏感ROI池化在原來的位置敏感ROI池化的基礎上加了一個偏置,這個偏置實質上是一個卷積層,而偏移量可以通過學習得到,這樣可以提高對不同形狀的物體的自適應定位。位置敏感ROI池化操作可以表示為
(2)
其中,xi,j代表第 (i,j) 個位置敏感特征圖,p0表示ROI左上角的坐標, Δpij表示每塊的偏移量,nij為每塊區域的像素值。由于偏置的存在,而且通常不是整數,需要用到雙線性插值的方法來確定采樣點的值。實驗結果表明,用可變形位置敏感ROI池化的方法可以加強網絡的適應能力,提高準確度。
1.3.3 軟化非極大值抑制
在目標檢測中產生了檢測框后,用傳統的NMS的方式能夠消除重復的邊界框。通常做法是按照得分將檢測框進行排序,得分最高的框將被選中,其它與之重疊程度超過閾值的框將會被移除。但這種將超過閾值的檢測框一律歸零的做法容易讓距離較近并且存在遮擋情況下的物體不被檢測出來。
軟化非極大值抑制的表示方法如式(3)所示

(3)
其中,Nt為閾值,M為當前得分最高的框,bi為待處理框。soft-nms不會直接移除與當前得分最高的框超過閾值的檢測框,而是降低檢測框的得分,當檢測框的重疊度越大的時候,它的得分也會衰減的越多,如果只有小部分的重疊,那么對原有的檢測得分不會有太大的影響。實驗結果表明,運用soft-nms能夠減少漏檢的物體,提高了檢測的準確度。
網絡的訓練之前需要先準備好Udacity數據集,對數據進行基本的處理,刪除掉不存在車輛目標的圖片,將其標簽轉化為XML格式,最后數據集的格式與VOC2007格式相同。用ResNet作為基礎網絡提取到車輛的特征,通過神經網絡的正向傳播得到車輛目標的置信度,用損失函數判斷識別的程度,之后反向傳播確定梯度向量,通過梯度向量來調整網絡的參數,使損失值逐漸的降低,不斷的重復上述的訓練過程會讓網絡檢測的效果越來越好,在訓練過程中加入了多尺度和可變形位置敏感ROI池化的方法。
在測試的過程中,網絡對整個輸入圖像進行卷積得到特征圖像,通過RPN網絡生成的候選區域后,用軟化非極大值抑制的方法篩選候選框,得到候選區域對應在特征圖上的高維特征向量,然后在檢測網絡中計算得分,最后輸出檢測的結果。
本文訓練和測試采用的是開源的Udacity數據集,該數據集包含市區、郊區等場景采集的真實圖片,車輛存在著光照的不同和遮擋的情況。實驗前需要將數據集的格式類型轉換為VOC2007的格式類型,實驗過程中隨機選取了8211張圖片進行訓練,1000張圖片測試。
本文基于R-FCN的算法采用的是ResNet作為基礎網絡,將ResNet去除平均池化層和全連接層,只保留卷積層來提取特征。把在ImageNet數據集上訓練的ResNet作為預訓練模型,在訓練的過程中,初始的學習速率為0.001,學習動量為0.9。模型的訓練和測試是基于Caffe框架。本次實驗中硬件配置包含:Inter Core i5-3470,24 G內存,GTX 1070Ti顯卡。
本文算法與R-FCN算法的召回率-準確率曲線(PR曲線)如圖5所示,其中召回率(recall)與準確率(precision)的計算公式如式(4)、式(5)所示
recall=TP/(TP+FN)
(4)
precision=TP/(TP+FP)
(5)
其中,TP表示模型預測的正檢總數,FN表示模型漏檢的總數,FP表示模型誤檢的總數。

圖5 本文算法與R-FCN算法PR曲線
從PR曲線圖中可以看出,在召回率大于0.8之后,隨著召回率的增加本文算法準確率相比R-FCN算法下降的更緩慢,在檢測上表現更為優異。
在置信度為0.5的情況下,本文算法與R-FCN算法的召回率、準確率以及F1值見表1。

表1 本文算法與R-FCN算法對比/%
其中F1的計算公式如式(6)所示
(6)
在此情況下,本文算法的召回率比R-FCN算法高1.6%,準確率比R-FCN算法高1.2%。
為了進一步比較常用算法如SSD、Faster RCNN、Yolo、R-FCN和本文算法檢測的效果,采用平均準確度(ave-rage precision,AP)對檢測結果進行評估,其取值范圍在[0,1],結果見表2。

表2 用不同方式處理效果對比
從表2中的數據可以看出在保證了檢測時間的情況下應用了多尺度訓練、可變形位置敏感ROI池化、軟化非極大值抑制的方法比R-FCN算法檢測的平均準確度提高了4.3%。
此外,本文算法的平均準確度分別優于Yolo、Faster RCNN、SSD這3種算法6.5%,8.4%,17.4%。在檢測時間上,Yolo和SSD把檢測和分類在一個階段中完成,相比于Faster RCNN和R-FCN算法有一定的優勢。本文算法在檢測時間上稍快于Faster RCNN,較SSD、Yolo、R-FCN 慢,但在檢測的準確度上比其它方法都高,綜合考慮本文提出的方法是較為有效的車輛檢測方法。
為了進一步研究使用多尺度訓練、可變形位置敏感ROI池化和軟化非極大值抑制的有效性以及它們分別對平均準確度的影響,采用了不同的方法對網絡訓練和測試,采用的方法和檢測的效果見表3。
從表3中可以看出使用了多尺度訓練使得對不同尺寸的目標均能達到較好的檢測效果,平均準確度提高了2.4%??勺冃挝恢妹舾蠷OI池化增強了網絡對物體形變的適應能力,平均準確度提高了0.5%。soft-nms對遮擋的物體有較好的檢測效果,平均準確度提高了1.5%。實驗結果表明上述3種方法對模型的平均準確度均有提升。

表3 用不同方法訓練后的檢測效果
本文還對比了在ResNet-50和ResNet-101上分別迭代不同次數得到的平均準確度,結果見表4。

表4 在不同基礎網絡下的AP值對比/%
可以看到在網絡加深的情況下,準確度有略微的下降,這是由于越深的網絡,最后一層的特征圖感受野越大,對小目標物體的定位不太準確。
在不同的場景下測試的結果如圖6所示,實驗結果顯示本文算法在不同的實際場景中對車輛的檢測都能達到較好的效果。

圖6 不同場景下車輛檢測效果
本文在R-FCN算法的基礎上結合了多尺度訓練、可變形位置敏感ROI池化、軟化非極大值抑制的方法對車輛圖片進行訓練和測試,將車輛檢測問題轉化為二分類問題,實驗結果表明,使用本文方法能良好的提取到車輛的特征,對不同環境下的車輛均能達到較好的檢測效果,提高了檢測的準確度和網絡的魯棒性。但對于小目標的檢測以及提高模型的泛化能力,還需要進行進一步的研究。