丁海濤,孫 銳,程旭升,高 雋
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230601)
Figure 1 Diagram of the lane line detection method圖1 車道線檢測(cè)方法框圖
現(xiàn)代智能汽車都配置了車道偏離警告系統(tǒng)LDWS(Lane Departure Warning System)和車道保持輔助系統(tǒng)LKAS(Lane Keeping Assist System)。其中,車道線檢測(cè)是車道偏離警告系統(tǒng)LDWS和車道保持輔助系統(tǒng)LKAS中的關(guān)鍵技術(shù)。目前,車道線檢測(cè)方法大體分為基于特征、基于模型和基于深度學(xué)習(xí)的檢測(cè)方法?;谔卣鞯姆椒ㄍǔ@密嚨谰€的顏色特征[1,2]、紋理特征[3]和幾何特征[4,5]等,再與霍夫變換[6 - 9]或卡爾曼濾波器[9 - 12]相結(jié)合檢測(cè)車道線,識(shí)別車道線后,利用后處理濾除誤檢得到最終的車道線?;谀P蚚13 - 17]的檢測(cè)方法首先要估計(jì)道路的數(shù)學(xué)模型,利用圖像信息確定道路數(shù)學(xué)模型的參數(shù)。通常,這些基于特征和基于模型的檢測(cè)方法容易受到車輛遮擋和地面污損等不良天氣道路場(chǎng)景的影響。隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的成功運(yùn)用,國(guó)內(nèi)外學(xué)者提出了一些基于深度學(xué)習(xí)的車道線檢測(cè)方法。例如,Li等人[18]使用卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)和循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Networks)進(jìn)行車道線檢測(cè)。作者在CNN提取道路特征信息的基礎(chǔ)上,結(jié)合RNN進(jìn)行車道線檢測(cè)。Lee等人[19]提出一種多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)的車道線檢測(cè)算法。作者采集了多種環(huán)境下的車道線和道路標(biāo)志,利用特殊的grid標(biāo)注方法標(biāo)注消失點(diǎn),再利用滅點(diǎn)引導(dǎo)網(wǎng)絡(luò)VPGNet(Vanishing Point Guided Network)進(jìn)行車道線檢測(cè)。文獻(xiàn)[20]提出了一種新的卷積神經(jīng)網(wǎng)絡(luò)用于車道線檢測(cè),這種卷積神經(jīng)網(wǎng)絡(luò)通過切片到切片之間的卷積提取特征信息,適合學(xué)習(xí)連續(xù)的、長(zhǎng)的形狀結(jié)構(gòu)。這些基于深度學(xué)習(xí)的車道線檢測(cè)方法雖然有著較好的性能,但是還不能很好地解決車輛遮擋和地面污損問題。
針對(duì)車輛遮擋和地面污損問題,本文將車道線檢測(cè)視為連續(xù)細(xì)長(zhǎng)區(qū)域?qū)嵗指顔栴},提出了一種基于密集分割網(wǎng)絡(luò)DSNet(Dense Segmentation Network)的車道線檢測(cè)方法。首先,在SegNet網(wǎng)絡(luò)模型[21]的基礎(chǔ)上,使用稠密塊[22]構(gòu)建了1個(gè)密集分割網(wǎng)絡(luò),該網(wǎng)絡(luò)由1個(gè)提取實(shí)例特征的下采樣路徑和1個(gè)恢復(fù)輸入圖像分辨率大小的上采樣路徑組成。所構(gòu)建的深度分割網(wǎng)絡(luò)在不同層之間建立了連接關(guān)系,使得該網(wǎng)絡(luò)具有重復(fù)使用特征的特性,減少了網(wǎng)絡(luò)的加深導(dǎo)致細(xì)長(zhǎng)區(qū)域?qū)嵗卣餍畔⒌膿p失,提高了圖像分割的準(zhǔn)確性。其次,為了使得車道線邊界更為準(zhǔn)確,該方法引入了鄰近AND運(yùn)算和Meanshift聚類算法,對(duì)密集分割網(wǎng)絡(luò)的輸出進(jìn)行處理,以減小非車道線像素的干擾。最后,為了能夠?qū)嚨谰€進(jìn)行實(shí)例分割,本文制作了一個(gè)與圖森訓(xùn)練集對(duì)應(yīng)的車道線實(shí)例分割數(shù)據(jù)集,結(jié)合圖森訓(xùn)練集一起對(duì)該網(wǎng)絡(luò)進(jìn)行端到端的訓(xùn)練。實(shí)驗(yàn)表明,本文提出的方法能很好地解決車輛遮擋和地面污損的問題,具有較好的魯棒性和實(shí)時(shí)性,同時(shí)還能確定檢測(cè)的車道線的數(shù)量。
本文提出的車道線檢測(cè)方法邏輯框圖如圖1所示,該方法可以通過端到端的訓(xùn)練密集分割網(wǎng)絡(luò)學(xué)習(xí)到道路場(chǎng)景中車道線的實(shí)例特征,對(duì)因車輛遮擋和地面污損導(dǎo)致的車道線不連續(xù)的區(qū)段進(jìn)行預(yù)測(cè),輸出每個(gè)車道線和背景像素集合的RGB圖像IS;再通過鄰近AND運(yùn)算設(shè)定合適的閾值過濾掉圖像IS中的非車道像素得到車道線二值分割圖IB,獲取圖像IB中像素值為“1”的位置,從圖像IS中標(biāo)記相同位置的像素點(diǎn),使用Meanshift聚類算法對(duì)標(biāo)記的像素點(diǎn)進(jìn)行聚類,得到以不同顏色區(qū)分不同車道線實(shí)例的車道線實(shí)例分割圖。
SegNet由1個(gè)下采樣網(wǎng)絡(luò)、1個(gè)上采樣網(wǎng)絡(luò)和1個(gè)像素分類層(Softmax)組成。下采樣路徑采用13層的視幾何組網(wǎng)絡(luò)VGG(Visual Geometry Group Network)網(wǎng)絡(luò)作為語(yǔ)義特征的提取器,將提取到的特征通過與下采樣路徑具有相同層數(shù)的上采樣路徑恢復(fù)至輸入圖像分辨率大小,實(shí)現(xiàn)端到端的輸出。
SegNet網(wǎng)絡(luò)中的層與層之間是順序連接的,隨著網(wǎng)絡(luò)的加深,該網(wǎng)絡(luò)能較好地學(xué)習(xí)到相對(duì)大點(diǎn)的區(qū)塊的實(shí)例特征,但是細(xì)長(zhǎng)區(qū)域的實(shí)例特征信息會(huì)有較大的損失。為了提高SegNet網(wǎng)絡(luò)模型對(duì)細(xì)長(zhǎng)區(qū)域分割的性能,使其適用于車道線檢測(cè),本文在該網(wǎng)絡(luò)模型的基礎(chǔ)上,用稠密塊構(gòu)建密集分割網(wǎng)絡(luò),結(jié)構(gòu)如圖2所示,該網(wǎng)絡(luò)也是由1個(gè)下采樣路徑和1個(gè)上采樣路徑組成。稠密塊結(jié)構(gòu)如圖3所示,該結(jié)構(gòu)為了改善不同層之間信息的流動(dòng),采用了一種將任何一層與后面所有層建立密集的連接的方式,使得特征和梯度能夠更加有效地傳遞。因此,第l層會(huì)接受前面所有層的特征圖x0,x1,…,xl-1作為輸入:
xl=Hl([x0,x1,…,xl-1])
(1)
其中,x0,x1,…,xl-1為0,1,…,l-1層的特征圖,Hl(x)為第l層的非線性函數(shù)。本文的密集分割網(wǎng)絡(luò)采用具有在不同層間建立連接方式的稠密塊重新構(gòu)建了SegNet的下采樣路徑和上采樣路徑,使得網(wǎng)絡(luò)能夠充分利用特征,以相對(duì)較少的參數(shù)提高提取車道線實(shí)例特征和恢復(fù)特征圖分辨率的性能,同時(shí)還能使得梯度的傳遞更加有效,讓網(wǎng)絡(luò)在無(wú)需使用預(yù)訓(xùn)練參數(shù)的情況下變得更加容易訓(xùn)練。
Figure 2 Structure of dense segmentation network 圖2 密集分割網(wǎng)絡(luò)結(jié)構(gòu)
Figure 3 Dense block structure 圖3 稠密塊結(jié)構(gòu)
在下采樣網(wǎng)絡(luò)中,如圖4a和圖4b所示,稠密塊中的層由批量正則化(Batch Normalization)、ReLU激活函數(shù)、卷積和Dropout組成,過渡層由批量正則化、ReLU、卷積、Dropout和大小為2×2的非重疊濾波窗口執(zhí)行最大池化(Max Pooling)操作組成。由于最大池化操作會(huì)降低特征圖的分辨率,造成邊界信息損失,因此在最大池化操作之前,需要存儲(chǔ)特征圖中的邊界信息。為了更加有效地保留特征圖中的邊界信息,只需要存儲(chǔ)最大池化索引,即濾波窗口中最大特征值的位置。雖然這種內(nèi)存存儲(chǔ)方式會(huì)導(dǎo)致精確度有輕微損失,但是可以提高內(nèi)存利用率,縮短運(yùn)行時(shí)間。
Figure 4 Structure of layer in upsampling and downsampling path圖4 上、下采樣中層的結(jié)構(gòu)圖
在上采樣網(wǎng)絡(luò)中,如圖4c所示,稠密塊中的層由批量正則化(Batch Normalization)、卷積和Dropout組成。上采樣過程如圖5所示,圖中a~d為對(duì)應(yīng)像素的像素值,該過程用原先存儲(chǔ)的對(duì)應(yīng)的最大池化索引對(duì)輸入的特征圖進(jìn)行上采樣,將道路場(chǎng)景中的車道線分割出來。
Figure 5 Upsampling圖5 上采樣
密集分割網(wǎng)絡(luò)預(yù)測(cè)的車道線邊界有模糊的現(xiàn)象,因此本文增加了鄰近AND運(yùn)算。該運(yùn)算先將圖像IS灰度化,使用查找垂直和水平線的Sobel算子對(duì)灰度圖像執(zhí)行梯度測(cè)量查找邊緣信息。再設(shè)定一個(gè)合適的閾值th,根據(jù)式(2)將灰度圖像IG1和IG2進(jìn)行二值化得到IB1和IB2:
(2)
鄰近AND運(yùn)算的數(shù)學(xué)表達(dá)式如式(3)所示,它能使二值圖像IB1和IB2中車道線鄰近的共同特征更為清晰,并過濾掉非共同部分的特征,得到像素值為1和0的二值圖,其中像素值為1表示車道線,像素值為0表示背景。
(3)
其中,k為鄰近參數(shù)。
Figure 6 Images and their corresponding lane line segmentation instances in the tuSimple training set圖6 圖森訓(xùn)練集中圖像和與之對(duì)應(yīng)的車道線實(shí)例分割圖像示例
為了減小圖像IS中非車道線像素的干擾,得到邊界線清晰的RGB車道線實(shí)例分割圖,本文采用Meanshift聚類算法對(duì)圖像IS中像素值被標(biāo)記為1的像素進(jìn)行聚類。Meanshift聚類算法是一種無(wú)參數(shù)概率密度估計(jì)算法,它不需要預(yù)先知道聚類的類別數(shù),同時(shí)對(duì)聚類的形狀也沒有限制。假設(shè)在一個(gè)d維空間Rd中給定n個(gè)數(shù)據(jù)xi,i=1,2,…,n,多元核估計(jì)密度函數(shù)的數(shù)學(xué)表達(dá)式如式(4)所示:
(4)
其中,K(x)為核函數(shù),K(x)=ck,dk(‖x‖2),這里ck,d是一個(gè)歸一化常數(shù),h為窗口的寬度。該算法是根據(jù)偏移向量調(diào)整下次計(jì)算的位置,而不是逐個(gè)像素計(jì)算,這就會(huì)減少冗余計(jì)算,加快收斂速度。由于Meanshift算法還可以使用核函數(shù),使得計(jì)算區(qū)域中各像素對(duì)應(yīng)的權(quán)值不同,離中心越遠(yuǎn)權(quán)值越小,對(duì)結(jié)果的影響也就越小,在一定程度上可以避免車道線周圍噪聲的干擾,提高了抗干擾能力,確定檢測(cè)的車道線數(shù)量。
圖森數(shù)據(jù)集由7 000個(gè)一秒鐘視頻剪輯組成。其中,訓(xùn)練集有3 626個(gè)視頻剪輯,每個(gè)視頻剪輯中有20幀,最后一幀圖像的標(biāo)簽信息無(wú)序地存儲(chǔ)在json文件中。測(cè)試集由2 782個(gè)視頻集組成,每個(gè)視頻剪輯中有20幀。這些視頻剪輯包括不同的天氣環(huán)境和交通環(huán)境場(chǎng)景。本文將車道線檢測(cè)視為車道線實(shí)例分割問題。在訓(xùn)練模型的時(shí)候,不僅用到帶標(biāo)記的圖像,還需要與標(biāo)簽對(duì)應(yīng)的車道線實(shí)例分割數(shù)據(jù)集。本文的實(shí)驗(yàn)用Python語(yǔ)言并且借助第三方庫(kù)OpenCV依次讀取每幅圖像中的每條車道線標(biāo)簽信息,制作每條車道線的灰度值從220依次遞減50的灰度圖像,構(gòu)建與之對(duì)應(yīng)的車道線實(shí)例分割數(shù)據(jù)集,示例如圖6所示。
本文實(shí)驗(yàn)采用的網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示,用圖森數(shù)據(jù)集和對(duì)應(yīng)的車道線實(shí)例分割數(shù)據(jù)集訓(xùn)練該網(wǎng)絡(luò)。實(shí)驗(yàn)所使用的硬件平臺(tái)為內(nèi)存:16 GB,處理器:Intel(R)Core(TM)i7-6700K CPU@3.60 GHz x8,顯卡:GeForce GTX 1070Ti/PCIe/SSE2。實(shí)驗(yàn)參數(shù)設(shè)置:訓(xùn)練次數(shù)為50 000,批量大小為8,初始化學(xué)習(xí)率為0.000 1,并且每5 000次訓(xùn)練減少0.96。
本文采用的評(píng)價(jià)標(biāo)準(zhǔn)有2個(gè):準(zhǔn)確率(Acc)和誤檢率(FN)。準(zhǔn)確率計(jì)算按每幅圖像的平均正確點(diǎn)數(shù)計(jì)算,計(jì)算方法如式(5)所示:
(5)
Figure 7 DSNet network structure in the experiment圖7 實(shí)驗(yàn)中的DSNet網(wǎng)絡(luò)結(jié)構(gòu)
其中,Cim表示預(yù)測(cè)正確點(diǎn)數(shù)目,Sim表示地面實(shí)況正確點(diǎn)數(shù)目。當(dāng)?shù)孛鎸?shí)況和預(yù)測(cè)點(diǎn)之間的差異小于特定的閾值時(shí),判定這個(gè)點(diǎn)是正確的。誤檢率的計(jì)算方法如式(6)所示:
(6)
其中,Mpred表示誤判為車道線的數(shù)量,Ngt表示所有真實(shí)路況的車道線數(shù)量。
為了驗(yàn)證本文提出的方法能解決車輛遮擋和地面污損問題,從圖森測(cè)試集中選取了車輛遮擋和地面污損的道路場(chǎng)景圖像,檢測(cè)結(jié)果如圖8所示。從檢測(cè)結(jié)果來看,本文方法能夠?qū)σ蜍囕v遮擋和地面污損導(dǎo)致車道線不連續(xù)的區(qū)段進(jìn)行預(yù)測(cè),并且檢測(cè)結(jié)果的車道線邊界線更為清晰。同時(shí),從圖8可以看出,在相同的道路場(chǎng)景下,基于密集分割網(wǎng)絡(luò)的車道線檢測(cè)效果明顯優(yōu)于基于SegNet網(wǎng)絡(luò)的檢測(cè)效果。
Figure 8 Detection results under the scenes occluded by vehicles and groud fouling圖8 地面污損和車輛遮擋場(chǎng)景下的檢測(cè)效果圖
表1給出了本文方法與幾種典型方法在圖森測(cè)試集上的性能比較。如表1所示,本文方法的準(zhǔn)確率Acc和誤檢率FN比TF Placeholder方法分別提高了0.1%和0.003 6%。與文獻(xiàn)[20]方法相比,該文獻(xiàn)中的方法設(shè)計(jì)了一種特殊層的網(wǎng)絡(luò)結(jié)構(gòu),訓(xùn)練時(shí)需要使用固定順序的車道線標(biāo)簽數(shù)據(jù)集;而本文方法可以使用無(wú)序標(biāo)簽的車道線訓(xùn)練集,簡(jiǎn)化了構(gòu)建訓(xùn)練集標(biāo)志的工作,并且在處理速度方面提升至29 fps。與文獻(xiàn)[23]方法相比,雖然該方法要優(yōu)于本文方法,但是文獻(xiàn)[23]方法的學(xué)習(xí)目標(biāo)是學(xué)習(xí)嵌入像素特征向量,需要后處理來聚類像素發(fā)現(xiàn)車道線,很難確定車道線的數(shù)量;而本文方法可以很容易地確定所檢測(cè)的車道線數(shù)量,為智能駕駛提供有關(guān)車道線數(shù)量的信息。
Table 1 Comparison of the method in this paper and typical methods 表1 本文方法與典型方法的對(duì)比
為了進(jìn)一步驗(yàn)證本文方法的性能,使用包含多種道路場(chǎng)景的數(shù)據(jù)進(jìn)行測(cè)試,結(jié)果如表2所示。從表2中可以看出,本文方法的平均準(zhǔn)確率高達(dá)98.10%,其中在高速公路場(chǎng)景下的準(zhǔn)確率高達(dá)100%,這是因?yàn)楦咚俟穼儆跇?biāo)準(zhǔn)的結(jié)構(gòu)化道路,并且影響因素也很少。夜晚場(chǎng)景下的準(zhǔn)確率低,只有95.07%,這主要是由于光線不足導(dǎo)致的。另外,影響車道線檢測(cè)的因素有很多,圖9給出了幾種典型干擾下的車道線檢測(cè)結(jié)果,從中可以看出,本文方法能很好地適應(yīng)光照劇變、非結(jié)構(gòu)化區(qū)段和彎道等道路場(chǎng)景。
Table 2 Accuracy in different road scenarios表2 不同道路場(chǎng)景下的準(zhǔn)確率
Figure 9 Detection results in some typical complex scenarios圖9 一些典型復(fù)雜場(chǎng)景下的檢測(cè)效果圖
本文提出了一種基于密集分割網(wǎng)絡(luò)的車道線檢測(cè)方法,該方法先構(gòu)建了一個(gè)密集分割網(wǎng)絡(luò),將車道線檢測(cè)視為連續(xù)細(xì)長(zhǎng)區(qū)域進(jìn)行實(shí)例分割,再使用鄰近AND運(yùn)算和Meanshift聚類算法對(duì)密集分割網(wǎng)絡(luò)的輸出進(jìn)行處理,減少非車道線像素的干擾,使得車道線的邊界更連續(xù)、更準(zhǔn)確。實(shí)驗(yàn)表明,本文方法能解決車輛遮擋和地面污損問題,確定檢測(cè)的車道線數(shù)量,并且還能很好地適應(yīng)綜合性的復(fù)雜道路場(chǎng)景,具有較好的魯棒性和實(shí)時(shí)性。