日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

使用深度學(xué)習(xí)檢測混凝土結(jié)構(gòu)中的表面裂縫

 小白學(xué)視覺 2021-11-26

重磅干貨,第一時間送達(dá)

混凝土建筑裂縫


介紹

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

數(shù)據(jù)集

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

帶有裂紋的示例圖像

沒有裂紋的示例圖像

可以看出,數(shù)據(jù)集有各種各樣的圖像——不同顏色、不同強(qiáng)度和形狀的裂縫。

建立模型

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

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

將輸入數(shù)據(jù)混洗并拆分為 Train 和 Val

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

拆分為 train 和 val

應(yīng)用轉(zhuǎn)換

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

轉(zhuǎn)變

預(yù)訓(xùn)練模型

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

ResNet50 模型

ResNet 模型

如模型摘要所示,該模型有 2300 萬個不可訓(xùn)練參數(shù)和 262K 個可訓(xùn)練參數(shù)

參數(shù)

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


真實圖像上的模型訓(xùn)練和預(yù)測

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

模型訓(xùn)練統(tǒng)計

在真實圖像上測試模型

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

切片預(yù)測

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

混凝土裂縫檢測。左原圖。右側(cè)紅色區(qū)域是有裂紋的預(yù)測,綠色區(qū)域是無裂紋的預(yù)測

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

道路裂縫檢測。左原圖。右側(cè)紅色區(qū)域是有裂紋的預(yù)測,綠色區(qū)域是無裂紋的預(yù)測

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


結(jié)論

這篇文章展示了使用深度學(xué)習(xí)和開源數(shù)據(jù)構(gòu)建現(xiàn)實世界的應(yīng)用程序變得多么容易。整個工作花了半天時間,輸出了一個實用的解決方案。我希望小伙伴們自己嘗試這個代碼,并在更多現(xiàn)實世界的圖像上進(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./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代碼連接:

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

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

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


下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多