久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > 使用深度學習檢測混凝土結構中的表面裂縫

使用深度學習檢測混凝土結構中的表面裂縫

發布人:AI科技大本營 時間:2021-12-15 來源:工程師 發布文章

以下文章來源于小白學視覺 ,作者小白

1.jpg

混凝土建筑裂縫

介紹

表面裂縫檢測是監測混凝土結構健康的一項重要任務。如果裂紋發展并繼續擴展,它們會減少有效承載表面積,并且隨著時間的推移會導致結構失效。裂紋檢測的人工過程費時費力,且受檢驗人員主觀判斷的影響。在高層建筑和橋梁的情況下,手動檢查也可能難以執行。在這篇文章中,我們使用深度學習來構建一個簡單但非常準確的裂縫檢測模型。此外,我們在現實世界的數據上測試了模型,發現該模型在檢測混凝土和非混凝土結構示例道路中的表面裂縫方面是準確的。該代碼在Github上的鏈接上開源。

數據集

在這篇文章中,我們使用了公開可用的混凝土裂縫圖像數據集,該數據集由 20,000 張有裂縫的混凝土結構圖像和 20,000 張無裂縫的圖像組成。該數據集由 458 張高分辨率圖像(4032x3024 像素)生成。數據集中的每個圖像都是 227 x 227 像素的 RGB 圖像。部分有裂紋和無裂紋的示例圖如下所示:

2.png

帶有裂紋的示例圖像

3.png

沒有裂紋的示例圖像

可以看出,數據集有各種各樣的圖像——不同顏色、不同強度和形狀的裂縫。

建立模型

對于這個問題,讓我們在 Pytorch 中構建一個卷積神經網絡(CNN)。由于我們的圖像數量有限,因此我們將使用預訓練的網絡作為起點,并使用圖像增強功能來進一步提高準確性。圖像增強使我們能夠進行諸如垂直和水平翻轉、旋轉和亮度變化之類的轉換,從而顯著增加樣本并幫助模型泛化。

對于以下步驟,請參考我在 Github 上的代碼。

將輸入數據混洗并拆分為 Train 和 Val

下載的數據將有 2 個文件夾,一個用于正樣本文件夾,一個用于負樣本文件夾,我們需要將其拆分為 train 和 val。下面的代碼片段將為 train 和 val 創建新文件夾,并將 85% 的數據隨機混洗到 train 中,并將其余數據隨機放入 val 中。

4.png

拆分為 train 和 val

應用轉換

Pytorch 可以輕松應用數據轉換,這可以增強訓練數據并幫助模型提高泛化性。我們選擇的轉換是隨機旋轉、隨機水平和垂直翻轉以及隨機顏色抖動。此外,每個通道除以 255,然后歸一化,這有助于神經網絡訓練。

5.png

轉變

預訓練模型

我們使用在 ImageNet 上經過預訓練的 Resnet 50 模型來快速啟動模型。如下所示,ResNet50 模型由 5 個階段組成,每個階段都有一個卷積和 Identity 塊。每個卷積塊有 3 個卷積層,每個標識塊也有 3 個卷積層。ResNet-50 有超過 2300 萬個可訓練參數。我們將凍結所有這些權重和 2 個全連接的層——第一層在輸出中有 128 個神經元,第二層在輸出中有 2 個神經元,這是最終的預測。

6.png

ResNet50 模型

7.png

ResNet 模型層

如模型摘要所示,該模型有 2300 萬個不可訓練參數和 262K 個可訓練參數

8.png

模型參數

我們使用 Adam 作為優化程序并訓練模型 6 個 epoch。

真實圖像上的模型訓練和預測

我們用遷移學習訓練,然后在訓練數據集模型,同時在驗證集上測量損失和準確性。如下面的損失和準確率數字所示,模型訓練的非常快。在第 1 個 epoch 之后,訓練準確率為 87%,驗證準確率為 97%!這就是遷移學習的力量,我們的最終模型的驗證準確率為 98.4%。

9.png

模型訓練統計

在真實圖像上測試模型

現在是最有趣的部分。是的,該模型適用于驗證數據,但我們希望確保它也適用于互聯網上看不見的數據。為了測試這一點,我們隨機拍攝了混凝土開裂結構和路面裂縫的圖像,這些圖像比我們的訓練圖像大得多。請記住,該模型是在 227,227 像素的切片上訓練的。我們現在將輸入圖像分成小塊并對其進行預測。如果模型預測有裂紋,我們將補丁涂成紅色(有裂紋),否則將補丁涂成綠色。以下代碼片段將執行此操作。

10.png

切片預測

該模型在從未見過的圖像上效果非常好。如下圖所示,該模型能夠通過處理圖像上的 100 多個補丁來檢測混凝土中很長的裂縫。

11.png

混凝土裂縫檢測。左原圖。右側紅色區域是有裂紋的預測,綠色區域是無裂紋的預測

此外,也在道路裂縫上測試了該模型。這個模型沒有在路面數據集上訓練過,但在識別道路裂縫方面也做得很好!

12.png

道路裂縫檢測。左原圖。右側紅色區域是有裂紋的預測,綠色區域是無裂紋的預測

在此項目的 github 鏈接上共享了更多現實世界圖像以及有關它們的模型預測。

結論

這篇文章展示了使用深度學習和開源數據構建現實世界的應用程序變得多么容易。整個工作花了半天時間,輸出了一個實用的解決方案。我希望小伙伴們自己嘗試這個代碼,并在更多現實世界的圖像上進行測試。

參考

2018 — ?zgenel, ?.F., G?nen? Sorgu?, A. “Performance Comparison of Pretrained Convolutional Neural Networks on Crack Detection in Buildings”, ISARC 2018, Berlin.

Good paper on importance of crack detection — https://www.hindawi.com/journals/ace/2018/3924120/

Good blog on Image Classification in Pytorch. Several of the code snippets used in the blog were from here.

Another good blog on Image Classification in Pytorch. Several of the code snippets used in the blog were from here.

Github代碼連接:

https://github.com/priya-dwivedi/Deep-Learning/tree/master/crack_detection

https://github.com/priya-dwivedi/Deep-Learning/blob/master/crack_detection/Crack%20Detection%20Model.ipynb

https://github.com/priya-dwivedi/Deep-Learning/tree/master/crack_detection/real_images

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

風力發電機相關文章:風力發電機原理


關鍵詞: 深度學習

相關推薦

技術專區

關閉