張 林
深度學(xué)習(xí)的車道線檢測方法
張 林
(西安汽車職業(yè)大學(xué) 智能制造工程學(xué)院,陜西 西安 710600)
隨著人工智能技術(shù)的不斷發(fā)展,無人駕駛技術(shù)已經(jīng)成為當(dāng)下社會(huì)發(fā)展的熱門,車道線檢測是無人駕駛技術(shù)的關(guān)鍵一環(huán),但傳統(tǒng)的基于視覺的車道線檢測方法處理時(shí)間較長、過程繁瑣、需要人為干預(yù)?;谏疃葘W(xué)習(xí)的車道線檢測可大大減少此類問題。文章設(shè)計(jì)了一個(gè)完成雙任務(wù)的Enet網(wǎng)絡(luò),分別解決目標(biāo)區(qū)域分割問題和不同車道區(qū)分問題,以實(shí)現(xiàn)端到端的檢測。與主流車道線檢測網(wǎng)絡(luò)模型deeplab v3和YOLO v3進(jìn)行對比。實(shí)驗(yàn)驗(yàn)證表明,網(wǎng)絡(luò)模型的最終訓(xùn)練準(zhǔn)確率為99.8%,相對于deeplab v3和YOLO v3網(wǎng)絡(luò)分別提升1.2%和0.8%。
車道線檢測;深度學(xué)習(xí);端到端;實(shí)例分割
無人駕駛的相關(guān)概念最早由美國國防部于1980年提出,主要通過人工智能、自動(dòng)化、通信以及計(jì)算機(jī)等相關(guān)技術(shù)的融合來實(shí)現(xiàn)車輛的自主決策[1]。無人駕駛汽車實(shí)質(zhì)上為軟件和硬件共同協(xié)作的產(chǎn)物,首先需要搭建多種車載傳感器用以接收和感知周圍的環(huán)境信息,再通過處理器對各種輸入信息進(jìn)行處理,并根據(jù)已處理的信息最終完成對汽車的控制[2]。
其中,感知作為無人駕駛技術(shù)的基礎(chǔ),必須保證較高的準(zhǔn)確率和魯棒性才能確保后續(xù)的處理部分正常運(yùn)行。而車道線檢測作為感知環(huán)節(jié)中的重要一步,出現(xiàn)了多種的檢測方法,傳統(tǒng)的車道線檢測方法處理過程較為繁瑣,其核心部分為邊緣特征的提取和特征點(diǎn)的擬合,檢測率容易受到環(huán)境因素影響且運(yùn)算速度較慢,更重要的是在面對不同環(huán)境條件時(shí),需要人工選擇濾波算子,并進(jìn)行手動(dòng)調(diào)參,工作量大的同時(shí)穩(wěn)定性較低[3]。
Xiao J S等[4]提出了一種基于道路結(jié)構(gòu)模型和擴(kuò)展卡爾曼濾波的新算法,通過邊緣點(diǎn)所選的線參數(shù)檢測相應(yīng)的直線,利用車道邊界點(diǎn)的坐標(biāo)估計(jì)車道參數(shù),再通過擴(kuò)展卡爾曼濾波器對其進(jìn)行更新。Byambaa等[5]提出了一種基于卡爾曼濾波的無人駕駛車道檢測算法,利用卡爾曼濾波中的拋物線方程和圓方程模型來估計(jì)車道線的參數(shù),該方法對曲線車道有著較好的表現(xiàn)。Zhang Z C等[6]提出了一種新的車道線處理算法,在Caltech lane數(shù)據(jù)集上可以達(dá)到97.2%的識(shí)別率。Wang Q D等[7]利用邊緣點(diǎn)曲率來確定感興趣區(qū)域,并對曲率區(qū)域進(jìn)行映射,得到與曲率參數(shù)對應(yīng)的車道線
近年來,隨著人工智能領(lǐng)域的不斷發(fā)展,產(chǎn)生了基于深度學(xué)習(xí)技術(shù)的車道線檢測方法,對于不同環(huán)境下的檢測均有良好的表現(xiàn),并且隨著硬件性能的提升和深度學(xué)習(xí)技術(shù)的進(jìn)步,算法的表現(xiàn)也在不斷地提高。Ding L等[8]以VGG16為卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),利用空洞卷積提取車道線特征,將車道線分為虛線和實(shí)線,并結(jié)合實(shí)例分割,最后通過擬合實(shí)現(xiàn)對車道線的檢測,該方法在速度和精度間取得了很好的平衡。Haddad等[9]提出了一種車道線全自動(dòng)分割的新模型,該分割算法采用多分辨率處理算法,逐步增加比例因子和主動(dòng)輪廓控制點(diǎn),檢測準(zhǔn)確率較高,且算法實(shí)時(shí)性強(qiáng)。Xiao D G等[10]提出了一種車道線檢測的DNN,對像素之間的依賴關(guān)系和通道依賴關(guān)系進(jìn)行同步建模,這種方法與常規(guī)建模方法相比,只需要較少的參數(shù)和卷積運(yùn)算,極大地提升了運(yùn)算速度。Nguyen等[11]提出了一種混合深度學(xué)習(xí)和高斯處理(DL-GP)的網(wǎng)絡(luò),該網(wǎng)絡(luò)結(jié)合了一個(gè)緊湊的卷積編譯碼網(wǎng)絡(luò)和一個(gè)強(qiáng)大的非參數(shù)分級(jí)GP分類器,可以有效地緩解網(wǎng)絡(luò)訓(xùn)練過程中的過擬合問題,同時(shí)保持著優(yōu)秀的檢測能力。
本文提出一種網(wǎng)絡(luò)模型,在保證檢測準(zhǔn)確率和檢測速度的同時(shí),實(shí)現(xiàn)端到端檢測,同時(shí)針對現(xiàn)有的開源數(shù)據(jù)集做了一定補(bǔ)充,以提升網(wǎng)絡(luò)模型的穩(wěn)定性和廣泛性。
過去常用的目標(biāo)檢測網(wǎng)絡(luò)模型都屬于非端到端模式,非端到端網(wǎng)絡(luò)的輸入端不是直接的原始數(shù)據(jù),而是在原始數(shù)據(jù)中提取的特征,這一點(diǎn)在圖像問題上尤為突出,因?yàn)閳D像像素?cái)?shù)太多,數(shù)據(jù)維度高,會(huì)產(chǎn)生維度災(zāi)難,所以原來的一個(gè)思路是提取圖像的一些關(guān)鍵特征,即圖像感興趣區(qū)域提取,這實(shí)際就是一個(gè)降維的過程。特征提取的好壞異常關(guān)鍵,甚至比學(xué)習(xí)算法還重要。這就需要海量的專業(yè)標(biāo)注圖片作為必備的實(shí)驗(yàn)數(shù)據(jù),不僅獲取難度大,也極為花費(fèi)時(shí)間,且場景的變化以及圖像采集源的變化都會(huì)導(dǎo)致輸入數(shù)據(jù)結(jié)構(gòu)發(fā)生變化,需要人為進(jìn)行調(diào)參。而采用端到端模型,圖像特征由網(wǎng)絡(luò)自行提取和學(xué)習(xí),也就是說將特征提取這一環(huán)節(jié)融入算法,不需要再進(jìn)行人為干涉,不僅減少了實(shí)際操作流程,同時(shí)也有很好的表現(xiàn)。
如圖1所示,前面的編碼階段都使用3×3卷積核的卷積層和2×2的最大池化層,每一個(gè)卷積層都使用Rectified Linear Unit(Relu)的激活函數(shù),后面的解碼階段都使用4×4卷積核的卷積層。
本文所設(shè)計(jì)的車道線檢測網(wǎng)絡(luò)包括5個(gè)階段:
1)Stage 1:encoder階段。包括5個(gè)bottleneck,第一個(gè)bottleneck做下采樣,后面4個(gè)重復(fù)的bottleneck。
2)Stage 2-3:encoder階段。stage2的bott- leneck2.0做了下采樣,后面有時(shí)加空洞卷積,或分解卷積。stage3沒有下采樣,其他都一樣。
3)Stage 4:屬于decoder階段。比較簡單,一個(gè)上采樣配置兩個(gè)普通的bottleneck。
整體網(wǎng)絡(luò)架構(gòu)是基于encoder-decoder的網(wǎng)絡(luò)ENet,本實(shí)驗(yàn)優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu),將網(wǎng)絡(luò)整體劃分為兩個(gè)處理過程。因?yàn)镋Net的encoder比decoder包含更多的參數(shù),所以兩個(gè)處理進(jìn)程如果共享encoder的所有網(wǎng)絡(luò),可以滿足實(shí)驗(yàn)需求。因此,原始的Enet的encoder包含三個(gè)stage,Enet會(huì)對這兩個(gè)進(jìn)程共享前三個(gè)stage,把第四個(gè)stage和實(shí)例分割的輸出結(jié)果傳播給decode stage。分割處理最后輸出的是一個(gè)單通道圖片(二分分割),嵌入處理輸出的是N通道的圖片,N是嵌入尺寸。每個(gè)處理過程的loss是相等的權(quán)重,然后通過網(wǎng)絡(luò)進(jìn)行反向傳播。
圖1 網(wǎng)絡(luò)架構(gòu)
首先要引入目標(biāo)檢測的幾種手段,常用的處理方法有分類、對象檢測、語義分割、實(shí)例分割。對于本實(shí)驗(yàn)而言,分類的思想是將標(biāo)明圖中存在車道線。對象檢測的思想是標(biāo)明圖中所有的車道線,可以得到其數(shù)量和位置。語義分割的思想是將車道線和其他信息區(qū)分,注明圖中的車道線類。而實(shí)例分割的思想可以將圖中所有的車道線標(biāo)明,得到其數(shù)量和位置,并對于不同的車道線,將其劃分為了不同種類??梢钥闯?,對于目標(biāo)檢測這一任務(wù)而言,實(shí)例分割是對象檢測和語義分割的結(jié)合與升級(jí),擁有更加良好的表現(xiàn)。
因不同車道線對應(yīng)的作用不同,故車道線檢測問題本質(zhì)上可以看作一個(gè)實(shí)例分割問題,即每一條車道線都形成一個(gè)獨(dú)立的實(shí)例,但整體都屬于車道線這個(gè)類別?;谶@個(gè)理念,本實(shí)驗(yàn)將實(shí)例分割的問題轉(zhuǎn)化為一個(gè)語義分割與嵌入向量的聚類。
基于這一理念,實(shí)例分割利用聚類損失函數(shù),訓(xùn)練后輸出一個(gè)車道線的像素之間的距離,因同屬一條車道線的像素點(diǎn)之間距離近,不同車道線像素點(diǎn)之間的距離遠(yuǎn),故可以得到各條車道線。損失函數(shù)的公式為
式中,var為像素聚類方差項(xiàng);為車道線數(shù)量;N為單一車道線的像素個(gè)數(shù);μ為車道線的平均像素特征表示;X為第個(gè)像素的特征表示;v為同一車道像素與聚類中心點(diǎn)距離閾值。
式(1)表明,所有遠(yuǎn)離閾值v的映射將向車道線的均值附近靠攏,該損失函數(shù)的作用是讓同屬一條車道線的像素足夠收斂。
式中,dist為聚類中心距離項(xiàng);為車道線數(shù)量;d為不同車道中心點(diǎn)距離閾值;μA、μB分別為不同車道線的平均像素特征表示。
式(2)表明,所有近于閾值d的映射將向遠(yuǎn)離車道線的中心發(fā)散,該損失函數(shù)的作用是讓不同車道線的像素劃分明確。
迭代的終止條件為各個(gè)車道線的線間中心距>d,以及屬于每條車道線的像素離該車道線的距離<v。
綜上,分別完成了對兩個(gè)分支的處理,現(xiàn)在只需對兩個(gè)分支的處理結(jié)果進(jìn)行聚類,即可得到實(shí)例分割的結(jié)果。在進(jìn)行聚類時(shí),首先需要使用Mean shift算法。
該算法使得簇中心沿著密度上升的方向移動(dòng),防止將離群點(diǎn)選入相同的簇中;之后對像素向量進(jìn)行劃分:以簇中心為圓心,以2v為半徑,選取圓中所有的像素歸為同一車道線。重復(fù)該步驟,直到將所有的車道線像素分配給對應(yīng)的車道。以上述處理過的圖像為例做聚類的結(jié)果如圖2所示。
圖2 聚類效果圖
圖2(c)即為對圖2(a)和圖2(b)做聚類處理后的效果圖,可以明顯看出聚類后的圖像既包含了車道線這一類信息,又以不同顏色明確區(qū)分了不同車道線,完成了實(shí)例分割這一任務(wù)。
網(wǎng)絡(luò)模型的訓(xùn)練在Windows10(x64)系統(tǒng)下進(jìn)行,所需環(huán)境為Python3.5.2,cuda-9.0,cudnn- 7.0,tensorflow 1.10.0-gpu版本,opencv4.0.0版本,在顯存為6 g的GTX-1060顯卡下測試可達(dá)到0.04秒處理一張圖像,約為25 fps。
本實(shí)驗(yàn)還調(diào)用了來自python和tensorflow的一些工具,例如:tensorboard,(該工具可以使網(wǎng)絡(luò)訓(xùn)練過程變得可視化,用戶可以監(jiān)控到網(wǎng)絡(luò)訓(xùn)練準(zhǔn)確率和損失率的變化)pyqt,config等。在訓(xùn)練模型中,訓(xùn)練數(shù)據(jù)集約為130 600張,大小為26.7 GB,測試數(shù)據(jù)集的張數(shù)約為9 000張,大小為2.14 GB,開發(fā)環(huán)境參數(shù)如表1所示。
表1 開發(fā)環(huán)境
設(shè)備參數(shù) CPUI5~6 300 hq VGANVIDIA GTX-1 060 6 G 操作系統(tǒng)Windows 10 開發(fā)環(huán)境Tensorflow-keras 程序語言Python3.5 RAM20 GB 訓(xùn)練數(shù)據(jù)26.7 GB 測試數(shù)據(jù)6.84 GB
表2為本網(wǎng)絡(luò)模型所采用的各項(xiàng)參數(shù),每層內(nèi)含有2個(gè)卷積層并且后面都有接一個(gè)最大池化層。
表2 Enet網(wǎng)絡(luò)參數(shù)配置
使用的各項(xiàng)名稱參數(shù) 最大池化層2x2 卷積3x3 激活函數(shù)RELU 步長1 優(yōu)化器Adam 批量大小8 學(xué)習(xí)速率5e-5 損失函數(shù)mean shift聚類g 批次大小32 訓(xùn)練迭代次數(shù)20
表3為本網(wǎng)絡(luò)模型所采用的各項(xiàng)參數(shù),其中每層內(nèi)含有2個(gè)卷積層并且后面都有接一個(gè)最大池化層。
表3 T-net參數(shù)配置
使用的各項(xiàng)名稱參數(shù) 最大池化層2x2 卷積3x3 激活函數(shù)RELU
表3 (續(xù))
使用的各項(xiàng)名稱參數(shù) 步長1 優(yōu)化器Adam 批量大小10 學(xué)習(xí)速率5e-5 損失函數(shù)MSE 批次大小32 訓(xùn)練迭代次數(shù)20
本文使用部分Tusimple數(shù)據(jù)集,拍攝的圖片中有好的天氣和一般的天氣。圖片集中有2車道、3車道、4車道和高速公路,拍攝時(shí)間也是在一天中的不同時(shí)刻。標(biāo)注的信息是.json格式,指明了坐標(biāo)和離散化的坐標(biāo),也標(biāo)記出了當(dāng)前車道和左右車道。由于Tusimple數(shù)據(jù)集使用的圖像分辨率為1 280×720,這一分辨率較高,本實(shí)驗(yàn)在實(shí)際訓(xùn)練時(shí)將輸入圖像的分辨率統(tǒng)一調(diào)整為512×256。
前處理網(wǎng)絡(luò)分為兩個(gè)處理任務(wù):語義分割處理和二值分割處理,所以需要針對兩者的損失函數(shù)分開進(jìn)行交替訓(xùn)練。將上述兩個(gè)網(wǎng)絡(luò)訓(xùn)練完成后可以得到訓(xùn)練準(zhǔn)確率為99.8%。為了進(jìn)一步驗(yàn)證本文所使用網(wǎng)絡(luò)模型的可行性,在此選取了車道線檢測主流網(wǎng)絡(luò)deeplab v3以及YOLO v3作為參照組進(jìn)行對比。首先是對于deeplab v3的訓(xùn)練,采用同樣的訓(xùn)練集,在訓(xùn)練5萬次后,其準(zhǔn)確率穩(wěn)定于98.6%。其次是對于YOLO3的訓(xùn)練,其最終準(zhǔn)確率為99%左右。
綜上所述,使用本文所使用的網(wǎng)絡(luò)模型相對于deeplab v3以及YOLO v3在檢測速度上有所下降,但在準(zhǔn)確率上分別可以提升1.2%和0.8%,有明顯改進(jìn)。
本文設(shè)計(jì)了一個(gè)雙分支Enet網(wǎng)絡(luò)完成車道檢測處理。通過訓(xùn)練實(shí)現(xiàn)了端到端的車道線檢測。主要結(jié)論如下:
1)基于圖像分割的思想,把車道線檢測問題轉(zhuǎn)化為實(shí)例分割問題,并將解決實(shí)例分割的問題拆分為嵌入處理和二值分割,嵌入處理的目的為區(qū)分不同的車道線,二值分割的目的為區(qū)分車道線以及背景信息,然后對兩個(gè)處理過程的結(jié)果進(jìn)行聚類,得到實(shí)例分割結(jié)果。
2)實(shí)驗(yàn)表明,本文的網(wǎng)絡(luò)模型的訓(xùn)練準(zhǔn)確率為99.8%,相對于deeplab v3和YOLO v3網(wǎng)絡(luò)分別提升了1.2%和0.8%,且在復(fù)雜環(huán)境下有良好的表現(xiàn)。
[1] ALY M.Real Time Detection of Lane Markers in Urban Streets[J].IEEE,2014:4621152.
[2] YANIV A,ANDRAS F,AMNON S S.Off-road Path Following Using Region Classification and Geometric Projection Constraints[J]. IEEE, 2006(1):689-696.
[3] LOOKINGBILL A,ROGERS J,LIEB D,et al.Reverse Optical Flow for Self-supervised Adaptive Autonomous RobotNavigation[J].International Journal of Computer Vision,2007,74(3):287-302.
[4] WANG C,HU Z,UCHIMURA K.A Novel Lane Detec- tion Approach Fusion by Vehicle Localization[C]// Intelligent Control & Automation. Piscataway:IEEE, 2011:1218-1223.
[5] 石林軍,余粟.基于多約束條件下的霍夫變換車道線檢測方法[J].計(jì)算機(jī)測量與控制,2018,26(9): 9-12,38.
[6] LI J, XIANG J A, HAN G He. Lane Detection Based on Visual Attention[C]//In Image and Graphics (ICIG), 2011 Sixth International Conference on.Piscataway: IEEE,2011:570-575.
[7] GUO K Y, LI N,ZHANG M.Lane Detection Based on the Random Sample Consensus[C]//In Information Technology,Computer Engineering and Management Sciences (ICM),2011 International Conference on. Piscataway: IEEE,2011(3):38-41.
[8] KAZEMI F M,SAMADI S,POORREZA H R,et al. Vechicle Recognition Using Curvelet Transform and SVM[C] //Proc of the 4th International Conference on Information Technology.Piscataway:IEEE.2007:516- 521.
[9] HUANG L,ZHANGY S.Identification of Traffic SignsUsing Deep Convolutional Neural Network[J].Modern Electronic Technology,2015,25(1):101-106.
[10] 段建民,李岳,莊博陽.基于改進(jìn)SIS算法和順序RAN- SAC的車道線檢測方法研究[J].計(jì)算機(jī)測量與控制, 2018,26(8):280-284,289.
[11] NIU S F,LI L.Application of Neural Network and Bayesian Filter in the Prediction of Change of Channel [J].Science and Technology and Engineering,2016 (14):212-216.
Lane Line Detection Method Based on Deep Learning
ZHANG Lin
( School of Intelligent Manufacturing Engineering,Xi'an Automotive Vocational University, Xi'an 710600, China )
With the continuous development of artificial intelligence technology, driverless technology has become a hot topic in the current social development. Lane line detection is a key link of driverless technology, but the traditional vision-based lane line detection method takes a long time to process, and the process is tedious, requiring human intervention. The lane line detection based on deep learning can greatly reduce such problems. In this paper, an Enet network is designed to complete dual tasks, which solves the problem of target area segmentation and different lane differentiation respectively to achieve end-to-end detection.Compared with mainstream lane line detection network models deeplab v3 and YOLO v3, the experimental verification shows that the final training accuracy of the network model used in this experiment is 99.8%, which is 1.2% and 0.8% higher than deeplab v3 and YOLO v3, respectively.
Lane line detection;Deep learning;End-to-end;Instance segmentation
U495
B
1671-7988(2023)12-48-05
張林(1995-),女,碩士,助教,研究方向?yàn)槠嚈C(jī)械,E-mail:zhanglin4424@163.com。
10.16638/j.cnki.1671-7988.2023.012.010