董如意,崔 冉
(吉林化工學院 信息與工程控制學院, 吉林 吉林 132022)
隨著我國汽車行業(yè)和人工智能行業(yè)的繁榮發(fā)展,無人駕駛對交通運輸行業(yè)有著越來越重要的影響。同時因為人工智能、傳感檢測等核心技術的推進和高速發(fā)展,無人駕駛在未來勢必成為重點發(fā)展方向。近年來,智能技術不斷革新,為了能夠實現無人駕駛汽車的產業(yè)化和成熟直至能夠在全球范圍內使用,交通信號燈的實時檢測作為未來自動駕駛領域的關鍵技術之一,是至關重要的。交通信號燈遍布在城市道路各個重要節(jié)點,保護著交通通行中的每個車輛和行人。因此,在無人駕駛技術中,對于交通信號燈監(jiān)測的實時性和精準度的研究具有非常重要的意義。
目標檢測多指某個圖像或者一系列圖像中將目標和其他非目標及背景區(qū)分開,在圖像中識別出有意義的物體而提取不同圖像特征的操作。關于交通信號燈的目標檢測方法,目前研究分為One-stage[1](單階段)、Two-stage[2](兩階段)。One-stage(單階段)是指只用提取一次特征就可以完成目標檢測,且其速度并不亞于多階段的算法,但精度會稍低一些。單階段算法一般不需要得到建議框階段,只用經過單次檢測就可以直接得到最終的檢測結果。比如YOLO系列算法、Retinanet[3]、SSD[4]等。Two-stage(兩階段)在第一階段中關注并找出目標物體存在的位置,得到建議框來保證一定的準確率,第二階段關注對建議框的分類,找到更精準的位置。比如RCNN[5]、Fast-RCNN[6]、Mask RCNN[7]等。在精準度方面,單階段檢測不如兩階段目標檢測,但在實時性方面,單階段檢測已經完全可以滿足自動駕駛的要求了。文獻[8]設計了一種基于候選區(qū)域法的交通信號燈檢測與識別算法(DBA-Faster R-CNN),在特征提取網絡中加入了CBAM注意力機制模塊,可以完成交通信號燈的檢測與識別,但檢測速度相對較慢。文獻[9]對YOLOV3進行了改進,在骨干網絡中加入了跨通道特征融合的方法加強網絡對交通信號燈特征的提取能力,該方法魯棒性符合預期但是對某些交通信號燈的檢測精準度還有提高空間。文獻[10]提出了一種改進YOLOV4算法的交通信號燈檢測與識別方法,通過加入淺層特征增強機制和邊界框不確定預測機制增強算法中對小目標不敏感的問題,所提出的改進網絡能夠達到更高精度的檢測,但在實時性方面還有進步空間。由此可見,以上的方法對交通信號燈的檢測識別效果在實時性和準確性之間不能很好地保持平衡。
當前目標檢測領域中YOLO作為性能最優(yōu)的算法之一,它幾乎應用在計算機視覺和人工智能等領域的各種應用。YOLO相比較于其他算法而言,優(yōu)勢在于它的又快又準,可以完美地實現實時的目標檢測。其中YOLOV5模型與先前的YOLOV3、YOLOV4不同的點在于YOLOV3、YOLOV4除了具有完整的大模型,還只有一個輕量級的tiny模型,并且在tiny模型中只有兩個輸出層。YOLOV5模型目前有四個版本的網絡模型:YOLOV5S、YOLOV5M、YOLOV5L、YOLOV5X。其中YOLOV5S是YOLOV5所有網絡模型中深度最小、特征圖最寬的一個模型,更適用于大目標并且追求速度的檢測。YOLOV5M、YOLOV5L、YOLOV5X都是在YOLOV5S的基礎上加深加寬網絡,AP(平均精度)精度也不斷在提升,但速度的消耗也在不斷增加。YOLOV5S和YOLOV5M雖然在檢測速度上非常占優(yōu)勢,但其識別精度并不高;而YOLOV5X是識別精度高,速度卻差強人意。所以在比較以上四種網絡模型后選擇使用YOLOV5L模型進行實驗,YOLOV5L模型的框架如圖1所示,其主要包括主干特征提取網絡層Backbone[11]、加強特征提取網絡層Neck和檢測層Head。

圖1 YOLOV5網絡結構

YOLOV5的Backbone層主要分為Conv模塊、CSPDarkNet53和SPPF模塊。YOLOV5將卷積(Conv2d)、Batch Normalization和激活函數封裝在一起,并且實現了padding的效果。其中激活函數使用了SiLU代替了舊版本的Leaky ReLU。在該版本的YOLOV5中使用尺寸大小為666×666,步長為2,padding為2的卷積核代替了Focus模塊,有利于高效地導出模板。YOLOV5模型使用了C3模塊,替代了舊版本的BottleneckCSP模塊。C3模塊中含有3個標準卷積層以及多個Bottleneck模塊。Bottleneck模塊參考了ResNet的殘差結構,首先有一路先進行111×111卷積把特征圖的通道數減小一半,達到減少計算量的目的,再通過333×333卷積提取特征,并且將通道數加倍。而另外一路通過shortcut進行殘差連接,最終將兩路的輸出特征圖進行Add操作,實現特征融合。YOLOV5使用了SPPF模塊來代替舊版本中的SPP(Spatial Pyramid Pooling)模塊,即空間金字塔池化。SPPF模塊使用多個小尺寸池化核級聯融合不同特征圖,在豐富特征圖的表達能力的情況下進一步提升運行速度。Neck層借鑒了FPN和PAN的思想,主要作用是融合其他不同層的特征檢測目標。FPN主要是提高對小目標的檢測,它將高層特征與低層特征相融合,進行了多尺度特征的獨立預測,旨在提高小物體的檢測效果。Head層主要是對圖像的特征進行預測,并生成預測框的坐標信息、長寬和類別信息,同時預測其類別。相比較舊版本的Head層,YOLOV3后的所有版本的Head層引入了多尺度檢測邏輯和多標簽分類思想,優(yōu)化了損失函數,可以檢測大、中、小目標。
數據集對于深度學習算法而言是非常重要的一個根基,交通信號燈檢測模型訓練需要大量的數據集支撐,因此需要對圖像中出現的物體目標進行標注。為保證實驗結果的準確性,制作數據集時選擇的圖像盡量包含不同角度和不同距離,也要盡量使數據集中不同類型的物體目標數量保持均衡。目前大部分公開數據集都來自國外,與國內交通燈存在一定差異,所以本文的交通燈數據集主要由線上收集、現場拍攝和道路交通攝像截圖組成。
數據集圖片樣本如圖2所示,訓練集數據可視化分析如圖3所示,其中圖3(a)分析了交通燈的類別和數量的關系;圖3(b)分析了交通燈中心點位置如何分布;圖3(c)分析了交通燈大小分布情況,并可以看出小目標占比較大。

圖2 數據集樣本圖

圖3 數據集分析
實驗環(huán)境使用windows10 操作系統,CPU型號為Intel(R) Core(TM) i7-7700HQ CPU @ 2.80 GHz,運行內存為24 GB,深度學習框架使用Pytorch,編程語言使用Python。超參數設置如表1所示。

表1 參數設置

精確率(Precision):表示是正類并且確實是正類的部分占所有認為是正類的比例,衡量分出來的正類的確是正類的概率的能力。計算如公式(1)所示。
(1)
召回率(Recall):表示一個算法模型能把所有的正類都找出來的能力,召回率的計算如公式(2)所示。
(2)


(3)
(4)
幀率(FPS):檢測速度是衡量算法性能的重要指標之一,尤其對于時效性需求較大的平臺。FPS(FramesPerSecond)一般用于表示模型識別速度,每秒內可以處理的圖片數量。
實驗中收集的2 200張圖片,其中訓練集圖片2 000張,測試集圖片200張。本文的數據集共有9種不同類別的標簽,分別是“Green_Straight(直行綠燈)”“Green_Left (左轉綠燈)” “Green_Right (右轉綠燈)”“Red_Straight (直行紅燈)”“Red_Left (左轉紅燈)”“Red_Right (右轉紅燈)”“Yellow_Straight (直行黃燈)”“Yellow_Left (左轉黃燈)”“Yellow_Right (右轉黃燈)”。實驗進行了100次迭代處理,觀察每個不同標簽訓練后得到的Precision、Recall和mAP@.50值,并將每次訓練的ACC(準確率)展示出來,最后保存訓練模型。實驗結果如表2所示,訓練模型結果如圖4所示。

表2 模型識別結果

圖4 訓練模型結果
如表2所示,“Green_Straight(直行綠燈)”“Green_Right (右轉綠燈)”“Yellow_Straight (直行黃燈)”以及“Yellow_Left (左轉黃燈)”的mAP@.50穩(wěn)定在90%以上,說明絕大部分的“Green_Straight(直行綠燈)”“Green_Right (右轉綠燈)”“Yellow_Straight (直行黃燈)”以及“Yellow_Left (左轉黃燈)”可以識別出來,“Green_Left (左轉綠燈)”和“Red_Right (右轉紅燈)”最終mAP@.50穩(wěn)定在40%左右,說明它們的識別精準度還有待提高。圖4直觀地展示出來模型經過100次訓練后性能的變化。隨著迭代次數不斷增加,loss值隨著訓練次數的增加不斷減少最終趨于穩(wěn)定;Precision隨著迭代次數的不斷增加不斷上升,最終穩(wěn)定在0.6左右;Recall隨著訓練次數增加不斷提高,直到最終穩(wěn)定在0.9左右。通過觀察圖4展示的數值變化情況,最終都趨于穩(wěn)定,可以得出結論:該模型具有較好的準確性和實時性。
圖5為本實驗的模型識別結果,由圖可見,圖中檢測出的交通信號燈的置信度均在70%,說明該測量是可信和有效的,部分檢測的置信度在90%左右,說明該測量功能非常強大甚至完美。

圖5 模型識別結果

為更好地檢測模型的性能,模型將在測試集上進行進一步的測試。圖6是實驗的混淆矩陣,該圖縱坐標為模型預測值,橫坐標為真實值,由圖分析,該模型在測試集中表現較好。綜上,本文使用的模型能夠準確地對交通信號燈進行識別,表現性能良好,且滿足實時性的要求。

圖6 混淆矩陣
本文是基于神經網絡的交通信號燈識別方法的研究,尋找兼具準確性和實時性的交通信號燈識別方法。經過試驗檢測得出YOLOV5L在交通信號燈識別問題上的表現最優(yōu),可以在不同角度和不同距離下較為準確地識別出交通信號燈。該模型擁有能檢測小模型、易部署、速度快等優(yōu)點。所以本文基于目標檢測模型YOLOV5L的基本框架,研究了YOLOV5的基本原理與理論,并進行了網絡搭建,且實驗得出最終的mAP@.50穩(wěn)定在78.6%。本研究實現了基于深度學習的交通信號燈檢測方法,為無人駕駛技術的實現完成了部分理論基礎工作。