?

基于循環特征融合的彎道增強車道線檢測算法

2024-01-15 00:44魯維佳劉澤帥潘玉恒李國燕李慧潔
測繪通報 2023年12期
關鍵詞:車道注意力卷積

魯維佳,劉澤帥,潘玉恒,李國燕,李慧潔,叢 佳

(1.天津城建大學計算機信息與工程學院,天津 300384; 2.中國鐵塔股份有限公司天津市分公司,天津 300011)

車道線檢測是自動駕駛系統中車道輔助保持系統(LKS)和車道偏離預警系統(LDWS)的關鍵技術,高效實時的車道線識別可以提升自動駕駛汽車的行駛安全性[1-2]。近年來,深度卷積神經網絡以其優越的圖像特征提取性能被廣泛應用于車道線檢測中[3]。文獻[4]提出一種穩健的車道線檢測方法,以VGG16[5]為卷積神經網絡,加入編碼器和解碼器結構。該方法在車道檢測速度和精度之間取得了很好的平衡。針對車道彎道處識別精度問題,文獻[6]提出一種基于多攝像機融合,集成消失點估計和特定的特征擬合策略的車道檢測方法,但該方法對相機參數依賴較高。文獻[7]提出的SegNet網絡能夠同時檢測出建筑物、行人、車道線,實例分割性能優異,但實時性較差。文獻[8]提出了一種用于車道邊界識別的端到端系統,完成了車道線的實例分割和分類,滿足了實時性要求。文獻[9]采用多幀連續圖像作為輸入,并提出結合CNN和RNN的混合神經網絡,在復雜環境中具有很好的穩健性。文獻[10]利用文獻[11]的思路來實現對任意數量車道線的檢測,訓練了一種視角轉換的H-Net網絡,解決了車道線變化和視角波動的問題,但該方法Cluster耗時嚴重。文獻[12]提出一個可以檢測任意車道數的PINet網絡,并提出后處理算法消除雜點,該方法誤檢率低,而且計算開銷較小。文獻[13]提出一種車道敏感架構搜索框架CurveLane-NAS,可以自動捕獲長距離相干和精確的短距離曲線信息,該方法在復雜環境中有著不錯的性能。文獻[14]提出一種基于GLNet的車道線檢測算法,該算法在LaneNet基礎上加入生成對抗網絡,使用H-Net[15]網絡訓練的視覺轉換矩陣優化并擬合輸出車道線,適用于多種場景。文獻[16]提出的LaneATT根據車道線的細長特征將具有細長形狀的錨點用于特征池化步驟,提升了模型性能。然而,對于曲線車道或復雜拓撲結構的車道,錨點無法很好地描述車道線的形狀。

綜上所述,當前車道線檢測算法取得了良好的進展,但還存在一些不足之處,如對計算機硬件要求高、計算量大、實時性差、對彎道識別效果不佳等。本文針對以上問題提出基于深度學習的車道線檢測算法,以期在多變行車環境下對彎道的檢測,具有更高的準確度和穩健性。

1 算法總體思路

車道線由遠及近是連續的,形狀先驗性較強;由左向右,線與線之間空間依賴性較強?;赗ESA的思想[17],以車道特性作為出發點,利用空間信息建立特征融合模塊。為避免梯度消失問題,采用ResNet-50網絡[18]作為主體框架,結構見表1,殘差結構中的跳躍連接有利于信息在網絡的各層間流動。Resa-CC算法整體模型由編碼器、自注意力機制、循環特征融合模塊、解碼器組成??傮w結構如圖1所示。

圖1 算法總體結構

表1 ResNet-50網絡結構

2 基于循環特征融合的彎道增強算法結構

2.1 編碼模塊

Resa-CC算法以ResNet作為特征提取器。原始輸入圖像通過編碼器后特征縮小到 1/8。初步特征將在此階段提取,并將自注意力模塊加入解碼器中,模塊如圖2所示。

圖2 編碼器模塊

2.2 解碼模塊

解碼器由雙邊上采樣塊組成。每個塊上采樣兩次,最后將 1/8 的特征圖恢復到原始大小。雙邊上采樣解碼器由粗粒度分支和細粒度分支組成,如圖3所示。

圖3 雙邊上采樣解碼器

粗粒度分支:從最后一層快速輸出粗略向上采樣的特征。首先1×1卷積減少通道數;然后乘以輸入特征圖的2倍,進行BN操作,雙線性插值對輸入特征圖進行上采樣;最后,執行ReLU操作。

細粒度分支:微調來自粗粒度分支的信息丟失。步幅為2的轉置卷積對特征圖進行上采樣,同時將通道數減少2倍。Non-bottleneck塊由具有BN和ReLU的4個3×1和1×3卷積組成,可保持特征圖的形狀并以分解的方式有效地提取信息。在上采樣操作之后,堆疊2個Non-bottleneck。

2.3 自注意力機制模塊

編碼器中加入 CBAM[19]注意力機制,如圖4所示。該模塊可以自適應地對不同通道和空間位置的特征進行加權,提高模型對重要特征的關注度,主要包括兩部分:通道注意力和空間注意力。通過這兩部分的結合,CBAM模塊可以在保留重要特征的同時,通過學習通道和空間位置之間的相關性,抑制無關特征,從而提高模型的泛化能力和性能。

圖4 CBAM自注意力機制

2.4 循環特征聚合模塊

以車道的形狀先驗性和空間依賴性作為出發點,設計一個模型,可以融合這兩方面的空間信息,并增強原始特征。該模塊中,將特征圖進行切片,如圖5所示, (a)與(b)分別為特征上下傳播和左右傳播。每次迭代中,切片特征圖將在4個方向上反復移動,并垂直和水平傳遞信息。最后,該模塊經過K次迭代,以確保每個位置都可以接收整個特征圖中的信息。步長不同時水平信息傳遞和垂直信息傳遞如圖6所示。

圖5 特征圖切片

圖6 特征傳遞

該模塊在4個方向上重復應用特征移位操作,使每個位置都能感知并聚合同一特征圖中的所有空間信息。該模塊的進一步計算定義為

(1)

(2)

(3)

(4)

式(1)-式(4)中,Z為信息傳遞的實時結果;X為第k次迭代時特征圖的值,帶有下標的X為更新后的元素;c、i、j分別表示通道、行、列;L為式(1)和式(2)中的W和H;f為ReLU的非線性激活函數;sk為第k次迭代中的步長,式(1)和式(2)分別為垂直和水平方向的信息傳遞公式;F為一組一維卷積,尺寸為輸入通道數×輸出通道數×卷積核的寬度:Nin×Nout×w。

以從右向左的信息傳遞為例,當k=0次時,s1=1,每列中的Xi可以接收Xi+1移位特征。由于反復移位,Xw-1也可以接收X0移位特征。當k=1次迭代時,s2=2,每列中的Xi可以接收Xi+2移位特征。以X0為例,X0可以在第二次迭代中接收X2信息,考慮X0在上一次迭代中從X1接收了信息,X2從X3接收到信息,現在X0僅在兩次迭代中總共從X0、X1、X2和X3接收了信息。下一次迭代類似于上述過程。在所有K次迭代之后,每個Xi可以在整個特征圖中聚集信息。

2.5 改進的彎道增強技術

在像素級別上,相鄰行上的車道點互相靠近。因此,將相鄰三行車道點的像素坐標進行二次曲線擬合,預測下一行車道點的位置。在圖7中,通過A、B、C的坐標,擬合一條二次曲線。由于行方向是平均劃分的,因此可以確定D點的列坐標。通過求解二次曲線的曲率,可以得出D點的行坐標,從而確定下一行車道線點的位置坐標。

圖7 車道彎道結構

2.6 損失函數設計

Resa-CC算法利用二次多項式函數建立曲線車道線的約束條件,進而設計出損失函數,以提高彎道檢測的準確率。由于直線是二次多項式函數的一種特殊形式,可視為二次多項式函數的一種特例,因此本文所提出的算法不會影響直線車道線的檢測。

以圖7為基礎,建立坐標系,垂直方向為x軸,水平方向為y軸,假設曲線車道線可以表示為一個二次多項式函數

y=ax2+bx+c

(5)

顯然有

d2y/dx2≡2a

(6)

即車道線的二階導數為常數,即在任一點處的二階導數相等,圖7車道線上連續A、B、C、D,橫軸間隔為1,即有

(7)

將導數以差商形式近似可得

(yB-yC)-(yC-yD)=(yA-yB)-(yB-yC)

(8)

式(8)極小化函數為

(9)

第i條車道線在第j行的位置坐標的期望為

(10)

將式(9)代入式(10)可得彎道約束損失函數

(11)

3 試驗內容與結果分析

試驗環境為64位Windows 10,Intel(R) Core(TM) i7-7700 CPU @ 3.60 GHz,GPU為8 GB顯存的NVIDIA GeForce GTX 1080,使用Python 3.8開發,采用訓練神經網絡Pytorch-1.9.0,torchvision-0.2.0,OpenCV-python-4.5.1.48等完成。模型中EPOCHS為100,LEARNING_RATE為0.000 5,BATCH_SIZE為6。

3.1 數據集介紹

采用TuSimple數據集,該數據集包含不同交通狀況、不同時間段的車道線數據。其中訓練集3626張,測試集2782張。為驗證本文算法在彎道場景下的有效性,對測試集的圖像進行人工選取,選取483張彎道場景的圖像作為彎道測試集。

3.2 評估指標

為評判模型性能,采用視覺領域常用評估標準:準確率Acc,誤檢率FP、漏檢率FN。公式分別為

(12)

(13)

(14)

式中,Cclip為正確預測的車道點的數量;Sclip為每個剪輯中地面真相的總數;Tfp為檢測錯誤的車道線數量;Nt為全部檢測到的車道線數量;Tfn為檢測錯誤的真實車道線的數量;NT為全部真實的車道線數量;FPS為單位時間內機器處理圖片的數量。

3.3 消融試驗

進行消融試驗以驗證循環特征聚合模塊和自注意力機制的有效性。將本文Resa-CC算法與其他方法進行對比,如ResNet-18、ResNet-34。Resa-18和Resa-50為分別以ResNet-18和ResNet-50為基礎的循環特征融合模型。結果見表2,加入循環特征融合模塊后的Resa-18,準確率提升3.41%,FP和FN分別下降5.31%和5.48%;對比Resa-50,加入注意力機制的Resa-CC準確度提升1.1%,FP和FN分別下降0.82%和0.11%。結果表明,注意力機制和循環特征融合模塊的加入,能更有效地捕捉到車道的結構特征,從而提升了彎道識別的性能。

表2 消融試驗

3.4 試驗結果與分析

為更好地說明算法的性能,對比行車過程中彎道處的識別結果,4個不同彎道場景及曲率的識別效果如圖8所示,本文Resa-CC算法與SGRNeXt算法檢測效果對比如圖9所示。

圖8 彎道檢測效果

圖9 檢測效果對比

由圖8可以看出,算法均準確地識別出了彎道車道線,證明了本文算法彎道檢測的準確率和穩定性。

由圖9可以看出,未加入彎道結構損失的SGRNeXt算法中,車道彎道處出現末端上揚的情況;相同場景下,加入彎道結構損失的Resa-CC彎道的識別性能有明顯提升,在彎道處更加準確地識別出了彎道車道線。

本文算法的準確率(Acc)與訓練回合數(Epoch)之間的關系如圖10所示。算法的準確度隨著Epoch的增加而提高,不同算法的準確度在不同的Epoch值上達到飽和狀態。當Epoch再增加,算法的準確度出現下降。因此,Epoch設置過大會對機器性能造成浪費,本文的Epoch設置為100,在合理范圍之內。

圖10 Acc折線圖

表3為本文提出的Resa-CC模型分別與LaneNet[10]、UFLD[20]和SGRNeXt的對比試驗結果。在彎道識別中,Resa-CC算法的準確率c可達96.8%, FP遠低于其他算法。這得益于循環特征融合模塊和自注意力機制,算法更加關注圖像的特征,有助于實現車道線檢測的更高精度。相比LaneNet,準確度提升3.6%,FP和FN分別下降4.79%和0.44%,FPS與Runtime均滿足行車實時性檢測要求。綜合各指標,本文Resa-CC檢測模型為最優,在彎道路段行駛中準確檢測到車道線的位置,具有更強的穩健性和準確性。

表3 對比試驗

4 結 論

針對道路轉彎處曲率過大而導致彎道識別精度下降的問題,本文提出了一種基于循環特征融合的彎道增強算法。該算法主要關注車道本身結構信息,通過在模型中加入編解碼結構和自注意力機制,增強車道結構信息特征,循環特征融合模塊能更全面全方位地將車道線特征融合起來,且沒有特征信息的損失。彎道結構損失函數通過將車道線建模為二次項函數,能有效地提高車道彎道檢測的性能,算法準確率達96.83%,對比UFLD算法,準確率提升1.7%,FP和FN分別下降17.26%和2.61%,FPS為35.68,符合自動駕駛汽車中對實時性檢測的要求。

猜你喜歡
車道注意力卷積
讓注意力“飛”回來
北斗+手機實現車道級導航應用
基于3D-Winograd的快速卷積算法設計及FPGA實現
避免跟車闖紅燈的地面車道線
淺談MTC車道改造
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
低速ETC/MTC混合式收費車道的設計與實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合