黃生鵬,柳海南,周克帥,劉建宇
(上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院,上海 201620)
近年來,隨著無人駕駛、智能小車等智能交通工具的發(fā)展,如何有效的檢測出道路標(biāo)識(shí)線,保障行人的安全成為熱門研究方向。斑馬線是道路交叉口的重要安全標(biāo)志,準(zhǔn)確的識(shí)別出斑馬線能有效提高交叉路口的行駛安全性。傳統(tǒng)的斑馬線識(shí)別方法主要有以下幾種:
(1)滅點(diǎn)法[1]。根據(jù)斑馬線的平行特點(diǎn),利用兩次霍夫變換找到直線的滅點(diǎn)從而確定斑馬線所在的位置。該方法運(yùn)算速度快,但是當(dāng)斑馬線較多時(shí)區(qū)分性差。
(2)頻域法[2]。該方法從斑馬線黑白交替出現(xiàn)的紋理規(guī)律出發(fā),根據(jù)現(xiàn)實(shí)中斑馬線的寬度找到特定的頻率,并以該頻率為中心頻率在一定帶寬內(nèi)篩選,此方法識(shí)別率很高,但是計(jì)算成本高,實(shí)時(shí)效果差。
(3)雙極系數(shù)法。該方法從斑馬線黑白顏色分明特點(diǎn)出發(fā),利用均值、方差獲取某區(qū)域的黑白分明程度。雙極系數(shù)法計(jì)算速度快,然而易受環(huán)境的影響。
隨著深度學(xué)習(xí)的發(fā)展,特別是卷積神經(jīng)網(wǎng)絡(luò)[3]在圖像領(lǐng)域的廣泛應(yīng)用,大量基于深度學(xué)習(xí)的圖像分割 算 法 被 提 出。如FCN[4]、Unet[5]、Mask RCNN[6]、Deeplab[7]等。這些算法在分割性能上相比于傳統(tǒng)分割算法,具有更高的魯棒性,而且速度也很快。因此,本文在深入研究Unet網(wǎng)絡(luò)的前提下,提出一種基于改進(jìn)Unet網(wǎng)絡(luò)的斑馬線分割算法。對Unet特征提取網(wǎng)絡(luò)進(jìn)行改進(jìn),采用輕量級MobileNetv2[8]網(wǎng)絡(luò),代替原有模型的主干網(wǎng)絡(luò),以減小參數(shù)量;利用SENet模塊[9]增強(qiáng)對特征圖中重要信息的提取。
Unet是Ronneberger等人提出的一種醫(yī)學(xué)影像分割網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。整個(gè)網(wǎng)絡(luò)可分成二部分,左側(cè)為特征提取網(wǎng)絡(luò),右側(cè)為上采樣網(wǎng)絡(luò)。其中特征提取網(wǎng)絡(luò)就是CNN卷積網(wǎng)絡(luò),每個(gè)尺度結(jié)構(gòu)包含兩個(gè)3×3卷積、一個(gè)RELU[10]層和一個(gè)2×2的最大池化層。經(jīng)池化層變換后,特征通道數(shù)擴(kuò)大一倍;上采樣網(wǎng)絡(luò)每個(gè)尺度結(jié)構(gòu)利用2×2的上采樣層,特征通道數(shù)減少一半,其后與對應(yīng)的特征提取網(wǎng)絡(luò)的特征圖進(jìn)行拼接操作,得到新的特征圖,再采用2個(gè)3×3卷積層加RELU激活層。最后一個(gè)拼接尺度用1×1的卷積層將64維通道特征圖映射到2維圖像上,獲得最終的分割結(jié)果。
圖1 Unet網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Unet network structure
由上節(jié)可知,Unet采用傳統(tǒng)的卷積進(jìn)行特征提取。由于斑馬線分割場景往往處于復(fù)雜的環(huán)境中,這就需要更深層的卷積操作,才能有效的提取特征。隨著卷積層的增加,參數(shù)量也會(huì)越來越大。為了達(dá)到既能高效提取特征,又能降低網(wǎng)絡(luò)參數(shù),本文采用Mobilenetv2網(wǎng)絡(luò)替換其特征提取網(wǎng)絡(luò),同時(shí)在網(wǎng)絡(luò)結(jié)構(gòu)中嵌入注意力機(jī)制——SENet模塊,進(jìn)一步加強(qiáng)網(wǎng)絡(luò)對有效特征信息的提取,抑制無效特征,進(jìn)而提高分割精度和魯棒性。
MobileNet網(wǎng)絡(luò)是一種輕量級網(wǎng)絡(luò),非常適用于嵌入式平臺(tái)。其主要結(jié)構(gòu)是基于流線型架構(gòu),結(jié)構(gòu)中采用了大量的深度可分離卷積,以此來降低模型的參數(shù)量和計(jì)算量。
MobileNetv1主要采用堆疊大量的深度可分離卷積結(jié)構(gòu),構(gòu)建神經(jīng)網(wǎng)絡(luò),在保證精度的情況下,極大的壓縮了模型。深度可分離卷積結(jié)構(gòu)如圖2所示。
圖2 深度可分離卷積Fig.2 Depth separable convolution
MobileNetv2網(wǎng)絡(luò)是Mobilenetv1的升級版,其主要特點(diǎn)在于反轉(zhuǎn)殘差模塊(Inverted Residual Block)和瓶頸模塊(Linear Bottleneck),是帶有線性瓶頸層的反轉(zhuǎn)殘差結(jié)構(gòu),如圖3所示。首先,該結(jié)構(gòu)輸入的低維空間特征,通過Expansion layer映射到高維空間特征,應(yīng)用深度可分離卷積進(jìn)行處理后,使用線性瓶頸層再將特征投影回低維特征。MobileNetv2采用線性瓶頸(Linear bottleneck)代替非線激活變換,保留更多的特征信息。通常認(rèn)為神經(jīng)網(wǎng)絡(luò)由n個(gè)Li層構(gòu)成,每層經(jīng)過激活函數(shù)最終的輸出張量為hi×wi×di,一系列卷積與激活層形成了一個(gè)興趣流(manifod of interest)。在神經(jīng)網(wǎng)絡(luò)中,興趣流可以嵌入到低維子空間,就是卷積層中所有單個(gè)像素通道d,這些值包含多種編碼信息。深度神經(jīng)網(wǎng)絡(luò)的層具有ReLU非線性激活函數(shù),當(dāng)完整度較高的興趣流經(jīng)過非線性激活函數(shù)時(shí),可能會(huì)產(chǎn)生空間坍塌。
圖3 反轉(zhuǎn)殘差結(jié)構(gòu)Fig.3 Reverse residual structure
SENet模塊是在通道維度上進(jìn)行attention操作,這種注意力機(jī)制可以讓網(wǎng)絡(luò)更加關(guān)注有效的通道特征,抑制那些不重要的通道特征。SENet模塊結(jié)構(gòu)如圖3所示。首先SENet模塊對輸入的特征圖進(jìn)行Squeeze操作,得到channel級的全局特征,然后對全局特征進(jìn)行Excitation操作。學(xué)習(xí)各個(gè)channel之間的關(guān)系,獲得不同channel的權(quán)重,最后與原來的特征圖相乘得到校準(zhǔn)過的特征SENet模塊的3個(gè)主要操作。
2.2.1 Squeeze操作
一般的卷積操作僅僅在一個(gè)局部空間內(nèi)進(jìn)行,因此U中很難獲得足夠的信息來提取通道之間的關(guān)系。對于網(wǎng)絡(luò)深度較潛的特征層來說,其感受野尺度都比較小,這種情況更加糟糕。U中的多個(gè)特征圖,可被視為局部特征表征的一個(gè)子集,對于整個(gè)特征圖來說具有很好的表現(xiàn)力。Squeeze操作利用全局平均池化(global average pooling)將每一個(gè)通道上的空間特征編碼為一個(gè)全局特征,其在某種程度上代表了全局感受野,壓縮過程如公式(1)所示。
式中:uc表示卷積變換后第c個(gè)通道的輸出;zc表示壓縮操作后第c個(gè)通道的輸出;(W,H)表示特征圖的寬和高;Fsq代表全局特征壓縮變換函數(shù)。
2.2.2 Excitation操作
圖4中的Fex(·,W)變化操作,即為Excitation操作。其利用兩個(gè)全連接和兩個(gè)激活函數(shù)來獲取通道之間的依賴關(guān)系,計(jì)算如公式(2)所示。
圖4 ENet模塊Fig.4 SENet module
Excitation操作通過兩個(gè)全連接層,獲取特征U中的C個(gè)特征圖的權(quán)重。Squeeze操作是將單個(gè)特征圖進(jìn)行特征編碼,而Excitation操作是對所有編碼后的特征圖進(jìn)行信息匯總。這樣做可以降低模型的復(fù)雜度,同時(shí)也提高了模型的計(jì)算效率。
2.2.3 Scale操作
Scale操作是通過相乘的方法,將Excitation操作獲取得歸一化權(quán)重加權(quán)到標(biāo)準(zhǔn)卷積之后的特征上,經(jīng)過加權(quán)后的特征圖包含了先2前特征U的每個(gè)通道的重要程度,因此可以達(dá)到加強(qiáng)重要特征信息的目的。計(jì)算如公式(3)所示:
式中:uc表示單個(gè)通道的二維矩陣;sc表示權(quán)重;表示加權(quán)計(jì)算后得到的特征圖。
在傳統(tǒng)卷積操作中,更多的關(guān)注點(diǎn)在于空間特征的融合上,對于通道維度的特征融合,卷積操作基本上默認(rèn)對輸入特征圖的所有通道進(jìn)行融合。而MboileNetv2網(wǎng)絡(luò)中的組卷積(Goup Convolution)和深度可分離卷積是對通道進(jìn)行分組,使得模型參數(shù)量減少。這種方式并沒有關(guān)注通道之間的關(guān)系,從而模型無法自動(dòng)學(xué)習(xí)到不同通道特征之間的重要程度。因此,本文在反轉(zhuǎn)殘差結(jié)構(gòu)的基礎(chǔ)上,嵌入SENet模塊,使得模型更加關(guān)注有效通道信息,提高模型精度。結(jié)合模塊結(jié)構(gòu)如圖5所示。
圖5 SENet模塊結(jié)合圖Fig.5 SENet module binding diagram
深度神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練,需要大量優(yōu)良的數(shù)據(jù)支撐。本文構(gòu)建的斑馬線數(shù)據(jù)集來源分為二部分,一部分是通過互聯(lián)網(wǎng)爬取網(wǎng)頁圖片,另一部分由人工采集,并進(jìn)行人工手動(dòng)標(biāo)注。為了使模型具有更強(qiáng)的魯棒性,本文在晴天、陰天、雨天、復(fù)雜街道環(huán)境等條件下采集斑馬線數(shù)據(jù)集。
卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)擬合過程,需要給網(wǎng)絡(luò)提供一個(gè)真實(shí)的標(biāo)準(zhǔn)數(shù)據(jù)。通過網(wǎng)絡(luò)預(yù)測的結(jié)果與真實(shí)結(jié)果的損失值,自動(dòng)的調(diào)整模型權(quán)重,從而使模型的預(yù)測值逐漸接近真實(shí)值,實(shí)現(xiàn)斑馬線分割檢測任務(wù)。因此,需要對數(shù)據(jù)集進(jìn)行人工手動(dòng)標(biāo)注,本文采用Lbaleme圖像標(biāo)注工具對每張圖片進(jìn)行手工標(biāo)注,獲取分割label,標(biāo)注文件以Json格式保存,主要記錄標(biāo)注點(diǎn)的位置、類別標(biāo)簽。標(biāo)注過程如圖6所示。
圖6 斑馬線標(biāo)注Fig.6 Zebra mark
完成標(biāo)注后,將網(wǎng)頁獲取的數(shù)據(jù)劃分為訓(xùn)練集、驗(yàn)證集,對模型進(jìn)行預(yù)訓(xùn)練。然后將預(yù)訓(xùn)練模型在自制數(shù)據(jù)集上進(jìn)行調(diào)優(yōu)和測試。
本文首先對MobileNetv2與改進(jìn)后的SEMobileNetv2進(jìn)行對比實(shí)驗(yàn)。通常使用分類數(shù)據(jù)集對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類精度的測試對比,本文選取Cifar10數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集包含10個(gè)類別,其中50 000張為訓(xùn)練集,10 000張為測試集;深度學(xué)習(xí)框架選用Keras,優(yōu)化策略為Adam,初始學(xué)習(xí)率(learning rate)為0.001,當(dāng)學(xué)習(xí)率在連續(xù)3次迭代中保持不變時(shí),學(xué)習(xí)率變?yōu)樵瓉淼?.5倍,batch_size為32,迭代次數(shù)(epoch)為20 000次。實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 改進(jìn)前后分類精度對比Fig.7 Comparison of classification accuracy before and after improvement
由圖7可知,通過20 000次的迭代,改進(jìn)后的SEmobileNetv2分類精度比之前精度提升了1.6%。通過嵌入SENet模塊對模型的特征提取能力有一定的提升。
將Unet特征提取網(wǎng)絡(luò)替換為SEMobileNetv2,搭建分割模型。分別對改進(jìn)前后的Unet分割網(wǎng)絡(luò)進(jìn)行訓(xùn)練,其訓(xùn)練集8 000張,測試集500張,訓(xùn)練參數(shù)見表1。
表1 實(shí)驗(yàn)環(huán)境Tab.1 Experimental environment
經(jīng)過3萬次的迭代,由圖8可知:基于SEMobileNetv2的Unet分割網(wǎng)網(wǎng)絡(luò)的loss收斂效果更佳。
圖8 loss值對比Fig.8 Comparison of loss
獲取兩種Unet模型后,本文分別在不同環(huán)境中對斑馬線進(jìn)行了測試,測試效果如圖9所示。在有車輛行駛的條件下和無障礙物的條件下,改進(jìn)后的Unet網(wǎng)絡(luò)模型的分割精度均比原來的分割網(wǎng)絡(luò)提高了1.8%。進(jìn)一步驗(yàn)證了改進(jìn)模型的有效性。
圖9 分割效果圖對比Fig.9 Comparison of segmentation effect
本文在Unet網(wǎng)絡(luò)的基礎(chǔ)上,將其主干特征提取網(wǎng)絡(luò)替換為MobileNetv2,減少模型的參數(shù),降低模型的計(jì)算量。并在網(wǎng)絡(luò)結(jié)構(gòu)中嵌入了SENet模塊,增強(qiáng)特征提取網(wǎng)絡(luò),對于有效特征信息進(jìn)行加權(quán)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的SEMobileNetv2網(wǎng)絡(luò)結(jié)構(gòu)與原來的網(wǎng)絡(luò)結(jié)構(gòu)在分類精度上提高了1.6%。驗(yàn)證了改進(jìn)后Unet分割網(wǎng)絡(luò)相對于原網(wǎng)絡(luò)在分割精度上提高了1.8%。本文的方法在分割精度上有了一定的提升,但是訓(xùn)練集數(shù)據(jù)不夠豐富,測試環(huán)境為靜態(tài),后續(xù)應(yīng)進(jìn)一步增強(qiáng)模型的泛化能力。