葛澤坤,陶發展,2,付主木,2,宋書中,2
1.河南科技大學 信息工程學院,河南 洛陽 471023
2.河南科技大學 河南省機器人與智能系統重點實驗室,河南 洛陽 471023
隨著圖形處理硬件的不斷發展,深度學習在許多具有挑戰性的領域內表現出了高性能、高效率的優點。Kim等人[1]和Huval等人[2]將CNN與計算機視覺相結合應用于車道線檢測系統。Pan等人[3]認為傳統的卷積網絡可以捕獲語義信息,但在獲取空間信息效果較差,因此提出了一個基于序列信息的SCNN框架,實驗結果顯示該框架能夠有效的捕獲上下文信息。Neven等人[4]提出了一種利用實例分割來進行車道線檢測的方法LaneNet,該方法利用卷積網絡生成透視變換矩陣,在透視變換后的圖像上進行擬合,從而得到更好的擬合結果。Ghafoorian等人[5]通過引入對抗生成網絡[6](generative adversarial network,GAN)來優化車道線語義分割的學習過程,同時提出一個embedding loss方法,增強模型的魯棒性和穩定性。Zhang等人[7]設計了一種遞歸特征偏移聚合器(RESA),能更直接有效地傳遞空間信息,提升模型的精確度和魯棒性。
上述列舉的方法均是基于CNN的網絡結構,這些方法并未考慮CNN在處理車道線這種細長結構時存在的缺陷。CNN是一種局部的操作,基于這一特性,基于CNN的網絡通常具有較好的泛化能力和較快的收斂速度,并且具有較強的先驗歸納偏置能力,但其有限的感受野導致網絡在復雜駕駛環境下不能有效地建立長期依賴關系,對視野遠端的車道標記檢測效果不佳[8]。與CNN不同,MHSA是一種全局的操作,通過上下文信息聚合算子能建模二維圖像中所有像素之間的關系[9-10],具有捕獲大范圍特征信息的能力,因此對車道線結構的建模效果更佳。
針對上述問題,將MHSA與CNN進行結合,用于提取更豐富的車道標記細節信息與上下文信息,建立車道標記的長期依賴關系,對車道線細節檢測擁有更好的效果,解決外界干擾對檢測系統造成的檢測不佳問題。為了解決引入MHSA所造成的計算復雜度增加問題,設計了特征壓縮模塊與上下文信息嵌入模塊,分別用于快速壓縮特征尺寸和整合提取到的豐富的上下文信息,并且在百度Apollo無人駕駛平臺上驗證了提出方法的性能。
車道線模型定義為多項式結構:
其中,(X,Y)代表車道線在地面上的點,N是多項式X的階數,αn和b是車道線多項式函數的系數。
通常情況下,現實駕駛環境中的車道線形狀并不復雜,因此,采用常用的三次多項式來近似平坦地面上的車道線形狀:
在真實駕駛環境下,道路常存在路面崎嶇不平,對多項式模型會產生干擾,因此考慮將平坦道路的三次多項式轉換為“鳥瞰圖”進行表示,避免道路不平造成的影響。轉換公式如下式所示:
其中,(x,y)為轉換后相平面上對應的像素點,fx為焦平面上像素的寬度除以焦距,fy為焦平面上像素的高度除以焦距,H為攝像機架設的高度。
考慮到在行駛中存在顛簸,使架設的攝像機產生傾斜情況,假設產生傾斜角為θ,未傾斜與產生傾斜的變換如下式所示:
其中,f為攝像機焦距。f'為俯仰變換后的攝像機焦距,(x',y')為俯仰變換后相對應的像素點。結合式(2)~(4)可得:
綜上所述,第i條車道線的輸出被參數化為pi:
其中,i∈[0 ,1,…,M],M車道線的總數。
該模型訓練時的主要難點在于計算預測的車道線參數與真實車道線之間的匹配度。所提方法采用匈牙利擬合損失,在預測的車道線參數與真實車道線之間進行二部匹配,利用匹配結果對特定車道的回歸損失進行優化。
首先將預測的車道線參數集合定義為:
其中,M定義為大于常見情況下的車道數量。再將真實車道線標記集表示為:
然后通過搜索最優單射函數:l:S→P,將預測的車道線參數集與真實車道線標記集之間的二部匹配問題定義為一個代價最小的問題:
其中,Lbmc為第i條真實車道線與索引為li的預測參數集之間的匹配代價。匹配代價既考慮了類別預測,也考慮了預測參數集與真實車道線之間的相似度。
最后,回歸損失函數定義為:
其中,g(ci)為類別ci的概率,Sl(i)為擬合車道線序列,μ1,μ2為損失函數的系數,Lmae為平均絕對誤差,Z(?)代表指標函數。
所提的車道線檢測方法結合CNN與MHSA,旨在有效地捕獲車道線的上下文信息,獲得更豐富的車道線細節信息,并且結合Transformer中的Encoder和Decoder模塊輸出車道線的參數,避免復雜的后處理操作帶來的計算負擔。提出的車道線檢測方法網絡結構如圖1所示。

圖1 網絡結構圖Fig.1 Structure of network
自注意機制可以引導模型從不同角度學習不同的語義信息。首先,給定一個輸入為x∈RC×H×W,其中C為通道數量,H為高度,W為寬度。然后采用3個1×1的卷積將輸入的x分別投影為查詢向量(query),鍵向量(key)和值向量(value)。最后,分別計算查詢向量,鍵向量和值向量的注意函數,并且組成矩陣Q,K和V。自注意機制的輸出表示為:
其中,d為查詢向量和鍵向量的維度,用于防止訓練時產生梯度消失。通俗來講,MHSA即由許多自注意機制組合起來的機制。MHSA分別對每個自注意機制進行單獨計算,然后將每個自注意機制的輸出進行連接,得到最后的輸出:
Transformer提出的MHSA沒有包含對二維圖像的位置信息編碼,無法滿足對二維特征的處理,從而限制了在處理視覺任務的表達能力。針對這一問題,在構建多頭注意力層時,將相對位置編碼擴展到二維,改進MHSA對二維圖像的理解能力。首先,考慮到MHSA在處理圖像時會對各像素點之間的關系進行建模,因此將圖像的二維特征考慮為向量的結合,即每個像素點的RGB三個通道組成一個向量。然后,構建二維特征的相對位置編碼為Ph和Pw,其中Ph和Pw分別表示二維特征在高和寬兩個方向的相對位置,構建的二維相對位置編碼使改進的MHSA在處理二維特征時,可對每個像素注入相對位置信息,加強MHSA對于二維特征的理解能力。最后,將改進的MHSA加入自學習的機制,能在優化器中隨著訓練一起學習更新,學習到更合適的相對位置編碼信息。改進的MHSA結構如圖2所示。

圖2 多頭注意力結構圖Fig.2 Structure of MHSA
構建的多頭注意力層使用MHSA、批量歸一化和ReLu激活函數組成,該模塊可以直接替代卷積層,能夠通過二維特征圖實現全局自我關注。
卷積操作是一種局部操作,一個卷積層一般只模擬相鄰像素之間的關系,而MHSA是一種全局操作,可以建立二維特征圖中所有像素之間的關系。因此在構建網絡時,如何合理地將這兩種不同的機制相結合,是需要解決的首要問題。MBConv模塊更適合作為卷積層來為MHSA捕獲更多的車道線細節信息[11],該模塊利用深度卷積(depthwise convolution,DWConv)來整合空間信息交互。這是因為MHSA與MBConv模塊采用的DWConv都可以表示為預定義感受野的加權之和。此外,DWConv與Transformer中的前饋網絡(feed-forward network,FFN)都具有倒瓶頸結構,均采用先擴張后縮小的方法,將輸入的通道大小先擴大4倍,然后將4倍寬的隱藏狀態投影回原始通道大小,最后使用殘差連接。這表明DWConv可以與MHSA進行有效結合。MBConv模塊如圖3(a)所示。

圖3 MBConv與Fuse MBConv模塊結構圖Fig.3 Structure of MBConv and Fuse MBConv block
在實驗中發現,采用MBConv模塊在處理高分辨率特征圖時會出現計算緩慢的情況。通過驗證發現,MBConv模塊在處理低分辨率特征圖中效果理想,但在處理高分辨率特征時存在欠缺。針對這一問題,搭建網絡時,在網絡較前階段采用結構簡單的Fuse MBConv模塊對原始輸入圖像進行快速處理,使特征快速達到合適的尺寸。該模塊將MBConv模塊中的3×3深度卷積和1×1卷積替換為1個3×3卷積,Fuse MBConv模塊如圖3(b)所示。
單一地采用Fuse MBConv和MBConv模塊使輸入特征達到合適的尺寸會造成網絡的冗余堆疊,增加模型的訓練時間,耗費大量的計算成本。針對這一問題,提出一個特征壓縮模塊對輸入的原始特征進行快速壓縮,以提高網絡的效率。特征壓縮模塊如圖4(a)所示,該模塊具有高效的計算能力和有效的特征表達能力。

圖4 特征壓縮與上下文信息嵌入模塊結構圖Fig.4 Structure of stem and context embedding block
檢測網絡將特征壓縮模塊作為第一層,對原始輸入圖像進行快速下采樣。該模塊包含兩個分支,分別采用普通卷積操作和最大池化處理對輸入特征進行下采樣,然后將兩個分支輸出的特征進行融合。
針對目前車道檢測系統對視野遠端的車道標記檢測效果不佳的問題,旨在構建一個具有較大感受野的網絡,能夠提取更豐富的車道線結構以及細節信息,尤其是在視野遠端處的車道線標記。所提方法設計了一個上下文信息嵌入塊模塊,該模塊能夠有效地擴大感受野,整合網絡提取到的豐富的上下文信息,提高網絡的檢測效果。
由于CNN與MHSA具有不同的處理特點,因此直接輸出多頭注意力層提取到的特征會造成訓練難以收斂和效率慢的問題。全局平均池化通過計算每個輸出通道特征圖中所有像素的平均值,能夠降低參數量,提高訓練效率,可有效解決訓練難以收斂的問題,并且能對空間信息進行求和,因此對輸入的空間變換更具強的魯棒性。
基于全局平均池化這一特點,在構建上下文信息嵌入塊模塊時,首先利用全局平均池化來處理網絡提取的上下文信息,并在此基礎上,加入了殘差連接進一步改善訓練過程中可能出現的梯度消散等問題,提高模型的魯棒性。上下文信息嵌入塊模塊結構如圖4(b)所示。
所提方法的網絡結構見表1,其中Stage代表階段數,Operator代表特征層進行的操作,s代表步長,k代表卷積核大小,c代表通道大小,r代表重復次數。

表1 網絡結構表Table 1 Table of network structure
得到提取到的特征后,采用Transformer中的Encoder和Decoder結構擬合車道線參數。對提取的二維特征,進行折疊空間維度,將其扁平化為一個序列,用于Transformer中的前向反饋網絡實現車道線參數擬合。
實驗采用TuSimple數據集用于訓練和驗證。TuSimple車道檢測數據集由6 408幅分辨率為1 280×720的標注圖像組成,其中3 268張圖片作為訓練集、358張圖片作為驗證集、2 782張圖片作為測試集。該數據集包含了美國白天各種高速公路環境下的車道圖像,如優良和溫和的天氣條件、不同的車道線數量和不同的交通環境,是一個大規模的數據集,可以更好地體現出車道檢測算法的魯棒性。
為了便于與其他車道線檢測方法進行比較,采用官方的度量作為評價標準:
準確率(accuracy):
其中,Npredi是第i條車道線正確預測的點數,Ngti是第i條車道線真實的點數。
按照TuSimple官方的基準,實驗將允許的偏差距離設置為20個像素。如果一個點與其對應的標記點之間的距離在允許的偏差范圍內,則認為該點為正確預測。
錯檢率(false positives,FP):
其中,Fpred為錯誤預測的車道點數量,Npred為預測到的車道點總數。
漏檢率(false negatives,FN):
其中,Mpred為未被檢測到的真實車道點數量,Ngt為真實車道點的總數。
所提方法采用Pytorch架構實現,輸入圖像的分辨率設置為256×512。原始圖像采用隨機縮放、裁剪、旋轉和水平翻轉的方法來進行圖像增強。訓練使用Adam優化器訓練模型,初始學習率設置為0.000 1,并且每4.5萬次迭代衰減1次。損失函數的系數設為3、5、2,預測曲線的固定個數設為7,批處理大小設為16,訓練迭代次數設為50萬次。實驗在RTX 3060 GPU上進行訓練。
Apollo無人駕駛平臺Apollo D-KIT Advanced Ne-s配置如下:Ubuntu 18.04操作系統,工控機為Nuvo-8108GC,搭載GeForce RTX 2070 Super GPU和Intel?CoreTMi9-9900K CPU@3.60 GHz處理器。
首先,對提出的方法與其他先進的方法進行對比,對比結果見表2。對比的方法包括:SCNN[3]、RESA[7]、UFLD[12]、FastDraw[13]、PolyLaneNet[14]、LSTR[15]。其中,PolyLaneNet和LSTR與所提方法同樣采用多項式回歸的車道線模型。對比標準考慮了模型準確度(Acc)、錯檢率(FP)、漏檢率(FN)、是否使用后處理操作(PP)和模型速度(FPS)。

表2 對比實驗結果Table 2 Comparison experiment results
從對比結果可以看到,綜合檢測準確度和檢測速度兩個方面,所提方法保持了較強的競爭力。在檢測準確度方面,所提方法具有最高的準確度。與檢測速度最快的UFLD相比,檢測準確度提高了0.69個百分點。與PolyLaneNet相比,雖然速度下降了,但準確度提高了2.94個百分點。PolyLaneNet算法在檢測部分車道標記接近地平線的地方不準確,提出的方法在接近地平線的視野遠端,仍然保持了優秀的檢測結果。
為了更加直觀地展示所提車道檢測方法的性能,選取另外三種算法進行可視化結果對比。對比實驗將數據集以不同的行駛場景分為:直道場景、彎道場景、車道線標記缺失場景、一般遮擋場景、多處遮擋場景和夜間場景。圖5展示了所提方法、LSTR、SCNN和RESA四種車道線檢測算法的檢測效果,其中每行代表不同場景下的檢測對比圖,第一列為原圖,第二列為所提方法的檢測結果,第三列為LSTR算法的檢測結果,第四列為SCNN網絡的檢測結果,第五列為RESA算法的檢測結果。從對比結果可以看出,在直道場景(第一行)對比結果中,各算法均保持了理想的檢測結果。在彎道場景(第二行)的對比結果中,其他三個算法并未檢測出道路前方的轉彎趨勢,僅將圖中存在的車道線標記檢測出來,而所提方法則更加精確的檢測出了前方的轉彎情況。在車道線標記缺失場景(第三行)、一般遮擋場景(第四行)和多處遮擋場景(第五行)的對比結果中,由于存在車道線特征缺失和被遮擋的情況,導致其他三個算法均存在誤檢和漏檢的情況,檢測效果不佳,而所提方法仍然保持理想的檢測效果,在檢測效果的魯棒性方面優勢明顯。同樣的在夜間場景(第六行)的對比結果中,由于夜間的光線差,導致車道線標記不明顯,與其他三個算法的檢測結果對比,所提方法的優勢較為明顯。綜合各場景的對比結果,所提方法在不同行駛場景下均保持理想的檢測結果,具有檢測精度高、漏檢誤檢率低、魯棒性強的特點。
為進一步驗證所提出算法的有效性,本節對所提算法的各模塊進行拆解,在TuSimple數據集上進行對比實驗。
3.5.1 算法結構消融實驗
實驗首先分別拆解設計的特征壓縮與上下文信息嵌入模塊,與原算法的準確度進行對比。對于僅加入特征壓縮模塊的實驗,拆解上下文信息嵌入模塊。對于僅加入上下文信息嵌入模塊的實驗,拆解特征壓縮模塊,將特征壓縮模塊用兩個卷積層替代,將輸入的3通道輸出為16通道。對比結果如表3所示。

表3 算法結構消融實驗結果Table 3 Experimental results of ablation of algorithm structure 單位/%
由對比結果可知,加入兩個模塊的完整算法的準確度明顯優于拆解后的算法。對于僅采用上下文信息嵌入模塊的實驗結果,準確度上升的趨勢明顯弱于僅加入特征壓縮模塊實驗。這是由于拆解了特征壓縮模塊,使得算法在處理輸入的大尺寸特征時效率低下,模型的訓練效率較低。而不采用上下文信息嵌入模塊的實驗,模型最終準確度產生降低。這也證實了在2.4節中提到的,上下文信息嵌入模塊能夠有效地擴大感受野,整合網絡提取到的豐富的上下文信息,提高網絡的檢測效果。實驗準確度對比結果如圖6所示。

圖6 算法結構消融實驗結果對比圖Fig.6 Comparison of ablation experiments of algorithm structure
3.5.2 多頭注意力消融實驗
接下來,進行了多頭注意力機制的消融實驗,實驗結果如表4所示,準確度對比結果如圖7所示。由對比結果可知,加入多頭注意力機制的準確度明顯高于未加入多頭注意力機制,這是由于2.2節提出的融合卷積與多頭注意力機制,能夠有效結合卷積與多頭注意力機制的優點,以較淺的網絡深度就可以形成全局關注,提高模型的準確度。

表4 多頭注意力消融實驗結果Table 4 Experimental results of ablation of MHSA 單位:%

圖7 多頭注意力機制效果對比圖Fig.7 Comparison of ablation experiments of MHSA
最后,為了更加直觀展示多頭注意力機制帶來的提升,可視化結果如圖8所示。圖中,第一行為未加入多頭注意力機制的檢測效果,第二行為加入多頭注意力機制后的檢測效果。從結果對比圖可以看出,未加入多頭注意力機制的模型對于視野遠端的車道標記檢測效果不理想,會存在檢測不準確和檢測過度等問題,這是因為CNN的網絡結構缺乏對圖像的長期依賴關系的理解,并且缺乏對上下文信息的提取。加入多頭注意力機制后,明顯改善了模型對于視野遠端車道標記的檢測效果,并且沒有經過任何附加處理操作在視野車道線消失處匯聚成了一個消失點,這有助于自動駕駛系統對于車道消失處的檢測。

圖8 多頭注意力機制效果對比圖Fig.8 Comparison results of MHSA
3.5.3 輕量級網絡消融實驗
實驗分別拆解設計的Fuse MBConv模塊與特征壓縮模塊,主要關注模型的檢測準確度、推理速度與訓練時間的結果對比。該實驗設置與3.3節的實驗設置保持一致,均使用Adam優化器訓練模型,初始學習率設置為0.000 1,每4.5萬次迭代衰減1次,訓練迭代次數設為50萬次。對比結果如表5所示。

表5 輕量級網絡消融實驗結果Table 5 Experimental results of ablation of lightweight network
考慮到車道線檢測系統最終需要在車輛中進行部署,采用Apollo D-KIT Advanced Ne-s作為實現平臺,對提出方法進行驗證。實驗將Apollo搭載的雙目攝像頭采集到的視頻流作為輸入,將視頻流截取為圖像幀的形式傳輸到控制臺,控制臺對圖像進行處理,繪制當前圖像中的車道線進行輸出,達到實時檢測車道線的目的。由實驗結果得,所提方法在Apollo D-KIT Advanced Ne-s上運行速度達到60幀/s,能夠滿足實時檢測的要求。Apollo D-KIT Advanced Ne-s如圖9所示。

圖9 Apollo D-KIT advanced Ne-sFig.9 Apollo D-KIT advanced Ne-s
所提方法結合多頭注意力機制的優秀建模能力,利用多項式回歸直接輸出車道線形狀模型的參數,提出一種網絡結構復雜度小、車道線檢測效果穩定的輕量級網絡,更便于在移動設備端的部署。首先改進多頭注意力機制,將其設計為一種可以替換CNN的模塊,能夠對CNN的局部操作進行補足,形成一種全局的關注機制;接下來使用MBConv模塊與多頭注意力機制進行融合,結合兩者的優點,形成一種互補的機制;然后針對引入多頭注意力機制造成的計算復雜度提升問題,設計了一個特征壓縮模塊進行快速壓縮特征和上下文信息嵌入塊模塊有效的整合提取到的車道細節信息,并采用Fuse MBConv模塊使特征尺寸快速達到合適的大小,減輕計算負擔;最后在TuSimple數據集上進行了實驗,與其他先進的方法進行對比,獲得了具有競爭力的準確性與實時性,并在百度無人駕駛平臺Apollo D-KIT Advanced Ne-s上驗證了提出的方法的性能。