智慧建筑:基于YOLOv7的建筑外墻缺陷檢測
01 前景概要
現(xiàn)有的基于深度學習的方法在識別速度和模型復雜性方面面臨一些挑戰(zhàn)。為了保證建筑外墻缺陷檢測的準確性和速度,我們研究了了一種改進的YOLOv7方法BFD-YOLO。首先,將YOLOv7中原有的ELAN模塊替換為輕量級的MobileOne模塊,以減少參數(shù)數(shù)量并提高推理速度。其次,在模型中加入了坐標注意力模塊,增強了特征提取能力。接下來,使用SCYLLA-IoU來加快收斂速度并增加模型的召回率。最后,我們擴展了開放數(shù)據集,構建了一個包括三個典型缺陷的建筑立面損傷數(shù)據集。BFD-YOLO基于該數(shù)據集展示了卓越的準確性和效率。與YOLOv7相比,BFD-YOLO的精度和mAP@.5分別提高了2.2%和2.9%,同時保持了相當?shù)男?。實驗結果表明,該方法在保證實時性的前提下,獲得了較高的檢測精度。
02 現(xiàn)狀和項目動機
外墻缺陷的存在是建筑運營階段的一個緊迫問題,通常歸因于機械和環(huán)境因素。典型的缺陷表現(xiàn)為混凝土剝落、裝飾剝落、構件裂縫、大規(guī)模變形、瓷磚損傷、潮濕損壞等。這些缺陷會影響外觀,降低建筑物的使用壽命。更嚴重的是,外墻墜物可能會造成安全事故和無法彌補的損失。結構損傷檢測是結構健康監(jiān)測的一個組成部分,對確保建筑物的安全運行至關重要。作為結構損傷檢測的一個組成部分,建筑外墻缺陷的檢測可以使政府和管理層準確了解建筑外墻的綜合狀況,從而有助于制定合理的維修方案。這是降低建筑維護成本、延長建筑使用壽命和減輕外墻損壞影響的有效方法。許多國家和地區(qū)正在制定定期標準化目視檢查的政策。建筑外墻缺陷的檢測已成為建筑維護的關鍵組成部分。
目視檢查是評估建筑外觀狀況的一種簡單可靠的方法。傳統(tǒng)的建筑外觀檢查通常需要專業(yè)人員帶著專用工具到達檢查地點,在那里使用視覺觀察、錘擊和其他技術進行評估。這些方法依賴于檢查員的專業(yè)知識和經驗,這是主觀的、危險的和低效的。由于建筑數(shù)量的增加和規(guī)模的擴大,人工目視檢查方法已不足以滿足大規(guī)模檢查的要求。隨著技術的進步,許多新方法(如激光掃描、3D熱成像和SLAM)正被用于通過無人機和機器人平臺進行外墻損傷檢測。與傳統(tǒng)技術相比,這些新方法更方便、更安全,但耗時且成本高。因此,這些方法在滿足大規(guī)模檢查的需求方面也面臨挑戰(zhàn)。因此,有必要開發(fā)一種更精確、更有效的表面缺陷檢測方法,以提高檢測效率并降低計算成本。
03 新想法及實踐細節(jié)
建筑外墻缺陷有多種類型,不同的檢測方法都適用。常見的類型包括裂縫、剝落和墻體空鼓。對于裂紋,有更多的研究使用語義分割進行檢測。對于墻體空鼓,敲擊法和紅外熱像法應用更為廣泛。我們經過調研和研究,選擇了適合目標檢測方法且易于構建數(shù)據集的缺陷類型。數(shù)據集中的圖像主要來自通過手機、攝像機和無人機拍攝的建筑立面圖像。此外,一些來自互聯(lián)網和公共數(shù)據集的圖像也被用于擴展。所有圖像的寬度在1000到3000像素之間,高度在2000到5000像素之間。該數(shù)據集由三個建筑外墻缺陷組成:分層、剝落和瓷磚損失。總共收集了1907張原始圖像,其中包含約2%的背景圖像。背景圖像是添加到數(shù)據集中以減少錯誤位置的沒有缺陷的圖像。訓練集、驗證集和測試集按照7:2:1的比例進行劃分。下圖顯示了數(shù)據集中的缺陷示例。
從左到右分別是分層、剝落和瓷磚損耗。
Data Augmentation
在神經網絡的模型訓練中經常需要大量的數(shù)據。然而,獲取建筑外墻缺陷的圖像相對困難,并且在收集的數(shù)據中存在類別不平衡的問題。為了減輕這個問題的影響,我們將數(shù)據擴充技術應用于訓練數(shù)據。數(shù)據擴充是對原始數(shù)據執(zhí)行各種轉換的常用技術。它被廣泛應用于深度學習領域,以系統(tǒng)地生成更多的訓練數(shù)據。數(shù)據擴充可以幫助模型學習更多的數(shù)據變化,防止其過度依賴特定的訓練樣本。監(jiān)督數(shù)據增強技術包括幾何變換(例如,翻轉、旋轉、縮放、裁剪等)和像素變換(例如噪聲、模糊、亮度調整、飽和度調整等)。
新設計框架
它可以分為主干和頭。主干網絡的功能是提取特征。YOLOv7的原始主干由幾個CBS、MP和ELAN模塊組成。CBS是一個由卷積核、批處理規(guī)范化和SiLU激活函數(shù)組成的模塊。議員由MaxPooling和CBS組成。改進后的主干網用MobileOne模塊取代了ELAN模塊以提高速度,并在每個MobileOne模件后面添加了一個協(xié)調注意力模塊。所提出的改進方法能夠關注輸入圖像中的顯著特征并抑制外來信息,從而有效地提高檢測精度。
網絡的頭是一個PaFPN結構,它由一個SPPPCC、幾個ELAN2、CatConv和三個RepVGG塊組成。ELAN的設計采用了梯度路徑設計策略。與數(shù)據路徑設計策略相比,梯度路徑設計策略側重于分析梯度的來源和組成,以設計有效利用網絡參數(shù)的網絡架構。該策略的實現(xiàn)可以使網絡架構更加輕量級。ELAN和ELAN2之間的區(qū)別在于它們的通道數(shù)量不同。將結構重新參數(shù)化方法應用于RepVGG區(qū)塊。該方法采用多分支訓練結構和單分支推理結構來提高訓練性能和推理速度。在輸出三個特征圖后,頭通過三個RepConv模塊生成三個不同大小的預測結果。
04 項目落地效果
建立了一個實驗平臺來訓練模型并進行測試。實驗平臺的硬件和軟件配置如下表所示。
環(huán)境 | 名稱 |
系統(tǒng) | Win 10 |
CPU | I7-11700 |
GPU | RTX 3090 |
RAM | 32GB |
語言 | Python 3.7 |
框架 | Pytorch 1.11.0 |
在訓練中,SGD用于模型訓練,動量為0.937,權重衰減率為0.0005。Lr0和lrf分別設置為00.1和0.1,這意味著初始學習率為0.01,最終學習率為初始學習率的0.1倍。此外,為了使模型更好地擬合數(shù)據,還進行了五個epoch的熱身訓練。預熱訓練方法允許模型在最初的幾個時期內穩(wěn)定下來,然后以預設的學習速率進行訓練,以更快地收斂。所有訓練都是用150個epoch進行的,批次大小設置為16。