張英楠 谷志旺 何 嬌
上海建工四建集團有限公司 上海 201103
歷史建筑往往采用清水墻作為建筑主體立面,由于人為因素及自然環境的長期影響,清水墻不可避免地會出現不同種類、不同程度的表面損傷,這些損傷給清水墻的修繕及復建施工工作帶來了極大影響。常見的清水墻損傷類型包括風化、泛堿、綠植覆蓋3種[1]。風化為清水磚表面與大氣、水及生物接觸過程中產生物理、化學變化,在原位形成松散堆積物的全過程。風化會使清水墻表面形成疏松的粉化層,導致清水墻強度降低[2];泛堿是指Ca(OH)2等可溶性鹽隨溫度、濕度等外部環境變化,在水分吸收、水分遷移、水分蒸發過程中發生物理、化學變化,使清水墻表面破壞的一種病害現象,其發生與砌筑材料質量、可溶性堿性氧化物含量、空氣濕度等多因素有關[3];綠植覆蓋是在自然條件下,植被、苔蘚、植物分泌物大量出現導致的清水墻表面臟污現象。
目前,清水墻損傷查勘工作基于人眼視覺及過往經驗進行開展,查找、標記并測量清水墻表面損傷區域,目測評估清水墻表面損傷程度。這種傳統人工查勘方法受人為影響因素大,損傷檢測效率低,且大面積的清水墻表面損傷查勘工作極易引起人的視覺疲勞,經常造成錯檢、漏檢等情況。此外,對于較高的墻面、地下室墻體等復雜、危險部位的損傷查勘工作,采用傳統的人工檢測方法通常需要搭設腳手架等輔助措施進行配合,操作流程較為復雜,同時也存在一定的危險性。
而隨著人工智能的快速發展,深度學習與計算機視覺技術逐漸在各行業中推廣實踐。其中,在建筑工程領域,目標檢測算法的應用最為廣泛。目標檢測算法主要用來從復雜場景中實現待測目標的自動分類與位置標記。利用目標檢測算法,潘健等[4]提出了基于Faster R-CNN神經網絡模型的村鎮磚(混)木房屋識別提取方法,研究表明,該方法能夠有效地實現磚(混)木房屋檢測;陳利等[5]采用了改進的Faster R-CNN神經網絡模型對故宮地磚缺陷進行了自動檢測,平均準確率高達92.49%;李琛等[6]通過建立深度卷積神經網絡(DCNN),提出了一種基于數字圖像處理與深度學習方法的混凝土表面裂縫與孔洞檢測方法。
基于此,本文利用人工智能手段,針對3種清水墻典型損傷,構建了清水墻典型損傷智能識別深度學習神經網絡模型,提出了清水墻典型損傷自動評估方法,建立了全過程的清水墻典型損傷智能識別與評估系統,實現了清水墻典型損傷自動識別與快速評估。
清水墻損傷查勘分為損傷診斷與損傷評估兩部分工作,其中,損傷診斷具體包括損傷區域的查找以及損傷類別的區分,符合人工智能領域中目標檢測算法的應用場景。現階段,目標檢測算法主要分為2種,一種是以R-CNN為代表的兩階段目標檢測算法,該算法先生成錨框,再對錨框區域進行判斷和修正,檢測速度慢,但檢測精度高;另一種是以YOLO為代表的單階段目標檢測算法,該算法直接將錨框提取與錨框檢測整合為統一過程,檢測精度低,但檢測速度快。考慮到工程應用的時效性,本文采用現階段兼顧檢測速度和檢測準確率的YOLO v4單階段目標檢測算法[7]開展清水墻典型損傷智能識別算法研究,通過建立圖像數據集、搭建深度學習神經網絡模型訓練與運行環境、構建深度學習神經網絡模型,提出清水墻典型損傷智能識別方法。
首先,深度學習神經網絡模型建立的前提是建立圖像訓練集、測試集與驗證集。本文涉及的3種清水墻典型損傷具有各自獨特的視覺特征:風化表現為明顯的磚面表面脫落、缺失,泛堿表現為磚面表面出現白色結晶體,植被覆蓋表現為磚面表面生長出綠色植被或綠蘚等植物。基于上述視覺特征,本文從上海多個歷史建筑項目中利用高清單反相機完成了高清圖像采集,共1 000張圖像。采集圖像中包含風化、泛堿和植被覆蓋3種典型損傷,損傷區域采用labellmg進行人工錨框預標注(圖1),統一采用voc數據格式,即xml數據文件。由于采集圖像樣本數僅為1 000張,為提高深度學習神經網絡模型應用的魯棒性和適用性,本文采用多種圖像數據增強技術擴充采集圖像樣本數據集,具體采用圖像旋轉、圖像翻轉、圖像融合、圖像填充、圖像拼接、圖像遮擋、圖像畸變、圖像隨機擦除等多種圖像數據增強手段,最終,擴充圖像數據集至300萬張。

圖1 labellmg人工預標注界面
深度學習神經網絡模型的訓練與運行均需要消耗大量算力,對計算機硬件設備要求極高,因此,在構建深度學習神經網絡模型前,應搭建深度學習神經網絡模型訓練與運行環境。
考慮到模型訓練與運行的速度及穩定性,本文設置了包括16 GiB內存、520 GB硬盤空間、Nvidia Quadro T1000顯卡(含GPU)、4 GiB顯存、8核處理器、2.60 GHz主頻的硬件環境以及包括Python(3.7.5版本)、Microsoft Visual Studio(2019版本)、CUDA(10.2版本)、cuDNN(7.6.5版本)、OpenCV(3.4.2版本)的軟件環境,操作系統采用了Microsoft Windows 10,為本文后續研究提供了基礎條件。
YOLO v4單階段目標檢測算法由Alexey Bochkovskiy在2020年正式提出[8],該算法將CSPDarknet53作為骨干網絡,采用了Mosaic數據增強、cmBN、SAT自對抗訓練、SPP模塊、FPN+PAN結構等多種算法優化手段,驗證了檢測器訓練過程中不增加推理成本和增加推理成本的算法優化手段的有效性。與其他主流目標檢測算法相比,YOLO v4在保持檢測速度的基礎上,大大提高了檢測精度,滿足了實際生產生活中快速完成目標檢測工作的應用要求[8]。與上一代YOLO系列算法的YOLO v3相比,YOLO v4不僅在檢測精度上提高了約10%,同時在檢測速度上沒有衰減,其在COCO數據集上測試的平均精度和幀率精度分別提高了約10%和12%。此外,YOLO v4無需高算力環境配置,僅需單卡GPU(1 080 Ti或2 080 Ti)便可完成目標檢測訓練全過程,并修改了SOTA方法,使其更高效、更適合在單卡GPU上進行訓練。
基于YOLO v4單階段目標檢測算法,本文建立的深度學習神經網絡模型采用75層卷積層,學習率初始設定為0.001,最大迭代次數為100 000次,輸入圖像像素值為1 024h 1 024,梯度下降衰減系數為0.9,權重衰減正則系數為0.000 5,激活函數采用relu函數和leaky函數。其中,學習率變化策略不同于常規的手動修改學習率方式,本文采用了基于Adam的動態學習率控制算法,首先計算學習率梯度函數的一階矩估計和二階矩估計,并利用學習率梯度函數的一階矩估計和二階矩估計動態調整學習率。
在正式開展模型訓練前,本文按照8∶2的比例分別建立了圖像訓練集和圖像測試集(圖像驗證集與圖像測試集相同)。為了降低誤識率,本文增加了負樣本圖像(無損傷的圖像樣本),分別添加到圖像訓練集和圖像測試集。此外,為了提高訓練效果,本文采用了K-means聚類算法,根據多尺度錨框標記文件,生成9種錨框尺寸,輸入到深度學習神經網絡模型中。
K-means聚類算法在給定k值和k個初始類簇中心點的情況下,把每個點(即圖像數據記錄)分到離其最近的類簇中心點所代表的類簇中。當所有點均已分配完畢之后,根據一個類簇內的所有點重新計算該類簇的中心點(即平均值),然后再不斷迭代,進行分配點和更新類簇中心點的步驟,直至類簇中心點的變化很小,或者達到指定的迭代次數。
在本文搭建的模型訓練環境下,風化、泛堿、綠植覆蓋3種清水墻典型損傷檢測模型的mAP最終值分別為91.2%、92.6%與94.1%,loss最終值分別為0.213,0.157與0.262,模型訓練效果較好。
OpenCV是Intel基于開源發行的跨平臺計算機視覺庫,它由一系列C函數和少量C++函數構成,擁有包括500多個C函數跨平臺的中、高層API。OpenCV適用于多種編程語言,例如C++、Python、Java等,并且可以在不同的系統平臺上使用,包括Windows、Linux、MacOS X、Android和iOS。在人工智能領域,OpenCV支持圖像處理、計算機視覺和機器學習多種相關通用算法,能夠實現圖像分割、形狀匹配、線條提取、曝光補償等多種功能。此外,OpenCV的使用不依賴于外部庫的建立,但可接入外部庫,具有高度的用戶友好性。
基于上述建立的清水墻典型損傷智能識別深度學習模型,本文根據識別錨框的像素坐標,利用OpenCV計算機視覺庫,按照識別錨框區域范圍,計算了識別錨框像素尺寸,通過識別錨框像素尺寸的面積除以圖像像素尺寸總面積,分別得到了基于像素尺寸的3種清水墻典型損傷評估指標,即風化率、泛堿率、綠植覆蓋率,形成了清水墻典型損傷像素級尺寸計算與損傷評估體系。
利用上述研究成果,本文在上海多處歷史建筑修繕及復建工程的現場查勘工作中開展了實踐應用,查勘結果顯示,采用本文所述方法,3種清水墻典型損傷均能精準診斷損傷類別,迅速標定損傷區域,準確計算相應的損傷評估指標,與傳統人工查勘方法相比,顯著提高了查勘工作的精度與效率。
通過實際工程驗證,本文所提出的基于人工智能的清水墻典型損傷智能識別與評估方法具有查勘效率高、診斷精度高、評估速度快、可操作性強等特點,且該方法對歷史建筑和操作人員均無害,可在今后歷史建筑修繕及復建工程中進行推廣應用。