肖 義,孔玉霞,蘭 俊,韓新雨,王 琪,潘星瑚
(遼寧科技學院 資源與土木工程學院,遼寧 本溪 117004)
公路為人們的日常生活提供便利,但公路的養(yǎng)護對人們來說是一項挑戰(zhàn)[3]。根據研究表明:當一條質量合格的道路的使用時間達到其壽命的75%后,如果沒有進行養(yǎng)護,那么隨著使用時間的越來越長,其養(yǎng)護成本和養(yǎng)護難度也會隨之增大。公路要做到建好、管好、護理好、運營好,而護理好不僅關系到公路運營,還關系到規(guī)劃建設、公路管理。在公路養(yǎng)護中,裂縫是結構表面維護中最常見的病害之一。因此,對公路表面裂縫的提取是養(yǎng)護工作中決策的數據基礎[1]。
現在公路裂縫數據來源主要是以移動檢測車輛采集數據,采集到的數據因為車載移動場景數據量大、場景復雜、場景目標種類繁多(包括光照、遮擋、目標形態(tài)等),所以這項研究主要解決這三個主要問題。使用的檢測算法,要同時滿足具有一定提取精度、提取方式輕量化、提取結果實時三個要求。
通過語義分割的方式提取裂縫,也一直面臨著以下的問題:
(1)數據集質量不佳,數據集存在圖像尺寸不一致、圖像標簽格式不一致、標簽類別不一致的問題,需要對數據進行統(tǒng)一格式。
(2)復雜的提取場景對模型的泛化能力提出一定的要求。
(3)路面病害檢測對模型的實時性要求較高。
隨著圖像語義分割和全卷積神經網絡的融合發(fā)展、計算機處理數據的速度提升、GPU的提升和使用,基于語義分割方法檢測路面中的裂縫,不僅可以對道路病害進行像素級標注,還可以刻畫病害形態(tài),并準確地提取公路裂縫[2]。在U-Net FCN DEEPLAB系列等語義分割方法中,考慮到DeepLabV3+的encoder-decoder架構[3]。第一,它可以融合多尺度信息,應對復雜場景的特征提取。第二,它引入可任意控制編碼器提取特征的分辨率,通過空洞卷積平衡精度,可以解決車載移動場景中數據大的問題,對裂縫進行快速提取。另外,Encoder中Backbone使用輕量化的神經網絡MobilenetV2,整體模型也較小,可以在車載嵌入式系統(tǒng)中開發(fā)使用。文章實驗采用上述理論來實現對公路裂縫的快速提取。
文章使用的主要數據集是CRACK500,此數據集的來源是Lei Zhang,Fan Yang等在天普大學使用手機拍攝的250張大小為2 560×1 400的路面裂縫圖片,并對裂縫圖片進行逐像素地標注。CRACK500中的原始標簽圖片對應著原始圖被劃分為2種顏色,背景為黑色,裂縫區(qū)域為白色。其次另外一個補充數據集是Crack Forest-Dataset,里面包括329張影像,它可以反映城市道路路面狀況。
圖像為了適配網絡模型,我們需要做一些預處理,如下:
(1)防止傳入模型訓練的單個影像過大,導致內存泄漏的問題,也為了方便模型的訓練,每張子圖片被裁剪成480×320的圖像區(qū)域,并將裂縫區(qū)域低于500個像素的子圖像刪除,不參與訓練。
(2)由于路面實際拍攝的裂縫圖片具有裂縫方向多變,圖片亮度不高、噪音較多等特點,文章對數據源進行簡單的數據增強和增強對比度的處理[4]。
(3)轉換成VOC標準格式,標簽文件中裂縫的類別所對應的像素值必須是1,背景像素值必須是0,這里不對裂縫進行詳細的分割提取。
通過使用DeeplabV3+語義分割模型,在encoder-decoder架構中,得到兩個不同深度的有效特征層,較深的有效特征層送入ASPP中,另外一個低語義特征層則通過改變通道數和ASPP提取的特征融合[5],再通過卷積操作和重采樣操作,得到預測結果。
圖1 模型實現流程
1.2.1 Encoder特征提取
在Encoder部分,主要包括了主干網絡(backbone)和ASPP兩大部分。
主干網絡使用MobilenetV2的網絡模型,它分為兩個部分,第一個部分是主干部分,首先利用1×1卷積進行升維,然后利用3×3深度可分離卷積(DW)進行特征提取,然后再利用1×1卷積降維。第二部分是殘差邊部分,當stride=1且輸入特征與輸出特征矩陣shape相同時,輸入和輸出直接利用shortcut連接。主干網絡輸出的第一部分送入ASPP模塊,第二部分則送入Decoder模塊。
圖2 MobileNetV2神經網絡
ASPP模塊接收backbone的第一部分輸出作為輸入,用不同rate空洞卷積塊(包括卷積、BN、激活層)和一個全局平均池化塊(包括池化、卷積、BN、激活層)得到五組feature maps數據,將其拼接起來后,經過一個1×1卷積塊(包括卷積、BN、激活、dropout層)進行特征壓縮,最后送入Decoder模塊。
1.2.2 Decoder特征提取
對主干網絡輸出的低級feature maps使用1×1卷積進行通道降維(可以更好地利用ASPP提取的特征);然后,對來自ASPP的feature maps進行插值重采樣,得到與低級feature maps尺寸相同的feature maps;最后,將經過通道降維的低級feature maps和線性插值上采樣得到的feature maps拼接起來,并送入一組3×3卷積塊進行卷積處理和重采樣操作,得到與原圖分辨率大小一樣的預測圖。
訓練分為兩個階段,分別是凍結階段和解凍階段。Epoch設置為100,在epoch小于等于50的時候,凍結主干網絡,對主干網絡的權值文件不進行調整,并且前期50batch內設置內存空間(FREEZE_BATCH_SIZE)為8,后面解凍后設置為4,防止后期超參數過多,出現內存泄漏。學習率(LR)代表網絡每次更新參數的速度,學習率越小網絡訓練時間越長,初始值設為0.007,學習率下降方式使用COS策略;優(yōu)化器使用SGD,動量因子(momentum)設為0.9,權重衰減系數設為1e-4;訓練網絡的實驗環(huán)境是1個RTX3060 6 GB 顯卡、CUDA是11.3.1、CUDNN 8.0.5、軟件框架是PYTORCH 1.10.1,基于以上訓練參數可獲得較好的訓練結果。
模型的優(yōu)劣需要選擇合適的評價標準MIOU進行評價。Accuracy是兩個常用深度學習目標檢測評價指標之一,它對路面裂縫分割結果進行分析具有很好的評價效果[7]。指標定義如下:Pixel Accuracy,像素精度是標記正確的像素占總像素的百分比。公式如下:
(1)
Mean IOU(mean intersection over union),均交并比在語義分割中作為標準度量一直被人使用,IOU公式如下:
(2)
MIOU是在所有類別的IOU上取平均值。其公式如下:
(3)
式中:TP表示目標為裂縫且檢測結果也為裂縫(正檢);FP表示目標非裂縫而檢測結果為裂縫(誤檢);FN表示目標為裂縫而檢測結果為背景(漏檢)。通過上面兩個指數的公式可知,當Accuracy和MIOU越大,證明模型的提取效果越好。
通過DeepLabV3+(backbone為MobileNetV2)語義分割模型算法,對道路裂縫分割提取實現自動化,準確率高達98.21%。提取的路面裂縫效果如圖3所示。
圖3 原始圖片、預測圖片、標簽圖片
圖5 MIOU變化趨勢
模型中epoch設置為100次訓練時,Loss(圖4)和MIOU(圖5)的變化較小,基本保持恒定,變化規(guī)律如圖5所示。通過實驗證明epoch設置100次是可行的。
文章通過DeepLabV3+(backbone為MobileNetV2)語義分割模型在CRACK500數據集上進行訓練,在數據集上模型的提取準確性高達98.21%,整體的MIOU為65%~70%,通過以上實驗說明DeepLabV3+在裂縫提取方面具有較好的表現能力,能較好解決裂縫數據場景復雜、處理實時、準確的問題,并且鑒于模型是一個輕量化模型,可以將模型應用于嵌入式系統(tǒng)中,具有以下開發(fā)優(yōu)勢:
(1)提高數據集的場景多元化(在實際場景中,數據集中部分具有橋梁、墻壁的裂縫),向數據集中添加這一部分數據,并對數據進行數據增強,以提高模型的魯棒性,增強其泛化能力。另外,使用生成對抗網絡去生成虛假的路面裂縫場景,進一步擴大數據集。
(2)算法的優(yōu)化,可以嘗試將預測掩膜與真值掩膜二者之間的IOU和裂縫目標檢測分類置信度結合起來度量道路裂縫掩膜的質量。
(3)嘗試實現其他經典的語義分割方式,做模型融合及集成學習。