馬 健,閻衛(wèi)東,劉國奇
(沈陽建筑大學(xué)土木工程學(xué)院,遼寧 沈陽 110168)
《“十四五”文物保護和科技創(chuàng)新規(guī)劃》提出,要加強古建筑木結(jié)構(gòu)病害探測、智能診斷等關(guān)鍵技術(shù)攻關(guān),完成搶救性保護向預(yù)防性保護的切實轉(zhuǎn)變。在此背景下,開展古建筑木結(jié)構(gòu)裂縫檢測關(guān)鍵技術(shù)研究具有重要意義。我國古建筑木結(jié)構(gòu)可以簡化為桿系單元和變剛度單元組合的梁-柱體系,而幾乎所有的梁、柱構(gòu)件都會出現(xiàn)裂縫,并在后續(xù)荷載及應(yīng)力集中作用下擴展成為危險裂縫,從而引發(fā)構(gòu)件發(fā)生脆斷,甚至導(dǎo)致整體結(jié)構(gòu)出現(xiàn)連續(xù)性倒塌[1-2]。由此可見,裂縫的萌生及擴展是影響古建筑木結(jié)構(gòu)健康服役的重大隱患,裂縫識別成為了保護古建筑木結(jié)構(gòu)的關(guān)鍵前提。然而,當(dāng)前我國古建筑木結(jié)構(gòu)裂縫識別主要依靠人工檢測,少部分借助了超聲波、應(yīng)力波、皮羅釘?shù)任锢頇z測儀器,以上方式均屬于接觸式檢測方法,在古建筑木結(jié)構(gòu)裂縫識別過程中存在成本高、效率低、誤差大、測不全等局限[3-5]。基于此,筆者利用YOLO v5算法對古建筑木結(jié)構(gòu)裂縫進行了識別,取得了較好效果,實現(xiàn)了古建筑木結(jié)構(gòu)裂縫智能檢測,為古建筑智能運維與健康管理研究領(lǐng)域提供了新的方法。
古建筑木結(jié)構(gòu)裂縫檢測理論與方法的相關(guān)研究較少,現(xiàn)有研究方法相對傳統(tǒng),存在一定的缺陷和不足。A.Franciso[6]等提出了利用超聲波來檢測古建筑木結(jié)構(gòu)裂縫。E.Miguel等[7]介紹了應(yīng)力波法在古建筑木結(jié)構(gòu)裂縫損傷檢測中的應(yīng)用,闡述了裂縫與木結(jié)構(gòu)力學(xué)性能之間的關(guān)系,定量評價了木梁腐蝕后的殘余強度。D.J.Cown等[8]通過兩個“皮羅釘木材測試器”實驗,評估了樹木的木材密度,取得了較好的檢測結(jié)果。馬德云[9]總結(jié)了古建筑木結(jié)構(gòu)安全性評估的有效方法,并介紹了各個方法的不足。由此可見,古建筑木結(jié)構(gòu)裂縫檢測主要依托人工檢測識別危險裂縫,少部分引入了超聲波、應(yīng)力波、皮羅釘?shù)葻o損檢測儀器,但均無法實現(xiàn)智能檢測,存在一定的弊端。
近年來,隨著大數(shù)據(jù)與人工智能的快速發(fā)展,深度學(xué)習(xí)以其強大的建模和表征能力,為古建筑木結(jié)構(gòu)裂縫識別智能化發(fā)展提供了可能。YOLO是一種新的目標檢測方法,是第一個在檢測精度、檢測速度都取得不錯效果的單階段目標檢測算法,并且成功應(yīng)用于農(nóng)業(yè)[10]、地質(zhì)學(xué)[11]、遙感[12-13]和醫(yī)學(xué)[14]等領(lǐng)域。此外,還廣泛應(yīng)用于交通運輸領(lǐng)域,例如交通標志檢測[15]、路面凹坑檢測[16]。
除了YOLO系列模型,基于深度學(xué)習(xí)的目標檢測方法還包括SSD和Faster RCNN等系列。為了尋求更加適合古建筑木結(jié)構(gòu)的檢測方法,筆者將利用YOLO、SSD以及Faster RCNN三個系列模型中使用率較高、檢測效果較好的四個模型對古建筑木結(jié)構(gòu)裂縫檢測效果進行研究,并從平均損失函數(shù)、精度、召回率、平均精度、每秒傳輸幀數(shù)、推理時間、總運行時間和權(quán)重等定量指標進行性能比較分析。
古建筑木結(jié)構(gòu)裂縫較多,但是目前在國內(nèi)還沒有發(fā)現(xiàn)公開發(fā)布的古建筑木結(jié)構(gòu)裂縫圖片數(shù)據(jù)集,對古建筑木結(jié)構(gòu)裂縫檢測方法研究造成了阻礙。筆者基于自身研究領(lǐng)域,一直在搜集古建筑木結(jié)構(gòu)裂縫圖像,并且公開發(fā)布了一個包含474張圖片的古建筑木結(jié)構(gòu)裂縫圖片數(shù)據(jù)集[17]。然而,在研究過程中發(fā)現(xiàn),圖片數(shù)據(jù)集的數(shù)量、質(zhì)量等都會對古建筑木結(jié)構(gòu)裂縫檢測精度造成影響。因此,為了證實和改善這一問題,筆者利用同一臺相機設(shè)備,按照固定焦距重新采集了沈陽建筑大學(xué)八王書院裂縫圖片,并形成了一個包含594張圖片的新的古建筑木結(jié)構(gòu)裂縫圖片數(shù)據(jù)集。
實驗數(shù)據(jù)的選取、處理以及數(shù)據(jù)信息生成的方法參照文獻[20],不同的是,文中古建筑木結(jié)構(gòu)裂縫圖片選自于新的數(shù)據(jù)集,圖片質(zhì)量更加清晰、數(shù)量更加豐富,部分標注后的圖片如圖1所示。
圖1 標注后的古建筑木結(jié)構(gòu)裂縫圖Fig.1 Annotated timber structure crack diagram of ancient buildings
將裂縫圖片標注完成后進行保存,利用標簽軟件LabelImg系統(tǒng)生成voc格式的裂縫圖片,圖片的標注信息生成為xml文件,包含文件夾名稱、圖片名稱、圖片路徑、數(shù)據(jù)源,圖片大小節(jié)點等標簽信息命名為crack。其中“0”表示古建筑木結(jié)構(gòu)裂縫標注的類別,“0”的個數(shù)表示標注裂縫的條數(shù),如表1所示。
表1 裂縫標注信息情況表Table 1 Crack labeling information table
3.1.1 YOLO模型
YOLO是一種新的單階段目標檢測方法,兼具速度快、效率高、準確率高等特性。
筆者已有的研究成果表明,YOLO v5在YOLO系列模型里更加適用于古建筑木結(jié)構(gòu)裂縫的檢測。
3.1.2 SSD模型
SSD是一種單階段的通用物體目標檢測算法,其全稱是Single Shot MultiBoxDetector。其中,Single Shot指的是SSD算法屬于單階段檢測方法,MultiBox說明SSD是多框預(yù)測。
3.1.3 Faster RCNN模型
Faster RCNN是一種比較典型的目標檢測算法,主要是在Fast RCNN的基礎(chǔ)上提出了RPN候選框生成算法,大大提高了目標檢測速度。Faster RCNN網(wǎng)絡(luò)結(jié)構(gòu)包括四個部分:卷積層、RPN網(wǎng)絡(luò)、Rol pooling及分類和回歸。
實驗采用戴爾(DELL)筆記本電腦,機型為游匣G15 5511-R1866B2021款,系統(tǒng)配置為GeForce RTX3060,CPU型號為17-11800H,內(nèi)存16 G,操作系統(tǒng)為Windows10,開發(fā)平臺使用pycharm,編程語言為Python?;贔acebook開發(fā)的Pytorch深度學(xué)習(xí)框架,使用建立的COCO數(shù)據(jù)集。
選取594張古建筑木結(jié)構(gòu)裂縫圖片的815條裂縫作為訓(xùn)練樣本,利用YOLO v5、SSD和Faster RCNN模型進行訓(xùn)練,從而對古建筑木結(jié)構(gòu)裂縫圖片進行檢測。訓(xùn)練過程中,超參數(shù)設(shè)置是否科學(xué)直接影響古建筑木結(jié)構(gòu)裂縫檢測結(jié)果。文中的超參數(shù)設(shè)置包括四個步驟:訓(xùn)練、測試、模型選擇和部署。第一步,在訓(xùn)練階段與一個“模型生成器”配對組件,通過對網(wǎng)絡(luò)超參數(shù)的優(yōu)化,生成n個不同的模型;第二步,測試每個訓(xùn)練模型的魯棒性,基于訓(xùn)練階段優(yōu)化的超參數(shù)配置,對每個訓(xùn)練好的模型進行測試;第三步,模型選擇器根據(jù)查全率選擇最佳模型;第四步,將該系統(tǒng)部署到實際應(yīng)用中,可以使用一個估計組件,用最適合的模型來匹配系統(tǒng)的要求。根據(jù)測試實際需要,每個模型訓(xùn)練輪數(shù)總共為300輪,使用單gpu加速訓(xùn)練。
4.1.1 Objectness值
Objectness代表訓(xùn)練平均損失,表示推測目標檢測損失函數(shù)的均值,該數(shù)值越小,表明目標檢測越精準。
4.1.2 Precision值
Precision代表精度,表示找對的數(shù)量與找到的所有數(shù)量的比值,衡量的是一個分類器分出來的正類的概率,計算式如式(1)所示:
(1)
式中:P為精度;TP為被識別出來含裂縫的正類樣本數(shù)量;FP為被識別出來的不含有裂縫的負樣本數(shù)量。
4.1.3 Recall值
Recall代表召回率,表示找對的正類與所有本應(yīng)該被找對的正類的比值,衡量的是一個分類能把所有的正類都找出來的能力,計算式如式(2):
(2)
式中:R為召回率;TP為被識別出來含裂縫的正類樣本數(shù)量;FN為沒有被識別的含有裂縫的正類樣本數(shù)量。
4.1.4 AP值
對檢測目標進行識別時,檢驗精度指標用mAP表示,代表多個類別AP的平均值。由于本研究中檢測樣本只有古建筑木結(jié)構(gòu)裂縫一個種類,所以可直接用AP作為裂縫檢測的評價指標。AP代表模型檢測效果的優(yōu)劣程度,數(shù)值越大表示檢測結(jié)果越好。根據(jù)Recall和Precision制作一條曲線,該條曲線下面的區(qū)域面積就是AP,AP值就是對該面積進行積分,計算如下:
(3)
4.1.5 FPS值
FPS是圖像領(lǐng)域的有關(guān)概念,表示的是訓(xùn)練過程中每秒傳輸?shù)膱D片幀數(shù)。當(dāng)模型的FPS值超過30的時候,證明該模型可以實現(xiàn)實時處理圖像。
4.1.6 Interfence time值
Interfence time代表推理時間,指的是推理一張圖片所需要的時間,是考量模型訓(xùn)練速度的重要指標。
4.1.7 Total runtime值
Total runtime代表模型完成圖片訓(xùn)練的總運行時間,是考量模型訓(xùn)練速度的重要指標。
4.1.8 Weight值
Weight代表在原有模型的基礎(chǔ)上,根據(jù)古建筑木結(jié)構(gòu)裂縫檢測需求所生成模型的大小,越小代表模型越輕便。
4.2.1 模型訓(xùn)練結(jié)果
筆者分別用YOLO v5s、SSD 300、Faster RCNN(mobilenet_v2)和Faster RCNN(resnet50_fpn)四個模型對古建筑木結(jié)構(gòu)裂縫進行訓(xùn)練,訓(xùn)練300輪后,得到相關(guān)指標數(shù)值結(jié)果。四個模型的部分訓(xùn)練結(jié)果如圖2、圖3、圖4、圖5所示。
圖2 YOLO v5s模型結(jié)果Fig.2 YOLO V5s model experiment results
圖3 SSD 300模型結(jié)果Fig.3 SSD 300 model experiment results
圖4 Faster RCNN(mobilenet_v2)模型結(jié)果Fig.4 Faster RCNN(mobilenet_v2)model experiment results
圖5 Faster RCNN(resnet50_fpn)模型結(jié)果Fig.5 Faster RCNN(resnet50_fpn)model experiment results
4.2.2 訓(xùn)練結(jié)果分析
對以上圖表信息進行匯總,結(jié)合訓(xùn)練過程產(chǎn)生的實驗數(shù)據(jù),形成不同模型性能對比所需的評價指標,結(jié)果見表2。
表2 四種模型性能對比評價指標Table 2 The performance of the four models was compared and evaluated
從表2可以得出,訓(xùn)練300輪的情況下,各個模型訓(xùn)練結(jié)果分析如下。
Faster RCNN(mobilenet_v2)模型:平均損失函數(shù)為0.25,精度為79.26%,召回率最小為45.62%,平均精度為0.79,每秒傳輸幀數(shù)最小為12.55,推理時間最大為79.67 ms,訓(xùn)練總運行時間為6.15 h,權(quán)重最大為628 MB。由此可見,F(xiàn)aster RCNN(mobilenet_v2)模型在四個模型里是最重的模型,古建筑木結(jié)構(gòu)裂縫檢測推理速度最慢、每秒傳輸速度最慢,綜合性能較差。
Faster RCNN(resnet50_fpn)模型:平均損失函數(shù)為0.16,精度為82.83%,召回率為55.93%,平均精度為0.83,每秒傳輸幀數(shù)為17.51,推理時間為57.12 ms,訓(xùn)練總運行時間為7.67 h,權(quán)重為315 MB。由此可見,F(xiàn)aster RCNN(resnet50_fpn)模型在四個模型里是比較重的模型,古建筑木結(jié)構(gòu)裂縫檢測訓(xùn)練總運行時間較長,推理速度較慢、每秒傳輸速度較慢,識別裂縫的能力和精度相對較好。
SSD 300模型:平均損失函數(shù)最大為3.11,精度最小為67.34%,召回率為49.94%,平均精度最小為0.67,每秒傳輸幀數(shù)為76.05,推理時間為13.15 ms,訓(xùn)練總運行時間最小為1.67 h,權(quán)重為100 MB。由此可見,SSD 300模型在四個模型里是屬于比較輕便的模型,古建筑木結(jié)構(gòu)裂縫檢測總運行時間最短,推理時間相對較快,檢測速度較快,但是該模型是四個模型里損失函數(shù)最大、檢測精度最低的。
YOLO v5s模型:平均損失函數(shù)最小為0.01,精度最大為96.37%,召回率最大為98.26%,平均精度最大為0.99,每秒傳輸幀數(shù)最大為125.16,推理時間最小為8.03 ms,訓(xùn)練總運行時間最大為7.69 h,權(quán)重最小為13 MB。由此可見,YOLO v5s模型在四個模型里是最輕便的模型,古建筑木結(jié)構(gòu)裂縫檢測速度最快、損失率最小、準確率最高,識別裂縫的正確率也是最高的,唯一不足就是總的訓(xùn)練運行時間比其他三個模型長。
4.2.3 測試結(jié)果分析
圖6展示了YOLO v5s、SSD 300、Faster RCNN(mobilenet_v2)和Faster RCNN(resnet50_fpn)四個模型的部分測試效果。從圖中可以看出,YOLO v5s模型的置信度為0.91,SSD 300模型的置信度為0.60、Faster RCNN(mobilenet_v2)模型的置信度為0.96,F(xiàn)aster RCNN(resnet50_fpn)模型的置信度為0.99。由此可見,除了SSD 300模型的測試效果較差,其他三個模型均取得了較好的測試效果。
圖6 裂縫側(cè)視圖Fig.6 Fracture testing diagram
筆者以實現(xiàn)古建筑木結(jié)構(gòu)裂縫智能檢測速度快、精度高為目標,在前期研究的基礎(chǔ)上優(yōu)化了古建筑木結(jié)構(gòu)裂縫圖片數(shù)據(jù)集。運用YOLO、SSD和Faster RCNN系列模型中比較典型的基于深度學(xué)習(xí)的目標檢測方法,對古建筑木結(jié)構(gòu)裂縫進行了檢測對比分析。YOLO v5s模型在4個模型里是最輕便的模型,裂縫檢測速度最快、損失率最小、準確率最高,識別裂縫的正確率也最高,是最適合古建筑木結(jié)構(gòu)裂縫智能檢測的模型。