佘明磊, 張神德, 鄧志勇, 吳志鴻, 黃明煒, 林進(jìn)潯, 黃梅玲, 陳國(guó)棟
(1.福州大學(xué)物理與信息工程學(xué)院 福建 福州 350108;2.中建海峽建設(shè)發(fā)展有限公司 福建 福州 350015;3.福建數(shù)博訊信息科技有限公司 福建 福州 350002)
隨著建筑業(yè)的不斷發(fā)展,作為重要施工機(jī)械的塔式起重機(jī)因其占地面積小、起吊幅度大、安裝方便等諸多優(yōu)點(diǎn),在施工現(xiàn)場(chǎng)得到了廣泛應(yīng)用[1]。但是,塔吊的應(yīng)用也存在著相應(yīng)的風(fēng)險(xiǎn)。據(jù)統(tǒng)計(jì),在2007年至2016年,我國(guó)共發(fā)生152起在役塔吊安全事故[2]。其中,因?yàn)樗趿芽p缺陷引發(fā)的事故不在少數(shù)。目前針對(duì)這一缺陷的檢查,大多是以人工檢查為主,但是由于塔吊布置高度問(wèn)題,檢查人員自身的安全難以被保證。同時(shí),塔吊的隱蔽處容易出現(xiàn)開(kāi)裂,檢查人員往往難以察覺(jué)。因此,應(yīng)用一種安全性高,檢測(cè)精度高的目標(biāo)檢測(cè)方法來(lái)檢測(cè)塔吊裂縫具有工程意義。
當(dāng)前,在深度學(xué)習(xí)領(lǐng)域中,目標(biāo)檢測(cè)算法主要由兩類構(gòu)成。第一類是以R-CNN[3]算法為代表的兩階段目標(biāo)檢測(cè)算法。第二類是以SSD[4]、YOLO[5]等為代表的單階段目標(biāo)檢測(cè)算法,二者對(duì)于缺陷檢測(cè)都有著良好效果。在單階段目標(biāo)檢測(cè)中,交并比IOU(Intersection over union)是重要的評(píng)價(jià)指標(biāo)。同時(shí),在YOLOv3深度學(xué)習(xí)算法中,IOU通常還用于評(píng)價(jià)損失函數(shù),IOU的計(jì)算方式對(duì)最終的識(shí)別效果和精度有著巨大影響。目前常用的交并比計(jì)算方法有:IOU、GIOU[6]、DIOU和CIOU[7]。由于YOLOv3算法具有實(shí)時(shí)性強(qiáng),檢測(cè)精度較高的優(yōu)點(diǎn),針對(duì)塔吊裂縫檢測(cè)中的各種問(wèn)題,本文提出基于YOLOv3目標(biāo)檢測(cè)算法,改變?cè)惴ㄖ薪徊⒈鹊挠?jì)算方式,對(duì)比分析不同交并比計(jì)算方式對(duì)塔吊裂縫的識(shí)別效果,最終得出一種塔吊裂縫檢測(cè)的最佳交并比計(jì)算方式,來(lái)提高工程中塔吊的安全性,降低因裂縫缺陷而引起的工程事故。
YOLO算法采用了端到端的設(shè)計(jì)思想,首先將塔吊的圖片進(jìn)行單元格劃分,劃分出若干個(gè)包含裂縫的候選區(qū)域,再將其送入網(wǎng)絡(luò)中進(jìn)行檢測(cè)。YOLOv3繼承了YOLO系列算法的特點(diǎn),并且采用了新的Darknet-53特征提取網(wǎng)絡(luò)(如圖1)。該網(wǎng)絡(luò)取消了池化層,而是采用增加卷積核的步長(zhǎng)來(lái)實(shí)現(xiàn)下采樣。YOLOv3還可以同時(shí)輸出3個(gè)尺寸不同的特征圖,有效地增強(qiáng)了對(duì)大小不同物體和被遮擋物體的檢測(cè)效果,并引入躍層連接以強(qiáng)化收斂效果[8]。YOLOv3的損失函數(shù)如式(1)所示。
(1)
圖1 Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)
在單階段目標(biāo)檢測(cè)中,預(yù)測(cè)框和真實(shí)框的交集和并集之比就是IOU,這是用于衡量?jī)蓚€(gè)集合相似度的重要參數(shù),交并比的計(jì)算方式在目標(biāo)檢測(cè)中占有重要地位。由于IOU的計(jì)算方法是交集和并集之比,因此取值在0至1之間,具體的計(jì)算公式為
(2)
在YOLOv3中,A和B在許多單階段目標(biāo)檢測(cè)算法中,也都采取了這種IOU計(jì)算方法,YOLOv3也不例外。但是,這一算法存在著以下缺點(diǎn)。首先,IOU并不能真實(shí)地反映預(yù)測(cè)框和真實(shí)框的位置關(guān)系。如圖2的(a)和(b),二者雖然IOU大小都為0.5,但真實(shí)框和預(yù)測(cè)框的相交方式不同,所能提取的目標(biāo)也不同,但是二者的IOU卻相同。其次,IOU 損失在兩目標(biāo)框沒(méi)有重疊區(qū)域時(shí),交并比為0,損失值始終為1,所以無(wú)法提供梯度使兩目標(biāo)框靠近,導(dǎo)致模型無(wú)法進(jìn)一步收斂[9]。因此,為了解決這種IOU計(jì)算方式帶來(lái)的弊端,提高YOLOv3對(duì)塔吊裂縫檢測(cè)的效果,本文將分析其他的IOU計(jì)算方式。在基于YOLOv3的基礎(chǔ)上,比較其他的IOU計(jì)算方式帶來(lái)的效果,以選擇出最適合用于塔吊裂縫的交并比計(jì)算方式。
圖2 IOU相交方式
為了解決原YOLOv3網(wǎng)絡(luò)中IOU計(jì)算方式存在的問(wèn)題,GIOU被提出。GIOU的基本思想,是找尋一個(gè)能同時(shí)包住預(yù)測(cè)框A和真實(shí)框B的最小方框AC再計(jì)算AC減去A∪B與AC的面積之比。具體的計(jì)算公式如式(3)所示。GIOU對(duì)比IOU,同時(shí)注重了真實(shí)框和預(yù)測(cè)框的重疊區(qū)域和非重疊區(qū)域,克服了預(yù)測(cè)框和真實(shí)框不相交時(shí),loss為零的問(wèn)題。但是,當(dāng)真實(shí)框覆蓋預(yù)測(cè)框或者預(yù)測(cè)框覆蓋真實(shí)框時(shí),GIOU會(huì)退化為IOU。
(3)
由于GIOU在兩框相交時(shí),存在著退化為IOU的情況,仍然存在著改進(jìn)空間。因此,DIOU又被提出用于交并比的計(jì)算。DIOU的思路是,將真實(shí)框和預(yù)測(cè)框之間的中心點(diǎn)距離最小化。即在原本的IOU計(jì)算中添加懲罰項(xiàng)。在式(4)中,b表示預(yù)測(cè)框的中心點(diǎn),bgt表示真實(shí)框的中心點(diǎn),ρ2表示b和bgt之間的歐氏距離。c表示能夠包含預(yù)測(cè)框和真實(shí)框最小閉包區(qū)域?qū)蔷€距離[10]。DIOU保留了GIOU的優(yōu)點(diǎn),同時(shí)將兩框中心點(diǎn)的距離最小化,因此在loss的收斂速度上,DIOU有著更優(yōu)的性能。但是,DIOU沒(méi)有考慮anchor框和目標(biāo)框之間的長(zhǎng)寬比,并不能夠在回歸時(shí)更好地描述重疊信息。
(4)
于是,在DIOU的基礎(chǔ)上,CIOU又添加了新的懲罰項(xiàng),用于考量邊界框的長(zhǎng)寬比。具體公式如下,其中,v用于衡量寬高比,α為加權(quán)系數(shù)。
(5)
(6)
(7)
4種IOU計(jì)算方式的優(yōu)缺點(diǎn)如表1所示,本文將基于原YOLOv3網(wǎng)絡(luò),替換其中的IOU計(jì)算方式,將其用于塔吊裂縫的識(shí)別,尋找出在塔吊裂縫識(shí)別中的最佳交并比計(jì)算方式。
表1 4種交并比對(duì)比
基于YOLOv3算法,將其應(yīng)用在塔吊裂縫識(shí)別中。并在原算法的基礎(chǔ)上,替換其中的IOU計(jì)算方式,將4種IOU計(jì)算方式最終對(duì)loss的收斂速度和識(shí)別效果進(jìn)行對(duì)比,分析最適合塔吊裂縫的最佳交并比計(jì)算方式。為了增加訓(xùn)練模型的泛化性,需要獲取到足夠大的塔吊裂縫訓(xùn)練集。因此本次實(shí)驗(yàn)的數(shù)據(jù)集在塔吊中各種裂縫的數(shù)據(jù)集的基礎(chǔ)上,加入了和塔吊材質(zhì)相近的鐵軌裂縫、鋼板裂縫數(shù)據(jù)集。同時(shí),將光照陰影考慮在內(nèi),采集不同時(shí)間點(diǎn)的裂縫數(shù)據(jù)。數(shù)據(jù)集大小總計(jì)4533張,部分?jǐn)?shù)據(jù)集如圖3所示。將數(shù)據(jù)集圖片進(jìn)行處理,最終轉(zhuǎn)化為PASCAL-VOC 格式。隨機(jī)將數(shù)據(jù)集中的80%用于訓(xùn)練,20%用于測(cè)試。
本次實(shí)驗(yàn)在Windows 10的系統(tǒng)下完成,采用的IDE為Pycharm,框架為T(mén)ensorflow。硬件配置中,CPU為Inter Core I7-9700,GPU為NVIDIA GeForce GTX 2080TI 11 GB,內(nèi)存大小為16 GB。
圖3 部分?jǐn)?shù)據(jù)集圖片
本次實(shí)驗(yàn)采用的是YOLOv3目標(biāo)檢測(cè)算法,同時(shí)在原算法的基礎(chǔ)上,替換交并比計(jì)算方式,將4種不同的交并比計(jì)算方式應(yīng)用于塔吊裂縫數(shù)據(jù)集的訓(xùn)練,以分析出在YOLOv3網(wǎng)絡(luò)中,塔吊裂縫檢測(cè)的最佳交并比計(jì)算方式。訓(xùn)練的網(wǎng)絡(luò)初始化參數(shù)為,batch值設(shè)定為8,learning rate設(shè)定為0.0001,epoch值設(shè)定為100。最終當(dāng)epoch達(dá)到100或者loss函數(shù)收斂時(shí)停止訓(xùn)練,并通過(guò)測(cè)試集開(kāi)始測(cè)試模型的精度。
將訓(xùn)練集分別輸入使用IOU、GIOU、DIOU以及CIOU交并比計(jì)算方式的YOLOv3網(wǎng)絡(luò)中,訓(xùn)練出4種模型,并將測(cè)試集輸入這4個(gè)模型中分別進(jìn)行測(cè)試,依次得到的識(shí)別結(jié)果如圖4所示。在裂縫目標(biāo)區(qū)域的識(shí)別中,采用CIOU作為交并比計(jì)算方式的識(shí)別效果最好,預(yù)測(cè)框?qū)τ谀繕?biāo)區(qū)域的標(biāo)定更為完整。
(a) IOU (b) GIOU (c)DIOU (d)CIOU圖4 識(shí)別結(jié)果
本次實(shí)驗(yàn)基于原YOLOv3網(wǎng)絡(luò),采用了IOU、GIOU、DIOU和CIOU共4種交并比計(jì)算方式,對(duì)塔吊裂縫數(shù)據(jù)集進(jìn)行訓(xùn)練,將訓(xùn)練過(guò)程中的損失函數(shù)結(jié)果進(jìn)行繪圖,以loss值為縱坐標(biāo),epoch為橫坐標(biāo),得到的結(jié)果如圖5所示。由圖5可知,4種交并比的loss值變化速度和趨勢(shì)基本一致。從圖中可以看到,在對(duì)塔吊裂縫數(shù)據(jù)集的訓(xùn)練過(guò)程中,使用CIOU和DIOU作為交并比計(jì)算方式的學(xué)習(xí)模型收斂速度快于原本模型中使用的傳統(tǒng)IOU交并比計(jì)算方式。
接著將塔吊裂縫數(shù)據(jù)集分別輸入4個(gè)模型中,從mAP的值來(lái)分析最適合塔吊裂縫檢測(cè)的交并比計(jì)算方式,基于原YOLOv3模型,僅改變交并比計(jì)算方式,具體效果如表2所示。從表2中可以看出,基于YOLOv3網(wǎng)絡(luò),采用CIOU的識(shí)別精確度最高,mAP達(dá)到了79.32%,而采取IOU和GIOU的精度差距不大,說(shuō)明在塔吊裂縫數(shù)據(jù)集的訓(xùn)練過(guò)程中,存在著GIOU退化為IOU的情況。同時(shí),CIOU相較于DIOU考慮了塔吊數(shù)據(jù)的寬高比,精度略有提升。結(jié)果可知,在基于YOLOv3檢測(cè)中,相較于采用IOU,采用CIOU的精度提高了2.79%,且loss中的收斂速度最快。因此,基于YOLOv3的單階段目標(biāo)檢測(cè)算法,CIOU為塔吊裂縫檢測(cè)的最佳交并比計(jì)算方式。
圖5 4種IOU計(jì)算方式的loss對(duì)比
表2 4種IOU計(jì)算方式的識(shí)別精度
本文基于YOLOv3網(wǎng)絡(luò),改進(jìn)了原來(lái)IOU計(jì)算方式,并通過(guò)實(shí)現(xiàn)分析,得出了最適合塔吊裂縫檢測(cè)最佳交并比計(jì)算方式。其中,采用DIOU和CIOU計(jì)算方式的損失函數(shù)收斂速度相較于采用IOU和GIOU的更快速,CIOU又優(yōu)于DIOU。在檢測(cè)精度上,CIOU相較于原YOLOv3采用的IOU,具有更高的精度。由此,我們可以得到采用YOLOv3網(wǎng)絡(luò)的塔吊裂縫檢測(cè),最佳交并比計(jì)算方式為CIOU。本文還存在著數(shù)據(jù)集不夠大的問(wèn)題,下一步的實(shí)驗(yàn)可以考慮采用圖像處理的方法擴(kuò)展數(shù)據(jù)集,同時(shí)改進(jìn)現(xiàn)有的IOU算法,進(jìn)一步提高loss收斂速度和識(shí)別的精度。