韓尚君,余艷梅,陶青川
(四川大學(xué)電子信息學(xué)院,成都 610065)
隨著傳統(tǒng)汽車行業(yè)與人工智能技術(shù)的結(jié)合,各種計(jì)算機(jī)視覺(jué)技術(shù)已被證明是保證自動(dòng)駕駛安全可靠的[1]不可或缺的一部分。為保證自動(dòng)駕駛的實(shí)用性和有效性,車道檢測(cè)是至關(guān)重要的。隨著卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)[2]的發(fā)展,深度學(xué)習(xí)的快速發(fā)展和設(shè)備能力的改善(如計(jì)算力、內(nèi)存容量、能耗、圖像傳感器分辨率和光學(xué)器件等)提升了視覺(jué)應(yīng)用的性能和成本效益,并進(jìn)一步加快了此類應(yīng)用的擴(kuò)展。與傳統(tǒng)CV 技術(shù)相比,深度學(xué)習(xí)可以幫助CV 工程師在圖像分類、語(yǔ)義分割、目標(biāo)檢測(cè)和同步定位與地圖構(gòu)建等任務(wù)上獲得更高的準(zhǔn)確率,故目前自動(dòng)駕駛的研究熱點(diǎn)已轉(zhuǎn)移到深度學(xué)習(xí)方法上來(lái)[3-6]。
車道檢測(cè)對(duì)于自動(dòng)駕駛而言是極為重要的一步,首先它可以使車輛行駛在正確的道路上,對(duì)于后續(xù)的導(dǎo)航和路徑規(guī)劃也是至關(guān)重要的,同時(shí)它也具有挑戰(zhàn)性,因?yàn)榻煌?、駕駛環(huán)境、障礙物、天氣條件等各種內(nèi)外部復(fù)雜條件都會(huì)產(chǎn)生巨大影響。對(duì)于車道檢測(cè)的研究主要有兩種方法進(jìn)行解決——傳統(tǒng)方法和深度學(xué)習(xí)方法。
傳統(tǒng)方法主要是通過(guò)手工提取特征,然后將其與濾波器進(jìn)行結(jié)合,得到分割的車道線,最后過(guò)濾部分錯(cuò)誤車道得到最終的檢測(cè)結(jié)果。目前已經(jīng)有研究使用深度網(wǎng)絡(luò)來(lái)取代手工提取特征來(lái)進(jìn)行車道檢測(cè):Huval 等[7]首次將深度學(xué)習(xí)方法應(yīng)用于CNN 的車道檢測(cè);Pan等[8]通過(guò)提出一種相鄰像素之間的消息傳遞機(jī)制SCNN顯著提高了深度分割方法對(duì)車道檢測(cè)的性能;Li等[9]提出了一種端到端的高效深度學(xué)習(xí)系統(tǒng)Line-CNN(L-CNN),在實(shí)時(shí)環(huán)境中試驗(yàn)顯示,優(yōu)于當(dāng)時(shí)最先進(jìn)的方法,顯示出更高的效率和效率;Tabelini 等[10]提出了一種基于錨的單階段車道檢測(cè)模型LaneATT,其架構(gòu)允許使用輕量級(jí)主干CNN,同時(shí)保持高精度。
本文提出的模型LaneEcaATT 是在基于錨的單級(jí)車道檢測(cè)模型LaneATT 的基礎(chǔ)上進(jìn)行改進(jìn),添加了通道注意力機(jī)制ECAnet[11],將ECAnet和輕量級(jí)主干網(wǎng)Resnet[12]相結(jié)合,在保持FPS 和MACs 指標(biāo)基本不變的情況下,提高了車道檢測(cè)的準(zhǔn)確率。本文在兩個(gè)公開(kāi)數(shù)據(jù)集Tusimple[13]和CULane[8]上評(píng)估了本文的方法,同時(shí)與LaneATT的結(jié)果進(jìn)行了比較。
LaneATT 是一種基于錨的單階段模型,用于車道檢測(cè)。LaneATT 算法主要由主干網(wǎng)Resnet、基于錨的特征池化層、注意力機(jī)制和結(jié)果預(yù)測(cè)層組成。
1.1.1 LaneATT的主干網(wǎng)
卷積神經(jīng)網(wǎng)絡(luò)(CNN[2])是一種模擬生物的神經(jīng)結(jié)構(gòu)的數(shù)學(xué)模型,通常用于目標(biāo)檢測(cè)、圖像分割、車道檢測(cè)等方法的特征提取。理論上CNN 網(wǎng)絡(luò)隨著深度越深,就能獲得更加豐富的特征信息,但是在實(shí)際實(shí)驗(yàn)中,網(wǎng)絡(luò)的深度并不能無(wú)限制地增加,網(wǎng)絡(luò)深度達(dá)到瓶頸之后,效果反而更差,準(zhǔn)確率也隨之降低。
通過(guò)添加如圖1所示的殘差塊,將多個(gè)相似的Residual Block 進(jìn)行串聯(lián)構(gòu)成Resnet[12]。根據(jù)不同的需求,殘差塊有兩種形式,一種是圖1左邊的形式basic block,它由兩層3 × 3 的卷積組成,輸入輸出的維度相同;另一種是圖1右邊的形式bottleneck block,通過(guò)使用1 × 1 卷積層實(shí)現(xiàn)了先降維再升維的過(guò)程,此方法可以降低計(jì)算復(fù)雜度。Resnet通過(guò)引入殘差塊在一定程度上解決了梯度消失和梯度爆炸的問(wèn)題,從而能夠訓(xùn)練更深的網(wǎng)絡(luò)。相比于VGG[14]網(wǎng)絡(luò),Resnet網(wǎng)絡(luò)不僅更深而且模型的尺寸和參數(shù)量更小,LaneEcaATT 使用Resnet18、Resnet34、Resnet101 作為主干網(wǎng)來(lái)提取圖片特征。
圖1 bottleneck block[12]
1.1.2 基于錨的特征池化層
LaneATT 的池化操作借鑒了Fast R-CNN[15]的感興趣區(qū)域投影(ROI 投影),區(qū)別在于檢測(cè)的時(shí)候使用的是線。相比于Line-CNN[9]只利用了特征圖的邊界,LaneATT 在一定程度上可以使用所有的特征圖,故LaneATT 可以使用更小的主干網(wǎng)和更小的接受域。一個(gè)錨就定義了一個(gè)候選點(diǎn)集F,將錨所構(gòu)成虛線上的特征進(jìn)行串聯(lián),對(duì)于超出圖片邊界的點(diǎn)做補(bǔ)零操作以保證串聯(lián)后的維度恒定,。對(duì)于每一個(gè)yj=0,1,2…HF-1,的計(jì)算公式如式(1)所示:
其中(xo,yo)是錨線的原點(diǎn),θ是錨線的斜率,δback是主干網(wǎng)的全局步長(zhǎng)。
1.1.3 LaneATT的注意力機(jī)制
對(duì)于大多數(shù)輕量級(jí)模型來(lái)說(shuō),獲取的是局部特征向量。但是在某些復(fù)雜的場(chǎng)景下,例如有其他物體遮擋視野或目標(biāo)部分消失的情況下,局部特征可能無(wú)法預(yù)測(cè)車道是否存在以及其位置。為解決這一問(wèn)題LaneATT 提出了一種新的注意力機(jī)制Latt[10],它利用局部特征來(lái)生成附加特征,將其和局部特征結(jié)合得到全局特征。對(duì)于每一個(gè)局部特征向量,當(dāng)i≠j的時(shí)候,輸出一個(gè)權(quán)重ωi,j[10],如公式(2)所示:
通道注意力機(jī)制可以提升CNN網(wǎng)絡(luò)的性能,但現(xiàn)有的算法為獲得更加優(yōu)秀的效果,大都選擇復(fù)雜的注意力模塊而忽略了算法應(yīng)用于輕量級(jí)模塊和實(shí)時(shí)運(yùn)算的情況[11]。
SENet[16]的降維會(huì)給通道注意力機(jī)制帶來(lái)副作用,并且沒(méi)有必要獲取通道之間的依賴關(guān)系。ECAnet 將原始的SENet 與它的三個(gè)都沒(méi)有降維的變體(SE-Var1,SE-Var2 和SE-Var3)進(jìn)行了對(duì)比實(shí)驗(yàn):SE-Var1 雖然沒(méi)有參數(shù)但是性能仍然優(yōu)于SENet,說(shuō)明在提高深度CNN 的性能上面通道注意力是有用的;SE-Var2 在每個(gè)通道獨(dú)立地學(xué)習(xí)權(quán)重且參數(shù)較少,結(jié)果也是優(yōu)于SENet,說(shuō)明通道及其權(quán)重需要直接對(duì)應(yīng),而且避免降維比非線性通道依賴更加重要;SE-Var3 比在SE塊中少使用一個(gè)FC 層進(jìn)行降維,結(jié)果顯示性能更好[11]。綜合ECAnet 的實(shí)驗(yàn)可以表明,避免降維對(duì)于通道注意力機(jī)制的性能有很大的提升,故ECAnet 在SENet 的基礎(chǔ)上進(jìn)行改進(jìn),ECAnet通過(guò)一維卷積來(lái)實(shí)現(xiàn)了一種不需要降維的局部交叉通道交互策略。ECAnet 的模型結(jié)構(gòu)如圖2所示。
圖2 ECAnet結(jié)構(gòu)[11]
本文提出的算法模型LaneEcaATT(如圖3 所示)在LaneATT 的基礎(chǔ)上添加了ECAnet(如圖3圓角矩形所示),以提取局部特征。模型的輸入圖像經(jīng)過(guò)主干網(wǎng)Resnet 和ECAnet 提取特征,利用基于錨的特征池化層提取感興趣的錨線,進(jìn)而生成局部特征,局部特征通過(guò)注意力機(jī)制生成全局特征,將局部特征和全局特征進(jìn)行結(jié)合,最后將組合特征傳遞給全連接層得到最終預(yù)測(cè)的車道。
圖3 LaneEcaATT的模型圖
本文的方法在兩個(gè)最常使用的車道檢測(cè)數(shù)據(jù)集(Tusimple[13]和CULane[8])上進(jìn)行測(cè)試,兩個(gè)數(shù)據(jù)集的具體信息如表1所示,所有的實(shí)驗(yàn)都使用了數(shù)據(jù)集的創(chuàng)建者默認(rèn)的參數(shù)。
表1 數(shù)據(jù)集信息
實(shí)驗(yàn)中的所有輸入圖像都被調(diào)整為HI×WI=360 × 640 像素,對(duì)于兩個(gè)數(shù)據(jù)集都使用Adam優(yōu)化器,Tusimple訓(xùn)練100個(gè)epochs,CULane訓(xùn)練15 個(gè)epochs,通過(guò)隨機(jī)的平移、旋轉(zhuǎn)、縮放和水平翻轉(zhuǎn)來(lái)進(jìn)行數(shù)據(jù)增強(qiáng)。本文實(shí)驗(yàn)部分的效率指標(biāo)分為每秒幀數(shù)(FPS)和乘積累加運(yùn)算(MACs)。
2.2.1 Tusimple數(shù)據(jù)集
Tusimple[13]是一個(gè)只包含高速公路場(chǎng)景的車道檢測(cè)數(shù)據(jù)集,通常相對(duì)于街景來(lái)說(shuō),這個(gè)場(chǎng)景作為車道檢測(cè)會(huì)更容易。但是它仍然是在車道檢測(cè)工作中使用最廣泛的數(shù)據(jù)集之一。所有的圖像都有1280 × 720像素,最多有5個(gè)車道。
2.2.2 Tusimple數(shù)據(jù)集上的評(píng)價(jià)指標(biāo)
在Tusimple 數(shù)據(jù)集上三個(gè)評(píng)價(jià)指標(biāo)分別是錯(cuò)誤發(fā)現(xiàn)率(FDR)、假陰性率(FNR)和準(zhǔn)確性(Accuracy)。
準(zhǔn)確性Accuracy如公式(4)所示:
其中,Cclip是切片中正確預(yù)測(cè)車道的點(diǎn)數(shù),Sclip是圖片中總的點(diǎn)數(shù),預(yù)測(cè)點(diǎn)必須是在真實(shí)圖像點(diǎn)的20個(gè)像素內(nèi)才能被認(rèn)為是正確的點(diǎn)。
2.2.3 Tusimple數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
表2是本文模型在Tusimple數(shù)據(jù)集上得到的檢測(cè)結(jié)果。可以看出,本文的方法LaneEcaATT在MACs 和Params 上基本上沒(méi)有任何增加,F(xiàn)PS也基本持平。在準(zhǔn)確率上本文均優(yōu)于LaneATT,甚至在使用Resnet18 作為主干網(wǎng)的情況下,比LaneATT 使用Resnet34 的準(zhǔn)確率還要高,但MACs 減少了50%,Params 減少了45%,F(xiàn)PS 提升了44%。雖然在Resnet18 和Resnet34 上FDR比較高,但是在FNR 方面則是都優(yōu)于LaneATT。圖4 是LaneEcaATT 和LaneATT 在Tusimple 上 的檢測(cè)效果對(duì)比,LaneEcaATT 的檢測(cè)效果要略優(yōu)于LaneATT的檢測(cè)效果。
結(jié)合表2 和圖4,在Tusimple 數(shù)據(jù)集上,本文算法的準(zhǔn)確率都得到了提升,尤其是在Resnet18 上達(dá)到了LaneATT 在Resnet34 上的準(zhǔn)確率。(左中右依次是原圖、LaneATT、LaneEcaATT;上中下分別是Resnet18、Resnet34、Resnet101;黑色線條是真實(shí)車道,灰色線條是檢測(cè)結(jié)果)
表2 Tusimple數(shù)據(jù)集結(jié)果
圖4 Tusimple數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
2.3.1 CULane數(shù)據(jù)集
CULane[8]是最大的公開(kāi)車道檢測(cè)數(shù)據(jù)集之一,也是最復(fù)雜的數(shù)據(jù)集之一。所有圖像大小均為1640 × 590 像素,測(cè)試圖像分為九類,包含正常、擁擠、夜間、無(wú)可見(jiàn)線等。
2.3.2 CULane數(shù)據(jù)集上的評(píng)價(jià)指標(biāo)
在CULane 上有三個(gè)評(píng)價(jià)指標(biāo)Precision、Recall、F1。
Precision是計(jì)算正確預(yù)測(cè)占整個(gè)正確預(yù)測(cè)與錯(cuò)誤預(yù)測(cè)之后的百分比,如公式(5)所示:
Recall是計(jì)算正確預(yù)測(cè)占正確預(yù)測(cè)與假陽(yáng)性之和的比例,如公式(6)所示:
在式(5)、式(6)中,TP是正確預(yù)測(cè)車道的數(shù)目,F(xiàn)P是錯(cuò)誤預(yù)測(cè)車道的數(shù)目,F(xiàn)N是假陰性的數(shù)目。
F1 是基于IOU(intersection over union)來(lái)進(jìn)行判斷的。IOU 的評(píng)價(jià)標(biāo)準(zhǔn)是根據(jù)兩個(gè)區(qū)域的交集占比,官方將車道線視為30像素值寬的線,如果預(yù)測(cè)出來(lái)的車道和真實(shí)車道的IOU大于0.5,那么就會(huì)被認(rèn)為預(yù)測(cè)正確,F(xiàn)1 如公式(7)所示:
2.3.3 CULane數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
考慮到CULane 數(shù)據(jù)集圖片大小和Resnet 深度,在CULane 數(shù)據(jù)集上本文在Resnet18 上將ECAnet 的一維卷積核大小k保持為3,在Resnet34 和Resnet101 將k修改為5,整個(gè)CULane 數(shù)據(jù)集的測(cè)試結(jié)果見(jiàn)表3,表4 展示了從normal到night的九類場(chǎng)景的F1參數(shù)數(shù)據(jù)。
通過(guò)表3、表4 可以得到,Resnet18 運(yùn)用本文方法后在Recall上提升0.4個(gè)百分點(diǎn),hlight上提升1.66 個(gè)百分點(diǎn),arrow 上提升1.24 個(gè)百分點(diǎn),在curve上提升1.15個(gè)百分點(diǎn),在night上提升0.99 個(gè)百分點(diǎn)。Resnet34 上運(yùn)用本文方法后在Precision 上提升0.04 個(gè)百分點(diǎn),cross 錯(cuò)誤量降低了28 個(gè)百分點(diǎn),但是F1 值有所下降。Resnet101 上運(yùn)用本文方法后在Recall 上提升了1.04 個(gè)百分點(diǎn),在noline 上提升了0.88 個(gè)百分點(diǎn),在curve 上提升了1.26 個(gè)百分點(diǎn)。圖5 是Lane-EcaATT和LaneATT在CULane上的檢測(cè)效果對(duì)比。
結(jié)合表3、表4 和圖5 的結(jié)果,可以看出在CULane 數(shù)據(jù)集上,本文算法在Resnet18 網(wǎng)絡(luò)結(jié)構(gòu)上改進(jìn)效果較好。
圖5 CULane數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
表3 整個(gè)CULane數(shù)據(jù)集的結(jié)果
表4 CULane數(shù)據(jù)集九類場(chǎng)景的F1結(jié)果
本文改進(jìn)的車道檢測(cè)算法LaneEcaATT 不僅有著高準(zhǔn)確率,同時(shí)還保持快速的檢測(cè)速度。在Tusimple 數(shù)據(jù)集上,本文方法比原始模型檢測(cè)準(zhǔn)確率更高,甚至可以用更淺的主干網(wǎng)實(shí)現(xiàn)不錯(cuò)的檢測(cè)效果。在CULane 數(shù)據(jù)集上,本文方法在Resnet18 網(wǎng)絡(luò)結(jié)構(gòu)下表現(xiàn)優(yōu)于原方法,但是在另外兩種網(wǎng)絡(luò)結(jié)構(gòu)下的表現(xiàn)有待提升,將在后期研究中進(jìn)一步改進(jìn)。