魯維佳,劉澤帥,潘玉恒,李國燕,李慧潔,叢 佳
(1.天津城建大學(xué)計(jì)算機(jī)信息與工程學(xué)院,天津 300384; 2.中國鐵塔股份有限公司天津市分公司,天津 300011)
車道線檢測(cè)是自動(dòng)駕駛系統(tǒng)中車道輔助保持系統(tǒng)(LKS)和車道偏離預(yù)警系統(tǒng)(LDWS)的關(guān)鍵技術(shù),高效實(shí)時(shí)的車道線識(shí)別可以提升自動(dòng)駕駛汽車的行駛安全性[1-2]。近年來,深度卷積神經(jīng)網(wǎng)絡(luò)以其優(yōu)越的圖像特征提取性能被廣泛應(yīng)用于車道線檢測(cè)中[3]。文獻(xiàn)[4]提出一種穩(wěn)健的車道線檢測(cè)方法,以VGG16[5]為卷積神經(jīng)網(wǎng)絡(luò),加入編碼器和解碼器結(jié)構(gòu)。該方法在車道檢測(cè)速度和精度之間取得了很好的平衡。針對(duì)車道彎道處識(shí)別精度問題,文獻(xiàn)[6]提出一種基于多攝像機(jī)融合,集成消失點(diǎn)估計(jì)和特定的特征擬合策略的車道檢測(cè)方法,但該方法對(duì)相機(jī)參數(shù)依賴較高。文獻(xiàn)[7]提出的SegNet網(wǎng)絡(luò)能夠同時(shí)檢測(cè)出建筑物、行人、車道線,實(shí)例分割性能優(yōu)異,但實(shí)時(shí)性較差。文獻(xiàn)[8]提出了一種用于車道邊界識(shí)別的端到端系統(tǒng),完成了車道線的實(shí)例分割和分類,滿足了實(shí)時(shí)性要求。文獻(xiàn)[9]采用多幀連續(xù)圖像作為輸入,并提出結(jié)合CNN和RNN的混合神經(jīng)網(wǎng)絡(luò),在復(fù)雜環(huán)境中具有很好的穩(wěn)健性。文獻(xiàn)[10]利用文獻(xiàn)[11]的思路來實(shí)現(xiàn)對(duì)任意數(shù)量車道線的檢測(cè),訓(xùn)練了一種視角轉(zhuǎn)換的H-Net網(wǎng)絡(luò),解決了車道線變化和視角波動(dòng)的問題,但該方法Cluster耗時(shí)嚴(yán)重。文獻(xiàn)[12]提出一個(gè)可以檢測(cè)任意車道數(shù)的PINet網(wǎng)絡(luò),并提出后處理算法消除雜點(diǎn),該方法誤檢率低,而且計(jì)算開銷較小。文獻(xiàn)[13]提出一種車道敏感架構(gòu)搜索框架CurveLane-NAS,可以自動(dòng)捕獲長距離相干和精確的短距離曲線信息,該方法在復(fù)雜環(huán)境中有著不錯(cuò)的性能。文獻(xiàn)[14]提出一種基于GLNet的車道線檢測(cè)算法,該算法在LaneNet基礎(chǔ)上加入生成對(duì)抗網(wǎng)絡(luò),使用H-Net[15]網(wǎng)絡(luò)訓(xùn)練的視覺轉(zhuǎn)換矩陣優(yōu)化并擬合輸出車道線,適用于多種場(chǎng)景。文獻(xiàn)[16]提出的LaneATT根據(jù)車道線的細(xì)長特征將具有細(xì)長形狀的錨點(diǎn)用于特征池化步驟,提升了模型性能。然而,對(duì)于曲線車道或復(fù)雜拓?fù)浣Y(jié)構(gòu)的車道,錨點(diǎn)無法很好地描述車道線的形狀。
綜上所述,當(dāng)前車道線檢測(cè)算法取得了良好的進(jìn)展,但還存在一些不足之處,如對(duì)計(jì)算機(jī)硬件要求高、計(jì)算量大、實(shí)時(shí)性差、對(duì)彎道識(shí)別效果不佳等。本文針對(duì)以上問題提出基于深度學(xué)習(xí)的車道線檢測(cè)算法,以期在多變行車環(huán)境下對(duì)彎道的檢測(cè),具有更高的準(zhǔn)確度和穩(wěn)健性。
車道線由遠(yuǎn)及近是連續(xù)的,形狀先驗(yàn)性較強(qiáng);由左向右,線與線之間空間依賴性較強(qiáng)?;赗ESA的思想[17],以車道特性作為出發(fā)點(diǎn),利用空間信息建立特征融合模塊。為避免梯度消失問題,采用ResNet-50網(wǎng)絡(luò)[18]作為主體框架,結(jié)構(gòu)見表1,殘差結(jié)構(gòu)中的跳躍連接有利于信息在網(wǎng)絡(luò)的各層間流動(dòng)。Resa-CC算法整體模型由編碼器、自注意力機(jī)制、循環(huán)特征融合模塊、解碼器組成??傮w結(jié)構(gòu)如圖1所示。
圖1 算法總體結(jié)構(gòu)
表1 ResNet-50網(wǎng)絡(luò)結(jié)構(gòu)
Resa-CC算法以ResNet作為特征提取器。原始輸入圖像通過編碼器后特征縮小到 1/8。初步特征將在此階段提取,并將自注意力模塊加入解碼器中,模塊如圖2所示。
圖2 編碼器模塊
解碼器由雙邊上采樣塊組成。每個(gè)塊上采樣兩次,最后將 1/8 的特征圖恢復(fù)到原始大小。雙邊上采樣解碼器由粗粒度分支和細(xì)粒度分支組成,如圖3所示。
圖3 雙邊上采樣解碼器
粗粒度分支:從最后一層快速輸出粗略向上采樣的特征。首先1×1卷積減少通道數(shù);然后乘以輸入特征圖的2倍,進(jìn)行BN操作,雙線性插值對(duì)輸入特征圖進(jìn)行上采樣;最后,執(zhí)行ReLU操作。
細(xì)粒度分支:微調(diào)來自粗粒度分支的信息丟失。步幅為2的轉(zhuǎn)置卷積對(duì)特征圖進(jìn)行上采樣,同時(shí)將通道數(shù)減少2倍。Non-bottleneck塊由具有BN和ReLU的4個(gè)3×1和1×3卷積組成,可保持特征圖的形狀并以分解的方式有效地提取信息。在上采樣操作之后,堆疊2個(gè)Non-bottleneck。
編碼器中加入 CBAM[19]注意力機(jī)制,如圖4所示。該模塊可以自適應(yīng)地對(duì)不同通道和空間位置的特征進(jìn)行加權(quán),提高模型對(duì)重要特征的關(guān)注度,主要包括兩部分:通道注意力和空間注意力。通過這兩部分的結(jié)合,CBAM模塊可以在保留重要特征的同時(shí),通過學(xué)習(xí)通道和空間位置之間的相關(guān)性,抑制無關(guān)特征,從而提高模型的泛化能力和性能。
圖4 CBAM自注意力機(jī)制
以車道的形狀先驗(yàn)性和空間依賴性作為出發(fā)點(diǎn),設(shè)計(jì)一個(gè)模型,可以融合這兩方面的空間信息,并增強(qiáng)原始特征。該模塊中,將特征圖進(jìn)行切片,如圖5所示, (a)與(b)分別為特征上下傳播和左右傳播。每次迭代中,切片特征圖將在4個(gè)方向上反復(fù)移動(dòng),并垂直和水平傳遞信息。最后,該模塊經(jīng)過K次迭代,以確保每個(gè)位置都可以接收整個(gè)特征圖中的信息。步長不同時(shí)水平信息傳遞和垂直信息傳遞如圖6所示。
圖5 特征圖切片
圖6 特征傳遞
該模塊在4個(gè)方向上重復(fù)應(yīng)用特征移位操作,使每個(gè)位置都能感知并聚合同一特征圖中的所有空間信息。該模塊的進(jìn)一步計(jì)算定義為
(1)
(2)
(3)
(4)
式(1)-式(4)中,Z為信息傳遞的實(shí)時(shí)結(jié)果;X為第k次迭代時(shí)特征圖的值,帶有下標(biāo)的X為更新后的元素;c、i、j分別表示通道、行、列;L為式(1)和式(2)中的W和H;f為ReLU的非線性激活函數(shù);sk為第k次迭代中的步長,式(1)和式(2)分別為垂直和水平方向的信息傳遞公式;F為一組一維卷積,尺寸為輸入通道數(shù)×輸出通道數(shù)×卷積核的寬度:Nin×Nout×w。
以從右向左的信息傳遞為例,當(dāng)k=0次時(shí),s1=1,每列中的Xi可以接收Xi+1移位特征。由于反復(fù)移位,Xw-1也可以接收X0移位特征。當(dāng)k=1次迭代時(shí),s2=2,每列中的Xi可以接收Xi+2移位特征。以X0為例,X0可以在第二次迭代中接收X2信息,考慮X0在上一次迭代中從X1接收了信息,X2從X3接收到信息,現(xiàn)在X0僅在兩次迭代中總共從X0、X1、X2和X3接收了信息。下一次迭代類似于上述過程。在所有K次迭代之后,每個(gè)Xi可以在整個(gè)特征圖中聚集信息。
在像素級(jí)別上,相鄰行上的車道點(diǎn)互相靠近。因此,將相鄰三行車道點(diǎn)的像素坐標(biāo)進(jìn)行二次曲線擬合,預(yù)測(cè)下一行車道點(diǎn)的位置。在圖7中,通過A、B、C的坐標(biāo),擬合一條二次曲線。由于行方向是平均劃分的,因此可以確定D點(diǎn)的列坐標(biāo)。通過求解二次曲線的曲率,可以得出D點(diǎn)的行坐標(biāo),從而確定下一行車道線點(diǎn)的位置坐標(biāo)。
圖7 車道彎道結(jié)構(gòu)
Resa-CC算法利用二次多項(xiàng)式函數(shù)建立曲線車道線的約束條件,進(jìn)而設(shè)計(jì)出損失函數(shù),以提高彎道檢測(cè)的準(zhǔn)確率。由于直線是二次多項(xiàng)式函數(shù)的一種特殊形式,可視為二次多項(xiàng)式函數(shù)的一種特例,因此本文所提出的算法不會(huì)影響直線車道線的檢測(cè)。
以圖7為基礎(chǔ),建立坐標(biāo)系,垂直方向?yàn)閤軸,水平方向?yàn)閥軸,假設(shè)曲線車道線可以表示為一個(gè)二次多項(xiàng)式函數(shù)
y=ax2+bx+c
(5)
顯然有
d2y/dx2≡2a
(6)
即車道線的二階導(dǎo)數(shù)為常數(shù),即在任一點(diǎn)處的二階導(dǎo)數(shù)相等,圖7車道線上連續(xù)A、B、C、D,橫軸間隔為1,即有
(7)
將導(dǎo)數(shù)以差商形式近似可得
(yB-yC)-(yC-yD)=(yA-yB)-(yB-yC)
(8)
式(8)極小化函數(shù)為
(9)
第i條車道線在第j行的位置坐標(biāo)的期望為
(10)
將式(9)代入式(10)可得彎道約束損失函數(shù)
(11)
試驗(yàn)環(huán)境為64位Windows 10,Intel(R) Core(TM) i7-7700 CPU @ 3.60 GHz,GPU為8 GB顯存的NVIDIA GeForce GTX 1080,使用Python 3.8開發(fā),采用訓(xùn)練神經(jīng)網(wǎng)絡(luò)Pytorch-1.9.0,torchvision-0.2.0,OpenCV-python-4.5.1.48等完成。模型中EPOCHS為100,LEARNING_RATE為0.000 5,BATCH_SIZE為6。
采用TuSimple數(shù)據(jù)集,該數(shù)據(jù)集包含不同交通狀況、不同時(shí)間段的車道線數(shù)據(jù)。其中訓(xùn)練集3626張,測(cè)試集2782張。為驗(yàn)證本文算法在彎道場(chǎng)景下的有效性,對(duì)測(cè)試集的圖像進(jìn)行人工選取,選取483張彎道場(chǎng)景的圖像作為彎道測(cè)試集。
為評(píng)判模型性能,采用視覺領(lǐng)域常用評(píng)估標(biāo)準(zhǔn):準(zhǔn)確率Acc,誤檢率FP、漏檢率FN。公式分別為
(12)
(13)
(14)
式中,Cclip為正確預(yù)測(cè)的車道點(diǎn)的數(shù)量;Sclip為每個(gè)剪輯中地面真相的總數(shù);Tfp為檢測(cè)錯(cuò)誤的車道線數(shù)量;Nt為全部檢測(cè)到的車道線數(shù)量;Tfn為檢測(cè)錯(cuò)誤的真實(shí)車道線的數(shù)量;NT為全部真實(shí)的車道線數(shù)量;FPS為單位時(shí)間內(nèi)機(jī)器處理圖片的數(shù)量。
進(jìn)行消融試驗(yàn)以驗(yàn)證循環(huán)特征聚合模塊和自注意力機(jī)制的有效性。將本文Resa-CC算法與其他方法進(jìn)行對(duì)比,如ResNet-18、ResNet-34。Resa-18和Resa-50為分別以ResNet-18和ResNet-50為基礎(chǔ)的循環(huán)特征融合模型。結(jié)果見表2,加入循環(huán)特征融合模塊后的Resa-18,準(zhǔn)確率提升3.41%,FP和FN分別下降5.31%和5.48%;對(duì)比Resa-50,加入注意力機(jī)制的Resa-CC準(zhǔn)確度提升1.1%,FP和FN分別下降0.82%和0.11%。結(jié)果表明,注意力機(jī)制和循環(huán)特征融合模塊的加入,能更有效地捕捉到車道的結(jié)構(gòu)特征,從而提升了彎道識(shí)別的性能。
表2 消融試驗(yàn)
為更好地說明算法的性能,對(duì)比行車過程中彎道處的識(shí)別結(jié)果,4個(gè)不同彎道場(chǎng)景及曲率的識(shí)別效果如圖8所示,本文Resa-CC算法與SGRNeXt算法檢測(cè)效果對(duì)比如圖9所示。
圖8 彎道檢測(cè)效果
圖9 檢測(cè)效果對(duì)比
由圖8可以看出,算法均準(zhǔn)確地識(shí)別出了彎道車道線,證明了本文算法彎道檢測(cè)的準(zhǔn)確率和穩(wěn)定性。
由圖9可以看出,未加入彎道結(jié)構(gòu)損失的SGRNeXt算法中,車道彎道處出現(xiàn)末端上揚(yáng)的情況;相同場(chǎng)景下,加入彎道結(jié)構(gòu)損失的Resa-CC彎道的識(shí)別性能有明顯提升,在彎道處更加準(zhǔn)確地識(shí)別出了彎道車道線。
本文算法的準(zhǔn)確率(Acc)與訓(xùn)練回合數(shù)(Epoch)之間的關(guān)系如圖10所示。算法的準(zhǔn)確度隨著Epoch的增加而提高,不同算法的準(zhǔn)確度在不同的Epoch值上達(dá)到飽和狀態(tài)。當(dāng)Epoch再增加,算法的準(zhǔn)確度出現(xiàn)下降。因此,Epoch設(shè)置過大會(huì)對(duì)機(jī)器性能造成浪費(fèi),本文的Epoch設(shè)置為100,在合理范圍之內(nèi)。
圖10 Acc折線圖
表3為本文提出的Resa-CC模型分別與LaneNet[10]、UFLD[20]和SGRNeXt的對(duì)比試驗(yàn)結(jié)果。在彎道識(shí)別中,Resa-CC算法的準(zhǔn)確率c可達(dá)96.8%, FP遠(yuǎn)低于其他算法。這得益于循環(huán)特征融合模塊和自注意力機(jī)制,算法更加關(guān)注圖像的特征,有助于實(shí)現(xiàn)車道線檢測(cè)的更高精度。相比LaneNet,準(zhǔn)確度提升3.6%,FP和FN分別下降4.79%和0.44%,FPS與Runtime均滿足行車實(shí)時(shí)性檢測(cè)要求。綜合各指標(biāo),本文Resa-CC檢測(cè)模型為最優(yōu),在彎道路段行駛中準(zhǔn)確檢測(cè)到車道線的位置,具有更強(qiáng)的穩(wěn)健性和準(zhǔn)確性。
表3 對(duì)比試驗(yàn)
針對(duì)道路轉(zhuǎn)彎處曲率過大而導(dǎo)致彎道識(shí)別精度下降的問題,本文提出了一種基于循環(huán)特征融合的彎道增強(qiáng)算法。該算法主要關(guān)注車道本身結(jié)構(gòu)信息,通過在模型中加入編解碼結(jié)構(gòu)和自注意力機(jī)制,增強(qiáng)車道結(jié)構(gòu)信息特征,循環(huán)特征融合模塊能更全面全方位地將車道線特征融合起來,且沒有特征信息的損失。彎道結(jié)構(gòu)損失函數(shù)通過將車道線建模為二次項(xiàng)函數(shù),能有效地提高車道彎道檢測(cè)的性能,算法準(zhǔn)確率達(dá)96.83%,對(duì)比UFLD算法,準(zhǔn)確率提升1.7%,FP和FN分別下降17.26%和2.61%,FPS為35.68,符合自動(dòng)駕駛汽車中對(duì)實(shí)時(shí)性檢測(cè)的要求。