王思源 劉 杰
(桂林電子科技大學(xué)建筑與交通工程學(xué)院,廣西 桂林 541000)
隨著圖像處理技術(shù)的迅猛發(fā)展,深度學(xué)習(xí)的方法在路面裂縫識(shí)別方面起到重要的作用。識(shí)別路面裂縫的研究人員采用神經(jīng)網(wǎng)絡(luò)方法進(jìn)行實(shí)驗(yàn)并不斷完善,以提高識(shí)別的準(zhǔn)確性和實(shí)時(shí)性[1]。本文研究的識(shí)別模型可以識(shí)別裂縫,并將其區(qū)域按照二元值進(jìn)行分類,可為公路養(yǎng)護(hù)的決策制定提供數(shù)據(jù)支持,保障公路運(yùn)行的安全,降低維護(hù)成本。
利用車載設(shè)備采集了裂縫圖像,共得到2 000張?jiān)紙D像,分辨率為3 024×4 032??紤]到裂縫圖像尺寸過(guò)大不利于模型的訓(xùn)練,使用裁剪的方法將2 000張圖像切割為大小為256×256的子圖,并通過(guò)過(guò)濾得到包含裂縫像素?cái)?shù)量大于1 000的圖像,總共得到了685張含有裂縫的源圖像和相應(yīng)的標(biāo)記圖像。再通過(guò)圖像擴(kuò)充技術(shù)得到了4 000張裂縫的數(shù)據(jù)及其標(biāo)簽圖像。按照4∶1的比例劃分為訓(xùn)練集和測(cè)試集,包括3 200張訓(xùn)練集圖像和800張測(cè)試集圖像。Crack500數(shù)據(jù)集[2-3]包含500張裂縫圖像及其標(biāo)簽,每張圖像分辨率為2 000×1 500。為適合模型訓(xùn)練,每張圖像被劃分為16個(gè)不重疊的子圖像。保存超過(guò)1 000像素的裂縫圖像,共有1 286張作為訓(xùn)練集。通過(guò)數(shù)據(jù)擴(kuò)展方法,共得到7 716幅裂縫圖像和相應(yīng)標(biāo)簽圖像,按4∶1比例劃分為訓(xùn)練集和測(cè)試集。訓(xùn)練集包含6 172幅圖像,測(cè)試集包含1 544幅圖像。
在監(jiān)督學(xué)習(xí)算法中,必須在模型訓(xùn)練前對(duì)圖像數(shù)據(jù)進(jìn)行標(biāo)注。標(biāo)注是為了預(yù)先確定裂縫類型和位置,以便在模型訓(xùn)練和驗(yàn)證時(shí)使用。使用Labelme工具對(duì)地板裂縫圖像進(jìn)行注釋具有易于安裝、跨多平臺(tái)、易于使用等特點(diǎn)。使用Labelme工具可以從頭到尾勾勒出裂縫的多邊形,并生成一個(gè)包含裂縫位置信息的“.json”文件。裂縫區(qū)域被標(biāo)記為增強(qiáng)的多邊形,標(biāo)記通過(guò)端對(duì)端連接完成,隨后生成一個(gè)“.json”文件,對(duì)該文件進(jìn)行解碼后可產(chǎn)生一系列包含與原始裂縫圖像對(duì)應(yīng)的標(biāo)記圖像文件。通過(guò)對(duì)數(shù)據(jù)集進(jìn)行注釋,可以對(duì)源數(shù)據(jù)進(jìn)行注釋。
Labelme圖像標(biāo)注如圖1所示。
圖1 Labelme圖像標(biāo)注
零件原圖及對(duì)應(yīng)標(biāo)如圖2所示。
圖2 零件原圖及對(duì)應(yīng)標(biāo)注
UNet神經(jīng)網(wǎng)絡(luò)模型如圖3所示。
圖3 UNet神經(jīng)網(wǎng)絡(luò)模型
編碼器-解碼器結(jié)構(gòu)中,以SegNet和UNet為代表,其中UNet被廣泛使用[4]。UNet是一種改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)呈現(xiàn)“U”形。該網(wǎng)絡(luò)通過(guò)復(fù)制和拼接的功能,將深層次神經(jīng)網(wǎng)絡(luò)的抽象特征與淺層次網(wǎng)絡(luò)的圖像信息結(jié)合,實(shí)現(xiàn)對(duì)圖像的高效分割,精度較高。
UNet網(wǎng)絡(luò)結(jié)構(gòu)對(duì)稱,兩側(cè)分別為編碼部分和解碼部分。編碼部分用于提取特征,包含4個(gè)子樣本、1個(gè)卷積層以及1個(gè)池化層。解碼部分包含1個(gè)卷積層和1個(gè)去卷積層。連接、裁剪方法[5-6]利用編碼部分的表面特征信息和解碼部分的深度信息進(jìn)行特征拼接,以保持特征數(shù)量和特征維度不變。網(wǎng)絡(luò)可以通過(guò)采樣操作保留圖像中的精細(xì)特征。
2.2.1 UNet改進(jìn)思想
UNet本身的最佳深度尚無(wú)定論,因此需要廣泛搜索網(wǎng)絡(luò)架構(gòu)或低效集成不同深度的模型測(cè)試[6]。跳躍連接對(duì)融合方案施加了限制,僅在編碼器和解碼器子網(wǎng)的相同比例的特征圖上進(jìn)行強(qiáng)制融合,因此在路面裂縫分割識(shí)別方面存在一定局限性。為解決此問(wèn)題,提出了UNet++網(wǎng)絡(luò),借鑒了DenseNet的思想,將不同大小的UNet結(jié)構(gòu)融入一個(gè)網(wǎng)絡(luò),通過(guò)短連接和上下采樣等操作,簡(jiǎn)明融合多個(gè)不同層次的特征。該方法缺點(diǎn)明顯,網(wǎng)絡(luò)復(fù)雜,參數(shù)量大,速度明顯下降。因此,本文提出用MobileNetV3網(wǎng)絡(luò)取代UNet的編碼器部分進(jìn)行特征提取,以實(shí)現(xiàn)同時(shí)提高效果和速度。
2.2.2 MobileNetV3網(wǎng)絡(luò)結(jié)構(gòu)
MobileNetV3是由谷歌于2019年提出新版本的MobileNet,主要特點(diǎn)是引入了H-Swish激活函數(shù)與ReLU搭配使用,還引入了注意力機(jī)制的SE模塊,使用NAS搜索參數(shù)的技術(shù)[7]。發(fā)布模型有兩種,即MobileNetV3 Large和MobileNetV3 Small。本文使用MobileNetV3 Small網(wǎng)絡(luò)結(jié)構(gòu)作為UNet編碼器結(jié)構(gòu)。
(1)SE注意力機(jī)制。
SEBlock不是一個(gè)完整的網(wǎng)絡(luò)結(jié)構(gòu),而是一個(gè)子結(jié)構(gòu),可以嵌入其他分類或檢測(cè)模型[8]。SENet的核心思想在于通過(guò)學(xué)習(xí)的方式自動(dòng)獲取每個(gè)特征通道的重要程度,并利用得到的重要程度提升特征,抑制對(duì)當(dāng)前任務(wù)不重要的特征,使有效的特征圖具有更大的權(quán)重,無(wú)效或?qū)θ蝿?wù)影響較小的特征圖權(quán)重較小。
SENet通過(guò)Squeeze模塊和Exciation模塊實(shí)現(xiàn)所述功能[9-10]。假設(shè)輸入為U,SELayer首先對(duì)U進(jìn)行全局平均池化1×1×C,再進(jìn)行squeeze打平,經(jīng)過(guò)兩層全連接,最后用sigmoid限制到[0,1]范圍,把這個(gè)值作為scale乘入輸入通道,作為下一級(jí)的輸入。MobileNetV3結(jié)構(gòu)如圖4所示。
圖4 MobileNetV3結(jié)構(gòu)
(2)Hard Swish激活函數(shù)。
MobileNetV2使用ReLU6激活函數(shù)。目前常用的是swish激活函數(shù),即乘上sigmoid激活函數(shù)。使用swish激活函數(shù)能夠提高網(wǎng)絡(luò)的準(zhǔn)確率,但也存在問(wèn)題,包括計(jì)算和求導(dǎo)時(shí)間復(fù)雜、量化過(guò)程不友好,特別是移動(dòng)端的設(shè)備,為了加速一般都會(huì)進(jìn)行量化操作,所以MobileV3使用Hard Swish激活函數(shù)。將swish激活函數(shù)替換為h-swish,sigmoid激活函數(shù)替換為h-sigmoid激活函數(shù),能夠提高網(wǎng)絡(luò)的推理速度,對(duì)量化過(guò)程也比較友好。
2.2.3 UNet-MobileNetV3改進(jìn)效果
(1)創(chuàng)新點(diǎn)。
使用MobileNetV3結(jié)構(gòu)代替原來(lái)UNet編碼器結(jié)構(gòu),原UNet編碼器使用標(biāo)準(zhǔn)卷積層Conv+BN+Relu進(jìn)行特征提取和下采樣,改進(jìn)后使用倒殘差結(jié)構(gòu)進(jìn)行編碼器部分的特征提取操作,標(biāo)準(zhǔn)卷積層為DW Conv+BN+Hard Swish,特征融合部分使用concat方式,在解碼器部分上采樣使用雙線性插值法代替轉(zhuǎn)置卷積,進(jìn)一步減小參數(shù)量,加快模型訓(xùn)練和推理速度。使用Dice+CE損失函數(shù)。
(2)UNet-MobileNetV3網(wǎng)絡(luò)結(jié)構(gòu)。
改進(jìn)后編碼器部分使用倒殘差結(jié)構(gòu)進(jìn)行特征提取,使用stride=2的卷積進(jìn)行下采樣操作。UNet-MobileNetV3網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 UNet-MobileNetV3網(wǎng)絡(luò)結(jié)構(gòu)
倒殘差結(jié)構(gòu)如圖6所示。
研究過(guò)程中選用Python作為主要的開(kāi)發(fā)語(yǔ)言,使用谷歌的開(kāi)源深度學(xué)習(xí)框架Tensorflow和Keras作為開(kāi)發(fā)環(huán)境。模型使用的計(jì)算環(huán)境主要是Linux、Windows系統(tǒng)。實(shí)驗(yàn)的筆記本電腦配置為:GeForce GTX 3070ti,8 G顯存;Intel(R)Core(TM)i7-12700h,2.3 GHz,16 G內(nèi)存。
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練完樣本后,需要一系列的指標(biāo)來(lái)評(píng)價(jià)模型的效果,分別為像素精度、匹配集的平均交集[11-12]、查準(zhǔn)率和召回率以及F1值[13-14]??傁袼鼐扔?jì)算公式為:
式中:PA——總像素精度[15],所有正確預(yù)測(cè)的像素和所有像素的比率;TP——真陽(yáng)性的例子,預(yù)測(cè)了一個(gè)陽(yáng)性模式;TN——真陰性的例子,預(yù)測(cè)了一個(gè)陰性模式為陰性類別;FP——假陽(yáng)性的例子,預(yù)測(cè)了一個(gè)陽(yáng)性模式為陰性類別;mloU——意義總和系數(shù),是評(píng)價(jià)語(yǔ)義分割的一個(gè)指標(biāo)。
本文引入mloU衡量分割的水平,計(jì)算公式為:
式中:i——真實(shí)值;j——預(yù)測(cè)值;mloU——平均交并比;Pij——將i預(yù)測(cè)為j的概率。
式(2)也可等價(jià)為:
需要對(duì)改進(jìn)模型進(jìn)行穩(wěn)定性驗(yàn)證分析。當(dāng)用原始數(shù)據(jù)集訓(xùn)練UNet-MobileNetV3模型時(shí),樣本不足導(dǎo)致模型調(diào)整,其精度、召回率和F值較低。當(dāng)UNet-MobileNetV3模型在擴(kuò)充過(guò)的數(shù)據(jù)集上進(jìn)行訓(xùn)練時(shí),實(shí)驗(yàn)效果要比之前好,得到的指標(biāo)也更高,沒(méi)有發(fā)生過(guò)度調(diào)整或次調(diào)整。數(shù)據(jù)集擴(kuò)增前后裂縫識(shí)別結(jié)果評(píng)價(jià)指標(biāo)對(duì)比如表1所示。
表1 數(shù)據(jù)集擴(kuò)增前后裂縫識(shí)別結(jié)果評(píng)價(jià)指標(biāo)對(duì)比
查準(zhǔn)率P、查全率R以及F1的定義分別為:
式中:TP——正確識(shí)別的正例;FP——錯(cuò)誤識(shí)別的正例;FN——未能正確識(shí)別出的負(fù)例。
由于準(zhǔn)確率和召回率本身的限制,無(wú)法對(duì)裂縫識(shí)別結(jié)果進(jìn)行全面評(píng)估[16]。本研究采用F1值[17-18]作為評(píng)價(jià)指標(biāo)。
作為評(píng)估泛化能力的模型,測(cè)試數(shù)據(jù)集被分為三類。第一類,Crack500數(shù)據(jù)集和檢測(cè)車獲取的合并圖像,表示為“Ⅰ”;第二類,分別通過(guò)Crack500的7 716張裂縫數(shù)據(jù)集的擴(kuò)充,表示為“Ⅱ”;第三類,檢測(cè)車獲取的4 110張裂縫圖像擴(kuò)的擴(kuò)充,表示為“Ⅲ”。在測(cè)試數(shù)據(jù)集包含被識(shí)別車輛獲取的二維激光圖像后,UNet-MobileNetV3模型的泛化能力得到了更好展現(xiàn)。UNet-MobileNetV3與傳統(tǒng)UNet在數(shù)據(jù)集上的表現(xiàn)如表2所示。
表2 UNet-MobileNetV3與傳統(tǒng)UNet在數(shù)據(jù)集上的表現(xiàn)
當(dāng)裂紋連續(xù)且接縫較寬時(shí),兩個(gè)模型都能識(shí)別出裂紋輪廓信息;但當(dāng)裂紋較細(xì)且分散時(shí),UNet-MobileNetV3模型仍能準(zhǔn)確識(shí)別裂紋信息,而UNet模型在識(shí)別特定裂紋區(qū)的裂紋時(shí)效果較差;提出的方法在裂縫識(shí)別中沒(méi)有出現(xiàn)裂縫。實(shí)驗(yàn)結(jié)果表明,用于道路裂縫識(shí)別的U型注意力網(wǎng)絡(luò)模型具有較高的普適性。UNet-MobileNetV3與UNet的效果對(duì)比如圖7所示。
圖7 UNet-MobileNetV3與UNet的效果對(duì)比
經(jīng)過(guò)訓(xùn)練可以發(fā)現(xiàn)改進(jìn)后的UNet收斂速度明顯快于普通UNet,訓(xùn)練速度和推理速度比普通UNet有明顯提升,且從損失下降來(lái)看,UNet-MobileNetV3損失下降更快,而UNet損失下降上下震蕩,達(dá)到一定階段后梯度陷入局部最優(yōu)。UNet-MobileNetV3與UNet的損失曲線對(duì)比如圖8所示。
圖8 UNet-MobileNetV3與UNet的損失曲線對(duì)比
本文提出了一種基于深度學(xué)習(xí)的道路裂縫檢測(cè)方法,通過(guò)深度學(xué)習(xí)模型可以自動(dòng)學(xué)習(xí)道路裂縫的特征,自動(dòng)識(shí)別和區(qū)分裂縫區(qū)域和非裂縫區(qū)域之間的差異,大幅提高了檢測(cè)效率。為了更好地保留道路裂縫圖像的邊緣信息,可以結(jié)合使用高斯雙邊濾波器和最小濾波器的方法去除噪聲;利用labelme工具對(duì)收集的裂縫圖像進(jìn)行標(biāo)注,建立初始模型數(shù)據(jù)集;采用圖像翻轉(zhuǎn)、平移和色彩調(diào)整等方式擴(kuò)展裂縫樣本的數(shù)據(jù);將所有擴(kuò)充的數(shù)據(jù)樣本組成最終的數(shù)據(jù)集,完成數(shù)據(jù)集的構(gòu)建工作。經(jīng)驗(yàn)證,并以道路裂縫問(wèn)題為例,通過(guò)應(yīng)用MobileNetV3網(wǎng)絡(luò)替換UNet的編碼器部分進(jìn)行特征提取進(jìn)而優(yōu)化UNet網(wǎng)絡(luò)模型,饋應(yīng)達(dá)到更高的識(shí)別像素準(zhǔn)確率、F1值和mloU,并提高算法檢測(cè)的時(shí)間。研究結(jié)果表明,UNet-MobileNetV3網(wǎng)絡(luò)模型在Crack500與識(shí)別車采集的裂縫融合數(shù)據(jù)集上的效果表現(xiàn)良好,在其他數(shù)據(jù)集上也取得了優(yōu)異的實(shí)驗(yàn)結(jié)果。本研究已成功實(shí)現(xiàn)了路面裂縫的識(shí)別,通過(guò)改進(jìn)經(jīng)典的UNet網(wǎng)絡(luò)模型完成了裂縫分割任務(wù)。但由于時(shí)間以及技術(shù)的限制,本文使用的裂縫識(shí)別算法并沒(méi)有對(duì)裂縫的各個(gè)種類進(jìn)一步區(qū)分。裂縫和非裂縫的區(qū)分識(shí)別是重要內(nèi)容,需要先行判斷出,但最好識(shí)別出不同種類的裂縫,需要后續(xù)深入討論并完善。