王瑩 丁鵬
摘 要:交通信號燈的在線識別是無人駕駛和輔助決策系統(tǒng)中的重要研究內容,文章給出了一種基于深度學習的交通信號燈識別和分類方法,該方法使用YOLO(You Only Look Once)模型,基于Microsoft COCO 數據集的預訓練模型進行二次遷移學習:先使用Bosch數據集進行遷移學習,再使用自制數據集做遷移學習。測試表明該方法訓練后的模型具有較高準確率和實時性。同時,文章給出了基于檢測結果提取綜合路況信息的策略。
關鍵詞:深度學習;神經網絡;交通信號燈
中圖分類號:U665 文獻標識碼:B 文章編號:1671-7988(2018)17-89-03
Abstract: The online recognition of traffic lights is an important topic in unmanned and assisted decision-making systems. This paper presents a deep learning approach to traffic lights identification and classification. This method uses YOLO (You Only Look Once) model. The pre-training model of the COCO dataset is used for double-transfer learning: Bosch dataset is used for the first transfer learning, and self-made dataset is used for the secondary transfer learning. The test result shows that the model trained by this method has higher accuracy and real-time performance. Also, we presents a strategy for extracting comprehensive road condition information based on detection results.
Keywords: Deep Learning; Neural Networks; Traffic Lights
CLC NO.: U665 Document Code: B Article ID: 1671-7988(2018)17-89-03
前言
交通信號燈檢測和識別是無人駕駛和輔助駕駛領域的重要研究內容,國內外許多機構及研究者針對交通燈檢測和識別開展了研究。但大多研究內容都基于人工設置特征及檢測方法[1-4],這些方法在較為復雜環(huán)境中檢測和識別率不高,容易受到背景干擾、過爆、光暈、汽車尾燈,路燈和各種反射影響,造成誤檢或漏檢。
交通信號燈有許多不同的數量,位置,形狀,尺寸和布局,對于基于卷積神經網絡的深度學習算法,這些差異是很容易的——只需收集汽車駕駛區(qū)域中交通燈類型的示例。算法可以自主學習交通信號燈特征,減少了人工干預,能較好應對復雜的交通背景,排除各種干擾,提高識別效率。本文基于卷積神經網絡算法,利用二次遷移學習方法,訓練出了精度較高的交通信號燈識別模型,并提出了基于檢測信息的綜合應用策略。
1 數據集選取
1.1 公開數據集
深度學習中數據集是決定最終模型精確度的重要因素,目前包含交通信號燈的大型圖像數據集有ImageNet和COCO,針對交通信號燈的專門數據集有LISA、TLR、Bosch交通信號燈。
基于數據集分析可以看出,針對交通信號燈識別,COCO數據集具有更大數據量,基于COCO數據集的預訓練模型能很好地提取物體特征,辨識出信號燈。缺點在于分類中只有交通信號燈這一大類,不能識別具體的狀態(tài)。
Bosch交通信號燈[5]數據集給出了14中不同的紅綠燈狀態(tài),較好的覆蓋了圓形標志和箭頭標志,但樣本量偏小,同時存在樣本不均勻的現(xiàn)象:例如紅色直行、紅色右轉、綠色直行、綠色右轉等帶箭頭的紅綠燈樣本量明顯偏少。
1.2 自制數據集
為了克服以上數據集的缺點,我們基于無錫市濱湖區(qū)實際交通情況制作了小型數據集,圖片大小為1920x1280像素,共683張,其中標注紅綠燈樣本數一共1527個,分布情況如表3所示。
2 目標識別框架選取
當前主要基于深度學習的目標檢測算法包括基于候選區(qū)域(region proposal)的兩步檢測法:Faster R-CNN、Mask R-CNN,以及基于回歸的一步檢測法:YOLO、SSD。
權衡官網給定的計算性能和檢測精度比對數據,本文選取SSD_Inception_v2、Faster_RCNN_Inception_v2和YOLO v3基于COCO數據集的預訓練模型對比檢測效果。
論文[6]討論了使用不同深度學習框架時的權衡,指出SSD在識別中型和大型目標時效果較好,小目標時效果不如Faster RCNN。由于之后SSD、YOLO等算法均有改進版本,因此,本文以實際場景圖為例,比對不同方法的檢測效果。
從檢測比對效果圖看,SSD和Faster RCNN針對遠處較小交通信號燈的檢測均存在較明顯的漏檢現(xiàn)象,YOLO v3檢測結果最好,幾乎識別出了圖中所有的交通信號燈。故本文采用YOLO v3框架進行訓練學習。
3 模型訓練方法
遷移學習的優(yōu)勢在于,能將已訓練好的模型應用到新的模型訓練中,克服新模型樣本數少的問題,并且因為不需要從頭開始訓練整個網絡,能極大提高訓練收斂速度。
本文使用YOLO v3基于COCO數據的預訓練模型,使用Bosch交通信號燈數據庫做一次訓練,然后基于自制數據集做二次訓練,最終得到區(qū)分十種交通信號燈狀態(tài)的模型。
最終模型在自制測試數據集上取得的96.3%的準確率,圖6為測試效果。在CPU i7-7700HQ、GPU GTX1060機器上測試1080p視頻,處理速度為18 FPS。
4 綜合使用策略
要能根據信號燈狀況提供實時策略,僅僅辨別紅綠燈狀態(tài)還不行,應為會存在以下情況:
路口很多紅綠燈,有的并不是針對行駛方向的,屬于不需要關心的狀態(tài);
正對行駛方向的也可能應為兩個十字路口間隔較近,出現(xiàn)判出多個紅綠燈的情況。
故提取正對行駛方向最近的紅綠燈狀態(tài)是應用中必須克服的問題。
本文提出根據紅綠燈位置和提取區(qū)域大小綜合判斷的策略,步驟如下:
Step1.使用yolo算法提取所有紅綠燈區(qū)域。
Step2.將提取目標按區(qū)域大小排序。
Step3.按正對紅綠燈區(qū)域一般位于圖片中上方的原則進行過濾。
Setp4.將區(qū)域大小相近的前3個紅燈信息提取,空間距離較大且信息一致的視為一個。
Setp5.將提取信息按表4得出綜合結論。
5 結論
本文給出了一種基于深度學習的交通信號燈識別方法,創(chuàng)建了一個小型紅綠燈數據集,使用YOLO v3構架,提出了基于COCO數據集的二次遷移學習策略,并給出了檢測結果綜合使用策略。從訓練模型使用效果看,該模型識別準確率較高,實時性能較好,能為無人駕駛和輔助駕駛系統(tǒng)提供較好的支撐。
參考文獻
[1] 谷明琴,蔡自興,黃振威,何芬芬.城市環(huán)境中箭頭型交通信號燈的實時識別算法[J].中南大學學報(自然科學版),2013,44(04): 1403-1408.
[2] 武瑩,張小寧,何斌.基于圖像處理的交通信號燈識別方法[J].交通信息與安全, 2011, 29(3):51-54.
[3] 吳澤峰,張重陽,許明文.基于投影特征值的交通信號燈檢測與識別方法[J].現(xiàn)代電子技術,2016,39(09):160-163.
[4] 葛俊輝.交通信號燈檢測與識別算法研究[D].中南大學, 2014.
[5] Behrendt K, Novak L, Botros R. A deep learning approach to traffic lights:Detection,tracking,and classification[C] International Confer -ence on Robotics and Automation. IEEE, 2017.
[6] Huang J, Guadarrama S, Murphy K, et al. Speed/Accuracy Trade- Offs for Modern Convolutional Object Detectors[J]. 2016:3296- 3297.