乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       小白學視覺 2021-11-26

      重磅干貨,第一時間送達

      混凝土建筑裂縫


      介紹

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

      建立模型

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

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

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

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

      拆分為 train 和 val

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

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

      轉(zhuǎn)變

      預(yù)訓練模型

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

      ResNet50 模型

      ResNet 模型

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

      參數(shù)

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


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

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

      模型訓練統(tǒng)計

      在真實圖像上測試模型

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

      切片預(yù)測

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

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

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

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

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


      結(jié)論

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多