王殿偉,何衍輝,李大湘,劉 穎,許志杰,王 晶
(1.電子信息現場勘驗應用技術公安部重點實驗室,陜西西安710121;2.西安郵電大學通信與信息工程學院,陜西西安710121;3.哈德斯菲爾德大學計算機與工程學院,英國哈德斯菲爾德,HD1 3DH)
行人檢測是指從輸入的視頻或圖像序列中判 斷是否包含行人,并快速準確地判斷出行人位置。目前各類可見光成像設備在光照不足、光照不均勻等條件下獲取的視頻圖像降質嚴重,所蘊含的許多特征被覆蓋或模糊,使得行人檢測變得非常困難[1]。而利用紅外成像設備獲取的視頻圖像基本不受光照條件的影響,能夠在完全黑暗以及不均勻光照等場景中獲取到清晰的視頻,為行人檢測處理提供了良好的數據來源。因此,基于紅外視頻圖像的行人檢測技術對于軍事偵察、汽車輔助駕駛系統與智能監控系統等領域具有重要意義。
目前,常用的紅外行人檢測技術主要分為基于特征分類的方法和基于深度學習的方法兩大類。基于特征分類的方法依賴人工設計特征提取器,并利用提取的特征來訓練分類器進行行人檢測,如基于梯度直方圖(histogram of oriented gradient,HOG)和支持向量機(support vector machine,SVM)的實時行人檢測系統[2]。通過對行人紋理特征提取,雖然進一步提高了檢測效率,但人工設計的行人特征泛化性差,運算復雜度高,限制了實際應用[3]。基于深度學習的方法需要預先建立一個圖像訓練庫作為學習模型[4],并利用卷積神經網絡從圖像像素中學習行人特征,通過特征訓練得到行人檢測模型,達到行人檢測的目的,這類方法主要有深度卷積神經網絡學習法、局域卷積神經網絡學習法和端到端學習法等。基于深度卷積神經網絡的學習方法不需要人為選擇行人特征,但這種方法針對不同場景檢測需要單獨訓練模型[5]。基于區域卷積神經網絡的學習方法將特征提取和分類融合進一個分類框架,提高了訓練模型的速度和行人檢測的準確率,但是該方法由于加入了SVM的訓練而變得繁瑣[6]。基于深度學習的端到端(single shot multibox detector,SSD)算法[7]可以解決在特征提取過程種由于圖像像素過多導致的維度災難問題,但SSD對小尺寸和模糊目標的檢測效果較差,且檢測速度較慢。端到端的學習方法(you only look once,YOLO)[8]在檢測速度上遠遠超過 SSD算法,但是YOLO在檢測相互重疊或者相鄰很近的目標時存在漏檢率過高的問題,且泛化能力偏弱。
針對上述問題,YOLO的改進算法YOLOv2和YOLOv3[9-10]先后被提出,雖然增強了YOLO的泛化能力,進一步提高了檢測速度,但是在速度和準確率上綜合表現最好的YOLOv3也無法精準定位紅外視頻圖像中的行人目標,且在檢測分辨率不同的輸入圖像時,目標識別率較低,尤其是單尺度YOLO模型在行人檢測中的魯棒性較差。因此,本文提出一種改進的YOLOv3紅外視頻圖像行人檢測算法。根據行人呈現高寬比固定的特點,通過聚類分析得到初始候選框anchor的個數及寬高比維度,然后調整網絡預訓練輸入圖像分辨率,并進行多尺度訓練,最后將改進的YOLOv3在CVC-09數據集上進行測試。
YOLOv3參考SSD和ResNet網絡結構,設計了分類網絡基礎模型 Darknet-53[11]。Darknet-53兼顧網絡復雜度與檢測準確率,與常用的目標檢測特征提取網絡VGG-16相比降低了模型運算量[12]。
Darknet-53 與 Darknet-19、Resnet-101、Resnet-152的性能對比如表1所示。

表1 Darknet-53與Darknet-19、Resnet的性能對比表
由表1可以看出,Darknet-53在Top-1和Top-5中的準確率分別為77.2%和93.8%,高于 Darknet-19;浮點運算速度為1 457次/s,高于 Darknet-19、Resnet-101和Resnet-152;每秒可檢測78幀圖像,高于Resnet-101和Resnet-152,可以達到實時檢測。
為了使YOLOv3適用于紅外視頻圖像中的行人檢測,主要進行3個方面的改進。
(1)對紅外圖像數據集的目標候選框進行維度聚類分析,選擇最優 anchor個數。YOLOv3的anchor個數和維度是由VOC 20類和COCO 80類數據集聚類得到,不適用于紅外行人檢測。在做紅外行人檢測時,無論行人處于什么樣背景,姿態怎么變化,行人在圖片中的長寬比始終是一個相對固定的值,呈現瘦高的框,因此需要對行人候選框進行聚類分析,重新確定anchor個數和寬高維度。
(2)調整分類網絡預訓練過程,使用不同分辨率的紅外圖像作為網絡輸入,用VOC數據集進行模型的預訓練。使用不同分辨率的紅外圖像作為分類數據集,可以取得比較明顯的微調效果。
(3)網絡迭代過程中,隨機改變輸入圖像的尺寸,進行多尺度網絡訓練,使模型對不同尺寸圖像的檢測具有魯棒性。
YOLOv3引入了anchor,anchor是一組寬高固定的初始候選框,它的個數由人工設定,其設定的好壞將影響目標檢測的精度和速度。在訓練網絡時,隨著迭代次數增加,候選框的參數也在不斷調整以接近真實框。利用k均值聚類算法(k-means)[13]對目標框作聚類分析,網絡會根據行人標注目標框的特點,學習行人特征,找到統計規律,最終以k為anchor的個數。k-means聚類分析使用歐式距離,意味著較大框會比較小框產生更多的錯誤,因此YOLOv3采用重疊度(intersection over union,IOU),即候選框與真實框的交集除以并集,消除了候選框所帶來的誤差。代替歐式距離的最終距離函數為

聚類目標函數為

式中,box為候選框,truth為目標真實框,k為anchor的個數。目標函數變化曲線如圖1所示,隨著k值增大,目標函數變化越來越緩慢,變化線的拐點可以認為是最佳的anchor個數。當k值大于4時,曲線變得平緩,因此選擇k值為4,即anchor的個數為4。

圖1 目標函數變化曲線
同時可得紅外行人真實框的聚類結果,如表2所示,選擇k為4時的候選框作為初始候選框。

表2 紅外行人真實聚類框

0.554,1.906 0.498,1.732 1.663,6.262 2.294,8.646 1.337,4.986 2.096,7.631 1.300,4.835 0.435,1.628 0.886,2.982 0.484,1.704 0.968,3.273 2.273,8.199 0.659,2.083 1.351,5.194
分類網絡預訓練可以提高網絡提取特征的能力和速度,然而由于Darknet-53最后一層全連接層的限制,輸入圖像被調整為固定分辨率,與實際檢測情況有較大差距。針對輸入圖像大小固定的不足,進行如下改進。
(1)采用VOC 20類和COCO 80類數據集對Darknet-53網絡進行預訓練。
(2)使用低分辨率(320 pixel×320 pixel)的已標注紅外圖像數據集微調Darknet-53,使網絡先適應紅外圖像中的行人特征。
(3)低分辨率輸入網絡微調完成后,在高分辨率(512 pixel×512 pixel)的紅外圖像數據集上進行迭代,讓網絡逐層調整權重以適應高分辨率紅外圖像行人特征。
YOLOv3包含卷積層和池化層,可以在訓練過程中隨機改變輸入圖像的尺寸,用多尺度輸入的方法訓練檢測網絡模型,使模型對不同尺度的紅外圖像檢測具有魯棒性。模型池化層共有32個可訓練參數,下采樣因子為32,因此訓練過程中隨機改變的圖像的尺寸為32的倍數,最小為320 pixel×320 pixel,最大為 608 pixel×608 pixel。
多尺度檢測訓練能讓模型適應不同尺度的輸入圖像,相較于單一尺度檢測,多尺度檢測對高分辨率輸入圖像檢測準確率更高。
以開源深度學習框架Darknet為基礎,改進的YOLOv3網絡結構為模型,結合維度聚類分析、網絡預訓練和多尺度訓練模型的方法,訓練紅外圖像行人檢測器。為了加快訓練速度和防止過擬合,網絡參數中的沖量常數設置為0.9,權值衰減系數為0.005,初始學習率設定為0.001,并采用多分步策略學習。
分類網絡預訓練結束后,多尺度檢測訓練需要從大量樣本中學習紅外行人特征,若樣本集不具有代表性,很難選擇出好的特征。因此,先以混合了VOC、COCO中的行人圖像和CVC-09中的紅外行人圖像數據作為第一輪訓練集,粗調網絡模型。接著將CVC-09紅外圖像序列作為多尺度檢測訓練集和測試集,精調網絡。
CVC-09紅外行人數據集分為訓練集和測試集兩部分,訓練集包含2 200張正樣本圖像和1 002張負樣本圖像,正樣本中含有5 990人。測試集包含2 884張正樣本圖像,含5 081個行人。CVC-09拍攝的數據均為紅外圖像,且存在背景復雜、行人互相遮擋等情況,適合作為紅外行人數據集。
實驗軟硬件配置如表3所示。

表3 軟硬件配置
圖2為網絡訓練過程中損失值的收斂曲線,橫坐標表示迭代次數,最大迭代為50 000次。當網絡迭代超過4萬次時,各參數變化基本穩定,從圖2中可以看出,最后損失值下降到約0.12。從這個參數的收斂情況來看,網絡訓練結果比較理想。

圖2 損失值函數曲線
4.2.1 候選框生成方案對比
對數據集中的目標框進行k-means聚類分析,得到最優 anchor參數,與 Faster-rcnn[14]、YOLOv3 的候選框生成方案對比,結果如表4所示,改進的YOLOv3最優候選框數量少,減小了運算量,并且保證了較高的平均重疊率。

表4 候選框生成方案對比表
4.2.2 分類網絡預訓練方法對比
根據分類網絡預訓練的3個步驟,調整不同階段預訓練網絡的輸入圖像分辨率,得到分類網絡預訓練方法對比結果如表5。由表5可得,多分辨率微調后的分類網絡相較于微調前,檢測的平均準確率由60%提高到了82%,提高了網絡的特征提取能力。

表5 分類網絡預訓練方法對比
4.2.3 多尺度網絡與單尺度網絡的性能對比
多尺度檢測訓練所得的模型對不同尺度的輸入圖像有更強的適應性,通過對不同尺寸的紅外圖像做行人檢測,得到多尺度網絡與單一尺度網絡的性能對比,如表6所示,其中單尺度網絡是由所有輸入尺寸為416 pixel×416 pixel的紅外圖像數據集訓練所得的模型。由表6可得,當檢測圖像分辨率變大時,兩個網絡的檢測準確率都隨之提高,相比同一尺寸輸入圖像而言,多尺度網絡檢測效果更好。

表6 多尺度與單一尺度網絡性能對比表
4.2.4 檢測驗證集
用改進的YOLOv3網絡檢測紅外行人目標,以測試集的樣本驗證訓練模型的檢測效果,對比Faster-rcnn和YOLOv3算法,結果如圖3所示。由圖3可得,經過改進后的YOLOv3在紅外視頻圖像上的檢測準確率超過90%,檢測效果有明顯提升。

圖3 各檢測方法測試結果對比
部分檢測結果如圖4所示,可以發現,在紅外行人圖像序列中,改進后的YOLOv3檢測器可以較為精確地定位行人目標。

圖4 改進的YOLOv3檢測效果
YOLOv3和改進的YOLOv3檢測效果對比如圖5所示,可以發現因行人的非剛體特性,比較容易發生重疊或遮擋,而改進后的網絡可以較好地將重疊部分的行人目標檢測出來。同時,在對存在較多模糊的行人圖像進行檢測時,相較于YOLOv3,改進的YOLOv3網絡能夠同時檢測到更多目標,降低了漏檢率。

圖5 紅外行人檢測效果對比
通過對紅外行人目標重新做維度聚類分析、調整網絡預訓練過程、多尺度訓練模型的方法,將改進的YOLOv3目標檢測算法遷移到紅外行人檢測。以CVC-09紅外行人數據集為實驗數據,對比Fasterrcnn和 YOLOv3算法,實驗結果表明,改進的YOLOv3算法在紅外行人檢測中的準確率高達90.63%,明顯優于Faster-rcnn和YOLOv3算法,且改進后的網絡能夠同時檢測到更多目標,降低了漏檢率。