李孝疆,黎敬濤,邱 潤
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
隨著經濟的快速發展,我國城市的機動車輛不斷增加,帶來了嚴重的交通堵塞問題。為了緩解交通阻塞,提高交通運輸效率,智能交通系統應運而生。智能交通監控是智能交通系統的一個重要組成部分,其首要任務是準確地檢測車輛[1]。車輛檢測技術是大多數交通應用如道路實時監控、智能交通控制及無人駕駛等的關鍵技術[2]。因此,實時的車輛檢測和類別識別,是智能交通監控急需解決的一個問題。
車輛檢測主要依靠目標檢測算法。目標檢測算法分為雙階段和單階段兩種方法。
在雙階段的方法中,具有代表性的網絡有基于區域的卷積神經網絡(Region-based Convolutional Neural Networks,R-CNN)[3]、Fast R-CNN[4]、Faster R-CNN[5]和SPP-net[6]。這類網絡在預測方面有很高的準確性,但由于網絡在候選框的選取上耗費了大量的時間,因此檢測速度往往不能滿足實時性的需求。
在單階段方法中,具有代表性的網絡有YOLO系列算法[7]。這類算法直接通過卷積神經網絡預測目標的位置和類別,摒棄了候選框的選取,因此在犧牲一定準確率的條件下,很大程度地提高了物體檢測速率。
對于車輛檢測來說,檢測網絡要盡可能地簡單,模型必須容易部署,因此模型參數要盡可能地小。但不論是R-CNN系列的網絡還是YOLO系列的網絡,模型都很大,不利于模型的部署。除此之外,現有的目標檢測主要集中在物體檢測而不是更具體的車輛檢測,如果將物體檢測網絡直接用于車輛檢測,檢測效果將會大打折扣。車輛檢測需要低級別的特征圖,而且要有足夠快的速度來實時預測,同時需要較高的準確性。因此本文的主要目的是改進YOLOv3-tiny的網絡結構,設計一個實時的輕量級的車輛檢測網絡。
YOLOv3-tiny網絡是YOLOv3[8]物體檢測網絡的一個微型版本,網絡檢測速度很快,但檢測精度不高。該網絡的特征提取層由10個卷積層和6個最大池層構成,檢測層由卷積層和上采樣層構成。YOLOv3-tiny網絡結構如圖1所示。

圖1 YOLOv3-tiny網絡結構圖
2.2.1 網絡結構的改進
擬定的系統由一個改進的YOLOv3-tiny網絡組成,稱為YOLO-s網絡。YOLO-s網絡結構如圖2所示。YOLO-s的特征提取層由5個殘差塊構成,并且使用了mish激活函數,該函數是一個平滑的曲線,因此可以很好地使特征信息深入神經網絡,從而使模型擁有更好的準確性和泛化性。利用卷積層代替YOLOv3-tiny中的最大池化下采樣層,在特征提取層的末尾加入SPP網絡。SPP網絡可以在不同尺寸上提取車輛特征,一次性形成特征圖,因此一定程度上減少了網絡的計算復雜度,加快了網絡檢測速度。

圖2 YOLO-s網絡結構圖
輸出層對預測結果進行處理,并生成一系列的錨框。在錨框的聚類生成方面,為了減少k-means算法中初始聚類中心的選擇對聚類結果的影響,本文使用了k-means++算法。利用k-means++算法對數據集選取了6個聚類中心,因此有6個簇的錨框。當輸入圖片的尺寸為416×416時,聚類出來的 錨 框 尺 寸 為(16×23)、(38×40)、(87×73)、(113×161)、(254×197)、(312×304)。前3個錨點是為了在輸出層2檢測較小的車輛,而后3個錨點則用于輸出層1檢測較大尺寸的車輛。
2.2.2 損失的計算
YOLOv3的定位損失使用的是均方誤差(Mean Square Error,MSE)損失,交并比(Intersection over Union,IoU)損失與MSE損失相比,IoU損失可以很好地反映預測框和真實框的重合程度。由于重合程度與矩形框的尺度是無關的,因此IoU損失具有尺度不變性。IoU損失計算公式如式(1)所示。預測邊界框與真實邊界框的位置關系圖如圖3(a)所示。其中,G表示真實邊界框,B表示預測邊界框。

圖3 預測邊界框與真實邊界框的位置關系圖

但是IoU損失也有著明顯的缺點。當預測邊界框和真實邊界框不相交時,交并比為0,此時就會出現梯度消失的現象,網絡將無法進行權重更新。針對此問題,文獻[9]提出了泛化交并比(Generalized Intersection over Union,GIoU)損失。GIoU不僅關注重疊區域,還關注其他的非重合區域,因此能更好地反映預測框和真實框的重合程度,GIOU損失計算公式如式(2)所示。預測邊界框與真實邊界框的位置關系圖如圖3(b)所示。其中,C表示可以將預測邊界框和真實邊界框框住的最小矩形框。

但是GIoU損失也存在一定的缺點。當預測目標邊界框和真實目標邊界框有著相同的高和寬并處于水平位置時,GIoU損失就會退化成IoU損失,且IoU損失和GIoU損失有著收斂慢、回歸不準確的問題。因此本文使用了距離交并比(Distance Intersection over Union,DIoU)損失函數[10]。DIoU損失函數能夠直接最小化兩個邊界框之間的距離,同時考慮了邊界框的重疊率和尺度,因此收斂速度更快,目標框回歸更加穩定。DIOU損失計算公式如式(3)示。預測邊界框與真實邊界框的位置關系圖如圖3(c)所示。其中d表示兩邊界框中心點之間的歐式距離,s表示C矩形框兩對角之間的歐式距離。

本文使用UA-DETRAC作為車輛檢測的數據集[11]。為了減少模型訓練時間,同時保證模型訓練效果,本文選取了UA-DETRAC數據集中20 000張圖片,同時從網上選取了1 000張道路監控圖片,并對其進行手工標注,制作了補充數據集。數據集共有21 000張圖片,按照8∶2的比例分為訓練集和測試集。數據集包含4個類別的車輛數據,分別為car、van、bus、others。本文實驗環境配置為:CPU為Intel i5-10500,主頻3.1 GHz,內存為16 GB,GPU 為GeForce RTX 3060,顯存大小為 12 GB,操作系統為Windows 10。
在車輛檢測中,圖片邊緣的車輛目標往往比較小,因此較難檢測到。為了提高訓練的效果,本文使用了馬賽克數據增強的方法將4張圖片按照一定的比例拼接組合成一張圖片。該方法可以有效解決小目標車輛難以檢測的問題。在訓練階段,初始學習率設為0.001,借助余弦函數的特性來調整學習率;在迭代優化的中期,學習率減小、速度加快,因此梯度下降速度加快;在迭代優化的后期,學習率的減小速度會變慢,這將有助于算法的收斂。學習率變化曲線圖4所示。

圖4 學習率變化曲線
本文對車輛目標檢測模型的評價指標主要有平均精度(mean Average Precision,mAP)、每秒傳輸幀數(Frames Per Second,FPS)以及網絡模型大小。mAP表示檢測4種類別車輛的平均精度,FPS表示1 s內所能檢測的圖片數量。不同車輛目標檢測算法的測試結果如表1所示。

表1 常見的網絡模型與YOLOv3-s的性能比較
由表1可知,在平均精度方面,改進的YOLOv3-tiny網絡YOLOv3-s的mAP為74.58%,與YOLOv3-tiny模型相比提高了5.64%的平均精度,與MobileNet[12]模型相比提高了4.56%的平均精度。在檢測速度方面,處理速度最快的是YOLOv3-tiny模型,本文提出的YOLOv3-s模型的檢測速度比YOLOv3-tiny模型下降了8 FPS,但是比MobileNet模型提高了78 FPS。在模型大小方面,YOLOv3-s比起YOLOv3-tiny模型小了0.1 Mb。綜合表1可以看出,YOLOv3-s在犧牲較小的檢測速度、保持較小的模型大小的情況下,較大地提升了車輛檢測的平均精度。
MobileNet、YOLOv3-tiny、YOLOv3-s網 絡 的檢測效果如圖5所示。從圖5可以看出,MobileNet和YOLOv3-tiny對圖像邊緣的車輛都存在一定的漏檢,但是YOLOv3-s對圖像邊緣的車輛檢測效果要好很多。

圖5 MobileNet、YOLOv3-tiny與YOLOv3-s的檢測效果對比
本文提出了一種基于YOLOv3-tiny改進的輕量級車輛檢測網絡YOLOv3-s。YOLOv3-s的特征提取層中引入了殘差模塊,并在特征提取層后加入了SPP網絡,同時,使用DIoU損失函數加快模型的收斂。所提出的網絡在UA-DETRAC數據集中實現了74.58%的mAP,124 FPS的檢測速度。實驗結果表明,YOLO-s可以從交通監控攝像頭的反饋中實時檢測車輛,且具有較高的準確率。但是該算法對重合的車輛存在漏檢的情況,未來的研究需要優化模型結構和數據集來解決這些問題。