?

基于改進YOLO v3的施工升降機螺栓狀態檢測研究

2022-12-26 03:21陳國棟林愉翔趙志峰黃明煒林進潯
貴州大學學報(自然科學版) 2022年6期
關鍵詞:升降機尺度螺栓

陳國棟,林愉翔*,趙志峰,黃明煒,林進潯

(1.福州大學 物理與信息工程學院,福建 福州 350108;2.福建數博訊信息科技有限公司,福建 福州 350002)

施工升降機是建筑工地領域中普遍使用的載人載物施工機械,常規的施工升降機由箱體、驅動器、電氣系統、標準節、附墻裝置、底盤、圍欄等幾部分組成,基本結構如圖1所示。

圖1 施工升降機Fig.1 Construction lift

隨著建筑行業的發展,施工升降機的數量和使用頻率不斷增加,各類建筑工程在使用施工升降機時經常會發生一些事故,這些事故造成了嚴重的人員傷亡以及巨大的經濟損失。在這些安全事故中,因升降機標準節螺栓故障引起的事故占據一定比例,其中主要故障類型包括螺栓的松動、缺失等。

在施工升降機定期檢查規定中,升降機標準節連接螺栓的檢查為一周一檢。傳統的檢查方法是檢查人員爬上導軌架進行目視檢查,由于螺栓數量較多且體積較小,長時間目視檢查會造成視覺疲勞,容易出現錯檢、漏檢的情況。同時,長時間的高空作業具有一定的危險性,在一定程度上威脅到檢查人員的生命安全。

近年來,基于深度學習的檢測方法由于能夠利用計算機代替人眼進行檢測,且檢測精度較高,因此逐漸出現在人們的視線之中,尤其是YOLO v3算法,對小目標物體的檢測效果良好。針對上文中提到的施工升降機螺栓檢測的問題,現提出一種基于改進YOLO v3算法的檢測方法,利用無人機搭載攝像頭來實時精準地檢測施工升降機螺栓的狀態,保證施工升降機安全運作,進而保證檢查人員和施工人員的生命安全。

1 目標檢測常用算法介紹

目前,幾乎所有最先進的目標檢測算法都是基于深度學習方法,這些算法主要分為兩類:兩階段(two stage)的目標檢測算法以及單階段(one stage)的目標檢測算法。

兩階段的算法也稱為基于候選區域(region proposal)[2]的算法,算法大致分為兩步:首先,對輸入的圖片進行處理,找到可能包含目標物體的候選區域;然后,使用分類器在這些候選區域上對目標物體進行分類。兩階段的目標檢測算法源于2014年Girshick等提出的R-CNN(regin convolutional neural network,區域卷積神經網絡)[3],對目標檢測效果良好,但由于算法需要對每張輸入的圖片檢測候選區域,還要再用CNN分類模型在候選區域中進行分類,導致運行效率偏低。后來研究人員在R-CNN的基礎上進行改進,設計出Fast R-CNN[4]和Faster R-CNN[5],檢測精度和速度都得到一定的提升。

而單階段的目標檢測算法不需要產生候選區域,可以直接從圖片中獲得目標檢測結果。最早的單階段目標檢測算法從Joseph Redmon等提出的YOLO[6]開始,YOLO只需要處理一次圖片就能夠同時獲得目標物體的位置和類別,相比于兩階段目標檢測算法,YOLO算法速度優勢明顯,且檢測精度也相對較高。在YOLO基礎上,其作者又提出了YOLO 9000[7]和YOLO v3[8]。尤其是YOLO v3算法,大大提升了對小目標物體的檢測精度。而后又有研究人員對YOLO v3進行改進,相繼出現YOLO v4和YOLO v5等版本。同時,2016年提出的SSD(single shot multibox detector,單步多框檢測器)算法[9]將YOLO的回歸思想和Faster R-CNN的anchor box機制結合在一起。既保證了YOLO的快速運行效率,也保證了與Faster R-CNN相近的邊界框定位精度,是個相當不錯的目標檢測算法?;赟SD的思想,后面又出現了R-SSD(rainbow-SSD,彩虹單步多框檢測器)、D-SSD(deconvolution-SSD,反卷積單步多框檢測器)、DSOD(deeply supervised object detector,深度監督對象檢測器)、FSSD(feature fusion single shot multibox detector,特征整合單步多框檢測器)等更先進的目標檢測算法模型。

文中對施工升降機標準節螺栓狀態進行檢測,根據檢測目標體積較小且需要實時檢測等特點,選擇對小目標檢測更加敏感且檢測精度較高的YOLO v3目標檢測算法,并在原算法的基礎上進行改進,提高檢測精度和檢測速度。

2 YOLO v3目標檢測算法

2.1 YOLO v3算法介紹

YOLO v3不同于其前一個版本YOLO v2,YOLO v2使用Darknet-19作為骨干網絡,而YOLO v3使用Darknet-53作為骨干網絡,Darknet-53比Darknet-19擁有更深的網絡層數,能夠更好地提取到圖像特征。Darknet-53是全卷積網絡,包含52個卷積層和1個分類全連接層,并且引入了殘差結構塊,YOLO v3網絡結構如圖2所示。

圖2 YOLO v3網絡結構Fig.2 YOLO v3 network structure

YOLO v3大致運行過程如下:

1)輸入一張416×416×3的圖片,Darknet-53骨干特征提取網絡開始提取特征。

2)進行下采樣,高和寬不斷被壓縮,通道數不斷增加,得到一系列特征層,用來表示輸入進來的圖片的特征。

3)Darknet-53特征提取網絡輸出3個尺度大小分別為13×13、26×26、52×52的特征圖。

4)將3個特征圖通過特征金字塔網絡FPN(feature pyramid network)進行融合。

5)將融合后的特征輸入全連接層進行類別預測和邊界框回歸預測。

2.2 YOLO v3算法改進

2.2.1聚類算法改進

K-means算法是基于距離的聚類算法,采用距離作為相似性的評價指標,即認為兩個對象的距離越近,其相似度就越大[10]。其大致思想如下:對于給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個簇。同一個簇內的點要盡量集中,不同簇的位置盡量分散。如果用數據表達式表示,假設簇劃分為(C1,C2,…,Ck),則我們的目標是最小化平方誤差E:

其中,μi是簇Ci的均值向量,有時也稱為質心,表達式為

由于質心的位置選擇對最后的聚類結果和運行時間有很大的影響,因此需要選擇合適的k個質心,如果只是完全隨機的選擇,有可能導致算法收斂很慢,而K-means++算法可以對K-means隨機初始化質心的方法進行優化[11]。

K-means++對于初始化質心的優化方法如下:

1)從輸入的數據點集合中隨機地選擇1個點作為第1個聚類中心μi;

2)對于數據集中的每1個點xi,計算它與已選擇的聚類中心中最近聚類中心的距離D(xi)=argmin‖xi-μi‖2;

3)選擇一個D(x)較大的點作為新的聚類中心;

4)重復步驟2和3,直到選擇出k個聚類質心;

5)利用這k個質心作為初始化質心去運行K-means算法。

YOLO v3使用K-means聚類算法進行聚類,YOLO v3通過使用先驗框 (anchor boxes)預測待檢測物體的邊界框,尺度大小為13×13、26×26、52×52的3個特征圖分別使用3個先驗框,共9個先驗框,對標注邊界框尺寸進行K-means聚類,得到一組適用于VOC數據集尺寸的固定的初始候選框,尺寸大小分別為(10,13)、(16,30)、(33,23)、(30,61)、(62,45)、(59,119)、(116,90)、(156,198)、(373,326)。這些候選框大多用來檢測人、動物、車輛等,不太適用于本文中尺度較小的螺栓數據集。因此,為提高檢測精確度,本文中使用K-means++聚類算法來確定適合施工升降機螺栓數據集的候選框。為了得到更適合文中施工升降機螺栓狀態檢測任務的候選框方案,對聚類中心K=6和K=9進行對比試驗,得到表1。

表1 標注框聚類中心長寬比Tab.1 Length to width ratio of cluster center of annotation box

同時,分別對不同K值測試標定框和候選框的平均交并比,得到K-means++聚類過程中簇的中心個數K和平均交并比的關系,如圖3所示。

圖3 K-means++聚類結果圖Fig.3 K-means++ clustering result diagram

由圖3可以看出,當K=6時,平均交并比的數值較高且曲線逐漸收斂。K=6時,聚類得到的先驗框尺寸分別為(12,14)、(18,23)、(26,50)、(40,34)、(48,61)、(67,118)。

2.2.2多尺度融合改進

原YOLO v3模型中的特征提取網絡Darknet-53有53層,主要用來提取目標特征。Darknet-53先使用3×3的卷積核來增加特征模型的通道數,然后再用1×1的卷積核來減少特征模型的通道數。最后,得到了3個檢測尺度分別為13×13、26×26和52 ×52的特征圖,再通過對這3種尺度的特征圖進行融合,最終使模型能夠檢測不同大小的目標。13×13的特征圖適合檢測大目標物體、26×26的特征圖適合檢測中等目標物體、52×52的特征圖適合檢測小目標物體。在本文中,施工升降機標準節螺栓為小尺度目標,因此,可以將檢測大目標物體的13×13特征圖去除,即原來的3個特征尺度減少為2個特征尺度,分別為:26×26、52×52,每個特征尺度有3個候選框,將上文中K-means++聚類算法中得到的(12,14)、(18,23)、(26,50)3個候選框分配給52×52網格的特征圖,將(40,34)、(48,61)、(67,118)3個候選框分配給26×26網格的特征圖。經過實驗,這種改進辦法在保持對小尺度目標檢測精確度良好的情況下可以降低網絡復雜度,能夠提高檢測速度,更加符合工地施工現場的實時檢測需求。改進后的網絡結構如圖4所示。

圖4 改進后的網絡結構Fig.4 Improved network structure

3 實驗及結果分析

3.1 數據集

施工升降機標準節螺栓狀態類別可分為5類:正常(標簽為:Normal)、松動(標簽為:Loose)、螺栓長度不足(標簽為:BoltInsufficientLength)、螺母缺失(標簽為:NutMissing)、整體缺失(標簽為:OverallMissing)。本次實驗收集有關施工升降機螺栓的照片共2 816張,其中標簽為Normal的有864張,標簽為Loose的有488張,標簽為BoltInsufficientLength的有640張,標簽為NutMissing的有520張,標簽為OverallMissing的有304張,部分待訓練圖片如圖5所示。

(a)正常 (b)松動 (c)螺栓長度不足 (d)螺母缺失 (e)整體缺失圖5 部分待訓練圖片Fig.5 Part of the pictures to be trained

3.2 實驗環境配置

實驗環境配置如下:操作系統為Ubuntu20.04,中央處理器(CPU)為AMD Ryzen 5 5600X 6-Core,圖形處理器(GPU)為NVIDIA Geforce RTX 3080(10 GB),系統內存為32 GB,算法框架使用Pytorch 1.7.1,編程語言使用Python 3.7.11,CUDA為11.4,cuDNN為11.0(v8.0.4)。

3.3 參數設置

模型訓練采用端到端訓練方式,迭代次數設置為10萬次,在前7.5萬次迭代中,初試學習率設為0.000 1;后2.5萬次迭代中,將學習率設為0.000 01。衰減系數設置為0.000 5,批大小設置為64。

3.4 模型評價指標

選擇精確率P(precision)、召回率R(recall)和Fa度量(F-measure)等多個指標對模型進行評價:

其中:Tp(true precision)為正確檢測出螺栓狀態的樣本數量,即正檢數;Fp(false precision)為錯誤檢測出螺栓狀態的樣本數量,即誤檢數;Fn(false negative)為未檢測出螺栓狀態的樣本數量,即漏檢數。在本文中,Fa度量中的a取值為1,誤檢率為1-P,漏檢率為1-R,mAP(mean average precision)為平均精度均值。

此外,還選擇幀率FPS(frames per second)作為評判各個算法檢測速度的指標,只有當FPS大于30時,才達到實時檢測的標準。

3.5 結果分析

3.5.1識別效果分析

采用改進的YOLO v3算法檢測施工升降機螺栓的狀態,并分別與原YOLO v3算法、SSD算法以及Faster R-CNN算法進行對比,部分檢測效果對比圖如圖6所示。

(a)SSD算法 (b)Faster R-CNN算法 (c)原YOLO v3算法 (d)改進YOLO v3算法圖6 部分檢測效果對比圖Fig.6 Comparison of partial detection effects

由圖6可以看出,SSD算法對松動的螺栓存在漏檢的情況,Faster R-CNN算法和原YOLO v3算法檢測效果良好,改進的YOLO v3相比于原YOLO v3的置信度有了明顯的提高。具體實驗AP(average precision,平均精度)對比如表2所示。

表2 實驗AP對比Tab.2 AP comparison %

由表中數據可以看出,本文改進的YOLO v3對各種狀態檢測的AP都比原YOLO v3算法的AP有所提高,標簽為Normal的螺栓AP提升了4.26%,標簽為Loose的螺栓AP提升了3.89%,標簽為BoltInsufficientLength的螺栓AP提升了5.02%,標簽為NutMissing的螺栓AP提升了5.18%,標簽為OverallMissing的螺栓AP提升了4.35%,整體mAP由原來的81.40%提升了4.54%,達到85.94%。同時,本文改進的YOLO v3算法的mAP相比于Faster R-CNN和SSD算法的mAP均有所提升。

盡管每種狀態檢測精度都有所提高,但是對于螺栓松動的識別效果較其他狀態偏低,這主要有兩方面的原因:

1)利用無人機進行拍攝時,拍攝角度有時會受到限制。

2)螺栓的螺紋分辨率較低,進行卷積壓縮之后,會出現特征丟失的情況。

3.5.2識別速度分析

文中利用攝像頭進行實時檢測,將Faster R-CNN、SSD、YOLO v3以及改進的YOLO v3分別進行測試,實驗結果如下:Faster R-CNN檢測速度為8幀/s,SSD檢測速度為30幀/s,YOLO v3檢測速度為34幀/s,本文改進的YOLO v3檢測速度為40幀/s。

Faster R-CNN雖在精度上略高于SSD算法和原YOLO v3算法,但這是以檢測時間為代價,不能滿足本文實時檢測的要求。SSD的FPS雖然也達到30幀/s,但精確度不如更適合檢測小尺度目標的YOLO v3算法。在本文中,改進的YOLO v3算法將3個檢測尺度改為更適用于檢測螺栓的2個檢測尺度,大大輕量化了網絡結構,使檢測速度得到一定的提升,原YOLO v3算法在進行實時檢測時,FPS為34幀/s,滿足實時檢測(FPS高于30幀/s)的要求。改進的YOLO v3算法的FPS達到40幀/s,較原算法提升6幀/s。

根據mAP和FPS綜合對比可見,本文改進的 YOLO v3的算法能夠較好地完成對施工升降機螺栓各種狀態的檢測。

4 結論

將YOLO v3算法應用于建筑領域中的施工升降機螺栓狀態的檢測,并改進YOLO v3算法,利用無人機搭載攝像頭,能夠實時并準確地檢測出施工升降機螺栓狀態是否異常,從而保證施工升降機的安全運作。但是,由于施工升降機螺栓狀態異常的數據集稀缺,本文算法在投入實際運用之前還需經過更多的數據集進行訓練和驗證。同時,如何進一步改進算法,提高施工升降機螺栓狀態檢測的準確率將成為未來研究的一個重點。

猜你喜歡
升降機尺度螺栓
“升降機”
外墻螺栓孔新型防水封堵技術研究
財產的五大尺度和五重應對
東京奧運會被螺栓“絆”住
升降機
淺談建筑施工升降機的使用管理及事故預防
偷換參考系引起的困惑
宇宙的尺度
9
排氣歧管螺栓緊固力的測定
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合