?

基于卷積神經網絡的路面裂縫識別方法研究

2023-03-06 09:49王思源
智能城市 2023年12期
關鍵詞:網絡結構編碼器卷積

王思源 劉 杰

(桂林電子科技大學建筑與交通工程學院,廣西 桂林 541000)

隨著圖像處理技術的迅猛發展,深度學習的方法在路面裂縫識別方面起到重要的作用。識別路面裂縫的研究人員采用神經網絡方法進行實驗并不斷完善,以提高識別的準確性和實時性[1]。本文研究的識別模型可以識別裂縫,并將其區域按照二元值進行分類,可為公路養護的決策制定提供數據支持,保障公路運行的安全,降低維護成本。

1 數據準備

1.1 樣本數據擴充

利用車載設備采集了裂縫圖像,共得到2 000張原始圖像,分辨率為3 024×4 032??紤]到裂縫圖像尺寸過大不利于模型的訓練,使用裁剪的方法將2 000張圖像切割為大小為256×256的子圖,并通過過濾得到包含裂縫像素數量大于1 000的圖像,總共得到了685張含有裂縫的源圖像和相應的標記圖像。再通過圖像擴充技術得到了4 000張裂縫的數據及其標簽圖像。按照4∶1的比例劃分為訓練集和測試集,包括3 200張訓練集圖像和800張測試集圖像。Crack500數據集[2-3]包含500張裂縫圖像及其標簽,每張圖像分辨率為2 000×1 500。為適合模型訓練,每張圖像被劃分為16個不重疊的子圖像。保存超過1 000像素的裂縫圖像,共有1 286張作為訓練集。通過數據擴展方法,共得到7 716幅裂縫圖像和相應標簽圖像,按4∶1比例劃分為訓練集和測試集。訓練集包含6 172幅圖像,測試集包含1 544幅圖像。

1.2 樣本數據集標注

在監督學習算法中,必須在模型訓練前對圖像數據進行標注。標注是為了預先確定裂縫類型和位置,以便在模型訓練和驗證時使用。使用Labelme工具對地板裂縫圖像進行注釋具有易于安裝、跨多平臺、易于使用等特點。使用Labelme工具可以從頭到尾勾勒出裂縫的多邊形,并生成一個包含裂縫位置信息的“.json”文件。裂縫區域被標記為增強的多邊形,標記通過端對端連接完成,隨后生成一個“.json”文件,對該文件進行解碼后可產生一系列包含與原始裂縫圖像對應的標記圖像文件。通過對數據集進行注釋,可以對源數據進行注釋。

Labelme圖像標注如圖1所示。

圖1 Labelme圖像標注

零件原圖及對應標如圖2所示。

圖2 零件原圖及對應標注

2 模型結構

2.1 UNet神經網絡

UNet神經網絡模型如圖3所示。

圖3 UNet神經網絡模型

編碼器-解碼器結構中,以SegNet和UNet為代表,其中UNet被廣泛使用[4]。UNet是一種改進的全卷積神經網絡,網絡結構呈現“U”形。該網絡通過復制和拼接的功能,將深層次神經網絡的抽象特征與淺層次網絡的圖像信息結合,實現對圖像的高效分割,精度較高。

UNet網絡結構對稱,兩側分別為編碼部分和解碼部分。編碼部分用于提取特征,包含4個子樣本、1個卷積層以及1個池化層。解碼部分包含1個卷積層和1個去卷積層。連接、裁剪方法[5-6]利用編碼部分的表面特征信息和解碼部分的深度信息進行特征拼接,以保持特征數量和特征維度不變。網絡可以通過采樣操作保留圖像中的精細特征。

2.2 改進的UNet網絡

2.2.1 UNet改進思想

UNet本身的最佳深度尚無定論,因此需要廣泛搜索網絡架構或低效集成不同深度的模型測試[6]。跳躍連接對融合方案施加了限制,僅在編碼器和解碼器子網的相同比例的特征圖上進行強制融合,因此在路面裂縫分割識別方面存在一定局限性。為解決此問題,提出了UNet++網絡,借鑒了DenseNet的思想,將不同大小的UNet結構融入一個網絡,通過短連接和上下采樣等操作,簡明融合多個不同層次的特征。該方法缺點明顯,網絡復雜,參數量大,速度明顯下降。因此,本文提出用MobileNetV3網絡取代UNet的編碼器部分進行特征提取,以實現同時提高效果和速度。

2.2.2 MobileNetV3網絡結構

MobileNetV3是由谷歌于2019年提出新版本的MobileNet,主要特點是引入了H-Swish激活函數與ReLU搭配使用,還引入了注意力機制的SE模塊,使用NAS搜索參數的技術[7]。發布模型有兩種,即MobileNetV3 Large和MobileNetV3 Small。本文使用MobileNetV3 Small網絡結構作為UNet編碼器結構。

(1)SE注意力機制。

SEBlock不是一個完整的網絡結構,而是一個子結構,可以嵌入其他分類或檢測模型[8]。SENet的核心思想在于通過學習的方式自動獲取每個特征通道的重要程度,并利用得到的重要程度提升特征,抑制對當前任務不重要的特征,使有效的特征圖具有更大的權重,無效或對任務影響較小的特征圖權重較小。

SENet通過Squeeze模塊和Exciation模塊實現所述功能[9-10]。假設輸入為U,SELayer首先對U進行全局平均池化1×1×C,再進行squeeze打平,經過兩層全連接,最后用sigmoid限制到[0,1]范圍,把這個值作為scale乘入輸入通道,作為下一級的輸入。MobileNetV3結構如圖4所示。

圖4 MobileNetV3結構

(2)Hard Swish激活函數。

MobileNetV2使用ReLU6激活函數。目前常用的是swish激活函數,即乘上sigmoid激活函數。使用swish激活函數能夠提高網絡的準確率,但也存在問題,包括計算和求導時間復雜、量化過程不友好,特別是移動端的設備,為了加速一般都會進行量化操作,所以MobileV3使用Hard Swish激活函數。將swish激活函數替換為h-swish,sigmoid激活函數替換為h-sigmoid激活函數,能夠提高網絡的推理速度,對量化過程也比較友好。

2.2.3 UNet-MobileNetV3改進效果

(1)創新點。

使用MobileNetV3結構代替原來UNet編碼器結構,原UNet編碼器使用標準卷積層Conv+BN+Relu進行特征提取和下采樣,改進后使用倒殘差結構進行編碼器部分的特征提取操作,標準卷積層為DW Conv+BN+Hard Swish,特征融合部分使用concat方式,在解碼器部分上采樣使用雙線性插值法代替轉置卷積,進一步減小參數量,加快模型訓練和推理速度。使用Dice+CE損失函數。

(2)UNet-MobileNetV3網絡結構。

改進后編碼器部分使用倒殘差結構進行特征提取,使用stride=2的卷積進行下采樣操作。UNet-MobileNetV3網絡結構如圖5所示。

圖5 UNet-MobileNetV3網絡結構

倒殘差結構如圖6所示。

3 模型的實現與結果對比

3.1 實驗開發環境

研究過程中選用Python作為主要的開發語言,使用谷歌的開源深度學習框架Tensorflow和Keras作為開發環境。模型使用的計算環境主要是Linux、Windows系統。實驗的筆記本電腦配置為:GeForce GTX 3070ti,8 G顯存;Intel(R)Core(TM)i7-12700h,2.3 GHz,16 G內存。

3.2 實驗評價指標

卷積神經網絡訓練完樣本后,需要一系列的指標來評價模型的效果,分別為像素精度、匹配集的平均交集[11-12]、查準率和召回率以及F1值[13-14]??傁袼鼐扔嬎愎綖椋?/p>

式中:PA——總像素精度[15],所有正確預測的像素和所有像素的比率;TP——真陽性的例子,預測了一個陽性模式;TN——真陰性的例子,預測了一個陰性模式為陰性類別;FP——假陽性的例子,預測了一個陽性模式為陰性類別;mloU——意義總和系數,是評價語義分割的一個指標。

本文引入mloU衡量分割的水平,計算公式為:

式中:i——真實值;j——預測值;mloU——平均交并比;Pij——將i預測為j的概率。

式(2)也可等價為:

3.3 實驗結果與分析

需要對改進模型進行穩定性驗證分析。當用原始數據集訓練UNet-MobileNetV3模型時,樣本不足導致模型調整,其精度、召回率和F值較低。當UNet-MobileNetV3模型在擴充過的數據集上進行訓練時,實驗效果要比之前好,得到的指標也更高,沒有發生過度調整或次調整。數據集擴增前后裂縫識別結果評價指標對比如表1所示。

表1 數據集擴增前后裂縫識別結果評價指標對比

查準率P、查全率R以及F1的定義分別為:

式中:TP——正確識別的正例;FP——錯誤識別的正例;FN——未能正確識別出的負例。

由于準確率和召回率本身的限制,無法對裂縫識別結果進行全面評估[16]。本研究采用F1值[17-18]作為評價指標。

作為評估泛化能力的模型,測試數據集被分為三類。第一類,Crack500數據集和檢測車獲取的合并圖像,表示為“Ⅰ”;第二類,分別通過Crack500的7 716張裂縫數據集的擴充,表示為“Ⅱ”;第三類,檢測車獲取的4 110張裂縫圖像擴的擴充,表示為“Ⅲ”。在測試數據集包含被識別車輛獲取的二維激光圖像后,UNet-MobileNetV3模型的泛化能力得到了更好展現。UNet-MobileNetV3與傳統UNet在數據集上的表現如表2所示。

表2 UNet-MobileNetV3與傳統UNet在數據集上的表現

當裂紋連續且接縫較寬時,兩個模型都能識別出裂紋輪廓信息;但當裂紋較細且分散時,UNet-MobileNetV3模型仍能準確識別裂紋信息,而UNet模型在識別特定裂紋區的裂紋時效果較差;提出的方法在裂縫識別中沒有出現裂縫。實驗結果表明,用于道路裂縫識別的U型注意力網絡模型具有較高的普適性。UNet-MobileNetV3與UNet的效果對比如圖7所示。

圖7 UNet-MobileNetV3與UNet的效果對比

經過訓練可以發現改進后的UNet收斂速度明顯快于普通UNet,訓練速度和推理速度比普通UNet有明顯提升,且從損失下降來看,UNet-MobileNetV3損失下降更快,而UNet損失下降上下震蕩,達到一定階段后梯度陷入局部最優。UNet-MobileNetV3與UNet的損失曲線對比如圖8所示。

圖8 UNet-MobileNetV3與UNet的損失曲線對比

4 結語

本文提出了一種基于深度學習的道路裂縫檢測方法,通過深度學習模型可以自動學習道路裂縫的特征,自動識別和區分裂縫區域和非裂縫區域之間的差異,大幅提高了檢測效率。為了更好地保留道路裂縫圖像的邊緣信息,可以結合使用高斯雙邊濾波器和最小濾波器的方法去除噪聲;利用labelme工具對收集的裂縫圖像進行標注,建立初始模型數據集;采用圖像翻轉、平移和色彩調整等方式擴展裂縫樣本的數據;將所有擴充的數據樣本組成最終的數據集,完成數據集的構建工作。經驗證,并以道路裂縫問題為例,通過應用MobileNetV3網絡替換UNet的編碼器部分進行特征提取進而優化UNet網絡模型,饋應達到更高的識別像素準確率、F1值和mloU,并提高算法檢測的時間。研究結果表明,UNet-MobileNetV3網絡模型在Crack500與識別車采集的裂縫融合數據集上的效果表現良好,在其他數據集上也取得了優異的實驗結果。本研究已成功實現了路面裂縫的識別,通過改進經典的UNet網絡模型完成了裂縫分割任務。但由于時間以及技術的限制,本文使用的裂縫識別算法并沒有對裂縫的各個種類進一步區分。裂縫和非裂縫的區分識別是重要內容,需要先行判斷出,但最好識別出不同種類的裂縫,需要后續深入討論并完善。

猜你喜歡
網絡結構編碼器卷積
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
基于FPGA的同步機軸角編碼器
基于傅里葉域卷積表示的目標跟蹤算法
基于PRBS檢測的8B/IOB編碼器設計
基于互信息的貝葉斯網絡結構學習
知識網絡結構維對于創新績效的作用機制——遠程創新搜尋的中介作用
滬港通下A+ H股票網絡結構演化的實證分析
JESD204B接口協議中的8B10B編碼器設計
復雜網絡結構比對算法研究進展
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合