李在潤,寧芊,2
(1.四川大學電子信息學院,成都 610065;2.新疆師范大學物理與電子工程學院,烏魯木齊 830054)
交通信號燈檢測任務的目標是檢測出圖像中出現的交通燈以便識別出信號燈所表達的具體信息。隨著現代交通網絡的飛速發展,道路結構復雜多樣,路上行駛的車輛也日益增多,交通信號燈在保證交通有序和安全進行中發揮著至關重要的作用??焖贉蚀_的檢測并識別交通信號燈,不僅可以用于輔助駕駛系統,即時提醒或者干預駕駛員做出正確反應,讓駕駛員更好地駕駛車輛,減少交通事故的發生,而且在未來的無人駕駛系統上更是關鍵的任務之一。近年來,國內外學者對于交通信號燈檢測算法的研究一直在不斷推進,但是目前的算法往往只關注了檢測的準確性,而欠缺目標檢測的實時性和高效性。在車輛駕駛中,不論是駕駛員還是無人駕駛系統,信號燈從出現在視野中到需要做出反應的時間非常短。因此,我們通過減少網絡通道的方法,在保證性能的同時提高任務的效率。
針對交通信號燈檢測任務的算法隨著時間和技術的發展不斷更新,大致可以分別3類:①基于圖像處理的方法;②基于機器學習的方法;③基于深度神經網絡的來檢測交通信號燈的方法。
基于圖像處理的方法中,顏色和形狀是最常被用來做交通信號燈檢測任務的?;陬伾姆椒ū阃ㄟ^分離圖像的顏色空間,設定相關的閾值進行計算。交通信號燈的另一個特征是形狀,基于形狀的算法就是利用交通信號燈的形狀特征,檢測交通信號燈外圍矩形框的區域和燈的圓形區域。然而,這些基于圖像處理的方法,只有在相對簡單的場景中能得到較好的效果,在復雜場景下往往會檢測不到信號燈或者識別錯誤。
基于機器學習的方法,首先要找到圖像中的感興趣區域,對區域中的單個目標進行特征提取,然后利用分類器對目標進行分類。不過基于機器學習的算法往往有魯棒性較差,適應性不足,時間復雜度高、實時性差等缺點。
近年來,基于深度學習的方法在交通信號燈檢測和識別任務中取得巨大進步。深度學習方法能夠同時進行特征提取和分類,從大量樣本中自主學習目標的特征,這很好地解決了傳統方法中魯棒性差和適應性不足的問題。但是,目前基于深度學習的交通信號燈檢測算法普遍只關注精確度的指標,而日常駕駛場景和無人自動駕駛場景中,交通信號燈檢測的實時性也非常重要。
針對交通信號燈檢測的實時性問題,本文提出通過減少網絡的通道數并添加層級U型連接結構的方法改進TTFNet網絡模型,構造出了能更高效檢測交通信號燈的網絡模型。實驗結果表明,使用該網絡結構能在犧牲少量精確的情況下大幅度地減少網絡訓練的開銷和提高交通信號燈檢測的效率。
交通信號燈檢測和識別的研究早期主要是基于傳統的顏色方法。吳慶國等人[1]通過對RGB圖像進行歸一化處理后再利用圖像空間中三通道的差值分布對不同顏色的信號燈進行檢測。而因為RGB空間受光照的影響較大,D.Barnes等人[2]選擇了更適合識別交通信號燈的HLS顏色空間。除了基于顏色空間的方法,交通信號燈的形狀特征也常常被用到檢測任務中,如通過檢測邊界的矩形框和圓形燈來定位交通燈。CaiZ等人[3]在拉夫斯基邊緣檢測濾波器的邊緣上添加霍夫變換,而E.Koukoumidis等人[4]改進霍夫變換來尋找實心圓,進一步優化了通過形狀檢測交通信號燈的算法。
隨著深度學習的崛起,深度卷積神經網絡在計算機視覺任務中快速發展并得到大量應用,越來越多的研究人員開始設計不同的卷積神經網絡來完成交通信號燈的檢測和識別。Jensen等人[5]討論了在使用目標檢測算法進行交通信號燈檢測中卷積神經網絡的超參數選擇。Julian Muller等人[6]通過改進SSD網絡,將原始的VGG網絡替換成Inception網絡來進行交通信號燈檢測,對小目標檢測有一定的效果。潘衛國等人[7]對Faster R-CNN網絡進行改進,提高了在復習場景下檢測交通信號燈的準確率。T.V.Janahiraman等人[8]對比了SSD MobilenetV2和Faster R-CNN這兩種目標檢測模型在交通燈檢測中的靈活性,提出了一種穩健的檢測方法。然而,上述的網絡設計是針對交通信號燈檢測和識別的穩健性和準確率在不斷優化,需要進行大量的訓練和時間代價。而現實情況中,訓練時間更少,檢測速率更快也是交通燈識別中一個重要的問題。
本文在TTFNet的網絡模型基礎上,減少網絡的通道數并添加層級U型連接結構的方法,構造出了能更高效檢測交通信號燈的網絡模型。
CenterNet將目標檢測分為中心定位和大小回歸兩部分。對于定位,它在CornerNet中采用高斯核來產生一個熱圖,使網絡在物體中心附近產生更高的激活。對于回歸,它定義目標中心的像素作為訓練樣本并直接預測對象的高度和寬度。它還預測了偏移以恢復由輸出步幅引起的離散化誤差。由于網絡在推理過程中會在對象中心附近產生更高的激活度,因此耗時的非極大值抑制NMS可以用開銷可以忽略不計的其他組件來代替。
為了消除對非極大值抑制的需求,本文采用了類似的中心定位策略。在CenterNet中不考慮高斯核中長方體的縱橫比顯然是次優的,于是我們進一步考慮了它。
對于尺寸回歸,主流的方法是處理整個框或把子矩形中的像素框的面積作為訓練樣本,而我們將高斯區域的所有像素作為訓練樣本。另外,為了更好地利用信息,我們還對這些樣本應用了由對象大小和高斯概率來計算的權重。

在中心點的正樣本中,僅僅將高斯分布的峰值看成是正樣本,也就是框中心的像素,其他任何像素都看成是負樣本。

(1)
其中αf和βf是交叉熵的超參數。




(2)
其中s是一個固定的標量,用來擴大預測結果,便于優化。
如果一個像素不在任何子區域中,則在訓練過程中將其忽略;如果一個像素在多個子區域中,則訓練時將它的目標設置為面積較小的對象。

(3)
由于物體的大尺度變化,大的物體可能產生數千個樣本,而小的物體可能只產生很少的樣本。對所有樣本的損失進行歸一化后,小目標的損失幾乎可以忽略不計,這將影響小目標的檢測性能。因此,采用權重Wij起到了平衡的作用。假設(i,j)在第m個標注框的子區域Am中,則:

(4)
其中Gm(i,j)是在位置(i,j)的高斯概率,am是第m個框的面積。該方法能充分利用大對象所包含的更多注釋信息,并保留小對象的注釋信息。它還可以在目標中心附近強調這些樣本,減少模糊和低質量樣本的影響。
總損失:總損失L由定位損失和回歸損失組成:
L=wlocLloc+wregLreg
(5)
其中wloc=1.0,wreg=5.0。
網絡:我們使用ResNet18作為實驗的主干,并將網絡的通道數減少到1/4,如圖1所示。定位網絡在靠近物體中心的位置產生高的激活,而回歸網絡直接預測從這些位置到框四邊的距離。由于物體中心對應于特征圖上的局部最大值,因此可以借助2D最大池化抑制非最大值。然后使用局部最大值的位置來收集回歸結果,最終得到檢測結果。

圖1 ResNet-18(a)和ResNet-18 1/4(b)
因為卷積神經網絡的特征,深層的特征圖有更大的感受野,可以看到更多的“背景信息”,適合檢測大目標。而淺層的特征圖感受野比較小,對小目標的檢測更適合。我們的方法有效地利用了大中型目標中的標注信息,但是對于小目標卻僅包含了較少的信息。為了提升小目標檢測的性能,本文添加了層級連接來引入底層中高分辨率的特征。對于網絡的2、3、4階段,卷積層數設置為3、2、1,每個連接都由3×3卷積層實現,除了網絡的最后一層外,每個層后面都跟著一個ReLu函數,這樣就引入了網絡中2、3、4階段后的特征,層級網絡結構如圖2所示。

圖2 層級網絡結構
為了驗證上述網絡模型的性能,我們在巴黎LaRa公開的Traffic Lights Recognition(TLR)交通信號燈數據集上進行實驗。TLR是一個交通信號燈識別的視頻數據,它是由法國一所大學從C3車輛中用相機傳感器Marling F-046C在真實的道路上采集的交通信號燈視頻,圖像分辨率為640×480。該數據集包含城市場景中交通燈識別的基本事實和基準,它有8分鐘的彩色視頻序列和9168個標注的交通燈實例??梢钥闯?,城市中的交通信號燈的情況非常復雜,一個路口可能有多個類型的交通信號燈,也可能有不同路口的交通信號燈,同時,每張圖里的信號燈大小也不盡相同。此外,在城市的道路場景中,還包好了各種車燈,其中包括容易與紅色信號燈混淆的汽車尾燈,如圖3所示。

圖3 交通信號燈數據集
本文采用目標檢測算法中常用的評價指標mAP(mean Average Precision)來評估性能。
在mAP指標中,精確度P(Precision)的計算公式為:

(6)
其中,TP(True Positive)是真正例,FP(False Positive)是假正例。
召回率R(Recall)的計算公式為:

(7)
其中,FN(False Negative)是假反例,即沒有檢測到的Ground Truth的數量。
得到精確度P和召回率R以后,采用PASCAL VOC的計算方式,將R分為11個點(0.0,0.1,0.2,…,1.0),計算每個召回率下的精確度,可以得到P-R曲線,AP(Average Precision)值就是P-R曲線下與坐標圍成的面積。再將所有類別的AP求和后再取平均就得到了mAP。
除了檢測準確度,目標檢測算法的另一個重要評估指標是速度,只有速度快,才能夠實現實時檢測,這一指標在交通信號燈的檢測和識別任務中更是尤為重要。我們用FPS(Frame Per Second)即每秒內可以處理的圖片數量來評估目標檢測的速度。
另外,為了對比網絡模型的執行效能,還加入了GFLOPS(Giga Floating-point Operations Per Second)評估指標,即每秒10億次的浮點運算數。而FLOPS的計算公式為:
FLOPS=2HW(CinK2+1)Cout
(8)
其中,H和W分別是卷積層輸入特征圖的長和寬,Cin是卷積層輸入特征圖的通道數,K是卷積核的大小,Cout是卷積層輸出特征圖的通道數。
然后,1GFLOPS=109FLOPS。
以下實驗所使用的硬件設備為:PC端為聯泰集群LT-5038A工作站,配置了一塊Intel Core e5-1650(12核)處理器和一塊NVIDIA GeForce 1080Ti(12GB顯存)GPU。使用的系統環境為Ubuntu18.04;采用的深度學習框架為PyTorch 1.5.0。
我們使用了ResNet作為使用的主干網絡。為了更好的進行訓練,同時保證數據集中的所有樣本都能保持原有的分辨率大小,實驗中對網絡的輸入進行正負0.1的平移,然后再對應進行正負0.1的尺度變化。經過尺度變化后,每個樣本的大小被填充到了640×480,并且沒有改變圖像的長寬比。對于,ResNet,初始化其學習率為1.25×10-7。另外,我們將ResNet的通道數減少為原來的1/4來降低GFLOPS。
首先,在不加入層級連接的情況下,通過將ResNet的通道數減少為原來的1/4和不減少ResNet的通道數進行對比實驗。然后,在將ResNet的通道數減少為原來的1/4的基礎上,加入層級連接,再進行實驗,結果如表1所示。

表1 實驗結果

ResNet18_0.2520.90.7374.79ResNet18_0.25Hierarchy U-net21.30.7512.50
由表1可見,將ResNet的通道數減少到原來的1/4后,檢測的精確度損失了約2%,但是檢測的幀數從6.9提升到了20.9,GFLOPS更是減少了71.5%。在加入層級連接后,檢測的精確度不再損失,幀數為21.3,GFLOPS進一步減少到2.5。
實驗結果表明,使用減少網絡的通道數并添加層級連接結構的改進TTFNet,可以在不損失檢測精確度的同時,明顯提升檢測的幀數,并且大幅減少網絡訓練需要的計算資源開銷,對于實時檢測交通信號燈具有應用價值。
通過減少ResNet的通道數,加入層級連接結構來改進TTFNet,提升了其在交通信號燈檢測的實時性,也減少了網絡訓練所需要的計算資源。但是對于這種方法在交通信號燈的檢測中,還可以繼續提升檢測的精確度,下一步將考慮繼續改進層級連接結構來構建出對交通信號燈檢測精確度更高的網絡模型。