Pixel-wise裂紋檢測是一項具有挑戰性的任務,因為裂紋的連續性差,對比度低。現有框架通常采用復雜的模型,精度較高,但推理效率較低。
在本文中提出瞭一個輕量級的編碼器-解碼器體系結構CarNet,其可以高效和高質量地進行裂縫檢測。為此,首先提出理想的編碼器在不同階段卷積層數的橄欖型分佈。具體來說,隨著編碼器中網絡階段的加深,在初始網絡階段對模型輸入進行壓縮後,卷積層數呈下降趨勢。
同時,在解碼器中引入瞭一個輕量級的上采樣特征金字塔模塊,學習豐富的層次特征用於裂紋檢測。特別將最後三個網絡階段的特征圖壓縮到相同的通道,然後使用不同倍數的上采樣將其調整為相同的分辨率進行信息融合。
最後,在Sun520、Rain365、BJN260和Crack360四個公共數據庫上進行的大量實驗表明,CarNet在推理效率和測試精度之間取得瞭較好的平衡,優於現有的最先進的方法。
由於整個編碼器-解碼器網絡看起來像一輛小汽車,因此作者將其稱之為CarNet。 該文章的主要貢獻如下:
在深度學習中,ResNet在防止梯度爆炸和梯度消失方面發揮瞭重要作用。由於ResNet最初是為ImageNet構建的,因此涉及到很高的模型復雜性。因此,如果直接使用ResNet作為裂紋檢測模型的編碼器,推理效率會不太友好,影響其在實際中的應用。
一般來說,模型復雜性包括空間復雜性和時間復雜性。通過模型參數可以粗略估計空間復雜度。時間復雜度可以通過浮點運算(FLOPs)反映出來。卷積運算是神經網絡中常用的運算。以帶偏置項的卷積運算為例,其參數和FLOPs分別為:
3adea7099d9a87c457768bd33f67b41e
其中,K_w和K_h分別表示卷積核的寬度和高度。在VGG系列之後它們通常被設置為3。C_{in}和C_{out}分別表示輸入通道和輸出通道,W_{out}和H_{out}分別表示輸出特征圖的寬度和高度。
隨著網絡深度的加深,卷積通道數量會增加,特征圖的分辨率會降低。由式(1)可知,為瞭降低模型空間復雜度,編碼器中網絡層次越深,卷積層越少。
另一方面,根據(2),為瞭降低模型的時間復雜度,理想的編碼器在網絡的不同階段卷積層數應該呈橄欖型分佈。換句話說,在中間網絡階段應該有更多的卷積層,在初始和尾部階段應該有更少的卷積層。
該思想主要考慮瞭初始階段的高分辨率和後階段的大卷積通道。總之,提出卷積層的數量從網絡的第2階段開始減少。
具體來說,針對編碼器,作者提出以下設計流程:
圖(a)
圖(b)圖2
首先,受HED和Deeplab V3+的啟發提出瞭一個輕量級的上采樣特征金字塔塊(UFPB)來捕獲豐富的層次特征。
圖(c)
具體來說,如圖(c)所示:
圖(d)
接下來,構造一個分解卷積塊(DCB)進一步增強瞭解碼器的表示性。由於裂縫大多是線性結構,作者采用瞭2個級聯分解卷積(即一個3×1和1×3卷積),替換解碼器中一個常用的3×3卷積,如圖(d)。
然後,利用1×1卷積將特征映射壓縮到N−1個通道,其中N表示類別的數量。然後,通過四倍上采樣將壓縮後的特征映射恢復到模型輸入大小。
206da1bff1204fb7c4255d0481bda9ac圖e
最後,再次采用DCB模塊開發豐富的卷積特征,然後將其提供給sigmoid分類器,如圖(e)所示。
綜上所述,所提出的編解碼器網絡構成瞭總體框架,如圖2所示。因為它看起來像一輛車,所以我們叫它CarNet。此外,使用交叉熵損失來訓練所提網絡結構。
對於解碼器網絡,雖然模型是基於HED和Deeplab V3+,但在很多方面與他們不同。下面,簡要說明它們在解碼器上的差異。
Deeplab V3+依靠2次4倍上采樣將編碼器網絡的輸出逐漸恢復到模型輸入的大小。除瞭2個4倍上采樣外,所提模型還利用瞭一個額外的雙重上采樣來融合更多的特征信息,如UFPB模塊所示。
同時,HED采用瞭更多不同倍數的上采樣,將每個階段的特征圖直接還原到模型輸入尺寸。因此HED在將低分辨率特征映射調整到模型輸入尺寸時需要采用較大的反卷積核,因為其中的像素需要較大的接受域。同時,反卷積核在上采樣過程中均為3個,減少瞭許多參數和計算量。
所提模型利用瞭最後3個階段的特性,HED利用瞭所有網絡階段的特性,而Deeplab V3+利用瞭第2和最後2個階段的特性。另外,在信息融合方面,其他2個模型采用通道連接,而所提網絡采用加法操作,在相同條件下可以減少參數和計算量。
與HED和Deeplab不同V3+,在將特征映射恢復到模型輸入大小後,使用卷積進一步細化。考慮到裂縫大多為線性結構,為瞭節省計算,采用2個堆疊的非對稱卷積核來代替一個普通的方形卷積核。
所提模型和Deeplab V3+使用一個解碼器,HED使用6個解碼器分別對應一個融合輸出和5個側輸出。因此HED需要對不同輸出的損失函數進行權衡,這就造成瞭模型訓練難度的加大。此外,更多的分支結構增加瞭內存訪問成本,從而降低瞭模型的推理效率。
作者在4個公共數據庫上評估網絡,分別是Sun520、Rain365、bjn260和Crack360。
Sun520由520張在晴天拍攝的照片組成。它是目前最大的開源裂縫數據庫。此外,裂縫圖像的拍攝時間包括上午、下午和黃昏。換句話說,數據具有豐富的圖像亮度。
Rain365包含瞭在雨後白天拍攝的365張圖片。這些裂縫圖像是指三種不同的背景,即完全濕潤、部分濕潤、部分幹燥或完全幹燥。其中全濕背景占多數。
BJN260包含260張北京夜景圖片。夜晚的街道環境復雜多變,如光源、亮度強度等,造成裂縫檢測困難。
為瞭節省計算資源,將上述三個數據庫中圖像的分辨率從3968×2240調整為480×320。在Sun520,Rain365,BJN260上分別隨機選擇400,300,200張圖像進行訓練,剩下的120,65,60張圖像分別進行測試。
此外,為瞭驗證模型對相對連續裂紋的影響,作者使用瞭cracktree260和CRKWH100分別用於訓練和測試。前者包含260張圖像,每個圖像有800×600像素。這些圖像在訓練時被裁剪成512×512。後者包含100幅圖像,每幅圖像有512×512像素。為方便起見,將以上兩個數據集統一為一個數據庫,Crack360。
062c8b1975d5c459863ce2ee414bbb8a
通過在SUN520數據的實驗結果可以看出,CarNet有更好的結果以及魯棒性,同時具有更快的推理速度。
通過在RAIN365數據的實驗結果可以看出,CarNet有更好的結果以及魯棒性,同時具有更快的推理速度。
通過在BJN260數據的實驗結果可以看出,CarNet有更好的結果以及魯棒性,同時具有更快的推理速度。 可以看出即使是夜間依然可以有很好的效果。
[1].CarNet: A Lightweight and Efficient Encoder-Decoder Architecture for High-quality Road Crack Detection
上一篇