程泊靜 劉紅業 胡鴻飛 劉洋



摘 要:在車路協同環境下,為了提高智能汽車的行駛安全性,需要針對前車實時檢測與識別進行研究。當前的前車識別系統中存在著成本高昂、系統穩定性差和無法對移動車輛進行準確定位等一系列問題。本文中使用單目攝像頭進行前車識別系統設計,并基于YOLOv3來實現前車的實時檢測、位置跟蹤和識別。通過在車輛端和路側端上的攝像頭布置該系統進行實驗與理論驗證,發現本系統有較好的識別精度和較高的性價比。
關鍵詞:單目相機 前車識別 YOLOv3
A Design of Vehicle Front Recognition System Based on Monocular Vision
Cheng Bojing,Liu Hongye,Hu Hongfei,Liu Yang
Abstract:In a vehicle-road collaborative environment, in order to improve the driving safety of smart cars, it is necessary to conduct research on real-time detection and recognition of the preceding vehicle. The current front vehicle recognition system has a series of problems such as high cost, poor system stability and inability to accurately locate moving vehicles. In this paper, a monocular camera is used to design the vehicle in front of the system, and based on YOLOv3 to realize the real-time detection, position tracking and recognition of the vehicle in front. Through the arrangement of the camera on the vehicle end and the roadside end of the system for experimental and theoretical verification, it is found that the system has better recognition accuracy and excellent performance.
Key words:monocular camera, vehicle in front recognition, YOLOv3
無人駕駛技術是目前國內外研究的重點技術之一,不論對政府還是企業來說,都具有極大的研究價值與應用意義[1]。跟車工況是指汽車在行駛過程中跟隨前車并保持安全車距的一種駕駛工況,這是汽車行駛過程中最常見且最重要的工況之一。對于無人駕駛汽車來說,跟車工況的執行情況直接關系到汽車的安全性和舒適性,因此也決定了人們對無人駕駛技術的接受程度[2]。前車識別是實現跟車工況執行的關鍵技術之一,良好的前車識別技術讓實現自動駕駛普及成為可能[3]。
1 前車識別算法
1.1 傳統的前車識別方法
傳統的前方車輛識別方法主要通過特定區域框選和手工特征提取后進行機器學習來實現。這些算法主要是包括對前方車輛進行目標提取和目標識別兩個過程[4]。常見的算法有:AdaBoost(自適應提升)+Harr(監督分類器)、SVM(支持向量機)+HOG(方向梯度直方圖)、DPM(可變組件模型)算法等。這些算法普遍無法適應復雜的實時路況下前車識別,例如:SVM+HOG算法很難處理遮擋問題,車輛方向發生變化時也不易檢測;DPM算法雖然直觀簡單、運算速度快,但激勵特征人為設計,工作量大,無法適應大幅度的旋轉,穩定性很差。雖然這些算法無法適應車路協同、自動駕駛條件下的前車識別要求,但因為其成本低、技術成熟而被廣泛應用于固定車牌識別、人臉識別等應用場景。
1.2 基于深度學習的前車識別方法
當前,基于深度學習的前車識別方法主要有R-CNN、SSD以及 YOLO系列等[5]。R-CNN和Fast R-CNN、Faster R-CNN等模型需要對一個區域進行候選框提名,并將候選框帶入卷積神經網絡進行運算,因此在復雜環境下容易造成候選框過多、運算量極大,從而導致識別速度降低。而 SSD 和YOLO 系列是一個網絡直接回歸出目標的類別和位置,不存在R-CNN的問題,因此目前被更廣泛的應用于車路協同、自動駕駛環境下的前車識別系統中。值得一提的是,經過學者們反復實驗驗證發現,SSD模型會因為環境復雜度的增加而導致運行速度下降。因此在目前的軟硬件條件下,選擇YOLO系列將更加合適。
2 YOLO系列模型概述
YOLO(You Only Look Once),YOLO沒有顯示求取region proposal的過程,因此與R-CNN相比,YOLO統一為一個回歸問題,而R-CNN將檢測結果分為兩部分求解。
YOLOv1的核心思想是將整張圖片作為網絡的輸入(類似于Faster-RCNN),直接在輸出層對BBox的位置和類別進行回歸。實現方法是將一幅圖像分成SxS個網格(grid cell),如果某個對象的中心落在這個網格中,則這個網格就負責預測這個對象(如下圖1所示)。
YOLOv2相對v1版本,提出了聯合訓練算法,這種算法可以把這兩種的數據集混合到一起。使用一種分層的觀點對物體進行分類,用巨量的分類數據集數據來擴充檢測數據集,從而把兩種不同的數據集混合起來。在繼續保持處理速度的基礎上,識別對象和識別準確度均有較大提升(如圖2所示)。
YOLO v3的模型增加了一定的復雜性,可以通過改變模型結構的大小來權衡速度與精度。YOLO v3在識別圖像時會利用了圖像中的全局信息,通過單一網絡評估進行預測。這令 YOLOv3 非常快,一般它比 R-CNN 快 1000 倍、比 Fast R-CNN 快 100 倍。YOLO v3使用Darknet-53(網絡結構如圖3所示)作為基礎網絡來提取圖像特征進行識別。
2020年以來,YOLO v4和YOLO v5相繼推出,它們的檢測速度更快、模型更小因此更適合布置在終端設備上,但在前車識別系統中能否穩定、可靠、精準的應用還有待考證。
3 實驗與結果分析
實驗環境:模型使用 python3.6 進行編譯和測試,對應的開發工具 Pycharm,主計算機視覺庫 Python-OpenCv3.4.2,操作系統 Windows10,CPU 為 i9-9900K 的十六核處理器,主頻 3.60GHz,顯卡 GeForce RTX 2080Ti,內存 64GB,硬盤容量 1TB SSD。
硬件平臺:
車載實驗平臺:北汽EU150自動駕駛汽車,FLIR單目攝像頭(如下圖4所示)。
路側實驗平臺:大華單目攝像頭(槍機),如下圖5所示。
實驗結果:
將路側視頻輸入識別系統后,效果如圖6所示。
利用line命令統計越線的車輛總數與人工計數,每次計算十分鐘,總共截取視頻50段,比較后發現系統識別效果如下表1所示。
4 結語
為了提高車路協同、無人駕駛環境下,智能車輛跟車工況的安全性,本文利用YOLOv3模型開發除了一種基于單目視覺的前車識別系統。該系統能極大的提高智能車輛在復雜環境下的車輛識別效率、速度,從而達到提高車輛安全綜合性能的目的。目前,車輛識別系統在對于轎車、越野車、公交車等各種車輛識別效果上有不俗的表現,但對于行人識別效果上仍有進一步改進的空間。
湖南省教育廳科學研究課題:基于無人駕駛汽車跟車工況的制動控制技術研究(18C1463)。
參考文獻:
[1]程泊靜,陳剛,陳標,李治國.純電動自動駕駛觀光車的制動防抱死系統設計與研究[J].裝備制造技術,2018(03):54-57.
[2]朱敏,陳慧巖.無人駕駛越野車輛縱向速度跟蹤控制試驗[J/OL].機械工程學報:1-7[2018-12-04].
[3]顧恭,徐旭東.改進YOLOv3的車輛實時檢測與信息識別技術[J/OL].計算機工程與應用:1-17[2020-11-11].
[4]陳高攀,徐美華,王琪,郭愛英.一種基于單目視覺的前方車輛檢測算法[J].上海大學學報(自然科學版),2019,25(01):56-65.
[5] 許洋,趙亞男,高利,高峰.基于單目視覺的車輛檢測與跟蹤[J].激光雜志,2020,41(05):18-22.