馬 健,閻衛(wèi)東,劉國(guó)奇
(沈陽(yáng)建筑大學(xué)土木工程學(xué)院,遼寧 沈陽(yáng) 110168)
古建筑具有不可移動(dòng)和不可再生的特性,在長(zhǎng)達(dá)幾十年、數(shù)百年的服役周期中,受到年久失修、氣候干擾、人為破壞等因素的影響,古建筑木結(jié)構(gòu)出現(xiàn)了各種形式的損傷現(xiàn)象,而裂縫是最常見(jiàn)的損傷形式。由于裂縫擴(kuò)展引發(fā)了多起古建筑整體結(jié)構(gòu)倒塌的事故[1],嚴(yán)重影響到了我國(guó)古建筑木結(jié)構(gòu)的健康發(fā)展。因此,探尋一種快速便捷、操作簡(jiǎn)便的古建筑木結(jié)構(gòu)裂縫檢測(cè)方法,對(duì)于古建筑本體保護(hù)及其歷史文化傳承具有重要意義。
目前,關(guān)于古建筑裂縫檢測(cè)的研究較少,尤其是針對(duì)古建筑木結(jié)構(gòu)裂縫檢測(cè)的研究更是匱乏。奧村運(yùn)明等[2]利用數(shù)字圖像技術(shù)對(duì)古建筑裂縫進(jìn)行監(jiān)測(cè),證明數(shù)碼圖像經(jīng)過(guò)處理后得到的裂縫寬度與現(xiàn)場(chǎng)測(cè)量結(jié)果一致;朱才輝等[3]以現(xiàn)役西安明代城墻及鐘樓等古建筑為研究對(duì)象,利用人工觀察法調(diào)研了裂縫程度,并用考慮損傷的砌體力學(xué)模型進(jìn)行了裂縫成因分析。然而,上述研究古建筑本體為鋼結(jié)構(gòu)和混凝土結(jié)構(gòu),而我國(guó)古建筑木結(jié)構(gòu)與鋼結(jié)構(gòu)和混凝土結(jié)構(gòu)不同,木材水分含量低,裂縫一旦擴(kuò)展極易出現(xiàn)脆斷現(xiàn)象,局部的脆斷也將導(dǎo)致整體結(jié)構(gòu)的連續(xù)性倒塌。因此,上述方法不適用古建筑木結(jié)構(gòu)的裂縫檢測(cè)。目前,我國(guó)古建筑木結(jié)構(gòu)裂縫檢測(cè)主要以人工檢測(cè)為主,只有少部分木結(jié)構(gòu)古建筑運(yùn)用了應(yīng)力波法[4-5]、皮螺釘技術(shù)[6]、阻抗儀檢測(cè)法[7]和超聲波法[8]。楊娜等[9]總結(jié)分析了上述方法存在的缺點(diǎn)和不足,基于無(wú)人機(jī)與計(jì)算機(jī)視覺(jué)技術(shù)設(shè)計(jì)了古建筑木結(jié)構(gòu)裂縫監(jiān)測(cè)系統(tǒng),證實(shí)能夠?qū)崿F(xiàn)古建筑木結(jié)構(gòu)裂縫的實(shí)時(shí)長(zhǎng)期監(jiān)測(cè)。魏越等[10]基于動(dòng)力特性試驗(yàn)的損傷識(shí)別方法,對(duì)有損狀態(tài)和無(wú)損狀態(tài)的古建筑木梁進(jìn)行模態(tài)試驗(yàn),證實(shí)固有頻率、位移模態(tài)、曲率模態(tài)對(duì)木梁干縮裂縫的識(shí)別效果都不理想。因此,如何利用人工智能方法精準(zhǔn)識(shí)別古建筑木結(jié)構(gòu)裂縫是該領(lǐng)域遇到的新問(wèn)題與新挑戰(zhàn)。
基于上述分析,筆者提出利用YOLO v5目標(biāo)檢測(cè)方法對(duì)古建筑木結(jié)構(gòu)裂縫進(jìn)行檢測(cè)和驗(yàn)證,以沈陽(yáng)建筑大學(xué)校園內(nèi)的八王寺為研究對(duì)象,對(duì)其結(jié)構(gòu)裂縫進(jìn)行了識(shí)別檢驗(yàn),裂縫檢測(cè)精度達(dá)到91%左右,證明該方法適用于古建筑木結(jié)構(gòu)裂縫檢測(cè)。
近年來(lái),研究人員在道路、橋梁的裂縫檢測(cè)領(lǐng)域提出了眾多深度學(xué)習(xí)方法[11-13],并證明這些方法在裂縫識(shí)別和檢測(cè)中是可行的。但是,道路和橋梁大多為鋼材、混凝土、砂石、瀝青等非木質(zhì)材料,這些結(jié)構(gòu)裂縫圖像的像素點(diǎn)占比較少,并且與背景灰度值存在重疊,而又與背景和噪聲的形態(tài)存在差異,因此,研究學(xué)者通常選取CNN[14]、DCNN[15]、R-CNN[16]提取裂縫信息。由于古建筑木結(jié)構(gòu)的裂縫具有像素點(diǎn)占比多、與背景灰度值差別明顯、存在木紋噪聲等特性,所以橋梁和道路裂縫識(shí)別方法具有一定的局限性,無(wú)法在古建筑木結(jié)構(gòu)的裂縫檢測(cè)中直接應(yīng)用。更重要的是,傳統(tǒng)的神經(jīng)元網(wǎng)絡(luò)系統(tǒng)在裂縫識(shí)別的時(shí)候?qū)υO(shè)備要求較高、訓(xùn)練時(shí)間較長(zhǎng),并且通常需要訓(xùn)練上萬(wàn)次[17-18],才能達(dá)到較高的裂縫識(shí)別精度,不能滿足高校低成本、易操作、高效率檢測(cè)古建筑木結(jié)構(gòu)裂縫的現(xiàn)實(shí)需求。
綜上所述,筆者針對(duì)高等院校古建筑保護(hù)面臨的實(shí)際困難,提出利用兼具速度快、靈活性強(qiáng)、效率高、準(zhǔn)確率高等特性的YOLO v5目標(biāo)檢測(cè)方法對(duì)古建筑木結(jié)構(gòu)裂縫進(jìn)行檢測(cè)。YOLO v5目標(biāo)檢測(cè)方法,按照網(wǎng)絡(luò)深度大小和特征圖深度大小可以分為YOLO v5s、YOLO v5m、YOLO v5l、YOLO v5x。其中,YOLO v5s是最小最快的模型,采用單個(gè)神經(jīng)網(wǎng)絡(luò)直接預(yù)測(cè)物品邊界和類別概率,實(shí)現(xiàn)端到端的物品檢測(cè),更加能適應(yīng)現(xiàn)場(chǎng)應(yīng)用環(huán)境。因此,筆者提出將YOLO v5s目標(biāo)檢測(cè)方法應(yīng)用到古建筑木結(jié)構(gòu)裂縫檢測(cè)中,具有較強(qiáng)的創(chuàng)新性。
YOLO v5作為古建筑木結(jié)構(gòu)裂縫檢測(cè)的網(wǎng)絡(luò)模型,其結(jié)構(gòu)如圖1所示。裂縫識(shí)別過(guò)程主要包括:一是古建筑木結(jié)構(gòu)裂縫檢測(cè)木塊對(duì)輸入的裂縫圖片進(jìn)行識(shí)別并標(biāo)注;二是裂縫識(shí)別模塊對(duì)檢測(cè)到的古建筑木結(jié)構(gòu)裂縫區(qū)域裁剪出子圖像,并根據(jù)是否存在裂縫進(jìn)行圖像二分類;三是得出是否為裂縫的識(shí)別結(jié)果。
圖1 YOLO v5結(jié)構(gòu)圖Fig.1 Overview of YOLO v5
由于國(guó)內(nèi)目前沒(méi)有公開關(guān)于古建筑木結(jié)構(gòu)裂縫的數(shù)據(jù)集,為了達(dá)到研究目的,筆者以沈陽(yáng)建筑大學(xué)校園內(nèi)的八王寺作為研究對(duì)象,采集了474張圖片,建立了一個(gè)古建筑木結(jié)構(gòu)裂縫數(shù)據(jù)集。八王寺創(chuàng)建于1415年(明永樂(lè)十三年),1638年(清崇德三年)重修,至今已有600余年的歷史,在日俄戰(zhàn)爭(zhēng)中,八王寺只剩下一間主殿,門窗破敗、殿柱腐爛,面臨全面拆除的窘境。沈陽(yáng)建筑大學(xué)秉承保護(hù)歷史的情懷和文化育人的理念,歷經(jīng)四年時(shí)間,于2009年將八王寺主殿遷移到校園內(nèi),現(xiàn)在名為“八王書院”,具有重要的歷史文化傳承價(jià)值。然而,由于專業(yè)人員配備不足,高端儀器設(shè)備缺失,“八王書院”整體機(jī)構(gòu)出現(xiàn)了諸多裂縫,分布在柱、梁、門、窗等部位。
筆者利用佳能(Canon)EOS 90D單反相機(jī),累計(jì)拍攝474張裂縫圖片,并以9∶1的比例劃分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集。古建筑木結(jié)構(gòu)裂縫較容易出現(xiàn)在門、窗、柱等部位,因此,筆者選取八王書院的門、窗、柱三類構(gòu)件裂縫作為研究對(duì)象,在拍攝過(guò)程中,按照構(gòu)件局部裂縫和整體裂縫進(jìn)行分類,部分選樣圖片如圖2所示。
圖2 古建筑木結(jié)構(gòu)裂縫樣例Fig.2 The crack examples in wooden structure of ancient building
2.2.1 圖片選取及裂縫標(biāo)注
古建筑木結(jié)構(gòu)由于自身材料的獨(dú)特屬性,其裂縫特征和橋梁、路面有較大差異。因此,在進(jìn)行圖片裂縫標(biāo)注的時(shí)候,要充分考慮古建筑木結(jié)構(gòu)裂縫的實(shí)際特性。比如,裂縫的深淺不同、木結(jié)構(gòu)表面光滑度不同、裂縫的長(zhǎng)短和寬窄不同、裂縫的數(shù)量不同、木結(jié)構(gòu)表面的木紋噪聲不同等,這些都對(duì)古建筑木結(jié)構(gòu)裂縫的標(biāo)注提出了不同的要求。筆者在474份標(biāo)注樣本中選取了9種典型代表古建筑木結(jié)構(gòu)裂縫圖片來(lái)展示通常裂縫存在的形式,如圖3所示。
由圖3(a)可見(jiàn),古建筑木結(jié)構(gòu)表面粗糙,存在樹皮干擾,裂縫特征不明顯,此類裂縫在標(biāo)注的時(shí)候需要顯示特征較為明顯的裂縫,樹皮干擾的裂縫不進(jìn)行標(biāo)注;由圖3(b)
圖3 不同類型的古建筑木結(jié)構(gòu)裂縫圖Fig.3 Different types of wooden structure cracks in ancient buildings
可見(jiàn),古建筑木結(jié)構(gòu)表面相對(duì)光滑,存在局部風(fēng)化,裂縫特征明顯,同時(shí)部分裂縫間距較小,此類裂縫在標(biāo)注的時(shí)候可以將間距較小的裂縫進(jìn)行合并標(biāo)注,單獨(dú)的裂縫進(jìn)行單獨(dú)標(biāo)注;由圖3(c)可見(jiàn),古建筑木結(jié)構(gòu)表面存在油漆且比較光滑,裂縫特征明顯,裂縫數(shù)量較多且長(zhǎng)度較短,此類裂縫在標(biāo)注的時(shí)候需要對(duì)所有清晰可見(jiàn)的裂縫進(jìn)行逐個(gè)標(biāo)注;由圖3(d)可見(jiàn),古建筑木結(jié)構(gòu)表面相對(duì)光滑,裂縫特征明顯,經(jīng)過(guò)人工辨別后發(fā)現(xiàn)存在木紋,此類裂縫在標(biāo)注的時(shí)候僅對(duì)裂縫進(jìn)行標(biāo)注,木紋不標(biāo)注;由圖3(e)可見(jiàn),古建筑木結(jié)構(gòu)表面比較粗糙,存在起皮和不同顏色,同時(shí)起皮部位也存在很小的裂紋,人工辨別后確定不是木結(jié)構(gòu)裂縫,此類裂縫在標(biāo)注的時(shí)候,可以從清晰和模糊的裂縫里選特征明顯的代表進(jìn)行標(biāo)注,對(duì)于起皮產(chǎn)生的裂紋不做標(biāo)注;由圖3(f)可見(jiàn),古建筑木結(jié)構(gòu)表面部分油漆已經(jīng)脫落,裂縫分布清晰,裂縫長(zhǎng)短不一,此類裂縫在標(biāo)注的時(shí)候可以全部進(jìn)行標(biāo)注;由圖3(g)可見(jiàn),古建筑木結(jié)構(gòu)表面光滑,裂縫對(duì)比鮮明,有特別明顯和規(guī)整的寬裂縫和窄裂縫,此類裂縫在標(biāo)注的時(shí)候可以進(jìn)行直接標(biāo)記;由圖3(h)可見(jiàn),古建筑木結(jié)構(gòu)表面光滑,裂縫數(shù)量較少,裂縫長(zhǎng)短特征比較明顯,此類裂縫在標(biāo)注的時(shí)候可以標(biāo)注長(zhǎng)裂縫和短裂縫各1條,裂縫數(shù)量多的情況下,可酌情多標(biāo)注幾條;由圖3(i)可見(jiàn),古建筑木結(jié)構(gòu)表面粗糙,木結(jié)構(gòu)存在風(fēng)化腐蝕,清晰可見(jiàn)原木本體,裂縫數(shù)量較多且間距較小,此類裂縫在標(biāo)注的時(shí)候可按照裂縫密度集中區(qū)域進(jìn)行合并標(biāo)注,對(duì)于原木本身的木紋不做處理。
2.2.2 生成數(shù)據(jù)信息文件
古建筑木結(jié)構(gòu)裂縫圖片在進(jìn)行標(biāo)注完成之后,保存圖片集,使用LabelImg系統(tǒng)生成裂縫圖片標(biāo)注信息的txt文件,包含裂縫標(biāo)注的個(gè)數(shù)、位置等信息,命名為crack。其中,“0”表示古建筑木結(jié)構(gòu)裂縫標(biāo)注的類別,“0”的個(gè)數(shù)表示標(biāo)注裂縫的條數(shù),如表1所示。
表1 裂縫標(biāo)注信息情況表Table 1 Crack labeling information table
試驗(yàn)采用個(gè)人筆記本電腦,機(jī)型為聯(lián)想拯救者R7000p 2020款,系統(tǒng)配置為GeForce RTX2060,6 G顯存 GPU,AMD Ryzen 74800H 主頻率2.90 GHz,內(nèi)存16 G,操作系統(tǒng)為Windows10,開發(fā)平臺(tái)使用pycharm,編程語(yǔ)言是Python。基于Facebook開發(fā)的Pytorch深度學(xué)習(xí)框架,使用建立的Pascal VOC數(shù)據(jù)集訓(xùn)練YOLO v5s模型。
選取474張“八王書院”門、窗、柱、梁的裂縫圖片作為訓(xùn)練樣本,利用YOLO v5s模型進(jìn)行訓(xùn)練,從而檢測(cè)出圖片中的裂縫。設(shè)置好訓(xùn)練參數(shù),訓(xùn)練350次。根據(jù)測(cè)試實(shí)際需要,定義數(shù)據(jù)集文件為crack.yaml,模型文為YOLO v5s.yaml,初始權(quán)重文件為YOLO v5s.pt,使用單gpu加速訓(xùn)練。
對(duì)檢測(cè)目標(biāo)進(jìn)行識(shí)別時(shí),檢驗(yàn)精度指標(biāo)用mAP表示,代表多個(gè)類別AP的平均值。因?yàn)楣P者檢測(cè)樣本只有古建筑木結(jié)構(gòu)裂縫一個(gè)種類,所以可直接用AP作為裂縫檢測(cè)的評(píng)價(jià)指標(biāo)。AP代表模型檢測(cè)效果的優(yōu)劣程度,數(shù)值越大表示檢測(cè)結(jié)果越好。根據(jù)Recall和Precision制作一條曲線,該條曲線下面的區(qū)域面積就是AP,AP值就是對(duì)該面積進(jìn)行積分,具體公式為
(1)
(2)
(3)
式中:J為精確率;H為召回率;ZJ為被識(shí)別出來(lái)含裂縫的正類樣本數(shù)量;FJ為被識(shí)別出來(lái)的不含有裂縫的負(fù)樣本數(shù)量;FN為沒(méi)有被識(shí)別的含有裂縫的正類樣本數(shù)量。
經(jīng)過(guò)350次訓(xùn)練后,試驗(yàn)結(jié)果如表2所示。Box結(jié)果值在0.04左右,數(shù)值較小,訓(xùn)練損失較低,說(shuō)明生成訓(xùn)練結(jié)果比較準(zhǔn)確;obj的值在0.06左右,說(shuō)明對(duì)目標(biāo)的檢測(cè)準(zhǔn)確率較高;因?yàn)闃?biāo)注目標(biāo)類只有一個(gè)(裂縫),所以class值為0;裂縫識(shí)別精確度Precision在91%左右,檢測(cè)出目標(biāo)物體的準(zhǔn)確率相對(duì)較高,Recall召回率在86%左右,說(shuō)明找對(duì)正類物體的準(zhǔn)確率相對(duì)較好,詳見(jiàn)表2和圖4所示。
表2 裂縫訓(xùn)練結(jié)果Table 2 Fracture training results
圖4 試驗(yàn)結(jié)果
表中相關(guān)參數(shù)解釋如下:
Box:YOLO v5使用 GIOU Loss作為bounding box的損失,Box推測(cè)為GIoU損失函數(shù)均值,該數(shù)值越小表示檢測(cè)出的方框越準(zhǔn)。
valBox:驗(yàn)證集bounding box損失。
Objectness:推測(cè)為目標(biāo)檢測(cè)loss均值,該數(shù)值越小表明目標(biāo)檢測(cè)越準(zhǔn)。
valObjectness:驗(yàn)證集目標(biāo)檢測(cè)loss均值。
Classification:推測(cè)為分類loss均值,該數(shù)值越小表明分類越準(zhǔn)。
valClassification:驗(yàn)證集分類loss均值。
Precision:表示精度(找對(duì)的數(shù)量/找到的所有數(shù)量),衡量一個(gè)分類器分出來(lái)的正類的概率。
Recall:表示召回率(找對(duì)的正類/所有本應(yīng)該被找對(duì)的正類),衡量一個(gè)分類能把所有的正類都找出來(lái)的能力。
mAP@0.5 &mAP@0.5:0.95:就是mAP是用Precision和Recall作為兩軸作圖后圍成的面積,m表示平均,@后面的數(shù)表示判定Iou為正負(fù)樣本的閾值,@0.5:0.95表示閾值取0.5:0.05:0.95(從0.5到0.95,步長(zhǎng)為0.05)后取均值。
裂縫圖像訓(xùn)練完成后,產(chǎn)生了較好的效果。筆者進(jìn)一步對(duì)其他古建筑木結(jié)構(gòu)裂縫進(jìn)行測(cè)試,在試驗(yàn)中筆者選取了100張不同特征的古建筑木結(jié)構(gòu)圖片作為測(cè)試數(shù)據(jù)。測(cè)試結(jié)果顯示,模型能夠較好的識(shí)別出測(cè)試圖片中的裂縫,標(biāo)注效果與人工標(biāo)注水平相同。筆者在100張測(cè)試數(shù)據(jù)中,選取了兩個(gè)典型裂縫結(jié)構(gòu)進(jìn)行分析,如圖5所示。
圖5 裂縫測(cè)試圖Fig.5 Fracture testing diagram
從圖5中可以看到,對(duì)于表面光滑和表面粗糙的古木結(jié)構(gòu),模型能夠非常好的識(shí)別并標(biāo)記出裂縫結(jié)構(gòu)。在表面光滑的古建筑木結(jié)構(gòu)上,形狀細(xì)小的裂縫都能被準(zhǔn)確識(shí)別出來(lái)。在表面粗糙的古建筑木結(jié)構(gòu)上,模型能夠很好地區(qū)分木紋和真實(shí)的裂縫。
筆者基于YOLO v5自身速度快、易操作、樣本要求數(shù)量少的特性,對(duì)古建筑木結(jié)構(gòu)裂縫進(jìn)行了檢測(cè)。經(jīng)過(guò)350次訓(xùn)練之后,總損失率降低到了0.042,AP值為0.915 3,裂縫檢測(cè)精度達(dá)到91%左右,證明該方法在古建筑木結(jié)構(gòu)裂縫檢測(cè)領(lǐng)域取得了良好的效果。
目前沒(méi)有公開的古建筑木結(jié)構(gòu)裂縫數(shù)據(jù)集,筆者采集的裂縫圖片樣本數(shù)量雖然有限,但可以作為一個(gè)公開的古建筑木結(jié)構(gòu)裂縫數(shù)據(jù)集供其他研究者使用。