黃思文,包騰飛,2,3,李揚濤,牛慧余
(1.河海大學水利水電學院,江蘇 南京 210098;2.河海大學水文水資源與水利工程科學國家重點實驗室,江蘇 南京 210098;3.三峽大學水利與環境學院,湖北 宜昌 443002)
水工混凝土建筑物工作條件復雜[1],在太陽輻射、干濕循環、凍融循環等作用下易產生裂縫[2]。裂縫的存在和發展,輕則引發滲漏、溶蝕破壞,重則引發大壩失事,危及下游人民生命財產安全。因此,及時發現裂縫并采取相應除險加固措施對保障大壩安全十分重要。目前國內外大壩裂縫檢測方法主要采用傳統的人工巡視[3],該方法不僅費時費力,且水下區域通常無法到達。近年來,出現了利用無人機和水下機器人拍攝大量影像資料,然后通過人工解讀影像識別大壩裂縫的方式,該方式雖然減輕了野外工作的強度,但人工解讀影像工作量巨大,效率低下。
采用圖像處理方法可以替代人工解讀工作,一定程度實現圖片中裂縫的自動化識別。徐歡等[4]提出了一種基于Canny算子的路面裂縫檢測方法,引入形態學濾波進行改進,使用Ostu算法實現雙閾值的自適應獲取。王麗[5]提出了基于樽海鞘群優化的大壩裂縫圖像分割算法,并建立了混凝土壩病害監測GUI系統。張小偉等[6]基于自適應區域生長和局部K-Means聚類,提出了一種針對混凝土壩面裂縫檢測的圖像處理算法。王一兵等[7]提出基于LabVIEW+VDM的混凝土壩裂縫分析方法,利用VDM視覺開發包獨立完成混凝土壩裂縫的檢測。陶健等[8]基于Retinex算法和百分比閾值法,提出了一種瀝青路面裂縫檢測方法。雖然上述方法取得了一定的裂縫識別效果,但這些圖像處理方法都存在處理速度慢的問題,針對海量的圖片數據,處理效率不高,且自動化程度較低。
使用深度學習方法可以有效提高圖像識別的自動化程度,近年來,眾多研究人員將深度學習方法應用到裂縫識別中。劉承飛[9]構建了雙卷積神經網絡(CNN-Segnet),提出了一種混凝土橋梁裂縫識別方法,但以目前相機傳感器的分辨率水平,在保證識別精度的前提下,其推理速度較慢。任松等[10]基于R-FCN網絡,提出了一種公路隧道裂縫檢測方法,馮春成[11]提出了一種基于深度學習的溢流壩表面裂縫檢測方法,二者推理速度均較快,但識別精度較低、泛化能力較弱。李良福等[12]基于PSPNet網絡,引入自注意力機制,提出了一種針對橋梁裂縫的語義分割方法,其測試平均交并比(mean intersection over union,MIoU)為84.31,一定程度提升了分割精度,但分割仍不夠精確。張鵬[13]提出了一種基于Deeplab V3+網絡[14]的混凝土裂縫識別方法,其識別精度較高,但主干網絡使用Xception網絡,推理速度存在明顯不足。祝一帆等[15]提出了一種基于U-Net網絡的路面裂縫檢測方法,采用密集連接結構,在以往結構的基礎上提高了網絡各層特征信息利用率,該方法增強了網絡的泛化能力,但其推理速度較慢。
為實現對水工混凝土裂縫快速而準確地檢測,本文將Deeplab V3+網絡應用于水工混凝土裂縫檢測中,提出了基于改進Deeplab V3+網絡的水工混凝土裂縫語義分割方法(以下簡稱“本文方法”)。本文方法采用Mobilenetv2網絡替換原主干網絡,將空洞卷積金字塔池化模塊(ASPP)的空洞卷積替換為空洞深度可分離卷積,以提升運算速度,降低深層特征下采樣倍數以減少語義信息丟失。并結合實際工程數據集,對本文方法可靠性進行了驗證。
目前,Deeplab V3+網絡使用的主干特征提取網絡(以下簡稱主干網絡)主要為Xception網絡,對于識別目標種類多,且訓練集數據大的情況,具有很好的識別效果。但實際應用中,數據集通常很難滿足此要求,其識別效果往往不夠理想,而且因其參數多、結構復雜,網絡推理速度較慢。而Mobilenetv2網絡[16]是輕量級卷積神經網絡,參數少、結構相對簡單,推理速度快,且在數據集數據較少時仍能實現較高的分割精度。因此,本文采用Mobilenetv2網絡替換原主干網絡(Xception網絡)。
Mobilenetv2網絡引入了倒殘差結構和線性瓶頸結構。Mobilenetv2網絡獲取輸入信息后,先利用1×1卷積將輸入升維并使用非線性激活函數ReLU6激活,再利用3×3深度可分離卷積進行特征提取,之后進行1×1卷積降維并使用線性激活函數激活,最后將其與輸入進行疊加。所謂倒殘差結構,即在3×3卷積前后各有一個1×1卷積分別進行升維和降維,此結構可增強梯度的傳播,顯著減少推理期間所需的內存占用。而線性瓶頸結構則是指進行1×1卷積降維時不再使用非線性激活函數ReLU6,而采用線性激活函數,以保留更多特征信息。
Deeplab V3+網絡對深層特征的下采樣倍數為16~32,下采樣倍數越高則語義信息的壓縮程度越高,過高的下采樣倍數會丟失目標特征信息,影響識別效果。本文將深層特征下采樣倍數更改為8,以保留裂縫更多的特征信息,進而提升網絡識別精度。原網絡的空洞卷積金字塔池化模塊(ASPP)采用3×3空洞卷積,本文將其替換為3×3空洞深度可分離卷積,以降低參數量,進而提升網絡推理速度。
改進Deeplab V3+網絡結構如圖1所示,其結構可以分為3個部分:主干特征提取網絡、ASPP模塊和上采樣模塊。利用主干網絡Mobilenetv2提取輸入圖片的淺層特征和深層特征。主干網絡對深層特征進行8倍下采樣后傳入ASPP模塊,ASPP模塊采用5種方式對深層特征進行并行處理,分別為:1×1卷積進行特征提取,3個空洞率分別為6、12、18的3×3空洞深度可分離卷積進行跨像素點特征提取,以及全局圖像池化。5種處理方式得到對應的5個特征層,將其堆疊并利用1×1卷積進行通道數調整后得到一個深層特征層。對其進行上采樣操作后,與經過1×1卷積調整通道數的淺層特征層融合,得到一個包含輸入圖片淺層特征和深層特征的特征層,之后利用3×3卷積進行特征提取,最后利用上采樣將結果調整為與輸入圖片同等大小后輸出。

圖1 改進Deeplab V3+網絡結構
訓練過程采用交叉熵損失函數計算預測誤差,進行反向傳遞,調整網絡參數,損失函數計算公式為
(1)
式中:N為像素總數;c為某一語義分割類別;K為語義分割類別總數(包括背景),本文為2;wc為類別c的損失權重;pc(zi)為像素zi屬于真實類別c的概率。
裂縫損失權重設置為0.8,背景損失權重設置為0.2,以解決類別不平衡問題。
為評估本文方法對水工混凝土裂縫的語義分割性能,結合實際工程數據集驗證該網絡的可靠性。
2.1.1數據集制作
驗證試驗采用自制水工混凝土裂縫數據集,原始數據來源于中國西北地區某水利樞紐工程,所拍攝裂縫位于壩頂路面、閘墩、溢流堰邊墻、引水渠邊墻等部位。使用相機Nikon D300s拍攝,圖片分辨率為3 216×2 136像素,為了便于網絡訓練,將拍攝圖片裁剪至224×224像素,裁剪后得到裂縫圖片共1 200張。
數據集制作過程如圖2所示。首先對圖片裂縫進行人工精細標注,再利用標注文件生成PNG標簽文件。同時,使用數據增強方法以擴充數據集,增強方法為順時針旋轉90°、水平翻轉和局部放大。經過增強后,數據集為4 800張裂縫圖片及對應標簽文件,按比例7∶2∶1劃分,即訓練集3 360張,驗證集960張,測試集480張。

圖2 數據集標注與增強
2.1.2試驗平臺
試驗所用計算機操作系統為Windows 10,運行內存16GB,CPU為Intel Core i5-10400F,GPU為NVIDA 1660S,GPU加速為CUDA 11.0,深度學習框架為Pytorch 1.7.1。
2.1.3試驗流程
先收集實際工程中水工混凝土裂縫圖片,將收集的圖片制成數據集,用訓練集訓練改進Deeplab V3+網絡,并采用驗證集進行調參。
訓練使用VOC數據集訓練得到的權重作為預訓練權重,訓練優化器使用Adam。網絡共訓練100輪,先進行50輪凍結訓練,再進行50輪解凍訓練。在凍結階段,網絡的主干部分被凍結,僅調整網絡其余部分的參數。在解凍階段,主干部分被解凍,網絡所有參數都會調整。凍結階段批尺寸設為8,學習率設為5×10-4;解凍階段批尺寸設為4,學習率設為5×10-5。
訓練結束后,將得到的權值文件載入網絡并在測試集上測試,并進行消融試驗分析。同時引入對比方法,計算各方法評估指標,并選取典型混凝土裂縫圖片以測試分割效果,最后對網絡進行光照強度影響評估。
2.1.4評估指標選取
采用MIoU和平均像素精度(MPA)評價本方法對混凝土裂縫的語義分割精度。MIoU為各類別預測值與真實值集合交集與并集比值的平均值,MPA為各類別預測正確的像素數量與總像素數量的比值的平均值[17-19]。
除了分割精度,評價語義分割網絡性能的另一個重要指標是推理速度,即網絡每秒鐘能處理的圖片數量,試驗采用幀率(FPS)評估網絡推理速度。
2.2.1訓練過程評估
訓練損失函數與驗證損失函數均隨著訓練輪次的增加而降低,第1輪訓練時訓練損失函數為0.139,驗證損失函數為0.080;第100輪訓練時訓練損失函數為0.030,驗證損失函數為0.046(圖3)。損失函數在前幾輪訓練快速降低,之后緩慢降低并趨于穩定,曲線變化趨勢良好,且在訓練結束時訓練與驗證損失函數均小于0.05。說明改進Deeplab V3+網絡在混凝土裂縫數據集上收斂效果較好。

圖3 損失函數隨訓練輪次變化
2.2.2消融試驗分析
本文對Deeplab V3+網絡做了3處改進:采用Mobilenetv2網絡替換原主干網絡Xception,將深層特征下采樣倍數降低為8,將ASPP模塊的空洞卷積替換為空洞深度可分離卷積。為評估各項改進對網絡性能的提升效果,進行了消融試驗測試各種改進組合的精度及推理速度指標,結果見表1。

表1 消融試驗評價指標統計
由表1可知,替換主干網絡可以大幅提升網絡推理速度,并一定程度提升精度;降低深層特征下采樣倍數會使推理速度有所降低,但精度有明顯提升;改變ASPP模塊的空洞卷積類型能一定程度提升推理速度,對精度影響很小。做3項改進的網絡(第8組)MPA最高,MIoU比最高的第5組僅低0.01,而MPA和FPS均高于第5組,FPS比最高的第6組低4.84幀/s。綜合來看,做3項改進的網絡綜合性能最優,在大幅提升推理速度的同時,精度也有明顯提升。
2.2.3分割效果評估
從測試集中選取4張典型混凝土裂縫圖片,包含單條裂縫、多條裂縫以及交叉裂縫,測試本文方法對典型裂縫圖片的分割效果。并將其與Deeplab V3+網絡、U-Net網絡、基于2種主干網絡的PSPNet網絡[20]、Canny邊緣檢測算法[21]作比較,結果如圖4所示。

圖4 典型裂縫分割效果對比
Canny邊緣檢測算法提取的裂縫存在多處間斷,且提取了很多非裂縫部分的邊緣,檢測效果受噪聲影響較大。PSPNet網絡將很多裂縫像素點識別為背景,將背景識別為裂縫,尤其在識別交叉裂縫時存在多處間斷,可見PSPNet網絡對于混凝土裂縫識別能力較弱。U-Net網絡對裂縫2識別效果較差,該圖混凝土表面不平整,網絡將部分凹陷識別成裂縫,抗噪性較差,且對裂縫4識別存在間斷。
Deeplab V3+網絡對裂縫1分割存在間斷,對表面不平整的裂縫2的分割也存在問題,其中較短裂縫兩端均有局部被識別為背景。而本文方法對這些部位分割更精確,尤其對Deeplab V3+網絡和U-Net網絡分割效果不佳的裂縫2,其分割效果明顯更優,體現出網絡更強的泛化能力。經過改進,網絡的分割精度和泛化能力都有一定提升,其混凝土裂縫分割效果優于所有比較方法。
2.2.4分割精度評估
經測試集測試,不同分割方法的精度見表2。本文方法的MIoU達到了89.45,MPA達到了95.19,兩項精度指標均高于所有比較方法,相較于Deeplab V3+網絡,分別提高了0.73和1.92。

表2 不同裂縫分割方法的分割精度
2.2.5推理速度評估
本文方法、Deeplab V3+網絡、U-Net網絡、PSPNet(Mobilenetv2)網絡、PSPNet(ResNet50)網絡、Canny邊緣檢測算法的FPS分別為51.11幀/s、27.78幀/s、27.22幀/s、64.23幀/s、39.89幀/s、13.64幀/s。本文方法的FPS相較Deeplab V3+網絡提升了23.33幀/s,即網絡平均每秒鐘能多處理23.33張圖片。幾種比較方法中,僅基于Mobilenetv2的PSPNet網絡推理速度略高于本文方法,但由前文可知,其分割精度顯著低于本文方法。因此,本文方法裂縫分割精度最高、推理速度快,綜合性能最優。
2.2.6光照強度影響評估
為評估拍攝照片時的光照強度對識別效果的影響,使用不同亮度的圖片對本文方法進行測試,測試結果見圖5。光照強度升高加強了裂縫內部混凝土的反光,對于較窄裂縫,識別結果可能會出現間斷;當光照強度很低時,混凝土表面以及裂縫均較暗,導致裂縫邊緣識別不夠精確。光照強度對網絡識別效果有一定影響,但網絡仍能較準確地識別裂縫。
為實現水工混凝土裂縫快速而準確的檢測,提出了一種基于改進Deeplab V3+網絡的水工混凝土裂縫語義分割方法。實例驗證結果表明本文方法能實現推理速度大幅提升的同時,分割精度也能有一定幅度的提升。本文方法具有以下優點:①具有一定的混凝土裂縫快速檢測能力。其FPS達到51.11幀/s,即平均每秒可以處理51.11張大小為224×224像素的圖片,推理速度快。②可以實現混凝土裂縫的高精度分割。其MIoU和MPA分別達到89.45和95.19,均高于比較方法,分割精度高。③可以有效分割多種類型的混凝土裂縫。對于含有單條裂縫、多條裂縫以及交叉裂縫的典型裂縫圖片,其分割效果優于比較方法,尤其對于多條裂縫圖像,分割效果明顯更優,網絡泛化能力更強。且在光照強度過高和過低時仍能較好地實現裂縫分割。
驗證數據集裂縫圖片噪聲較少,未考慮裂縫表面存在較多覆蓋的情況。后續將針對裂縫圖片存在較多噪聲的情況開展更深入的裂縫檢測研究。裂縫檢測工作是基于離線數據進行的,后續可將檢測網絡與圖像采集系統融合,實現對混凝土裂縫的實時檢測。