朱冰冰,甘海云,林偉文
基于MobileNetV3的車道線檢測算法分析
朱冰冰,甘海云*,林偉文
(天津職業(yè)技術(shù)師范大學(xué) 汽車與交通學(xué)院,天津 300222)
車道線檢測是車輛輔助駕駛中的重要一環(huán),為實(shí)現(xiàn)對車道線進(jìn)行準(zhǔn)確快速的檢測,文章提出一種基于MobileNetV3網(wǎng)絡(luò)的輕量型車道線檢測算法。首先對MobileNetV3網(wǎng)絡(luò)的深度可分離卷積模塊進(jìn)行改進(jìn),同時在其基礎(chǔ)上加入空間注意力機(jī)制模塊;然后將車道線表示為三階多項(xiàng)式,利用優(yōu)化的MobileNetV3網(wǎng)絡(luò)對圖像中車道線特征進(jìn)行提取得到用來擬合三階多項(xiàng)式的車道線參數(shù);最后構(gòu)建一種車道線回歸模型,通過不斷地對車道線參數(shù)進(jìn)行修正以提高車道線檢測精度。在Tusimple車道線數(shù)據(jù)集上的實(shí)際測試結(jié)果表明,提出的算法其圖像幀處理速度為210 fps、檢測準(zhǔn)確度達(dá)到了83.35%,能夠?qū)崟r運(yùn)行,且具有較高的檢測精度。
車道線檢測;深度卷積神經(jīng)網(wǎng)絡(luò);多項(xiàng)式擬合;輔助駕駛;MobileNetV3網(wǎng)絡(luò)
車道線檢測是車輛輔助駕駛以及無人駕駛環(huán)境感知模塊的重要技術(shù)之一。當(dāng)前車道線檢測面臨諸多挑戰(zhàn):包括車道線的類型呈現(xiàn)多樣化、容易受到車輛行人等的遮擋、隨使用時間增長出現(xiàn)的磨損,同時還會到受雨、雪等不同天氣及明亮、陰暗等不同照度的影響。在進(jìn)行車道線檢測時,根據(jù)車道線特征提取方式的不同,可分為基于傳統(tǒng)的方法和基于深度學(xué)習(xí)的方法[1-2]。基于傳統(tǒng)的方法依賴于高度專業(yè)化、手工制作的特征和啟發(fā)式的組合來對車道線進(jìn)行檢測,導(dǎo)致這類算法對光照、天氣等變化比較敏感,因而當(dāng)車輛行駛環(huán)境發(fā)生明顯變化時,車道線的檢測往往出現(xiàn)效果不佳。而基于深度學(xué)習(xí)的方法[3-4]則首先從大量具有標(biāo)注信息的圖像中提取豐富的特征信息,再依據(jù)這些信息對原始圖像中對應(yīng)的像素點(diǎn)標(biāo)簽進(jìn)行推理,因此,相較于傳統(tǒng)的車道線檢測算法,其環(huán)境適應(yīng)性更強(qiáng)。
雖然基于深度學(xué)習(xí)的方法在車道線檢測性能上優(yōu)于基于傳統(tǒng)的方法,但這類算法多存在計(jì)算復(fù)雜度高且需要后處理步驟來擬合車道線,這不利于算法的實(shí)際落地應(yīng)用。為此提出一種基于MobileNetV3的輕量型車道線檢測算法,首先對MobileNetV3網(wǎng)絡(luò)進(jìn)行改進(jìn);然后將車道線表示為三階多項(xiàng)式,基于優(yōu)化的MobileNetV3網(wǎng)絡(luò)推測擬合三階多項(xiàng)式的車道線參數(shù);最后構(gòu)建一種車道線回歸模型,以對車道線參數(shù)進(jìn)行不斷的修正。
MobileNetV3是一種輕量化的圖像分類網(wǎng)絡(luò)[5],其參數(shù)量少、運(yùn)行速度高,適合實(shí)時性和準(zhǔn)確度要求高的車道線檢測算法使用?;诖藢obileNetV3的特征提取網(wǎng)絡(luò)進(jìn)行優(yōu)化設(shè)計(jì),來推測車道線擬合多項(xiàng)式的系數(shù)及相關(guān)參數(shù)以實(shí)現(xiàn)車道線的檢測。
MobielNetV3網(wǎng)絡(luò)模型結(jié)構(gòu)細(xì)節(jié)如圖1所示,主要由卷積操作層、池化操作層和分類操作層組成。卷積操作層由單個ConvBlock、多個堆疊的UnitBlock及單個FinalBlock組成,構(gòu)成模型的特征提取部分。ConvBlock由一個卷積函數(shù)、一個批量標(biāo)準(zhǔn)化函數(shù)加激活函數(shù)組成;UnitBlock由三個ConvBlock和一個SEBlock組成,且結(jié)構(gòu)上采用殘差連接,其中SEBlock為通道注意力機(jī)制模塊[6];FinalBlock由一個ConvBlock和一個SEBlock組成。池化操作層(Pooling)為一個自適應(yīng)平均池化函數(shù),將特征圖大小轉(zhuǎn)化為1×1。分類操作層(Classiferblock)由兩個卷積函數(shù)和一個激活函數(shù)組成,對輸入的特征圖進(jìn)行分類并輸出最終的分類結(jié)果。
圖1 MobileNetV3算法結(jié)構(gòu)圖
為提高模型檢測車道線的精度,對模型的特征提取模塊進(jìn)行優(yōu)化設(shè)計(jì)。將原模型中的Unit- Block更換為優(yōu)化后的NewUnitBlock,F(xiàn)inalBlock更換為優(yōu)化后的NewFinalBlock,具體操作細(xì)節(jié)如圖2所示。
1.2.1深度可分離卷積模塊優(yōu)化
為提取到特征圖中更豐富的信息,將原UnitBlock中左邊第二個ConvBlock用一種新的深度可分離卷積塊dseBlock進(jìn)行替換。如圖1所示,dseBlock由兩個卷積函數(shù)和兩個批量標(biāo)準(zhǔn)化函數(shù)加激活函數(shù)組成。對左邊第一個卷積操作,其、均為1,當(dāng)需要進(jìn)行下采樣時,其=3,=2,輸出特征圖通道數(shù)為輸入特征圖通道數(shù)的一半;對左邊第二個卷積操作,其=3 or 5,數(shù)值變化規(guī)則與MobileNetV3對應(yīng)位置數(shù)值變化規(guī)則一致,=1,的數(shù)值與輸入特征圖通道數(shù)相同,為深度維度上的卷積操作,輸出特征圖通道數(shù)與輸入特征圖通道數(shù)相同。兩個批量標(biāo)準(zhǔn)化函數(shù)均為BatchNorm2d,兩個激活函數(shù)均為ReLU。其結(jié)構(gòu)上采用跳躍連接,連接方式為特征圖通道維度上的拼接操作。
1.2.2注意力機(jī)制模塊優(yōu)化
原UnitBlock和FinalBlock中的SEBlock僅為通道注意力模塊,優(yōu)化操作時,在SEBlock后添加空間注意力模塊spattBlock,構(gòu)成通道-空間混合注意力模塊NewSEBlock,該注意力模塊能使得模型給予車道線特征更多權(quán)重,提高模型對車道線特征的關(guān)注度。如圖1所示,spattBlock首先對輸入的特征圖執(zhí)行通道維度上的兩種數(shù)學(xué)運(yùn)算。一種為Max運(yùn)算,這將得到一張?zhí)卣鲌D,特征圖大小與輸入特征圖的大小一致,同時特征圖上每一元素的數(shù)值為對應(yīng)元素位置在所有通道位置處數(shù)值的最大值;另一種為Mean運(yùn)算,這也將得到一張?zhí)卣鲌D,特征圖大小與輸入特征圖的大小一致,同時特征圖上每一元素的數(shù)值為對應(yīng)元素位置在所有通道位置處數(shù)值的平均值。然后將這兩張?zhí)卣鲌D在通道維度上進(jìn)行拼接操作,將完成拼接后的特征圖再進(jìn)行一個卷積操作、一個批量標(biāo)準(zhǔn)化操作和激活函數(shù)操作。其中對于卷積操作,其=7、=1,批量標(biāo)準(zhǔn)化操作采用BatchNorm2d,激活函數(shù)采用ReLU,這將得到輸入spattBlock中的特征圖中的每一特征圖空間位置處的權(quán)重值,用該權(quán)重值與輸入spattBlock中的特征圖進(jìn)行乘法操作以得到具有空間注意力信息的特征圖,最終NewUnitBlock和NewFinalBlock的結(jié)構(gòu)細(xì)節(jié)如圖2所示。
圖2 NewMobileNetV3算法結(jié)構(gòu)圖
基于上一節(jié)提出的車道線特征提取網(wǎng)絡(luò)NewMobileNetV3,本節(jié)構(gòu)建用于實(shí)現(xiàn)車道線檢測算法的模型。車道線檢測算法模型如圖3所示,車輛運(yùn)行前方的車道線圖像輸入車道線檢測模型后,模型通過對圖像中的車道線特征進(jìn)行提取檢測出圖像中每一條車道線的參數(shù)。該參數(shù)由表示圖像中每一條車道線的多項(xiàng)式系數(shù)及其相關(guān)參數(shù)組成,基于檢測出的車道線參數(shù)對車道線進(jìn)行擬合進(jìn)而實(shí)現(xiàn)車道線檢測。理想情況下,車道線檢測結(jié)果如圖4所示,其中實(shí)線表示檢測出來的車道線。
圖3 基于NewMobielNetV3的車道線檢測模型
1.3.1車道線回歸模型
由上節(jié)可知,圖4表示的是車道線檢測模型在理想狀態(tài)下完成車道線檢測的結(jié)果,然而模型在實(shí)際運(yùn)行中其檢測結(jié)果并非如此。因?yàn)樵谶@一過程中,模型并不能保證由檢測得到的車道線參數(shù)擬合出來的車道線與實(shí)際道路場景中的車道線保持高度對齊,因而造成檢測得出的車道線與真實(shí)的車道線相比存在極大的偏差甚至完全不正確。為減小以及盡可能消除這種偏差,需要構(gòu)建一種車道線回歸模型。該車道線回歸模型負(fù)責(zé)在車道線檢測模型進(jìn)行訓(xùn)練的過程中,計(jì)算模型檢測得到的車道線參數(shù)與車道線標(biāo)簽中真實(shí)的車道線參數(shù)之間的誤差值,將該誤差值將作為模型訓(xùn)練過程中的損失函數(shù)值,通過在模型訓(xùn)練過程中不斷地對該損失函數(shù)值進(jìn)行修正以保證該誤差值最小甚至為0,最終保證檢測得到的車道線與真實(shí)的車道線保持極大的對齊甚至完全重合。
圖4 車道線參數(shù)可視化及車道線檢測結(jié)果
其中,=3,表示車道線擬合多項(xiàng)式的最高階次數(shù)為3,采用三階多項(xiàng)式對檢測出的車道線進(jìn)行擬合;=1,2,3,4,5表示檢測出來的第1,2,3,4,5條車道線,通常一張車道線圖像中存在3~5條車道線,因此,采用檢測出最大5條車道線的算法覆蓋圖像中可能出現(xiàn)的不同車道線數(shù)目的情況; a,j表示推斷出的第條車道線的擬合多項(xiàng)式的第階次項(xiàng)系數(shù)。根據(jù)式(1)對車道線進(jìn)行擬合,車道線擬合結(jié)果如圖4中黑色實(shí)線所示,因圖中只有三條車道線,因此,模型僅對檢測出的車道線中的三條進(jìn)行擬合,另外兩條將不具有實(shí)際意義。對于每一組數(shù)據(jù)中的第5個數(shù)據(jù)s表示每一條車道線的低端點(diǎn)距離圖像底邊的距離,第6個數(shù)據(jù)h表示每一條車道線的頂端點(diǎn)距離圖像底邊的距離,因?yàn)檐嚨谰€標(biāo)簽中每一條車道線的頂端點(diǎn)距離圖像底邊的距離都是相同的,因此,理想情況下由車道線檢測模型檢測得出的車道線頂端點(diǎn)距離圖像底邊的距離也應(yīng)是相同的。第7個數(shù)據(jù)c表示檢測出來的車道線置信度,只有置信度大于設(shè)定的閾值時,檢測出來的車道線才被認(rèn)為存在,否則認(rèn)為不存在此車道線。假定閾值設(shè)定為0.8,因檢測得出的第1、2、3條車道線的置信度值均大于設(shè)定的閾值,因此,這三條檢測得出的車道線具有實(shí)際意義,因檢測得出的第4、5條車道線的置信度值都遠(yuǎn)小于設(shè)定的閾值,因此,這兩條檢測得出的車道線不具有實(shí)際意義。由圖4也可分析得出,因第1、2、3條車道線真實(shí)存在,所以其置信度很大;因不存在第4、5條車道線,所以其置信度很小,說明理想情況下該檢測結(jié)果是可信的。
圖5 車道線標(biāo)簽中車道線參數(shù)可視化結(jié)果
由車道線標(biāo)簽中車道線參數(shù)數(shù)據(jù)可得到每條標(biāo)注好的車道線底端點(diǎn)距離圖像底邊的距離s*以及其頂端點(diǎn)距離圖像底邊的距離h*,其中車道線標(biāo)簽點(diǎn)中每一條車道線的頂端點(diǎn)距離圖像底邊的距離都是相同的。一般車道線圖像中存在3到5條車道線,因此,對于車道線標(biāo)簽,若車道線真實(shí)存在,則對應(yīng)的車道線標(biāo)簽置信度c*1且p*、s*及h*具有實(shí)際意義;若車道線不存在,則c*0且p*、s*及h*不具有實(shí)際意義?;诖?,構(gòu)建車道線回歸模型,其定義表述為式(2),并且使用該回歸模型作為模型訓(xùn)練時的損失函數(shù)以對模型進(jìn)行訓(xùn)練。
其中,x=P(*),x為模型檢測到的圖像中車道線點(diǎn)的位置坐標(biāo),此坐標(biāo)是通過將車道線標(biāo)簽中車道線標(biāo)簽點(diǎn)的位置坐標(biāo)代入模型預(yù)測得出的擬合多項(xiàng)式得到的;p、s、c及h為各分式平衡權(quán)重;表示車道線標(biāo)簽圖像標(biāo)注的車道線數(shù)目,=3,=4或=5;reg為平均均方誤差(Meansquare Error,MSE),cls為二值交叉熵?fù)p失函數(shù)(Binary Cross Entropy, BCE)。
實(shí)驗(yàn)平臺采用Pytorch,實(shí)驗(yàn)硬件配置為E5- 2603型號中央處理器(Central Processing Unit, CPU),NVIDIA Tesla-P4 GPU,軟件環(huán)境為Ubuntu 18.04操作系統(tǒng),Cuda10.2,Cudnn8.0,Pytorch- gpu1.10.1,Python3.6。
實(shí)驗(yàn)數(shù)據(jù)集采用TuSimple數(shù)據(jù)集[7],數(shù)據(jù)集總共包含6 408張帶有標(biāo)注信息的車道線圖片,圖片的分辨率大小為1028×720,其中3 268張圖片用于模型的訓(xùn)練,358張圖片用于模型的驗(yàn)證以及2 782張圖片用于模型的測試。
評價指標(biāo)采用Tusimple數(shù)據(jù)集給出的官方基準(zhǔn)指標(biāo)[7],指標(biāo)分別為檢測精度(Accuracy, Acc)、檢測結(jié)果假正率(False Positive, FP)及檢測結(jié)果假負(fù)率(False Negative, FN)。
將Tusimple訓(xùn)練集和驗(yàn)證集送入基于MobileNetV3和基于NewMobileNetV3的車道線檢測模型中進(jìn)行訓(xùn)練和驗(yàn)證。訓(xùn)練采用Adam優(yōu)化器及Cosine Annealing Learning Rate機(jī)制,初始的學(xué)習(xí)率設(shè)為3e-4,s、c及h分別設(shè)為1,p設(shè)為300。針對樣本批處理大小及訓(xùn)練總輪數(shù)的設(shè)定,因其影響著模型最終所能達(dá)到的車道線檢測精度,需要針對具體情況進(jìn)行微調(diào),通常對其進(jìn)行設(shè)定時可參考以下策略:使用過小的批處理大小,模型容易陷入局部最優(yōu)值,訓(xùn)練后的模型其檢測效果一般;增大批處理大小,模型訓(xùn)練過程將更穩(wěn)定、訓(xùn)練時損失函數(shù)值將下降更快,有助于加速模型的收斂速度、提高模型的檢測精度;然而增大批處理大小的同時將使得對試驗(yàn)設(shè)備的內(nèi)存容量要求變高、需要更多的訓(xùn)練輪數(shù)及訓(xùn)練時間。基于此,在現(xiàn)有試驗(yàn)設(shè)備性能的約束條件下,為使得模型在達(dá)到全局最優(yōu)值的同時花費(fèi)較少的訓(xùn)練時間成本,將樣本批處理大小設(shè)為16。在這種情況下,模型在訓(xùn)練2 660個epoch后,其損失函數(shù)值不再繼續(xù)下降且保持穩(wěn)定,同時模型檢測精度達(dá)到最優(yōu),因此,將模型的訓(xùn)練總輪數(shù)(epoch)設(shè)為2 660。
使用訓(xùn)練好的模型在Tusimple測試集上進(jìn)行實(shí)驗(yàn),車道線檢測結(jié)果如表1和圖6所示。表1對基于MobileNetV3及基于NewMobileNetV3的車道線檢測模型的定量檢測結(jié)果進(jìn)行了對比分析,可知這兩種模型都能很好地檢測出車道線,且均能達(dá)到實(shí)時運(yùn)行的速度,圖像幀處理速度分別為228 fps和210 fps。同時優(yōu)化后的模型具有更高的檢測精度,檢測準(zhǔn)確度為83.35%,相比提高了4.17個百分點(diǎn)。圖6可視化了優(yōu)化后的模型在實(shí)際道路場景中的測試結(jié)果,實(shí)線為檢測得出的車道線,由檢測結(jié)果可知該車道線檢測算法能對車道線進(jìn)行準(zhǔn)確的檢測。
表1 車道線檢測模型在Tusimple數(shù)據(jù)集上的檢測結(jié)果
本文針對車道線檢測算法對實(shí)時性、準(zhǔn)確性要求高的需求,提出了基于MobileNetV3模型的車道線檢測算法。首先對MobileNetV3網(wǎng)絡(luò)基本結(jié)構(gòu)進(jìn)行了介紹,并對其進(jìn)行優(yōu)化設(shè)計(jì),包括對其深度可分離卷積模塊進(jìn)行改進(jìn)以及在其基礎(chǔ)上加入空間注意力機(jī)制模塊;緊接著采用三階多項(xiàng)式表示車道線,基于優(yōu)化的MobileNetV3網(wǎng)絡(luò)來對三階多項(xiàng)式系數(shù)進(jìn)行推斷實(shí)現(xiàn)車道線檢測;最后為提高車道線檢測精度,構(gòu)建了車道線回歸模型來對車道線參數(shù)進(jìn)行不斷的修正。實(shí)驗(yàn)結(jié)果表明,提出的算法其圖像幀處理速度為210 fps、檢測準(zhǔn)確度達(dá)到了83.35%,不僅能實(shí)時運(yùn)行且具有較高的檢測精度。
[1] 吳一全,劉莉.基于視覺的車道線檢測方法研究進(jìn)展[J].儀器儀表學(xué)報(bào),2019,40(12):92-109.
[2] 李玉卿,鮑泓,鄭穎,等.基于視覺的車道線檢測研究進(jìn)展[C]//中國計(jì)算機(jī)用戶協(xié)會網(wǎng)絡(luò)應(yīng)用分會2019年第二十三屆網(wǎng)絡(luò)新技術(shù)與應(yīng)用年會論文集.北京:中國計(jì)算機(jī)用戶協(xié)會,2019:9-12.
[3] PAN X G, SHI J P, LUO P, et al. Spatial as Deep: Spatial CNN for Traffic Scene Understanding[C]// AAAI Conference on Artificial Intelligence; Innova- tive Applications of Artificial Intelligence Conference; Symposium on Educational Advances in Artificial Intelligence.Palo Alto:AAAI,2018:6665-7655.
[4] DAVY N, BERT B, STAMATIOS G, et al. Towards End-to-End Lane Detection: an Instance Segmenta- tion Approach[C]//IEEE Intelligent Vehicles Sympo- sium.Piscataway:IEEE,2019:286-291.
[5] ANDREW H, MARK S, GRACE C, et al. Searching for MobileNetV3[C]//International Conference on Computer Vision.Piscataway:IEEE,2019:1314-1324.
[6] JIE H, LI S, GANG S, et al. Squeeze-and-Excitation Networks[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Piscata- way:IEEE,2018:7132-7141.
[7] Tusimple. Tusimple Benchmark [EB/OL].[2021-12- 03].http://github.com/Tusimple/t-usimplebenchmark.
Analysis of Lane Detection Algorithm Based on MobileNetV3
ZHU Bingbing, GAN Haiyun*, LIN Weiwen
( School of Automobile and Transportation, Tianjin University of Technology and Education,Tianjin 300222, China )
Lane detection is an important part of vehicle assisted driving. In order to realize detecting lane lines accurately and quickly, a lightweight lane detection algorithm based on MobileNetV3 network is proposed. Firstly, the deep separable convolution module of MobileNetV3 network is improved, and the spatial attention mechanism module is added on this basis. Then the lane lines are represented as third-order polynomials, and the lane lines features in the image are extracted by using the optimized MobileNetV3 network to obtain the lane lines parameters used to fit the third-order polynomials. Finally, a regression model of lane-line is constructed to improve the detection accuracy of lane lines by constantly revising the lane lines parameters. The experimental results on Tusimple lane dataset show that the proposed algorithm has a frame processing speed of 210fps and a detection accuracy of 83.35 %. It can run in real time and has high detection accuracy.
Lane detection; Deep convolutional neural network; Polynomial fitting; Assisted driving;MobileNetV3 network
U495
B
1671-7988(2022)23-71-06
U495
B
1671-7988(2022)23-71-06
10.16638/j.cnki.1671-7988.2022.023.013
朱冰冰(1998—),男,碩士研究生,研究方向?yàn)榛谏疃葘W(xué)習(xí)的車輛視覺感知技術(shù),E-mail:zhubb1550225 8352@163.com。
甘海云(1975—),男,博士,教授,研究方向?yàn)橹悄芷嚳刂葡到y(tǒng),E-mail:ganhaiyun@aliyun.com。