王怡雯 王學軍 穆應晨
(石家莊鐵道大學 信息科學與技術學院,河北 石家莊 050043)
城市道路交通在人們的出行方式中占據極大的比重,雖然一定程度上便利了人們的生活,但是很多時段交通擁堵,行人與車輛之間不能很好地相互避讓,導致事故頻發,夜間環境尤其應該成為交通狀況的關注重點,但夜間成像效果差導致目標檢測研究難度較大。基于以上問題,亟需一個夜間交通狀態智能感知系統來統計感知交通路況,而這一技術的核心即為道路車輛行人檢測跟蹤[1]。
近些年基于深度學習的目標檢測算法因其強大的泛化能力和學習能力而被廣泛應用[2],但大多數研究是基于可見光采集的數據集,而本文重點針對的是基于紅外光下圖像的目標檢測研究,將研究重點著眼于受光照強度影響小且在夜晚同樣可達到較好成像效果的紅外圖像,一定程度上彌補了夜間道路交通監控的短板。
本文針對紅外道路場景的目標檢測實驗中小目標特征缺失以及網絡參數量龐大等問題,使用YOLO v4 為基礎的目標檢測模型進行實驗,使用k-means 聚類算法獲得針對本文紅外數據集的先驗框值,加入SENet 模塊為特征通道施加注意力機制提升網絡的特征描述能力,在PANet 中使用深度可分離卷積代替普通卷積結構進一步減少網絡參數量。
YOLO v4 算法是在YOLO 系列先前版本的目標檢測算法的基礎上優化而來[3],網絡結構如圖1 所示。YOLO v4 采用CSPDarknet53 作為主干特征提取網絡,該網絡在Darknet53 的基礎上加入CSP 結構,將原來殘差塊的堆疊拆分成一條主干路徑與殘差路徑,該結構實現了跨階段的特征融合,在達到減少計算量的目的的同時仍可以保持較好的檢測準確率。激活函數由LeakyReLU 修改成了Mish 函數,計算公式如式(1)。

圖1 YOLO v4 網絡結構圖

SPP 和PANet 特征預測網絡在FPN 基礎上加深了多尺度優化,將高層特征的信息與低層特征融合形成新的特征層,提高小目標的檢測效果,最后通過不同尺度的特征層進行特征預測。
本文的研究對象為行人與車輛,存在目標較小或遮擋等情況,可能會存在一些誤檢漏檢的可能。同時紅外圖像與可見光圖像相比具有分辨率差、對比度低、信噪比低、視覺效果模糊等特點[4],且數據集數量較少,這些都是針對實際應用需要考慮的具體問題。
由于YOLOv4 算法初始先驗框的大小是根據coco 數據集得到的,因此本文利用k-means 聚類算法進行計算與統計,重新得到針對本文FLIR 紅外數據集的先驗框數值,這樣的預先處理可以使得模型參數更加貼近本實驗數據集,降低損失同時提高檢測準確率,如表1 所示為處理結果。

表1 coco 數據集與本文數據集先驗框值對比
SENet[5]主要通過學習的方式來自動獲取每個特征通道的重要程度,即為特征通道分配不同的權重,重點突出對當前檢測任務有用的特征并抑制無效特征,從而提升特征處理的效率。SEblock 不是一個完整的網絡,而是一個可以靈活嵌入到其他分類或檢測網絡模型中的結構,圖2 為其嵌入到殘差網絡中的結構示意圖。

圖2 SENet 嵌入殘差網絡示意圖
首先利用全局平均池化(Global pooling)對輸入特征圖進行處理,再經過兩個Fully Connected(FC)層先降低特征圖的維度再升高維度,最后經過sigmoid 激活函數處理后可以得到相應的權重,利用權重在對應位置與原輸入特征圖相乘得到輸出,即此處可以對不同重要程度的特征圖進行相應的處理。本文設計將SENet 嵌入到CSPDarknet53 的殘差網絡中。
在以上改進的基礎上為了進一步使網絡輕量化,實驗借鑒MobileNet 的思路,采用深度可分離卷積結構塊代替PANet 中普通3×3 卷積結構,得到的參數量對比如表2 所示。

表2 算法參數量對比
深度可分離卷積的處理步驟(以輸入7 x 7 x 3、輸出5 x 5 x 128 為例)如圖3 所示。

圖3 深度可分離卷積示意圖(輸入7x7x3、輸出5x5x128)
(1)利用3 個大小為3 x 3 x 1 的卷積核在輸入為7 x 7 x 3 的圖像上進行卷積操作,每個卷積核僅對輸入層的1 個通道做卷積,因此卷積處理后得到的映射數量為3 個,大小為5 x 5 x 1,將這些映射進行堆疊得到一個5 x 5 x 3 的圖像,因此第一步最終得出的輸出圖像大小為5 x 5 x 3。
(2)擴大深度,將5 x 5 x 3 的圖像作為輸入圖像。當使用一個大小為1x1x3 的卷積核對5 x 5 x 3 的輸入圖像進行1x1卷積處理時會得到一個大小為5 x 5 x 1 的映射,將該操作重復128 次后將所有得到的映射進行堆疊即可得到期望輸出的5 x 5 x 128 的層。
本文實驗硬件環境為Ubuntu16.04 系統,GPU 為NVIDIA TESLA K40m,軟件環境為CUDA10.0、CUDNN7.4.1、Anaconda3,使用深度學習框架Pytorch1.2.0。
為盡量還原夜間道路的真實場景,實驗數據集選取真實道路的紅外圖像作為訓練和測試的樣本。本文采用的紅外數據集為FLIR 紅外數據集,運用LabelImg 可視化圖像標注工具對數據集中的行人和車輛進行標注,共標記2000 張道路紅外圖像,其中90%的圖像作為訓練樣本,10%的圖像用于測試。在實驗中本文還對數據集采用隨機角度的旋轉、裁剪、鏡像等方式擴增數據集容量,并采用了Mosic 數據增強,提升模型的泛化能力,見圖4。

圖4 數據集樣圖
針對改進算法,本文設計實驗與YOLO 系列其他算法進行對比,選擇準確率與召回率作為模型評價指標,計算公式如式(2)(3)所示,其中TP 代表模型將目標正確檢測并分類為對應類別的數目,FP 代表模型誤檢的目標數,FN 代表模型漏檢的目標數。道路檢測效果如圖5。

圖5 道路車輛行人檢測結果

在FLIR 數據集上分別使用YOLOv3、YOLOv4 以及本文算法SE-YOLOv4-lite 進行實驗,得到的測試結果對比如表3 所示。改進后的算法在召回率、準確率以及map 指標上均有一定的提升,損失函數如圖6。同時經過測試,SE-YOLOv4-lite 算法在本實驗環境中FPS 可達12.67,比原始YOLOv4 算法提升約27.5%。

表3 算法測試結果對比

圖6 loss 曲線
本文基于 YOLOv4 的算法提出一種改進算法SE-YOLOv4-lite,旨在解決紅外場景下的車輛行人的檢測與識別問題。SE-YOLOv4-lite 設計在主干網絡的殘差結構中加入SENet 模塊,提升網絡的特征描述能力,使用深度可分離卷積結構塊代替PANet 中的普通3×3 卷積減少網絡參數。實驗結果表明,本文模型較YOLO v4 在準確率等方面都有了一定的提升。同時本文中SE-YOLOv4-lite 算法仍有改進的空間,在現有實驗結果的基礎上如何進一步提升檢測精度并適用于更豐富的場景是接下來亟待解決的問題。