陸智臣,吳麗君,陳志聰,林培杰,程樹英
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州350108)
近年來(lái),自動(dòng)駕駛技術(shù)得到了快速發(fā)展。車道檢測(cè)是自動(dòng)駕駛和輔助駕駛中的一項(xiàng)關(guān)鍵技術(shù),在運(yùn)動(dòng)規(guī)劃中起著重要的作用。傳統(tǒng)的車道檢測(cè)方法,如霍夫變換 Li[1]、齊美彬等[2],在較為理想的場(chǎng)景下可以檢測(cè)出車道線,但容易受到其他物體的干擾。為了提高在有遮擋、不清晰場(chǎng)景下的檢測(cè)精度,Son 等[3]使用卡爾曼濾波器的跟蹤算法做車道檢測(cè)中,文獻(xiàn)[4]還進(jìn)一步使用了隨機(jī)樣本一致性算法來(lái)消除一些非車道特征區(qū)域。該方法在輕微遮擋時(shí)可以有效提升檢測(cè)精度,但在嚴(yán)重遮擋的情況下檢測(cè)效果仍然較差。
深度學(xué)習(xí)發(fā)展迅速,在車道檢測(cè)領(lǐng)域中得到廣泛應(yīng)用?,F(xiàn)有基于深度學(xué)習(xí)的車道線檢測(cè)根據(jù)其檢測(cè)思路不同,可分為基于分割、分類、回歸以及利用時(shí)域信息的車道線檢測(cè)方法。其中,Neven[5]、Chen[6]將車道先檢測(cè)作為一種分割任務(wù),提出使用實(shí)例分割的方法來(lái)檢測(cè)車道線,其精度較高且可以同時(shí)檢測(cè)多個(gè)車道線,但基于分割的方法要對(duì)圖像中每個(gè)像素進(jìn)行分類,計(jì)算量較大。為了減小計(jì)算量,Hou 等[7]提出了自我蒸餾的方法減小網(wǎng)絡(luò)參數(shù)量,通過(guò)計(jì)算高層特征的注意力特征圖來(lái)反饋給淺層網(wǎng)絡(luò),以提高淺層網(wǎng)絡(luò)的特征提取能力,可達(dá)到較深網(wǎng)絡(luò)的精度,但本質(zhì)上還是一種基于分割的方法,計(jì)算量仍然較大。為了讓網(wǎng)絡(luò)計(jì)算速度更快,Qin 等[8]提出基于逐行分類的方法做車道線檢測(cè),將分割任務(wù)的逐像素點(diǎn)分類變?yōu)榱酥饌€(gè)anchor 分類,推理速度相比于分割的方法快。但在主干網(wǎng)絡(luò)使用的ResNet-18 中有特征堆疊,導(dǎo)致網(wǎng)絡(luò)推斷速度仍然受限。不同于其他物體,車道線具有縱向跨度大的結(jié)構(gòu)特性,為了利用上下文信息,Pan 等[9]提出了SCNN 的網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)從多個(gè)方向提取特征圖像素之間的相關(guān)性,增加主干網(wǎng)絡(luò)的感受野,提升車道線的分割效果。但SCNN 結(jié)構(gòu)會(huì)計(jì)算特征圖在各個(gè)不同方向上像素間相關(guān)性,計(jì)算復(fù)雜度大,實(shí)時(shí)性差。此外,因?yàn)檐嚨谰€可視為一個(gè)三次多項(xiàng)式構(gòu)成的曲線,所以Tabelini 等[10]提出了PloyNet 回歸計(jì)算三次多項(xiàng)式的系數(shù)。由于只要回歸出多項(xiàng)式的系數(shù),因此該方法檢測(cè)速度比分割的方法速度快,但如果多項(xiàng)式的常數(shù)量有偏差時(shí)就會(huì)導(dǎo)致整條車道線出現(xiàn)偏移。也有工作利用時(shí)域信息去檢測(cè)車道線,Ko 等[11]提出可在主干網(wǎng)絡(luò)之后加入Conv-LSTM,通過(guò)提取主干網(wǎng)絡(luò)輸出特征圖的時(shí)域信息,提高檢測(cè)精度,但由于Conv-LSTM 計(jì)算量太大,因此會(huì)導(dǎo)致實(shí)時(shí)性不夠。
除此之外,現(xiàn)有的車道線檢測(cè)也對(duì)所采用的損失函數(shù)進(jìn)行優(yōu)化。在UFAST[8]中,如果僅通過(guò)分類損失來(lái)訓(xùn)練網(wǎng)絡(luò),只能保證檢測(cè)出的車道點(diǎn)的位置分布與數(shù)據(jù)集中標(biāo)記的車道點(diǎn)的空間分布大體一致,但無(wú)法保證車道線的光滑性(這是因?yàn)闆]有考慮到車道線的結(jié)構(gòu)特性),因此,該工作進(jìn)一步提出了兩種結(jié)構(gòu)損失函數(shù),即相似損失(L1 損失)與形狀損失(L2 損失),去約束相鄰車道點(diǎn)之間的橫坐標(biāo)之差,以實(shí)現(xiàn)光滑的車道線檢測(cè)。但由于該約束的目標(biāo)是最小化相鄰車道點(diǎn)之間的橫坐標(biāo),因此對(duì)彎道場(chǎng)景的檢測(cè)效果不夠理想,容易將彎道檢測(cè)成直道。
綜上所述,現(xiàn)有輕量型車道線檢測(cè)網(wǎng)絡(luò)的感受野較小,迫切需要尋找一種高效的方法來(lái)提高網(wǎng)絡(luò)感受野;對(duì)于彎道的情況,需要設(shè)計(jì)合理的結(jié)構(gòu)損失函數(shù),以合理地對(duì)彎道情況進(jìn)行約束;車道線檢測(cè)對(duì)實(shí)時(shí)性要求較高,因此仍需輕量化主干網(wǎng)絡(luò),以進(jìn)一步提升網(wǎng)絡(luò)的實(shí)時(shí)性。
針對(duì)感受野不夠大的問(wèn)題,本文在主干網(wǎng)絡(luò)中引入了自注意力機(jī)制[12],以提取圖像全局特征。針對(duì)車道線檢測(cè)算法采用的結(jié)構(gòu)損失函數(shù)適用于直線的情況,本文提出方向一致?lián)p失,即可通過(guò)車道點(diǎn)偏轉(zhuǎn)角的二階差分的符號(hào)來(lái)約束曲線的光滑性,使其適用于彎道場(chǎng)景。為解決車道線樣本分布不均、分類困難的問(wèn)題,本工作使用了Focal Loss[13]和OHEM Loss[14]。最后,為了提升模型實(shí)時(shí)性,本文的主干網(wǎng)絡(luò)采用了RepVGG[15]。RepVGG 在訓(xùn)練階段,吸收了Resnet[16]與Inception[17]的特點(diǎn),在VGG[18]網(wǎng)絡(luò)的每個(gè)stage 的3×3 卷積基礎(chǔ)上加入了1×1 卷積和恒等映射,以提高檢測(cè)精度。在推理階段,將多路結(jié)構(gòu)模型轉(zhuǎn)換為單路結(jié)構(gòu)模型,即可無(wú)損地吸收所有1×1 卷積和恒等映射單個(gè)3×3 卷積。因此,推理階段網(wǎng)絡(luò)參數(shù)大大降低。
本節(jié)將介紹本文的網(wǎng)絡(luò)框架以及本文所提出的改進(jìn)方法,包括自注意力機(jī)制、方向一致?lián)p失函數(shù)、自適應(yīng)權(quán)重。
本文使用多任務(wù)的思想設(shè)計(jì)網(wǎng)絡(luò),主干網(wǎng)絡(luò)為RepVGG 與自注意力機(jī)制相融合的網(wǎng)絡(luò)(詳細(xì)介紹見1.2 節(jié))。主干網(wǎng)絡(luò)輸出的特征圖分別輸入到分類分支與分割分支,整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。其中,分類分支將主干網(wǎng)絡(luò)輸出的特征圖經(jīng)過(guò)全連接層輸出分類張量后,將其重構(gòu)為4 通道的特征圖,每個(gè)通道包含j 行Row Anchor,每個(gè)Row Anchor 有l(wèi) 個(gè)元素(不同數(shù)據(jù)集l 與j 的取值不同),Row Anchor中l(wèi)-1 個(gè)元素對(duì)應(yīng)Row Anchor 的每個(gè)patch 為車道線的概率,最后一個(gè)元素代表該Row Anchor 不存在車道,其圖解如圖2 所示。然后對(duì)每行Row Anchor中的l-1 個(gè)元素求期望,即可計(jì)算出車道點(diǎn)的橫坐標(biāo),如式(1)、式(2)所示,式中的probi,j,l是網(wǎng)絡(luò)輸出的特征圖Pi,j,l經(jīng)過(guò)softmax 歸一化后的概率值,w為對(duì)Row Anchor 求期望后回歸的車道點(diǎn)橫坐標(biāo),其中i 為特征圖的通道數(shù),j 為特征圖的高度,l 為特征圖的寬度。
圖1 網(wǎng)絡(luò)框架
圖2 網(wǎng)絡(luò)輸出特征圖與輸入圖片對(duì)應(yīng)關(guān)系圖解
因?yàn)檐嚨谰€的縱坐標(biāo)在數(shù)據(jù)集中是固定的一組數(shù)值,所以縱坐標(biāo)不需要網(wǎng)絡(luò)進(jìn)行計(jì)算,通過(guò)上述方式即可計(jì)算出每個(gè)車道點(diǎn)的坐標(biāo)。而輔助任務(wù)分支是將主干網(wǎng)絡(luò)中stage2 與stage3 輸出的特征圖做上采樣后,按通道方向與stage2 輸出的特征圖堆疊,以聚合多尺度的特征,再通過(guò)卷積層輸出分割后的特征圖。當(dāng)訓(xùn)練好網(wǎng)絡(luò)后,去除輔助分支使其不參與網(wǎng)絡(luò)推斷,所以該檢測(cè)網(wǎng)絡(luò)推斷的速度快。
本文使用RepVGG 和自注意力機(jī)制相融合的網(wǎng)絡(luò)作為主干網(wǎng)絡(luò)。其中RepVGG 由22 層組成,每一層 包 含1 個(gè)3×3 卷 積、1 個(gè)1×1 卷 積、1 個(gè) 恒 等 映射、1 層BN 層 以 及1 層 激 活 函 數(shù)。RepVGG 在 訓(xùn) 練時(shí)并行使用3×3 卷積、1×1 卷積和恒等映射來(lái)提取不同尺度的特征,提高網(wǎng)絡(luò)精度。訓(xùn)練完成后,使用結(jié)構(gòu)重參數(shù)化將1×1 卷積和恒等映射轉(zhuǎn)換成3×3卷積,即將1×1 卷積周圍補(bǔ)零變?yōu)?×3 卷積,而恒等映射為所有元素值為1 的1×1 卷積替換后,以上述補(bǔ)零的方式將其變?yōu)?×3 卷積。最后,根據(jù)卷積的可加性,將變換后的1×1 卷積、恒等映射與3×3卷積相加輸出一個(gè)3×3 卷積,以使多路網(wǎng)絡(luò)模型變?yōu)閮H由3×3 卷積組成單路網(wǎng)絡(luò),圖解如圖3 所示。而對(duì)于每個(gè)分支的BN 層,可以將BN 層轉(zhuǎn)化為帶有bias 的卷積層。
圖3 訓(xùn)練網(wǎng)絡(luò)轉(zhuǎn)化為推理網(wǎng)絡(luò)的圖解(左邊是訓(xùn)練網(wǎng)絡(luò),右邊是推理網(wǎng)絡(luò))
通過(guò)用結(jié)構(gòu)重參數(shù)化網(wǎng)絡(luò),卷積核數(shù)量下降了,也減小了計(jì)算量與內(nèi)存讀寫量,因此網(wǎng)絡(luò)的推斷速度更快。
自注意力機(jī)制能獲取全局特征以加大網(wǎng)絡(luò)的感受野,其原理為:通過(guò)對(duì)特征圖同時(shí)做三次線性變換以獲取特征圖的query、key 與value,然后通過(guò)query 與key 進(jìn)行點(diǎn)積計(jì)算即可算出相關(guān)性,最后通過(guò)softmax 計(jì)算每個(gè)元素的自注意力權(quán)重,如式(3)所示:
其 中Q 為query,K 為key,V 為value,dk為key 的 維度大小。
所以,本文在第四個(gè)stage 后加入自注意力機(jī)制,以提升主干網(wǎng)絡(luò)的全局特征提取能力,提升網(wǎng)絡(luò)對(duì)細(xì)長(zhǎng)結(jié)構(gòu)車道線的檢測(cè)效果,且不加入過(guò)多計(jì)算量。
正如引言所述,目前的車道線檢測(cè)使用的損失容易將彎道約束成趨于直線的車道線,所以本文提出了方向一致?lián)p失函數(shù)優(yōu)化該問(wèn)題。
首先,定義方向向量,為同一條車道線中兩個(gè)相鄰的車道點(diǎn)從上到下的方向構(gòu)成的向量。車道線上的M 個(gè)車道點(diǎn)構(gòu)成了M-1 個(gè)方向向量,如圖4所示。方向一致?lián)p失函數(shù)基于光滑車道線為一個(gè)三次多項(xiàng)式函數(shù)的假設(shè),且其三階導(dǎo)處處同號(hào)。所以在同一條車道線上,其方向向量的傾斜角茲的二階差分同號(hào)。判斷每條車道線上是否光滑,只需計(jì)算每個(gè)方向向量偏轉(zhuǎn)角的二階差分是否同號(hào)。
圖4 車道點(diǎn)偏轉(zhuǎn)方向圖解
計(jì)算方法如下,首先分別計(jì)算每條車道線上的方向向量的傾斜角 茲j,如式(4)所示。其中j 為車道點(diǎn)索引,h 為車道點(diǎn)縱坐標(biāo)。
根據(jù)以上假設(shè),當(dāng)車道點(diǎn)偏轉(zhuǎn)方向是一致時(shí),該車道線相鄰的方向向量之間的傾斜角茲j 的二階差分 駐漬符號(hào)相同,如圖4(a)所示。而車道點(diǎn)偏轉(zhuǎn)方向不一致時(shí),相鄰方向向量之間的傾斜角茲j 的二階差分 駐漬符號(hào)不同,如圖4(b)所示,計(jì)算公式如式(5)、式(6)所 示。其 中 駐茲j,j+1代 表 第j 個(gè) 傾 斜 角 與第j+1 個(gè) 傾 斜 角 的 變 化 量,駐漬k為 駐茲j,j+1的 變 化 量一階差分。
當(dāng) 駐漬k·駐漬k+1大于零時(shí),駐漬k·駐漬k+1同 號(hào),說(shuō) 明 車道線方向一致,反之方向不一致。最后,根據(jù)同號(hào)性設(shè)計(jì)方向一致?lián)p失,如式(7)~式(9)所示。
其中u 為階躍函數(shù),C 為輸入圖片的車道線數(shù)量,h為固定的行數(shù)。
為保證相鄰車道點(diǎn)的偏轉(zhuǎn)角度不會(huì)過(guò)大,本文又優(yōu)化了方向一致?lián)p失,將方向向量的二階差分駐漬控制在10°以內(nèi),保證了檢測(cè)出來(lái)的車道線更光滑,式如(10)、(11)所示。
其 中 駐漬k為 駐茲j,j+1的 一 階 差 分。
最后給出總損失函數(shù),如式(12)所示,其中Lfocal
為Focal Loss,Lseg為OHEM Loss,它為分割分支的損失,琢為0.5。
本節(jié)詳細(xì)介紹了實(shí)驗(yàn)設(shè)置、對(duì)比實(shí)驗(yàn)和數(shù)據(jù)集上的結(jié)果。
(1)數(shù)據(jù)集
為評(píng)估模型的效果,本文在Tusimple 和CULane數(shù)據(jù)集上做了廣泛的實(shí)驗(yàn)。Tusimple 數(shù)據(jù)集是用行車記錄儀收集高速路上的車道場(chǎng)景,它具有車道線清晰、車輛少、場(chǎng)景亮度好的特點(diǎn),所以是一種易處理的數(shù)據(jù)集。其訓(xùn)練集由3 626 個(gè)視頻剪輯組成,每個(gè)視頻剪輯為1 s 內(nèi)拍攝的圖片(共計(jì)20 張),選其中1 張參與訓(xùn)練,所以訓(xùn)練集包含3 626 張圖片。測(cè)試集包含2 944 個(gè)視頻剪輯,共抽取2 782 張圖片作為測(cè)試數(shù)據(jù)。而CULane 數(shù)據(jù)集是用行車記錄儀收集了城市中的道路場(chǎng)景,它的特點(diǎn)是車道線被遮擋嚴(yán)重、無(wú)車道線、場(chǎng)景亮度低等困難場(chǎng)景,因此是目前車道線檢測(cè)的數(shù)據(jù)集中有挑戰(zhàn)性的數(shù)據(jù)集。其訓(xùn)練集有88 880 幀圖片,測(cè)試集有34 680 幀圖片,測(cè)試集細(xì)分為正常和8 個(gè)挑戰(zhàn)類別。
(2)度量指標(biāo)
根據(jù)歷來(lái)車道線檢測(cè)設(shè)置,Tusimple 使用準(zhǔn)確度作為度量指標(biāo),計(jì)算公式為:
其中Cclip為檢測(cè)正確車道點(diǎn)的數(shù)量,Sclip為每片的車道點(diǎn)標(biāo)注的總數(shù)。而CULane 數(shù)據(jù)集使用F1-measure作為度量指標(biāo),計(jì)算公式為:
(3)訓(xùn)練設(shè)置
本實(shí)驗(yàn)基于Ubuntu18.04 LTS 64 位操作系統(tǒng),使用框架PyTorch 以及CUDA10.1 和cuDNN7 搭建環(huán)境,顯卡為NVDIA GTX2080Ti。在訓(xùn)練時(shí)將輸入的圖片降采樣到288×800。對(duì)于Tusimple 數(shù)據(jù)集,其行anchor 設(shè)置為100,使用Adam 去訓(xùn)練模型,學(xué)習(xí)率設(shè)置為2×10-4,學(xué)習(xí)率衰減方式為cosine,其訓(xùn)練總輪數(shù)為120。對(duì)于CULane 數(shù)據(jù)集,其行anchor 設(shè)置為200,使用SGD 去訓(xùn)練模型,學(xué)習(xí)率設(shè)置為0.01,學(xué)習(xí)率衰減方式為多步長(zhǎng)衰減,其訓(xùn)練總輪數(shù)為60。
在本節(jié)中,baseline 為主干網(wǎng)絡(luò)無(wú)自注意力機(jī)制的ResNet-18 組成的網(wǎng)絡(luò),且未使用方向一致?lián)p失訓(xùn)練的網(wǎng)絡(luò)。
首先,對(duì)本文提出的每個(gè)改進(jìn)點(diǎn)進(jìn)行評(píng)估,結(jié)果如表1 所示。使用RepVGG 后準(zhǔn)確率幾乎沒提升,但速度比baseline 快102.5 FPS。在使用自注意力機(jī)制后,提升了主干網(wǎng)絡(luò)提取特征的能力,模型準(zhǔn)確率提高了0.4%,雖然實(shí)時(shí)性降低但仍比baseline快75.5 FPS。然后在訓(xùn)練過(guò)程中加入了本文設(shè)計(jì)的方向一致?lián)p失函數(shù),準(zhǔn)確率進(jìn)一步提升了0.72%,達(dá)到了95.92%。
為了直觀比較在Tusimple 數(shù)據(jù)集下使用與不使用方向一致?lián)p失的區(qū)別,本文展示其對(duì)比圖(如圖5所示),單純使用分類損失只能保證檢測(cè)出的車道點(diǎn)的位置分布接近真實(shí)車道線,但無(wú)法保證其精度。但加入方向一致性損失后,檢測(cè)效果明顯提高。
在本節(jié)中,展示了在Tusimple 與CULane 數(shù)據(jù)集上本論文的模型與其他模型性能上比較。
表1 在Tusimple 數(shù)據(jù)集上用提出的改進(jìn)點(diǎn)實(shí)驗(yàn)
圖5 使用與不使用方向一致?lián)p失的結(jié)果比較(第一行為未使用訓(xùn)練的結(jié)果,第二行為使用訓(xùn)練后的結(jié)果)
對(duì)Tusimple 數(shù)據(jù)集,使用了7 種模型與本文的模型進(jìn)行準(zhǔn)確率與運(yùn)行時(shí)間上的比較,包括LaneNet[5]、Res18-Seg、Res34-Seg[6]、SAD[7]、UFAST[8]、SCNN[9]和EL-GAN[13],其中運(yùn)行時(shí)間為執(zhí)行100 次的平均運(yùn)行時(shí)間,結(jié)果如表2 所示。在Tusimple 數(shù)據(jù)集上,本文設(shè)計(jì)的網(wǎng)絡(luò)的推斷速度是最快的,準(zhǔn)確度與實(shí)時(shí)性都高于UFAST,雖然精度不如SAD,但它的運(yùn)行速度是SAD 的5.58 倍。
表2 在Tusimple 測(cè)試集上與其他模型的比較
對(duì)CULane 數(shù)據(jù)集,在IoU(交并比)為0.5 的條件下,與6 種模型進(jìn)行了比較,包括Seg[6]、SAD、UFAST、SCNN、FastDraw[19]和LaneATT[20]。在實(shí)驗(yàn)中比較網(wǎng)絡(luò)的F1-measure 和推斷速度。結(jié)果如表3 所示,本文的模型在推斷速度方面達(dá)到了最佳性能,且在有箭頭的場(chǎng)景下精度是所有模型中最高的,達(dá)到了84.3%。與UFAST 相比,彎道的檢測(cè)精度高于2.5%,總檢測(cè)精度高于其2.3%。雖然與LaneATT[20]相比本文的網(wǎng)絡(luò)精度低于4.43%,但其推斷速度慢158 FPS。
表3 在CULane 測(cè)試集上比較不同模型各場(chǎng)景F1 分?jǐn)?shù)(%)、總F1 分?jǐn)?shù)(%)及其實(shí)時(shí)性(FPS)
最后,本文展示在Tusimple 和CULane 數(shù)據(jù)集上的可視化結(jié)果。如圖6 所示,本文的模型在夜間、擁堵等挑戰(zhàn)場(chǎng)景檢測(cè)效果好,在車道遮擋以及光線弱時(shí)依仍可有較好的檢測(cè)效果。如圖7 所示,本文模型在彎道、直道場(chǎng)景檢測(cè)效果好,可擬合出準(zhǔn)確的車道線,直觀地證明了方向一致?lián)p失的有效性。
圖6 CULane 數(shù)據(jù)集的標(biāo)注與本文模型推斷結(jié)果對(duì)比(第一列為本文模型推斷結(jié)果,第二列綠色點(diǎn)為CULane 數(shù)據(jù)集的標(biāo)注)
圖7 Tusimple 數(shù)據(jù)集 的標(biāo)注與本文模型推斷結(jié)果對(duì)比(第一行為Tusimple 數(shù)據(jù)集標(biāo)注,第二行為本文網(wǎng)絡(luò)在Tusimple 數(shù)據(jù)集推斷結(jié)果)
針對(duì)現(xiàn)有輕量型車道線檢測(cè)網(wǎng)絡(luò)模型存在的問(wèn)題,本文提出一種基于方向一致?lián)p失的輕量型車道線檢測(cè)網(wǎng)絡(luò)模型。首先,設(shè)計(jì)了一種方向一致?lián)p失,以提高網(wǎng)絡(luò)彎道的檢測(cè)精度。其次,在RepVGG主干網(wǎng)絡(luò)中加入自注意力機(jī)制,在提升實(shí)時(shí)性的同時(shí),加大了網(wǎng)絡(luò)感受野。實(shí)驗(yàn)結(jié)果表明,本文提出的算法取得了較好的效果,在精度與實(shí)時(shí)性之間達(dá)到了平衡,精度在輕量型網(wǎng)絡(luò)中表現(xiàn)優(yōu)異,同時(shí)其平均速度達(dá)到408 FPS,最高可達(dá)到420 FPS,達(dá)到了目前前沿的推斷速度。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2022年6期