<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

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

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

發(fā)布人:AI科技大本營(yíng) 時(shí)間:2021-12-15 來(lái)源:工程師 發(fā)布文章

以下文章來(lái)源于小白學(xué)視覺(jué) ,作者小白

1.jpg

混凝土建筑裂縫

介紹

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

數據集

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

2.png

帶有裂紋的示例圖像

3.png

沒(méi)有裂紋的示例圖像

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

建立模型

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

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

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

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

4.png

拆分為 train 和 val

應用轉換

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

5.png

轉變

預訓練模型

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

6.png

ResNet50 模型

7.png

ResNet 模型層

如模型摘要所示,該模型有 2300 萬(wàn)個(gè)不可訓練參數和 262K 個(gè)可訓練參數

8.png

模型參數

我們使用 Adam 作為優(yōu)化程序并訓練模型 6 個(gè) epoch。

真實(shí)圖像上的模型訓練和預測

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

9.png

模型訓練統計

在真實(shí)圖像上測試模型

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

10.png

切片預測

該模型在從未見(jiàn)過(guò)的圖像上效果非常好。如下圖所示,該模型能夠通過(guò)處理圖像上的 100 多個(gè)補丁來(lái)檢測混凝土中很長(cháng)的裂縫。

11.png

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

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

12.png

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

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

結論

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

參考

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

*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。

風(fēng)力發(fā)電機相關(guān)文章:風(fēng)力發(fā)電機原理


關(guān)鍵詞: 深度學(xué)習

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>