張英楠 谷志旺 何 嬌
上海建工四建集團(tuán)有限公司 上海 201103
歷史建筑往往采用清水墻作為建筑主體立面,由于人為因素及自然環(huán)境的長期影響,清水墻不可避免地會出現(xiàn)不同種類、不同程度的表面損傷,這些損傷給清水墻的修繕及復(fù)建施工工作帶來了極大影響。常見的清水墻損傷類型包括風(fēng)化、泛堿、綠植覆蓋3種[1]。風(fēng)化為清水磚表面與大氣、水及生物接觸過程中產(chǎn)生物理、化學(xué)變化,在原位形成松散堆積物的全過程。風(fēng)化會使清水墻表面形成疏松的粉化層,導(dǎo)致清水墻強(qiáng)度降低[2];泛堿是指Ca(OH)2等可溶性鹽隨溫度、濕度等外部環(huán)境變化,在水分吸收、水分遷移、水分蒸發(fā)過程中發(fā)生物理、化學(xué)變化,使清水墻表面破壞的一種病害現(xiàn)象,其發(fā)生與砌筑材料質(zhì)量、可溶性堿性氧化物含量、空氣濕度等多因素有關(guān)[3];綠植覆蓋是在自然條件下,植被、苔蘚、植物分泌物大量出現(xiàn)導(dǎo)致的清水墻表面臟污現(xiàn)象。
目前,清水墻損傷查勘工作基于人眼視覺及過往經(jīng)驗進(jìn)行開展,查找、標(biāo)記并測量清水墻表面損傷區(qū)域,目測評估清水墻表面損傷程度。這種傳統(tǒng)人工查勘方法受人為影響因素大,損傷檢測效率低,且大面積的清水墻表面損傷查勘工作極易引起人的視覺疲勞,經(jīng)常造成錯檢、漏檢等情況。此外,對于較高的墻面、地下室墻體等復(fù)雜、危險部位的損傷查勘工作,采用傳統(tǒng)的人工檢測方法通常需要搭設(shè)腳手架等輔助措施進(jìn)行配合,操作流程較為復(fù)雜,同時也存在一定的危險性。
而隨著人工智能的快速發(fā)展,深度學(xué)習(xí)與計算機(jī)視覺技術(shù)逐漸在各行業(yè)中推廣實踐。其中,在建筑工程領(lǐng)域,目標(biāo)檢測算法的應(yīng)用最為廣泛。目標(biāo)檢測算法主要用來從復(fù)雜場景中實現(xiàn)待測目標(biāo)的自動分類與位置標(biāo)記。利用目標(biāo)檢測算法,潘健等[4]提出了基于Faster R-CNN神經(jīng)網(wǎng)絡(luò)模型的村鎮(zhèn)磚(混)木房屋識別提取方法,研究表明,該方法能夠有效地實現(xiàn)磚(混)木房屋檢測;陳利等[5]采用了改進(jìn)的Faster R-CNN神經(jīng)網(wǎng)絡(luò)模型對故宮地磚缺陷進(jìn)行了自動檢測,平均準(zhǔn)確率高達(dá)92.49%;李琛等[6]通過建立深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN),提出了一種基于數(shù)字圖像處理與深度學(xué)習(xí)方法的混凝土表面裂縫與孔洞檢測方法。
基于此,本文利用人工智能手段,針對3種清水墻典型損傷,構(gòu)建了清水墻典型損傷智能識別深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型,提出了清水墻典型損傷自動評估方法,建立了全過程的清水墻典型損傷智能識別與評估系統(tǒng),實現(xiàn)了清水墻典型損傷自動識別與快速評估。
清水墻損傷查勘分為損傷診斷與損傷評估兩部分工作,其中,損傷診斷具體包括損傷區(qū)域的查找以及損傷類別的區(qū)分,符合人工智能領(lǐng)域中目標(biāo)檢測算法的應(yīng)用場景?,F(xiàn)階段,目標(biāo)檢測算法主要分為2種,一種是以R-CNN為代表的兩階段目標(biāo)檢測算法,該算法先生成錨框,再對錨框區(qū)域進(jìn)行判斷和修正,檢測速度慢,但檢測精度高;另一種是以YOLO為代表的單階段目標(biāo)檢測算法,該算法直接將錨框提取與錨框檢測整合為統(tǒng)一過程,檢測精度低,但檢測速度快??紤]到工程應(yīng)用的時效性,本文采用現(xiàn)階段兼顧檢測速度和檢測準(zhǔn)確率的YOLO v4單階段目標(biāo)檢測算法[7]開展清水墻典型損傷智能識別算法研究,通過建立圖像數(shù)據(jù)集、搭建深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練與運(yùn)行環(huán)境、構(gòu)建深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型,提出清水墻典型損傷智能識別方法。
首先,深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型建立的前提是建立圖像訓(xùn)練集、測試集與驗證集。本文涉及的3種清水墻典型損傷具有各自獨特的視覺特征:風(fēng)化表現(xiàn)為明顯的磚面表面脫落、缺失,泛堿表現(xiàn)為磚面表面出現(xiàn)白色結(jié)晶體,植被覆蓋表現(xiàn)為磚面表面生長出綠色植被或綠蘚等植物。基于上述視覺特征,本文從上海多個歷史建筑項目中利用高清單反相機(jī)完成了高清圖像采集,共1 000張圖像。采集圖像中包含風(fēng)化、泛堿和植被覆蓋3種典型損傷,損傷區(qū)域采用labellmg進(jìn)行人工錨框預(yù)標(biāo)注(圖1),統(tǒng)一采用voc數(shù)據(jù)格式,即xml數(shù)據(jù)文件。由于采集圖像樣本數(shù)僅為1 000張,為提高深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型應(yīng)用的魯棒性和適用性,本文采用多種圖像數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充采集圖像樣本數(shù)據(jù)集,具體采用圖像旋轉(zhuǎn)、圖像翻轉(zhuǎn)、圖像融合、圖像填充、圖像拼接、圖像遮擋、圖像畸變、圖像隨機(jī)擦除等多種圖像數(shù)據(jù)增強(qiáng)手段,最終,擴(kuò)充圖像數(shù)據(jù)集至300萬張。
圖1 labellmg人工預(yù)標(biāo)注界面
深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練與運(yùn)行均需要消耗大量算力,對計算機(jī)硬件設(shè)備要求極高,因此,在構(gòu)建深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型前,應(yīng)搭建深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練與運(yùn)行環(huán)境。
考慮到模型訓(xùn)練與運(yùn)行的速度及穩(wěn)定性,本文設(shè)置了包括16 GiB內(nèi)存、520 GB硬盤空間、Nvidia Quadro T1000顯卡(含GPU)、4 GiB顯存、8核處理器、2.60 GHz主頻的硬件環(huán)境以及包括Python(3.7.5版本)、Microsoft Visual Studio(2019版本)、CUDA(10.2版本)、cuDNN(7.6.5版本)、OpenCV(3.4.2版本)的軟件環(huán)境,操作系統(tǒng)采用了Microsoft Windows 10,為本文后續(xù)研究提供了基礎(chǔ)條件。
YOLO v4單階段目標(biāo)檢測算法由Alexey Bochkovskiy在2020年正式提出[8],該算法將CSPDarknet53作為骨干網(wǎng)絡(luò),采用了Mosaic數(shù)據(jù)增強(qiáng)、cmBN、SAT自對抗訓(xùn)練、SPP模塊、FPN+PAN結(jié)構(gòu)等多種算法優(yōu)化手段,驗證了檢測器訓(xùn)練過程中不增加推理成本和增加推理成本的算法優(yōu)化手段的有效性。與其他主流目標(biāo)檢測算法相比,YOLO v4在保持檢測速度的基礎(chǔ)上,大大提高了檢測精度,滿足了實際生產(chǎn)生活中快速完成目標(biāo)檢測工作的應(yīng)用要求[8]。與上一代YOLO系列算法的YOLO v3相比,YOLO v4不僅在檢測精度上提高了約10%,同時在檢測速度上沒有衰減,其在COCO數(shù)據(jù)集上測試的平均精度和幀率精度分別提高了約10%和12%。此外,YOLO v4無需高算力環(huán)境配置,僅需單卡GPU(1 080 Ti或2 080 Ti)便可完成目標(biāo)檢測訓(xùn)練全過程,并修改了SOTA方法,使其更高效、更適合在單卡GPU上進(jìn)行訓(xùn)練。
基于YOLO v4單階段目標(biāo)檢測算法,本文建立的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型采用75層卷積層,學(xué)習(xí)率初始設(shè)定為0.001,最大迭代次數(shù)為100 000次,輸入圖像像素值為1 024h 1 024,梯度下降衰減系數(shù)為0.9,權(quán)重衰減正則系數(shù)為0.000 5,激活函數(shù)采用relu函數(shù)和leaky函數(shù)。其中,學(xué)習(xí)率變化策略不同于常規(guī)的手動修改學(xué)習(xí)率方式,本文采用了基于Adam的動態(tài)學(xué)習(xí)率控制算法,首先計算學(xué)習(xí)率梯度函數(shù)的一階矩估計和二階矩估計,并利用學(xué)習(xí)率梯度函數(shù)的一階矩估計和二階矩估計動態(tài)調(diào)整學(xué)習(xí)率。
在正式開展模型訓(xùn)練前,本文按照8∶2的比例分別建立了圖像訓(xùn)練集和圖像測試集(圖像驗證集與圖像測試集相同)。為了降低誤識率,本文增加了負(fù)樣本圖像(無損傷的圖像樣本),分別添加到圖像訓(xùn)練集和圖像測試集。此外,為了提高訓(xùn)練效果,本文采用了K-means聚類算法,根據(jù)多尺度錨框標(biāo)記文件,生成9種錨框尺寸,輸入到深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型中。
K-means聚類算法在給定k值和k個初始類簇中心點的情況下,把每個點(即圖像數(shù)據(jù)記錄)分到離其最近的類簇中心點所代表的類簇中。當(dāng)所有點均已分配完畢之后,根據(jù)一個類簇內(nèi)的所有點重新計算該類簇的中心點(即平均值),然后再不斷迭代,進(jìn)行分配點和更新類簇中心點的步驟,直至類簇中心點的變化很小,或者達(dá)到指定的迭代次數(shù)。
在本文搭建的模型訓(xùn)練環(huán)境下,風(fēng)化、泛堿、綠植覆蓋3種清水墻典型損傷檢測模型的mAP最終值分別為91.2%、92.6%與94.1%,loss最終值分別為0.213,0.157與0.262,模型訓(xùn)練效果較好。
OpenCV是Intel基于開源發(fā)行的跨平臺計算機(jī)視覺庫,它由一系列C函數(shù)和少量C++函數(shù)構(gòu)成,擁有包括500多個C函數(shù)跨平臺的中、高層API。OpenCV適用于多種編程語言,例如C++、Python、Java等,并且可以在不同的系統(tǒng)平臺上使用,包括Windows、Linux、MacOS X、Android和iOS。在人工智能領(lǐng)域,OpenCV支持圖像處理、計算機(jī)視覺和機(jī)器學(xué)習(xí)多種相關(guān)通用算法,能夠?qū)崿F(xiàn)圖像分割、形狀匹配、線條提取、曝光補(bǔ)償?shù)榷喾N功能。此外,OpenCV的使用不依賴于外部庫的建立,但可接入外部庫,具有高度的用戶友好性。
基于上述建立的清水墻典型損傷智能識別深度學(xué)習(xí)模型,本文根據(jù)識別錨框的像素坐標(biāo),利用OpenCV計算機(jī)視覺庫,按照識別錨框區(qū)域范圍,計算了識別錨框像素尺寸,通過識別錨框像素尺寸的面積除以圖像像素尺寸總面積,分別得到了基于像素尺寸的3種清水墻典型損傷評估指標(biāo),即風(fēng)化率、泛堿率、綠植覆蓋率,形成了清水墻典型損傷像素級尺寸計算與損傷評估體系。
利用上述研究成果,本文在上海多處歷史建筑修繕及復(fù)建工程的現(xiàn)場查勘工作中開展了實踐應(yīng)用,查勘結(jié)果顯示,采用本文所述方法,3種清水墻典型損傷均能精準(zhǔn)診斷損傷類別,迅速標(biāo)定損傷區(qū)域,準(zhǔn)確計算相應(yīng)的損傷評估指標(biāo),與傳統(tǒng)人工查勘方法相比,顯著提高了查勘工作的精度與效率。
通過實際工程驗證,本文所提出的基于人工智能的清水墻典型損傷智能識別與評估方法具有查勘效率高、診斷精度高、評估速度快、可操作性強(qiáng)等特點,且該方法對歷史建筑和操作人員均無害,可在今后歷史建筑修繕及復(fù)建工程中進(jìn)行推廣應(yīng)用。