潘衛國, 陳英昊, 劉 博, 石洪麗
(1.北京聯合大學 北京市信息服務工程重點實驗室,北京100101;2.北京聯合大學 機器人學院,北京 100027; 3.北京聯合大學 應用科技學院,北京 100101)
交通信號燈檢測和識別是無人駕駛和輔助駕駛領域的重要研究內容,能夠輔助司機,避免在通過路口時,由于交通信號燈判斷失誤導致的交通事故,提升駕駛的安全性。然而復雜的自然場景增加了識別算法的難度。
交通信號燈最顯著的特征是顏色和幾何形態,此外還有空間位置和結構特征。很多研究集中在如何結合這些特征來實現信號燈的檢測與識別。Yelal M R[1]提出了一種圓形交通信號燈檢測算法,僅能檢測圓形信號燈,且容易受背景干擾。 Chen Z L[2]通過顏色提取和斑點檢測來定位候選區域,再通過預訓練的主成分分析(PCA)網絡進行多分類,并應用跟蹤算法防止目標丟失。Soetedjo A[3]提出的方法通過設置閾值,分割得到紅色信號燈的位置;Shen Y[4]提出利用高斯分布,構建色調訓練三色參數,再分割獲得交通信號燈的顏色狀態信息;Omachi M[5]通過色彩分割,再提取邊緣,再霍夫圓變換檢測出交通信號燈,局限于圓形水平排列交通信號燈;Wang Z[6]提出了基于PCA+EDA的方式提取交通信號燈特征,再邊緣分割檢測出交通信號燈;曾玉龍[7]將RGB圖像轉換到S通道下,利用極大值穩定區域的方法進行檢測交通信號燈候選區;Guan H[8]等人利用了基于YUV顏色空間對圓形交通信號燈的特征進行識別。這一類方法經常會受到光照和環境的干擾。
另一類方法為融合全球定位系統(GPS)和先驗地圖的信號燈檢測識別,此類方法需要預先采集城市道路視頻數據,在視頻圖像中標記出信號燈的準確位置,并繪制先驗地圖;在實時階段,根據GPS和先驗地圖,計算出信號燈在圖像中的準確位置,以提高檢測的準確性。此類方法需要提前采集數據和繪制先驗地圖,前期工作量大,且當GPS定位不準確或車輛偏離正常路線時會降低檢測準確率。
目前,深度學習理論被廣泛應用于圖像識別和目標檢測領域,卷積神經網絡 (convolutional neural network,CNN)[9]可以在不進行預處理的情況下從大量樣本中學習特征,不僅避免了特征的設計難度,而且可以訓練更多的特征。常見的目標檢測算法有Yolo[10],SSD[11],R-CNN[12],Fast RCNN[13],Faster-RCNN[14,15]等。其中基于R-CNN方法最具代表性的就是Faster RCNN算法,根據RPN網絡產生候選區域,再對候選區域進行分類,這種方法是屬于Two-Stage;Yolo算法在速度上有著明顯的優勢,但是準確率偏低,SSD在檢測速度有一定損失,但在準確率上有一定程度的提升,該類方法都是在產生候選區域的基礎上進行分類和回歸,屬于One-Stage方法,相比Two-Stage具有更高的檢測速度。
本文采用基于Faster-RCNN的方法實現對路口交通信號燈的準確檢測識別。
Faster RCNN相比Fast RCNN消除了選擇性搜索算法,且添加了區域提議網絡,再使用感興趣區域(region of interest,ROI)池化層對預測的區域提議重新整型為固定大小,最后使用該池化層區域內的圖像進行分類和邊框回歸,提升了檢測速度。
Faster-RCNN將目標檢測的4個個基本步驟:候選區域生成、特征提取、分類和位置修正統一到一個深度網絡框架之內如圖1所示。首先對輸入任意尺寸大小的交通場景圖像進行卷積特征提取,然后通過區域建議網絡中滑動窗口機制得到區域建議以及區域得分,對于區域得分采用非極大抑制算法輸出前N個得分的區域建議,然后將其輸入到RoI池化層,通過該層得到區域建議特征,最后將其輸入到全連接層后輸出區域的分類得分以及區域位置。
特征提取:在圖像特征的提取上,CNN有著極其優越的特性,它的權值共享網絡結構使之更類似于生物神經網絡,降低了網絡模型的復雜度,減少了權值的數量。

圖1 Faster RCNN結構
區域建議網絡(region proposal network,RPN),是一個全卷積網絡,用于生成高質量的區域建議框。它和檢測網絡共享全圖的卷積特征,解決了原來的選擇性搜索方法的速度瓶頸,大大提高了目標檢測速度。RPN的結構如下圖2所示。

圖2 RPN
用一個滑動窗口在一個卷積特征圖上進行滑動,滑動操作獲得一個向量后,將這個向量送入到兩個平行的全連接層: 分類層和位置回歸層以得到分類信息和位置信息。每個滑動窗口的中心,對應k個anchor。每個anchor對應一種尺寸和長寬比。相應地在每一滑動窗口的位置,同時給出預測的候選域,位置回歸層輸出候選域的坐標編碼; 分類層輸出每個候選域是目標/非目標的概率。
目標識別:使用區域建議網絡生成建議區域之后,Faster-RCNN 使用 Fast-RCNN 進行檢測分類。
不同的特征提取網絡對最終的檢測效果也會有所影響;比較常用到的VGG16網絡有13個卷積層,每個卷積層的卷積核大小均為3×3,卷積步長為1,卷積核個數從最初的64依次增長到128,256,512,池化層卷積核大小為2×2,步長為2。ResNet主要思想是在標準的前饋神經網絡上,加一個跳躍繞過一些層的連接,每繞過一層就產生一個殘差塊,解決了增加深度帶來的退化問題,能夠通過單純地增加網絡深度來提高網絡性能。本文將基于Faster RCNN結合不同的特征提取模型實現對交通信號燈的檢測識別。
本文實驗的計算機配置為:CPU E5—2670v2,顯卡Gtx1070Ti,內存32 G,操作系統為Ubuntu16.04。同時也在智能車實驗平臺上進行了驗證,智能車實驗平臺如下圖所示,車輛配有:GPS,16線激光雷達,前視攝像頭和慣性導航等設備如圖3所示。

圖3 數據樣例及類別
國內外關于交通信號燈的數據集比較少,各地的交通信號燈差異較大;從表1中可以看出:目前國外的數據集因為存在著地域的差異,不能夠直接用于訓練模型;國內的數據集或是未公開,或是僅提供在線使用不能下載,鑒于此本文的數據來源為通過標注采集的交通場景圖像獲取。

表1 交通信號燈數據集
采集的地點城市包括;北京、天津、上海、蘇州、常熟、深圳、重慶等地;包含不同天氣,不同時間,不同季節的交通場景數據如圖4所示。對于采集的數據進行標注,標注的類別為箭頭和圓形交通信號燈如圖3所示;圓形信號燈三類,左轉箭頭信號燈三類,直行箭頭信號燈三類,右轉箭頭信號燈三類,共12類。標注過程中對于圖像中信號燈目標區域小于10像素×10像素的不予標注。
在采集的這些數據集中目前已經標注并應用于本文實驗的數據為9 700張圖像,其中,隨機抽取8 700張圖像作為訓練集,1 000張圖像作為測試集。
實驗過程中特征提取網絡分別選用VGG16,Resnet50和Resnet101,在不同的迭代次數下進行效果的比對。對比指標分別是準確率、召回率、平均精度均值和F1。準確率PRECISION=TP/(TP+FP);召回率RECALL=TP/(TP+FN)。其中,TP為指正樣本被正確識別為正樣本;TN為負樣本被正確識別為負樣本,FP為假的正樣本,即負樣本被錯誤識別為正樣本;FN為假的負樣本,即正樣本被錯誤識別為負樣本。F1=2×(PRECISION×RECALL)/(PRECISION+RECALL)。
用來衡量二分類模型精確度的一種指標,值越大說明模型越好。
表2中對比了分別使用三種特征提取網絡下準確率,召回率和F1,從表中可以看出,在當前規模的數據量訓練下,ResNet50網絡在準確率,召回率和F1三方面都要優于其他兩個特征提取網絡。

表2 數據集實驗結果 %
表3給出了分別使用三種不同特征提取網絡下處理單幀圖像所需的時間,從表中可以看出使用VGG16特征提取網絡的方法處理速度最快,隨著層數的增加RES101網絡處理的速度最慢。這符合正常的預期,因為層數越多模型越復雜,處理時間越長。

表3 三種算法的單張時間和FPS
圖4基于Faster RCNN框架下分別使用VGG16,ResNet50和ResNet—101三種不同的特征提取網絡在不同迭代次數下網絡模型的準確率情況,從表中可以看出整體的準確率情況為在使用ResNet50特征提取網絡下達到的。
綜合上述實驗,可以看出在現有訓練數據下,基于Faster-RCNN框架(ResNet50)的交通信號燈識別方法能夠達到最優的效果,ResNet101網絡盡管比ResNet50層數增加了,但是在現有規模數據集下,效果還不明顯,需要更大規模的數據訓練以提升模型的性能。

圖4 mAP對比
在實際的智能車平臺驗證過程中,ResNet50選為特征提取網絡,實現基于Faster-RCNN的交通信號燈路口識別,圖5為在實際交通場景中智能車在路口對于交通信號燈的識別效果圖。

圖5 檢測結果效果
本文基于Faster RCNN框架實現交通信號燈檢測與識別,分別對比了不同特征提取網絡下目標檢測識別的效果,在基本參數相同的情況下,根據實驗選取了最優的網絡作為特征提取網絡,并通過智能駕駛實驗平臺在真實的交通場景中驗證了本文所提出方法的有效性。下一步將繼續擴充標注數據的規模,充實樣本的多樣性以提升模型的性能。