翟煕照,韓同群,楊正才
利用視覺傳感器圖像處理技術實現(xiàn)前方車道線識別方法研究*
翟煕照,韓同群,楊正才
(湖北汽車工業(yè)學院,湖北 十堰 442002)
車道線識別方法的突破對于無人駕駛汽車的研究具有重大意義,文章分析了基于深度學習的兩種車道線檢測算法,利用了視覺傳感器圖像處理技術對車道線進行了識別,研究了語義分割的算法。視覺圖像處理則分別用目標檢測算法和語義分割算法對車道線進行了識別,對兩種算法做出了分析比較。研究結果表明:基于深度學習的語義分割網(wǎng)絡具有更好的車道線識別能力;能得到較為可靠的車道線邊界信息。文章的車道線識別方法可以為無人駕駛汽車提供較為可靠的車道線數(shù)據(jù)信息。
圖像處理;無人駕駛;深度學習;語義分割
二十一世紀無人駕駛技術已經(jīng)成為汽車行業(yè)最具吸引力的領域之一。無人駕駛是緩解因人為不當?shù)鸟{駛操作所帶來的大量交通事故和與日俱增的汽車數(shù)量所帶來的交通擁堵現(xiàn)象的重要手段。而車道線識別在這個過程中有著重大意義。
無人駕駛車輛在行駛過程中,需要實時了解前方車道線的信息,以確保行駛軌跡不會偏移,不會導致車輛離開可行駛路面或干擾到其他車道的車輛,從而減少安全事故的發(fā)生。車道線信息越精確,無人駕駛的安全性就越高,這就對于車道線檢測方法提出了挑戰(zhàn)。
基于車道線檢測是無人車系統(tǒng)里感知模塊的重要組成部分。利用視覺算法的車道線檢測解決方案是一種較為常見的解決方案[1]。視覺檢測方案主要基于圖像算法檢測出圖片中行車道路的車道線標志區(qū)域。
本文的Faster R-CNN網(wǎng)絡模型是基于MATLAB建立的,通過借用MATLAB基礎網(wǎng)絡模型,對目標網(wǎng)絡的構建進行改進和完善,這個過程叫做遷移學習[2]。
從圖1中可以看出該網(wǎng)絡的整體網(wǎng)絡層次布局,拋開輸入層,接下來的是五層特征提取層和用于分類的三層全連接層。該網(wǎng)絡使用的是ReLU激活函數(shù),而在這之前有sigmoid和tanh兩種函數(shù),這兩種函數(shù)都有著一定的缺陷,那就是飽和性,在訓練網(wǎng)絡的時候極易發(fā)生飽和,而導致網(wǎng)絡訓練速度緩慢,ReLU激活函數(shù)在這方面有了質(zhì)的提升。采用GPU訓練,在精度方面有所提升。還有就是利用重疊池化來減小過擬合。在網(wǎng)絡的最后一層,是一個分類函數(shù)層,可對1000種目標進行分類,由于網(wǎng)絡結構層數(shù)較少,識別能力不是很好。本章還用了另外一個基礎網(wǎng)路ResNet50網(wǎng)絡,ResNet50網(wǎng)絡的層數(shù)明顯比前者更多,結構更加復雜,提取特征的能力更強。
圖1 AlexNet網(wǎng)絡結構
基于MATLAB深度學習工具,本文將以ResNet50網(wǎng)絡為例,通過以下步驟逐步構建本文需要的Faster R-CNN網(wǎng)絡[3]模型:
(1)添加ResNet50基礎網(wǎng)絡;
(2)刪除后三層,即全連接層,添加新的分類圖層;
(3)添加邊界框回歸圖層;
(4)添加ROI池化層;
(5)添加RPN網(wǎng)絡。
對于深度學習網(wǎng)絡來說,數(shù)據(jù)集是決定網(wǎng)絡識別目標能力的關鍵。所以在收集數(shù)據(jù)集的時候,需要多種不同情況下的車道線圖像。
1.3.1采集數(shù)據(jù)集
本文的Faster R-CNN網(wǎng)絡是利用基礎網(wǎng)絡進行再次學習,而基礎網(wǎng)絡是已經(jīng)有一定的識別分類能力。然而并不能檢測車道線,在這方面就需要進行針對性地訓練。本次的數(shù)據(jù)圖集來源是車輛上的行車記錄儀,從記錄儀視頻中進行截取有代表性的車道線圖片,共165張圖片。
在這165張圖片中,本文選取了白天、夜晚陰影下、多車道、車輛遮掩等一系列的車道線圖片集。選取標準為質(zhì)量較好的,車道線較為清晰的圖片,參考圖2車道線圖片。
圖2 車道線圖片
1.3.2標記數(shù)據(jù)集
本文的數(shù)據(jù)集標注是基于MATLAB下的Image Labeler標記工具,逐步對165張車道線圖片進行標注。從行車記錄儀中的視頻截取下的圖片尺寸較大,多余信息過多,在這里對圖片進行的一些處理。借助圖片處理工具,將圖片進行了裁剪,主要保留了車道線部分,將其余的不必要部分剪掉。這樣既能突出本文的主要目標車道線,也減小了圖片的尺寸,對數(shù)據(jù)集的標記和網(wǎng)絡的訓練都有一定的幫助,主要是可以節(jié)約訓練網(wǎng)絡的時間,效果見圖3。
圖3 標注圖
這個標記完的生成的.mat文件就是本次的訓練樣本集,而測試集是選取了從學校圖書館附近拍攝的一張真實場景的路面車道線圖片。
將構建好的Faster R-CNN網(wǎng)絡模型,以及訓練用的table類型文件的數(shù)據(jù)集添加到MATLAB工作區(qū)。
1.4.1訓練
此時網(wǎng)絡和數(shù)據(jù)集都已經(jīng)準備好了,接下來是設置網(wǎng)絡訓練參數(shù):
(1)MiniBatchSize代表一次能處理多少個數(shù)據(jù),選用的是4。
(2)InitialLearnRate代表學習率,設置過大可能導致模型不會收斂,過小則會收斂地太慢,這也間接影響網(wǎng)絡訓練的速度和最終的效果。考慮到這些影響,本文將參數(shù)設置為1e-4。
(3)MaxEpochs是計算的輪數(shù),它的值越大越容易收斂,設置為20。
(4)ExcutionEnviroment是訓練的環(huán)境,這里沒有相應的GPU配置,所以只能選用CPU訓練。
參數(shù)設置好了,接下來就可以開始訓練了。執(zhí)行訓練命令,直到網(wǎng)絡訓練完成。
1.4.2結果分析
兩個網(wǎng)絡訓練完成后,用測試圖片進行測試,結果見圖4。
圖4 目標檢測對比圖
從上面的結果可以知道,基于ResNet50建立的網(wǎng)絡的檢測能力明顯優(yōu)于Alexnet。這是因為ResNet50網(wǎng)絡結構比Alexnet更加復雜,網(wǎng)絡層數(shù)更深,提取物體特征的能力更強。本來車道線的特征就不是很明顯,顏色方面以白色為多見,然而白色很容易與其他的特征混淆,其中天空和陽光的尤為明顯。還有大多數(shù)真實場景下的車道線并不完整,顏色暗淡,也增加了識別的難度。
表1 數(shù)據(jù)對比
網(wǎng)絡深度的增加,精準度也隨之上升,網(wǎng)絡的訓練則需要更多的時間。ResNet50網(wǎng)絡具有更多的卷積層,對目標物體特征的提取更為精確,所以識別能力也就更強。同時深度的增加會導致訓練時間的增加,因為層數(shù)增加會帶來更多的參數(shù),提取特征次數(shù)也會增加。
隨著深度學習的深入研究,CNN網(wǎng)絡也被用來對圖像進行分割[4]。相較于對目標進行檢測,語義分割需要完成的任務更多。不僅僅是識別目標,像目標檢測那樣把目標物體用檢測框框出其位置,語義分割把目標的位置信息更加明確,能夠檢測出目標物體的邊界信息。對于無人駕駛,這種識別方式所得到的信息更為精確,為無人駕駛車輛能夠在車道上正常行駛提供了安全保障。
本文構建的分割網(wǎng)絡是SegNet網(wǎng)絡模型,同樣也是基于MATLAB做遷移學習。以VGG16基礎網(wǎng)絡為預訓練網(wǎng)絡,搭建SegNet分割網(wǎng)絡模型。
2.1.1基礎網(wǎng)絡
本文之所以要選用VGG16網(wǎng)絡為基礎網(wǎng)絡,主要是因為該網(wǎng)絡具有以下幾個優(yōu)點:
(1)在大部分基礎網(wǎng)絡中,其分類性能較好。
(2)VGG16網(wǎng)絡的結構非常整齊,有利于對其進行修改。
(3)對于大部分數(shù)據(jù)集,VGG16網(wǎng)絡都有比較好的適應性。
(4)VGG16網(wǎng)絡在目標檢測中表現(xiàn)良好。
圖5 VGG16網(wǎng)絡結構
VGG16網(wǎng)絡具有其獨特的結構,使用3個3×3的卷積核替代一個7×7的卷積核,這樣做不但提升了網(wǎng)絡的深度,也沒有改變感知野,提升了網(wǎng)絡檢測效果。VGG16網(wǎng)絡模型以ImageNet數(shù)據(jù)庫的子集為訓練對象,該模型在ImageNet大規(guī)模視覺識別挑戰(zhàn)(ILSVRC)中取得了優(yōu)異的成績[5,6]。VGG16網(wǎng)絡除了擁有16個卷積層,剩下的就是全連接層,其核心是16個卷積層,即使是對于比它更復雜的VGG19網(wǎng)絡,VGG16網(wǎng)絡的檢測能力也毫不遜色。
2.1.2建立網(wǎng)絡模型
建立分割網(wǎng)絡模型的本質(zhì)是將VGG16網(wǎng)絡從分類網(wǎng)絡修改為分割網(wǎng)絡。
SegNet網(wǎng)絡模型是一個全卷積網(wǎng)絡,所以VGG16網(wǎng)絡的全連接層需要去掉[7]。特征圖進入全連接層,需要進行尺寸統(tǒng)一,而對圖片尺寸進行修改會破壞其空間結構。去掉全連接層不但可以解決這些問題,還使得網(wǎng)絡成為全卷積網(wǎng)絡而更易訓練。
然后使用segnetLayers創(chuàng)建利用VGG16權重初始化的SegNet網(wǎng)絡。segnetLayers會自動執(zhí)行傳輸VGG16中的權重所需的網(wǎng)絡操作,并添加語義分割所需其他網(wǎng)絡層。
圖6 SegNet網(wǎng)絡結構
由于VGG16分類網(wǎng)絡中還存在著池化層,而特征圖在經(jīng)過降維操作時,會失去部分幾何結構信息,而分割網(wǎng)絡為了更為精準地得到目標的邊界信息,非常需要這部分流失的信息。SegNet網(wǎng)絡采用了基于編解碼的結構來解決這個問題,編碼器和解碼器之間有信息交換。編碼器負責減小特征分辨率,提取高級語義信息,解碼器則是恢復幾何結構信息。SegNet網(wǎng)絡的編碼器部分是使用VGG16網(wǎng)絡的前13層卷積網(wǎng)絡,編碼器和解碼器是一一對應的,解碼器地輸出送入softmax分類。
刪除網(wǎng)絡的全連接層,然后加入編解碼器和分類器就完成了SegNet網(wǎng)絡的建立。
本文所用的數(shù)據(jù)集是CamVid數(shù)據(jù)集[8],該數(shù)據(jù)集是第一個含有對象類語義標簽的圖集。數(shù)據(jù)集中的所有圖片都是經(jīng)車載攝像頭在英國真實的街道拍攝的,每一張都是真實圖片。該數(shù)據(jù)集包含有白天和夜晚拍攝的車道線圖片,整體環(huán)境條件變化較大。
圖7 原圖(上)和標注圖(下)
CamVid數(shù)據(jù)集一共為圖片定義了32個語義類(Buil -ding、Wall、Tree、Vegetation、Fence、Pavement、Parking、Pole、Traffic Cone、Bridge、Mark、Light、Sky等),所有圖片的標注工作由工作人員完成,將圖片中的每一個像素分別于32個類別相關聯(lián)。
2.3.1訓練準備工作
本文主要是對車道線及其道路信息進行識別,所以數(shù)據(jù)集圖片中有一部分信息是可以忽略的。剛剛提到了數(shù)據(jù)集中定義32個語義類別,其中大部分不屬于本文需要識別的。所以將數(shù)據(jù)集從32類標簽縮減為10個類別。它們分別為Environment、Building、Pole、Road、Lane、Pavement、Signsymbol、Car、Pedestrian和Bicyclist。將其中多個標簽分類到同一個組里;其中“Car”這一個標簽就基本代表了所有類別的車輛。
CamVid數(shù)據(jù)集中所有圖片的大小是720×960,為了減少網(wǎng)絡訓練的時間,將圖片和像素標簽圖進行了調(diào)整,改變大小為360×480。整個調(diào)整過程大概用了180s左右。
本文數(shù)據(jù)集是將全部圖片中的百分之六十作為訓練集,其余圖片全部為測試集。最終得到了99張用于網(wǎng)絡訓練,66張用于網(wǎng)絡測試。
在訓練之前需要對數(shù)據(jù)集標簽信息進行一個統(tǒng)計,查看標簽分布情況。從下表可以看出不同的像素標簽所占的比例是不一樣的,車道線的占比并不是很高,所以訓練時使用類權重平衡[8]。
表2 標簽占比表
2.3.2訓練網(wǎng)絡
準備之后就開始訓練,下圖是訓練過程:
圖8 分割網(wǎng)絡訓練圖
由于條件限制,選用CPU來完成整個訓練任務。一共12600次迭代,可以從上圖中看出,一共花費了6872分鐘,接近5天的時間才完成。深度學習網(wǎng)絡要想有好的識別能力,一般都需要大數(shù)據(jù)去訓練,這就要耗費大量的時間。
由于迭代次數(shù)較大,所以圖中線條區(qū)分不是很清楚。圖的上半部分代表的是識別率,藍顏色的實線代表的是網(wǎng)絡在訓練圖上的表現(xiàn),黑顏色的虛線則是測試圖上的表現(xiàn),訓練集的精準度肯定高于測試集;下半部分是誤差估計,紅顏色的實線代表的是在訓練圖上的表現(xiàn),黑顏色的虛線則是測試圖上的表現(xiàn),訓練集的誤差估計肯定低于測試集。
網(wǎng)絡訓練完成后,隨機選取測試集中的一張圖像測試網(wǎng)絡。
圖9 測試結果圖
表3 評估表
對整個測試集進行網(wǎng)絡測試,統(tǒng)計所有測試結果中的類別標簽指標,得出網(wǎng)絡評估信息。上表中第二列是精準度,可以看出車道線的識別準確度還是挺高的;第三列是交叉聯(lián)合指標,主要代表視覺效果,車道線在這方面還有欠缺。第四列是平均得分情況,車道線從整體來看還是表現(xiàn)不錯的。
本文還準備對其他圖像進行識別,以此來檢測一下分割網(wǎng)絡的實用情況。這些圖片同樣是從行車記錄儀視頻中截取得到的。行車記錄儀拍攝得到的圖像,下部分包含有拍攝車輛的信息,為了避免這部分的影響,特將它裁減掉了。下面是檢測結果:
圖10 檢測圖
圖11 檢測圖
在真實的行駛環(huán)境下,針對車道線的識別,分割網(wǎng)絡的表現(xiàn)總的來說還是不錯的。從上面的四張檢測圖來看,圖像中的車道線都被識別出來了,邊界信息也大多都是完整的。分割網(wǎng)絡能很好地描述周圍環(huán)境信息,告知行駛車輛前方車道線的具體情況。
選取學校圖書館附近拍攝的一張車道線圖片,下面分別用目標檢測和語義分割兩種識網(wǎng)絡進行識別,結果如下見圖12。
圖12 目標檢測與語義分割對比圖
從上面的結果圖對比來看,語義分割的表現(xiàn)明顯優(yōu)于目標檢測。目標檢測只對部分車道線進行了識別,識別率也不是很高。中間那條車道線,分割網(wǎng)絡基本識別出來了,效果還不錯。兩邊的車道線由于目標太小,特征不夠明顯,分割網(wǎng)絡也只能對部分進行識別。
目標檢測是找到給定目標所在的矩形框,如圖12左,但是車道線不同于其他的物體,它是一條連續(xù)的線狀物體,范圍太廣。如果只是簡單地識別出車道線,不用在乎車道線具體的位置,目標檢測是沒有太大問題的。但是,本文研究識別車道線的意義是為實現(xiàn)無人駕駛技術。目標檢測并不太適合用于識別車道線,因為以框圖的形式很難表達車道線的信息特征。
而語義分割會對圖像中的每個像素點分類,并進行歸類。如圖12右,車道線是以紅色區(qū)域表示出來的,這種表現(xiàn)方式給人的視覺效果很明顯,一目了然。這種識別方式可以很好地凸顯車道線的邊界信息,提供準確的車道線位置。紅色區(qū)域就是車道線,綠色區(qū)域是可行駛路面。語義分割能把一個場景區(qū)分為多個區(qū)域,為無人駕駛車輛規(guī)劃行駛路徑提供可靠參考。
本文主要研究了兩種基于深度學習的車道線識別算法:目標檢測是用于目標提取的檢測網(wǎng)絡;語義分割則是用于像素分類的分割網(wǎng)絡。
目標檢測從兩種不同深度的基礎網(wǎng)絡,分別構建Faster R-CNN網(wǎng)絡。利用制作好的數(shù)據(jù)集分別訓練這兩個不同的網(wǎng)絡,最終結果表明具有更深網(wǎng)絡結構的ResNet50基礎網(wǎng)絡的表現(xiàn)明顯優(yōu)于只有8層結構的AlexNet基礎網(wǎng)絡。較深網(wǎng)絡有好的識別能力,在訓練時也相應需要更長的時間。
語義分割是采用了結構較為完整的VGG16網(wǎng)絡做遷移學習,建立SegNet網(wǎng)絡。對數(shù)據(jù)集進行調(diào)整,縮減標簽分類,凸顯主要信息。語義分割大量的時間都是花在網(wǎng)絡的訓練上,訓練后的網(wǎng)絡在實際行駛環(huán)境下表現(xiàn)不俗。
本文是基于無人駕駛來做研究,所以必須結合現(xiàn)實無人駕駛行駛環(huán)境來說。用目標檢測來識別車道線,只能知道有無車道線和車道線的大概位置。而語義分割不僅能檢測出車道線,還能知道車道線的邊界信息。利用視覺傳感器圖像處理技術實現(xiàn)前方車道線識別方法表明:語義分割對于無人駕駛來說是一種較好的車道線識別方法。
[1] 段峰,王耀南,雷曉峰,等.機器視覺技術及其應用綜述[J].自動化博覽,2002,19(3):59-61.
[2] 余凱,賈磊,陳雨強,等.深度學習的昨天、今天和明天[J].計算機研究與發(fā)展, 2013,50(9):1799-1804.
[3] Ren S Q, He K M, Girshick R,et al.Faster R-CNN: Towards real-time object detection with region proposal networks[C].IEEE Transac -tions on Pattern Analysis & Machine Intelligence, 2015.
[4] Jonathan Long, Evan Shelhamer, Trevor Darrell. Fully convolutional networks for semantic segmentation. Computer Vision and Pattern Recognition. Boston, MA: IEEE,2015:3431-3440.
[5] Badrinarayanan, Vijay, Alex Kendall, and Roberto Cipolla. "SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation." arXiv preprint arXiv:1511.00561, 2015.
[6] Brostow, Gabriel J., Julien Fauqueur, and Roberto Cipolla. "Semantic object classes in video:A high-definition ground truth database." Pattern Recognition Letters Vol 30, Issue 2,2009, pp 88-97.
[7] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C].Computer Vision and Pattern Recogni -tion.IEEE,2015,3431-3440.
[8] Kim J,Lee M. Robust Lane Detection Based On Convolutional Neu -ral Network and Random Sample Consensus[M].//Neural Informa -tion Processing. Springer International Publishing,2014:454-461.
The Method of Lane Identification in Front is Studied by using Visual Sensor Image Processing Technology*
Zhai Xizhao, Han Tongqun, Yang Zhengcai
( Hubei Institute of Automobile Engineering, Hubei Shiyan 442002 )
In this paper, two lane lane detection algorithms based on deep learning are described, and lane lane is identified by visual sensor image processing technology. In visual image processing, lane lines are identified by target detection algorithm and se- mantic segmentation algorithm, and the two algorithms are analyzed and compared. The results show that the semantic segmentation network based on deep learning has better lane lane recognition ability. Reliable lane boundary information can be obtained. The br- eakthrough of lane line identification is of great significance to the research and development of driverless cars. The lane line identi-fication method in this paper can provide reliable lane line data information for driverless cars.
Image processing; Unmanned; Deep learning; Semantic segmentation
10.16638/j.cnki.1671-7988.2021.06.010
U463.5
A
1671-7988(2021)06-29-06
U463.5
A
1671-7988(2021)06-29-06
翟煕照(1995-),男,碩士研究生,就讀于湖北汽車工業(yè)學院,研究方向:汽車動力學仿真。韓同群,男,教授,主要從事汽車及發(fā)動機仿真研究。
“汽車動力傳動與電子控制湖北省重點實驗室,汽車零部件技術湖北省協(xié)同創(chuàng)新項目(2015 XTZX0425)。