顧 燕,李 臻,楊 鋒,趙維駿,朱 波,郭一亮,呂 揚,焦國力
(北方夜視科技(南京)研究院有限公司,江蘇 南京 211102)
隨著汽車制造工業的發展,小型轎車的城市人均擁有量逐年攀升,城市主要道路上的車流量也在不斷上升。一方面由于智慧城市概念的興起和計算機視覺技術的發展,傳統的基于人工的交通管理與規劃正在被智能算法逐步替代[1]。另一方面,車輛的檢測識別也是實現無人安全駕駛的必要手段。
傳統的圖像車輛檢測算法通常通過經典圖像處理方法實現檢測功能,這種采用人工提取圖像特征的方法,主要有背景差分法[2],幀差法[3],以及光流法[4],等車輛實時檢測方法。這類基于人工特征提取的圖像處理算法經典、簡單,但缺點也比較明顯,其算法設計往往過于主觀性,檢測精度不高,穩定性較差。
基于人工智能的深度神經網絡目標檢測算法目前主流有兩個方向,一個方向為設計有緊密-稀疏(Dense-Sparse)候選結構的二階段目標檢測方法,如Faster R-CNN[5]、Fast R-CNN[6]等,另一個方向是緊密(Dense)無區域建議的端到端檢測算法,如YOLO系列[7]、SSD[8]等。就國際通用的算法精度評價標準AP而言,前者的計算精度遠高于后者。而對Faster R-CNN的改進已經廣泛應用于道路交通標志檢測[9-10]、道路異物檢測、道路擁堵狀態檢測、運動行人檢測[9]等方面,在車輛目標檢測方面,魏子洋[11]等通過用k-means聚類改進錨框生成方式的方法提高了Faster R-CNN檢測車輛的精度,劉澤康[12]等通過融合目標的邊緣信息,陳飛[13]等通過融合特征圖信息提高了Faster R-CNN的車輛檢測精度。
本文針對Faster R-CNN的特征提取層,并提出了改進方法,避免了車輛目標因尺度差距過大而引起的檢測精度低的問題,改變Faster R-CNN的NMS方法增強網絡對多目標重疊情況的魯棒性,本文首先設計了多感受野特征提取網絡Tri-VGG,不同感受野的特征信息通過深度融合來提升Faster R-CNN的檢測精度。其次,對RPN(Region Proposal Network)網絡中的非極大值抑制(NMS,Non-Maximum Suppression)方法進行了探索,設計了一種改進的soft-NMS算法。最后,設計了一種參數調整和訓練策略,解決了在實驗中的過擬合問題。最終本文設計的檢測算法的評價準確率AP達到了85.32 %,比原始的Faster R-CNN算法提高了5.86 %。
針對紅外視頻下車輛目標像素大小差距過大的問題,文獻[14]中提出不同尺度感受野卷積核對于不同尺寸的目標有偏向性,尺度大的感受野卷積核偏向于大目標,相反,尺度小的感受野卷積核偏向于小目標,因此本文設計了一種多尺度感受野并行提取特征的方法。但直接使用多個感受野的卷積核采樣再融合的方法并不可取,因為這會使神經網絡出現過擬合,不僅算法精度不會有明顯提高,而且會消耗大量的計算成本。
解決上述問題可以采用空洞卷積(Dilated Convolution),權重因子共享原則進行多個感受野的并行采集??斩淳矸e間隔采樣原理示意如圖1所示。

圖1 空洞卷積原理示意圖Fig.1 Schematic diagram of dilated convolution principle
改進模型的特征提取層神經網絡由三路權重共享以及并行采集融合的卷積神經網絡組成。特征提取層的整體流程示意如圖2所示。其中,Conv表示卷積層(Convlution Layer)。

圖2 特征提取網絡流程Fig.2 Process of feature extraction network
每一路神經網絡的下采樣結構由4個卷積層及其正則化和激活層以及2個最大池化層(maxpool)組成,卷積核尺寸為3×3,于是每一路的感受野為3×3,5×5,7×7。卷積層通道數依次為64、64、128、128。卷積核步長(stride)為1,填充(padding)為1。此外,將每一路網絡的下采用結構中的梯度凍結,即權重凍結,減緩神經網絡的過擬合情況。
采用九層二維卷積層和三層最大池化層構成并行特征采集器的每一個通道,這類似于VGG16的原始結構,但是三路權重僅有一路權重用于共享,通過元素相加的形式將三路特征提取網絡進行融合,生成的特征圖傳遞到RPN網絡,還需要經過一層正則化-激活-最大池化層處理,特征提取網絡的總體流程示意圖如圖2所示。
每一路特征圖的尺寸應當始終保持一致,本文將非空洞卷積網絡中的卷積層填充系數設置為1,步長系數設置為1;將一路空洞卷積層的膨脹系數設置為2,則3×3大小的卷積核等效于5×5大小的感受野,卷積核填充系數為2,步長系數設置為1;另一路空洞卷積層的膨脹系數為3,則3×3大小的卷積核等效于7×7大小的感受野,卷積核填充系數為3,步長系數為1。
這樣設計的原因是為了使得三路網絡共享一組權重,實驗中發現,如果同時不同的權重對三路網絡進行訓練則會出現由參數冗余導致的網絡過擬合,會出現損失函數無法收斂、檢測精度無法提高、訓練時間過渡延長等問題,于是我們采用權重共享策略來避免過擬合問題。三路網絡在訓練和預測時只使用一組共享權重,即從初始化到訓練完成都是共享的,這種共享權重的方式可以減小計算成本從而大大提升算法速度。并行特征提取網絡的結構示意圖如圖3所示,網絡之間的每一層卷積層共享權重。

圖3 并行提取網絡示意圖Fig.3 Schematic diagram of parallel extraction network
針對紅外視頻內車輛在視野中重疊概率較高的問題,對Faster R-CNN邊框回歸中的NMS方法改進進行了探索。
Faster R-CNN在RPN網絡過濾生成的錨框時使用了非極大值抑制NMS(Non-Maximum Suppression)方法。其大致過程是對于重疊部分較多的檢測框進行概率排序,只保留其中概率最高的檢測框,而將其余檢測框直接取消。但是對于道路上的車輛檢測,視野中出現目標重疊的情況十分常見,因此直接將相近的檢測框取消會降低算法的檢測精度。
作為生物圈中的一員,人類的活動對生物圈有重要影響。為了讓學生有切身體會,在本課中,教師請學生閱讀書本上的4個案例,要求小組討論,并發揮聯想交流啟示。
文獻[15]提出了一種基于IOU權重函數的Soft-NMS方法,但是這種方法的計算時間開銷會隨圖片尺寸的變化呈指數級增長,且對于非密集圖片的檢測精度沒有明顯的提升。
基于上述問題基于Soft-NMS進行了改進,即對于與分數最大的框的IOU小于Nt1的檢測框不作處理,對IOU介于Nt1和Nt2之間的檢測框作線性權重衰減,而對IOU大于Nt2的框直接取消。
2.3.1 VGG預訓練
改進后的Faster R-CNN在ROI Pooling層的分類網絡仍采用VGG16的三個全連接層(Fully connection Layer)加一層softmax的決策網絡結構,而特征提取部分的前四個卷積層也與VGG16的結構相同。于是可以先采用基于VGG16分類網絡的Faster R-CNN訓練數據集,將訓練得到的權重分配給相應的層,如圖4所示。

圖4 VGG16權重預訓練策略Fig.4 Weight pre-training strategy based on VGG16
將VGG16網絡前四層分配給特征提取層的下采樣部分,并且為了防止參數冗余將下采樣層學習率設置為0,使其不再參與學習。將VGG最后四層分配給Faster R-CNN的分類器,作為分類器的預訓練權重繼續參與學習。
2.3.2 權重衰減和dropout策略
訓練網絡時,為了避免可學習參數過多導致神經網絡出現過擬合現象,本文采用L2正則化(1)抑制網絡中的所有權重,避免某一部分權重出現過高或過低的現象。
(1)
其中,L0為Faster R-CNN中的RPN網絡總損失函數;n為訓練集樣本量;λ是一個調整對權重的超參數;ω為神經網絡中的可學習參數,即神經網絡權重。
此外,本文采用dropout方法對神經網絡中的最后幾層分類層進行訓練。dropout是一種神經網絡隨機失活的策略,在訓練中隨機失活部分卷積核,使其權重降為0,這樣可以動態的平衡分類層中各卷積核的重要性,可以有效規避因網絡可學習參數過多導致的過擬合問題。
本文的采用驗證平臺:硬件資源顯卡NVIDIA TITAN XP×2,軟件環境Ubuntu16.04LTS系統,Pytorch1.3.1編程框架,并且采用了CUDA 10.0 GPU加速環境。
為了增強實驗的說服力,我們采用公開的FIRL數據集。該數據集分為兩個部分,不僅提供了帶人工標注的熱成像數據集,而且第二個部分提供了對應的無標注RGB彩色圖像,用于訓練和驗證神經網絡。數據通過車載RGB相機和熱成像儀器采集獲得。FIRL數據集內一共有5個類別,我們對數據集處理,將其他類別的標注屏蔽,保留數據集轎車和其他兩類,并將其合并一類,命名為“車輛”。
FIRL數據集共有三類輸入圖像,分別為RGB圖像、8比特紅外圖像、16比特紅外圖像,本文僅采用8比特紅外圖像作為實驗數據集,其中訓練集有8862張圖像;測試集有1366張圖像;不設置驗證集。所有圖像的尺寸均為640×512×3,如圖5所示。

圖5 FIRL數據集輸入圖像Fig.5 Input image from FIRL dataset
此外,為了提升算法權重的魯棒性,在訓練時對輸入的圖像進行隨機翻轉、對稱、附加高斯噪聲等圖像增強操作。
本文采用國際通用的評價標準“平均精確率(Average Precision,AP)”為評價標準來評價神經網絡模型檢測性能。
為了對比soft-NMS對算法檢測精度的影響,首先采用原始的Faster R-CNN對數據集進行訓練,循環14次,batch大小為16張圖片,前四層卷積層初始學習率Rl=0,其余層初始學習率Rl=0.001,每一個循環學習率下降,比率為0.1,RPN候選框取300個/張,權重衰減常數為0.0001。然后在Faster R-CNN的RPN網絡采用改進的soft-NMS的進行訓練,其他參數同上。
實驗中發現,soft-NMS的閾值Nt1取值范圍在0.3到0.5,Nt2取0.7~0.9之間時優化效果較明顯,檢測AP如表1所示。

表1 改進的soft-NMS不同取值對應的APTab.1 AP values corresponding to different values of improved soft-NMS
選取改進的soft-NMS的兩個閾值分別取Nt1=0.4,Nt2=0.9的模型作為對比,訓練結果每10個batch打印一次,結果如圖6所示。


圖6 改進的soft-NMS與NMS方法損失函數及AP對比Fig.6 Comparison of improved soft-NMS and NMS methods in loss function and AP
圖例SNMS和NMS分別代表基于soft-NMS和NMS的算法由損失函數曲線圖和AP曲線可以看出,是否采用改進的soft-NMS對于損失函數的收斂影響并不顯著,但是采用soft-NMS方法可以略微增加目標檢測的準確度,改進后的算法AP達到了82.31 %,相較于改進之前79.46 %提高了約2.85 %。
同樣地,用基于改進的soft-NMS方法、VGG16網絡作為特征提取層的Faster R-CNN作為對照設計實驗檢驗Tri-VGG網絡對算法檢測性能的影響。batch大小取16,循環14次,前四層卷積層初始學習率Rl=0,其余層初始學習率為Rl=0.001,每一個循環學習率下降,比率為0.1,RoI候選框取256個/張,權重衰減常數為0.0001。實驗結果每10個batch打印一次,結果如圖7所示。圖例中的VGG16表示特征提取層為VGG16的網絡,Tri-VGG1表示不采用權重共享、不采用預訓練策略以及不采用正則化方法的Tri-VGG特征提取網絡,Tri-VGG2表示采用權重共享及預訓練策略、權重衰減系數為0.0001、dropout系數為0.4的Tri-VGG特征提取網絡。


圖7 Tri-VGG與VGG16特征提取層的Faster R-cnn損失函數及AP對比Fig.7 Comparison of Tri-VGG and VGG16 feather extraction layer in Faster R-cnn loss function and AP
由實驗結果發現,未采取任何訓練策略的Tri-VGG特征提取網絡的損失函數無法進一步收斂,而算法的檢測精度卻無法提升,這是因為存在參數冗余,也就是過擬合現象。
于是我們對該網絡采取了凍結預訓練卷積層、權重共享、權重衰減、dropout等方法避免網絡的過擬合,在實驗中發現,隨著dropout系數的增長,網絡的過擬合現象起初會得到較好的改善,但是如果dropout系數超過0.4,網絡的檢測性能的不穩定性就會較為突出,每次試驗的結果波動較大,于是本文采用的dropout為0.4是緩解網絡過擬合的前提下,較為穩妥的選擇。由圖7可以看出,經過預訓練的Tri-VGG網絡的收斂效果也有明顯的提升,采用Tri-VGG的神經網絡模型得到的AP達到了85.21 %,相較于原始的VGG神經網絡模型高出了約3.01 %。
表2為幾種算法的綜合對比,實驗結果表明,檢測精度上一階段網絡檢測模型稍遜于二階段網絡模型,而本文的模型相比RPN網絡采用soft-NMS的Faster R-CNN模型AP提高了3.01 %,相比原始的Faster R-CNN檢測算法AP提高了5.86 %。運算速度上,一階段算法的運算速度略快于二階段算法,本文的網絡模型檢測速度為20 f/s,在滿足檢測實時性的條件下,盡可能的提升了算法的檢測精度。算法的可視化結果如圖8所示。

表2 算法檢測精度比較Tab.2 Comparison of detection accuracy of algorithms

圖8 紅外車輛檢測算法可視化結果Fig.8 Visualization results of infrared vehicle detection algorithm
本文在Faster R-CNN網絡基礎上發展了一種權重共享的多感受野融合特征提取網絡Tri-VGG,并且設計了改進的soft-NMS方法改進了Faster R-CNN的第二次NMS過程,并且設計了訓練策略防止網絡過擬合,使得改進的多尺度特征融合的Faster R-CNN網絡對于擁堵路況的小型車輛的AP最高達到了86.65 %,車輛檢測AP達到了85.32 %,比采用了改進soft-NMS的Faster R-CNN高了3.01 %,比原始的Faster R-CNN網絡高了5.86 %。后續的研究可從優化Faster R-CNN的邊框回歸機制、改進網絡的損失函數以及提高算法檢測速度等方向進行。