黃宏安, 陳國棟, 張神德
(福州大學(xué)物理與信息工程學(xué)院,福建 福州 350108)
目前深度學(xué)習(xí)已被廣泛應(yīng)用于許多領(lǐng)域,但是在工地領(lǐng)域方面的運(yùn)用仍然較少,目前塔吊安全事故頻繁發(fā)生,2007—2016年間總共發(fā)生了152起在役塔吊安全事故[1],在這些塔吊安全事故中由于塔吊出現(xiàn)裂縫沒及時(shí)發(fā)現(xiàn)最終導(dǎo)致安全事故的發(fā)生不在少數(shù)。塔吊安全事故的發(fā)生往往會(huì)給施工現(xiàn)場帶來巨大的經(jīng)濟(jì)損失甚至?xí)斐蓢?yán)重的人員傷亡,因此塔吊已然成為工地施工現(xiàn)場主要的危險(xiǎn)源之一。對(duì)于塔吊裂縫的識(shí)別如果采用傳統(tǒng)的人工檢測裂縫的方法將浪費(fèi)大量的時(shí)間和精力,再加上在塔吊高處的檢測非常危險(xiǎn),檢測人員在塔吊高處的檢測難度較大,如果操作不慎極有可能對(duì)檢測人員的生命安全構(gòu)成威脅。除此之外,檢測精度也隨各檢測人員的經(jīng)驗(yàn)技術(shù)而異,具有不確定性,因此分析研究深度學(xué)習(xí)技術(shù)在工地領(lǐng)域中塔吊裂縫識(shí)別中的應(yīng)用具有非常重要的現(xiàn)實(shí)意義。
在傳統(tǒng)的關(guān)于識(shí)別與檢測的算法中,大多數(shù)的檢測算法是基于滑動(dòng)窗口的經(jīng)典框架或者是根據(jù)目標(biāo)圖像的特征點(diǎn)進(jìn)行匹配的[2],然而傳統(tǒng)的算法面臨許多的問題,包括時(shí)間復(fù)雜度高、區(qū)域選擇算法暴力等缺點(diǎn)。直到2012年AlexNet在ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽中一舉奪冠,而且AlexNet的識(shí)別效果遠(yuǎn)遠(yuǎn)超過傳統(tǒng)的目標(biāo)檢測算法[3],人們的視野才漸漸的轉(zhuǎn)到卷積神經(jīng)網(wǎng)絡(luò)上。目前基于深度學(xué)習(xí)的目標(biāo)識(shí)別算法可以分為兩個(gè)流派,一個(gè)流派是以YOLO算法[4]和SSD算法為代表的基于回歸的目標(biāo)檢測算法,另一個(gè)流派是以R-CNN為代表的基于分類的檢測算法。本文將YOLOv3算法、SSD算法和Faster-RCNN算法應(yīng)用在塔吊的裂縫識(shí)別上,實(shí)現(xiàn)對(duì)塔吊裂縫的目標(biāo)檢測,通過比較分析這兩種算法在塔吊裂縫識(shí)別上的優(yōu)缺點(diǎn),并進(jìn)一步提出下一步的改進(jìn)方向。
目前主流的基于深度學(xué)習(xí)的目標(biāo)檢測器可以被分為以下兩個(gè)大類:其中一大類是以基于候選區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)R-CNN為代表的二階段檢測器(Two-stage)[5],但是由于R-CNN算法在訓(xùn)練模型時(shí)需要對(duì)每一個(gè)候選區(qū)域都進(jìn)行一次CNN操作,R-CNN算法在訓(xùn)練過程較為繁瑣導(dǎo)致模型的訓(xùn)練速度并不理想,后來為了提高訓(xùn)練的速度對(duì)CNN操作進(jìn)行改進(jìn)從而得到了相比R-CNN算法訓(xùn)練速度得到大量提高的同時(shí)仍能保持與R-CNN相近檢測精度的Faster-RCNN算法;另一大類是以基于回歸算法的YOLO算法和SSD算法為代表的一階檢測器(One-stage)。通常而言,二階檢測器的檢測精度要比一階檢測器的檢測精度要高,而一階檢測器的檢測效率比起二階檢測器的檢測效率高。
YOLO算法的思想是端到端的回歸方法,直接通過暴力的網(wǎng)格劃分產(chǎn)生若干個(gè)含有裂縫的候選區(qū)域,隨后送入神經(jīng)網(wǎng)絡(luò)模型進(jìn)行回歸檢測,該系列算法識(shí)別速度快、識(shí)別準(zhǔn)確度略低于RCNN算法。本文采用YOLOv3算法對(duì)塔式起重機(jī)裂縫進(jìn)行檢測,YOLOv3算法采用一個(gè)單獨(dú)的卷積神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)end-to-end的目標(biāo)檢測[6],因此在訓(xùn)練效率上YOLOv3算法比Faster RCNN算法要快很多。YOLOv3算法以Darknet53為骨干網(wǎng)絡(luò)架構(gòu)如圖1所示,通過對(duì)圖像進(jìn)行降采樣來獲取不同尺度下的特征圖,這樣做的目的是為了用來適應(yīng)在不同尺度下目標(biāo)的檢測輸出[7],與此同時(shí)也是為了降低底層目標(biāo)的特征損失,通過對(duì)頂層特征圖的兩次上采樣并與底層特征圖進(jìn)行融合,加強(qiáng)了對(duì)不同尺度下目標(biāo)的適應(yīng)性。
圖1 YOLOv3特征提取網(wǎng)絡(luò)
R-CNN算法是二階段的檢測算法,第一階段通過一定的算法提取可能含有目標(biāo)的候選區(qū)域,第二階段對(duì)候選區(qū)域中的目標(biāo)進(jìn)行詳細(xì)分類和候選區(qū)域回歸,輸出目標(biāo)的類別和位置。該系列算法識(shí)別錯(cuò)誤率低,但檢測速度較慢。Faster RCNN[8]算法拋棄了傳統(tǒng)的滑動(dòng)窗口方法,直接使用RPN生成檢測框,這也是Faster R-CNN的巨大優(yōu)勢,這樣做能極大提升檢測框的生成速度。目前為止,F(xiàn)aster RCNN 方法是主流的二階檢測器目標(biāo)識(shí)別算法,雖然通過RPN直接生成檢測框大大提高了運(yùn)行速度,但是在識(shí)別效率上依然無法做到對(duì)檢測目標(biāo)進(jìn)行實(shí)時(shí)性檢測。本文中對(duì)于塔式起重機(jī)裂縫的識(shí)別以VGG16模型為骨干網(wǎng)絡(luò)架構(gòu),F(xiàn)aster RCNN的識(shí)別流程圖如圖2所示。
圖2 Faster RCNN識(shí)別流程圖
SSD算法[9]是Wei Liu在2016年提出的一種目標(biāo)檢測算法。SSD算法綜合了 YOLO 和 Faster RCNN 兩種算法的優(yōu)勢,對(duì)目標(biāo)檢測的精度和速度都進(jìn)行了提升。SSD的骨干網(wǎng)絡(luò)是基于傳統(tǒng)的圖像分類網(wǎng)絡(luò),如ResNet,VGG等,在本文塔式起重機(jī)裂縫識(shí)別中作者所用的SSD網(wǎng)絡(luò)模型是基于一個(gè)前饋的卷積神經(jīng)網(wǎng)絡(luò)VGG16,其結(jié)構(gòu)如圖3所示。經(jīng)過3個(gè)池化層和10個(gè)卷積層的處理,可以得到一個(gè)尺寸為38×38×512的特征圖。最后在這個(gè)特征圖上進(jìn)行回歸,得到物體的位置和類別。
圖3 SSD網(wǎng)絡(luò)結(jié)構(gòu)圖
基于上述算法,本文將目前主流的基于候選區(qū)域的二階檢測器Faster RCNN算法和基于回歸的一階檢測器YOLOv3算法應(yīng)用在塔式起重機(jī)的裂縫識(shí)別中,對(duì)于基于這兩種算法訓(xùn)練得到的裂縫識(shí)別模型進(jìn)行比較,分析Faster RCNN算法和YOLOv3算法在塔式起重機(jī)裂縫識(shí)別方面的優(yōu)劣。為了獲取足夠多的塔式起重機(jī)裂縫圖像樣本數(shù)據(jù),防止數(shù)據(jù)集不足導(dǎo)致網(wǎng)絡(luò)在訓(xùn)練過程中過擬合的情況的發(fā)生,本文除了通過人工采集方式獲得塔式起重機(jī)裂縫圖像數(shù)據(jù),本文還加入了和塔式起重機(jī)材質(zhì)相類似的鋼鐵裂縫和高鐵鐵軌裂縫,同時(shí)考慮光照和陰影等環(huán)境因素影響,本文使用相機(jī)在不同時(shí)間和不同時(shí)刻對(duì)塔式起重機(jī)裂縫的不同位置進(jìn)行拍攝,最后將所得到的數(shù)據(jù)集進(jìn)行一定程度的垂直翻轉(zhuǎn)、水平翻轉(zhuǎn)、線性變換與空間濾波變換獲得裂縫樣本圖像共6128張,部分裂縫樣本數(shù)據(jù)集如圖5所示。數(shù)據(jù)集中包含各種塔式起重機(jī)裂縫圖片并轉(zhuǎn)換成PASCAL-VOC 數(shù)據(jù)集格式用于訓(xùn)練模型。在整個(gè)實(shí)驗(yàn)的過程中隨機(jī)使用數(shù)據(jù)集中的80%的數(shù)據(jù)集用于訓(xùn)練數(shù)據(jù),剩下20%的數(shù)據(jù)集用于測試數(shù)據(jù)。
圖4 目標(biāo)檢測算法訓(xùn)練、識(shí)別流程圖
圖5 實(shí)驗(yàn)裂縫樣本數(shù)據(jù)集
本實(shí)驗(yàn)在64位Window 10操作系統(tǒng)上進(jìn)行,IDE采用Pycharm。具體環(huán)境配置如表1所示。
表1 實(shí)驗(yàn)運(yùn)行環(huán)境
本文應(yīng)用YOLOv3,F(xiàn)aster RCNN和SSD算法進(jìn)行塔式起重機(jī)裂縫檢測,一共分為訓(xùn)練和識(shí)別兩個(gè)過程,對(duì)于一些裂縫圖像較暗、模糊等現(xiàn)象,可以在算法執(zhí)行時(shí)進(jìn)行數(shù)據(jù)預(yù)處理,改善圖像質(zhì)量。除此之外在進(jìn)行深度學(xué)習(xí)目標(biāo)檢測算法訓(xùn)練時(shí),為了提高算法的魯棒性,可以對(duì)圖像進(jìn)行垂直翻轉(zhuǎn)、水平翻轉(zhuǎn)、線性變換等操作,圖4為訓(xùn)練算法流程圖與識(shí)別算法流程圖。
將訓(xùn)練測試集分別輸入到Faster RCNN,SSD,YOLOv3算法中,分別訓(xùn)練出三種塔式起重機(jī)裂縫網(wǎng)絡(luò)模型,得到依次為Faster RCNN,SSD,YOLOv3裂縫識(shí)別效果圖,如圖5所示。
圖6 Faster RCNN、SSD、YOLOv3 識(shí)別效果圖
在本次實(shí)驗(yàn)中使用Faster RCNN算法、SSD算法、YOLOv3算法在裂縫測試集中進(jìn)行測試,并對(duì)不同算法結(jié)果進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果如表2所示。
表2 根據(jù)裂縫識(shí)別實(shí)驗(yàn)結(jié)果所得出的不同評(píng)測的指標(biāo)值
通過分析實(shí)驗(yàn)和表2的實(shí)驗(yàn)結(jié)果,我們可以知道SSD算法在訓(xùn)練塔式起重機(jī)裂縫網(wǎng)絡(luò)模型時(shí)訓(xùn)練速度最快,當(dāng)我們需要實(shí)時(shí)的監(jiān)測塔式起重機(jī)裂縫圖像時(shí)相對(duì)效果的訓(xùn)練效率往往更具有優(yōu)勢,因此SSD算法適用于較大的塔式起重機(jī)裂縫圖像數(shù)據(jù)集。YOLO算法對(duì)裂縫圖像中有裂縫的區(qū)域定位比起SSD算法更精準(zhǔn)但訓(xùn)練速度會(huì)比SSD算法更慢,YOLO算法能夠用標(biāo)定框較為完整地標(biāo)記出裂縫區(qū)域,適用于對(duì)塔式起重機(jī)裂縫圖像區(qū)域標(biāo)定框定位要求較為嚴(yán)格且對(duì)實(shí)時(shí)性具有一定要求的場景,F(xiàn)aster RCNN 算法與SSD算法、YOLO算法相比對(duì)塔式起重機(jī)的裂縫圖像識(shí)別上漏檢率誤檢率漏較低,但是對(duì)塔式起重機(jī)裂縫網(wǎng)絡(luò)模型訓(xùn)練速度最慢,適用于對(duì)塔式起重機(jī)裂縫圖像區(qū)域標(biāo)定框定位嚴(yán)格,但對(duì)實(shí)時(shí)性要求不高的場景。
本文通過對(duì)基于回歸算法的SSD算法和YOLO算法和對(duì)基于候選區(qū)域的Faster RCNN算法在塔式起重機(jī)裂縫識(shí)別的識(shí)別領(lǐng)域的分析表明,YOLO算法、SSD算法和Faster RCNN算法都能較為準(zhǔn)確地識(shí)別出裂縫圖像。其中Faster RCNN算法檢測精度最高,達(dá)到86.15%,同時(shí)針對(duì)Faster RCNN算法在訓(xùn)練效率上和測試效率的不足,下一步改進(jìn)的方向可以讓Faster RCNN算法生成的候選框采用自適應(yīng)反饋調(diào)節(jié)的方式,通過訓(xùn)練時(shí)反饋調(diào)節(jié),使生成的候選框數(shù)量形成動(dòng)態(tài)變化,這樣可以有效提升訓(xùn)練效率。SSD算法訓(xùn)練裂縫模型時(shí)所用時(shí)間最少,模型的檢測精度為74.47%,YOLOv3算法檢測精度為76.36%,訓(xùn)練效率略低于SSD算法,針對(duì)SSD算法和YOLO算法在檢測精度上的不足,下一步將繼續(xù)對(duì)SSD算法和YOLO算法的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,可考慮加入GAN網(wǎng)絡(luò),提升檢測精度。
佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版)2021年1期