韓尚君,余艷梅,陶青川
(四川大學電子信息學院,成都 610065)
隨著傳統汽車行業與人工智能技術的結合,各種計算機視覺技術已被證明是保證自動駕駛安全可靠的[1]不可或缺的一部分。為保證自動駕駛的實用性和有效性,車道檢測是至關重要的。隨著卷積神經網絡(convolutional neural networks,CNN)[2]的發展,深度學習的快速發展和設備能力的改善(如計算力、內存容量、能耗、圖像傳感器分辨率和光學器件等)提升了視覺應用的性能和成本效益,并進一步加快了此類應用的擴展。與傳統CV 技術相比,深度學習可以幫助CV 工程師在圖像分類、語義分割、目標檢測和同步定位與地圖構建等任務上獲得更高的準確率,故目前自動駕駛的研究熱點已轉移到深度學習方法上來[3-6]。
車道檢測對于自動駕駛而言是極為重要的一步,首先它可以使車輛行駛在正確的道路上,對于后續的導航和路徑規劃也是至關重要的,同時它也具有挑戰性,因為交通、駕駛環境、障礙物、天氣條件等各種內外部復雜條件都會產生巨大影響。對于車道檢測的研究主要有兩種方法進行解決——傳統方法和深度學習方法。
傳統方法主要是通過手工提取特征,然后將其與濾波器進行結合,得到分割的車道線,最后過濾部分錯誤車道得到最終的檢測結果。目前已經有研究使用深度網絡來取代手工提取特征來進行車道檢測:Huval 等[7]首次將深度學習方法應用于CNN 的車道檢測;Pan等[8]通過提出一種相鄰像素之間的消息傳遞機制SCNN顯著提高了深度分割方法對車道檢測的性能;Li等[9]提出了一種端到端的高效深度學習系統Line-CNN(L-CNN),在實時環境中試驗顯示,優于當時最先進的方法,顯示出更高的效率和效率;Tabelini 等[10]提出了一種基于錨的單階段車道檢測模型LaneATT,其架構允許使用輕量級主干CNN,同時保持高精度。
本文提出的模型LaneEcaATT 是在基于錨的單級車道檢測模型LaneATT 的基礎上進行改進,添加了通道注意力機制ECAnet[11],將ECAnet和輕量級主干網Resnet[12]相結合,在保持FPS 和MACs 指標基本不變的情況下,提高了車道檢測的準確率。本文在兩個公開數據集Tusimple[13]和CULane[8]上評估了本文的方法,同時與LaneATT的結果進行了比較。
LaneATT 是一種基于錨的單階段模型,用于車道檢測。LaneATT 算法主要由主干網Resnet、基于錨的特征池化層、注意力機制和結果預測層組成。
1.1.1 LaneATT的主干網
卷積神經網絡(CNN[2])是一種模擬生物的神經結構的數學模型,通常用于目標檢測、圖像分割、車道檢測等方法的特征提取。理論上CNN 網絡隨著深度越深,就能獲得更加豐富的特征信息,但是在實際實驗中,網絡的深度并不能無限制地增加,網絡深度達到瓶頸之后,效果反而更差,準確率也隨之降低。
通過添加如圖1所示的殘差塊,將多個相似的Residual Block 進行串聯構成Resnet[12]。根據不同的需求,殘差塊有兩種形式,一種是圖1左邊的形式basic block,它由兩層3 × 3 的卷積組成,輸入輸出的維度相同;另一種是圖1右邊的形式bottleneck block,通過使用1 × 1 卷積層實現了先降維再升維的過程,此方法可以降低計算復雜度。Resnet通過引入殘差塊在一定程度上解決了梯度消失和梯度爆炸的問題,從而能夠訓練更深的網絡。相比于VGG[14]網絡,Resnet網絡不僅更深而且模型的尺寸和參數量更小,LaneEcaATT 使用Resnet18、Resnet34、Resnet101 作為主干網來提取圖片特征。

圖1 bottleneck block[12]
1.1.2 基于錨的特征池化層
LaneATT 的池化操作借鑒了Fast R-CNN[15]的感興趣區域投影(ROI 投影),區別在于檢測的時候使用的是線。相比于Line-CNN[9]只利用了特征圖的邊界,LaneATT 在一定程度上可以使用所有的特征圖,故LaneATT 可以使用更小的主干網和更小的接受域。一個錨就定義了一個候選點集F,將錨所構成虛線上的特征進行串聯,對于超出圖片邊界的點做補零操作以保證串聯后的維度恒定,。對于每一個yj=0,1,2…HF-1,的計算公式如式(1)所示:
其中(xo,yo)是錨線的原點,θ是錨線的斜率,δback是主干網的全局步長。
1.1.3 LaneATT的注意力機制
對于大多數輕量級模型來說,獲取的是局部特征向量。但是在某些復雜的場景下,例如有其他物體遮擋視野或目標部分消失的情況下,局部特征可能無法預測車道是否存在以及其位置。為解決這一問題LaneATT 提出了一種新的注意力機制Latt[10],它利用局部特征來生成附加特征,將其和局部特征結合得到全局特征。對于每一個局部特征向量,當i≠j的時候,輸出一個權重ωi,j[10],如公式(2)所示:
通道注意力機制可以提升CNN網絡的性能,但現有的算法為獲得更加優秀的效果,大都選擇復雜的注意力模塊而忽略了算法應用于輕量級模塊和實時運算的情況[11]。
SENet[16]的降維會給通道注意力機制帶來副作用,并且沒有必要獲取通道之間的依賴關系。ECAnet 將原始的SENet 與它的三個都沒有降維的變體(SE-Var1,SE-Var2 和SE-Var3)進行了對比實驗:SE-Var1 雖然沒有參數但是性能仍然優于SENet,說明在提高深度CNN 的性能上面通道注意力是有用的;SE-Var2 在每個通道獨立地學習權重且參數較少,結果也是優于SENet,說明通道及其權重需要直接對應,而且避免降維比非線性通道依賴更加重要;SE-Var3 比在SE塊中少使用一個FC 層進行降維,結果顯示性能更好[11]。綜合ECAnet 的實驗可以表明,避免降維對于通道注意力機制的性能有很大的提升,故ECAnet 在SENet 的基礎上進行改進,ECAnet通過一維卷積來實現了一種不需要降維的局部交叉通道交互策略。ECAnet 的模型結構如圖2所示。

圖2 ECAnet結構[11]
本文提出的算法模型LaneEcaATT(如圖3 所示)在LaneATT 的基礎上添加了ECAnet(如圖3圓角矩形所示),以提取局部特征。模型的輸入圖像經過主干網Resnet 和ECAnet 提取特征,利用基于錨的特征池化層提取感興趣的錨線,進而生成局部特征,局部特征通過注意力機制生成全局特征,將局部特征和全局特征進行結合,最后將組合特征傳遞給全連接層得到最終預測的車道。

圖3 LaneEcaATT的模型圖
本文的方法在兩個最常使用的車道檢測數據集(Tusimple[13]和CULane[8])上進行測試,兩個數據集的具體信息如表1所示,所有的實驗都使用了數據集的創建者默認的參數。

表1 數據集信息
實驗中的所有輸入圖像都被調整為HI×WI=360 × 640 像素,對于兩個數據集都使用Adam優化器,Tusimple訓練100個epochs,CULane訓練15 個epochs,通過隨機的平移、旋轉、縮放和水平翻轉來進行數據增強。本文實驗部分的效率指標分為每秒幀數(FPS)和乘積累加運算(MACs)。
2.2.1 Tusimple數據集
Tusimple[13]是一個只包含高速公路場景的車道檢測數據集,通常相對于街景來說,這個場景作為車道檢測會更容易。但是它仍然是在車道檢測工作中使用最廣泛的數據集之一。所有的圖像都有1280 × 720像素,最多有5個車道。
2.2.2 Tusimple數據集上的評價指標
在Tusimple 數據集上三個評價指標分別是錯誤發現率(FDR)、假陰性率(FNR)和準確性(Accuracy)。
準確性Accuracy如公式(4)所示:
其中,Cclip是切片中正確預測車道的點數,Sclip是圖片中總的點數,預測點必須是在真實圖像點的20個像素內才能被認為是正確的點。
2.2.3 Tusimple數據集上的實驗結果
表2是本文模型在Tusimple數據集上得到的檢測結果。可以看出,本文的方法LaneEcaATT在MACs 和Params 上基本上沒有任何增加,FPS也基本持平。在準確率上本文均優于LaneATT,甚至在使用Resnet18 作為主干網的情況下,比LaneATT 使用Resnet34 的準確率還要高,但MACs 減少了50%,Params 減少了45%,FPS 提升了44%。雖然在Resnet18 和Resnet34 上FDR比較高,但是在FNR 方面則是都優于LaneATT。圖4 是LaneEcaATT 和LaneATT 在Tusimple 上 的檢測效果對比,LaneEcaATT 的檢測效果要略優于LaneATT的檢測效果。
結合表2 和圖4,在Tusimple 數據集上,本文算法的準確率都得到了提升,尤其是在Resnet18 上達到了LaneATT 在Resnet34 上的準確率。(左中右依次是原圖、LaneATT、LaneEcaATT;上中下分別是Resnet18、Resnet34、Resnet101;黑色線條是真實車道,灰色線條是檢測結果)

表2 Tusimple數據集結果

圖4 Tusimple數據集實驗結果
2.3.1 CULane數據集
CULane[8]是最大的公開車道檢測數據集之一,也是最復雜的數據集之一。所有圖像大小均為1640 × 590 像素,測試圖像分為九類,包含正常、擁擠、夜間、無可見線等。
2.3.2 CULane數據集上的評價指標
在CULane 上有三個評價指標Precision、Recall、F1。
Precision是計算正確預測占整個正確預測與錯誤預測之后的百分比,如公式(5)所示:
Recall是計算正確預測占正確預測與假陽性之和的比例,如公式(6)所示:
在式(5)、式(6)中,TP是正確預測車道的數目,FP是錯誤預測車道的數目,FN是假陰性的數目。
F1 是基于IOU(intersection over union)來進行判斷的。IOU 的評價標準是根據兩個區域的交集占比,官方將車道線視為30像素值寬的線,如果預測出來的車道和真實車道的IOU大于0.5,那么就會被認為預測正確,F1 如公式(7)所示:
2.3.3 CULane數據集上的實驗結果
考慮到CULane 數據集圖片大小和Resnet 深度,在CULane 數據集上本文在Resnet18 上將ECAnet 的一維卷積核大小k保持為3,在Resnet34 和Resnet101 將k修改為5,整個CULane 數據集的測試結果見表3,表4 展示了從normal到night的九類場景的F1參數數據。
通過表3、表4 可以得到,Resnet18 運用本文方法后在Recall上提升0.4個百分點,hlight上提升1.66 個百分點,arrow 上提升1.24 個百分點,在curve上提升1.15個百分點,在night上提升0.99 個百分點。Resnet34 上運用本文方法后在Precision 上提升0.04 個百分點,cross 錯誤量降低了28 個百分點,但是F1 值有所下降。Resnet101 上運用本文方法后在Recall 上提升了1.04 個百分點,在noline 上提升了0.88 個百分點,在curve 上提升了1.26 個百分點。圖5 是Lane-EcaATT和LaneATT在CULane上的檢測效果對比。
結合表3、表4 和圖5 的結果,可以看出在CULane 數據集上,本文算法在Resnet18 網絡結構上改進效果較好。

圖5 CULane數據集實驗結果

表3 整個CULane數據集的結果

表4 CULane數據集九類場景的F1結果
本文改進的車道檢測算法LaneEcaATT 不僅有著高準確率,同時還保持快速的檢測速度。在Tusimple 數據集上,本文方法比原始模型檢測準確率更高,甚至可以用更淺的主干網實現不錯的檢測效果。在CULane 數據集上,本文方法在Resnet18 網絡結構下表現優于原方法,但是在另外兩種網絡結構下的表現有待提升,將在后期研究中進一步改進。