張俊科 吳敬兵 吳曉曉
武漢理工大學機電工程學院 武漢 430070
鋼絲繩作為港口起重設備中消耗量巨大且危險性較高的重要部件,其科學有效的使用,對港口生產(chǎn)安全、減少作業(yè)成本、提高設備使用率、降低能源消耗等方面均有重要意義。而安全性是其中最重要的,鋼絲繩損傷累計造成嚴重的安全事故,會對民眾生命安全和企業(yè)安全生產(chǎn)帶來不可估量的后果。因此,鋼絲繩的安全檢測成為了亟待解決的問題。然而,目前鋼絲繩損傷檢測仍多采用人工技術手段,監(jiān)測效率低下,監(jiān)管困難,導致安全生產(chǎn)事故頻發(fā)[1]。
目前,基于計算機視覺的目標檢測方法發(fā)展迅速,許多學者已將此方法應用于損傷檢測。張夢超等[2]利用了基于YOLOv4-tiny 的礦用輸送帶損傷檢測技術對輸送帶類別重新劃分,從而實現(xiàn)了速度與精度的平衡;楊永波等[3]提出了基于改進YOLOv5 的輕量級安全帽佩戴檢測方法,通過降低模型的計算量提高了檢測辨識度;李鑫等[4]使用Ghost Bottleneck 結構替換原YOLOv5 網(wǎng)絡中的C3 模塊和部分卷積結構,并引入SE 注意力機制,從而能夠更加準確、快讀地檢測出鋼材表面缺陷的種類和位置。由此可知,近年來基于YOLOv5 的目標檢測應用逐漸廣泛。但是,尚未有學者采用此方法對岸邊集裝箱橋式起重機(以下簡稱岸橋)鋼絲繩表面損傷進行探究[5]。因此,本文提出了一種改進YOLOv5 的岸橋鋼絲繩表面損傷檢測方法,旨在提高對鋼絲繩表面損傷的識別準確率和檢測速度。
YOLOv5 目標檢測網(wǎng)絡從結構上分為輸入端、骨干特征提取網(wǎng)絡(Backbone)、過渡層(Neck)、輸出端(Prediction)4 個部分[6],其中Backbone 影響了預測網(wǎng)絡的預測效率,同時提供輸入圖像的分辨率、寬度及深度也會影響特征提取的充分性[2]。該網(wǎng)絡結構如圖1所示。
圖1 YOLOv5 網(wǎng)絡結構
將骨干特征提取網(wǎng)絡中,得到的3 個有效的特征層輸入預測網(wǎng)絡,通過預測網(wǎng)絡將輸入的圖片分割成S×S 的網(wǎng)格后,如果某個待測目標的中心落在其中一個網(wǎng)格上,那么該網(wǎng)格就主要負責檢測該目標[2]。
具體目標檢測流程如圖2 所示。在預測過程中,每個網(wǎng)格產(chǎn)生3 個預測框,每個預測框包含8 個預測值,其中前5 個預測值為預測框的調整參數(shù),分別是預測框中心點相對于網(wǎng)格左上點的水平偏移量x,預測框中心點相對于網(wǎng)格左上點的垂直偏移量y,預測框的寬w和高h,第5 個預測值則為置信度c,以表征預測框的置信水平和預測精度,置信度理論上應在[0,1]范圍,置信度趨近0,表示沒有物體,1 表示必然有物體。每個預測框的預測值包含5 個元素(x,y,w,h,c),后3 個預測值則為目標分類種類,包括斷絲、磨損、畸變。
圖2 目標檢測流程
CBAM(Convolutional Block Attention Module) 注意力機制由空間和通道2 部分組成,如圖3 所示。輸入特征圖后,先進入通道注意力,基于特征圖的寬、高進行GAP(Global average pooling)、GMP(Global maximum pooling),再經(jīng)過MLP(Multi-Layer Perceptron)獲得通道的注意力權重,接著利用Sigmoid 方法,取得歸一化注意力權重,然后再使用乘法將路徑逐步加權到最初期的輸入特征圖上,最后重新標定為原始特征[7,8]。表達式為
圖3 CBAM 注意力機制模塊示意圖
再進入空間注意力,首先在通道維度上實現(xiàn)GMP和GAP,之后再將結果基于通道做連接運算,接著通過卷積降維成1 個通道,最后再利用Sigmoid 得到空間注意力向量[9,10]。表達式為
本文采用的EIOU(Efficient Intersection over Union)損失函數(shù)將GIOU(Generalized Intersection over Union)損失函數(shù)所加的最小外接矩形替換為了最小化2 個框中心點的標準化距離[11],分開計算目標框的長度、寬度,避免了GIOU 函數(shù)在預測框和真實框處于包含狀態(tài)時,不能確定2 個框的位置關系,降低了GIOU 函數(shù)在水平、垂直等方向上較大的誤差,也因此提高了收斂速度和回歸精度[12]。表達式為
式中:b、bgt分別為預測框、真實框的中心點,ρ為中心點間歐氏距離,d為2 個框的最小外接矩形的對角線距離,ω、ωgt、h、hgt分別為預測框和真實框的寬度與長度,Cω、Ch為覆蓋2 個框的最小外接矩形的寬度與長度[12-14]。
目標檢測網(wǎng)絡采用加權后的非極大值抑制(Non Maximum Suppression,NMS)方法而不采用傳統(tǒng)YOLOv5 算法直接進行預測輸出。兩者區(qū)別在于這些與標記的候選框類別一致時,當他們之間的IOU(Intersection over Union)超過閾值后,其中超過閾值的候選框將不再刪除,而是用本文提出的公式進行運算處理[15]。
式中:ti、t'、obji分別為原始坐標的位置、調整后的候選框的具體坐標位置、目標置信度。
如圖4 所示,首先,圖像標注過后訓練集用于訓練圖像數(shù)據(jù),訓練批次初始為0,接著卷積神經(jīng)網(wǎng)絡初始化,通過前向的傳遞取得訓練參數(shù),然后再通過反向的傳遞求得訓練參數(shù)的梯度[16],更新完參數(shù)后訓練批次加一,輸出該模型,最后用數(shù)據(jù)集之外的測試集對輸出的圖像數(shù)據(jù)進行驗證,采用加權后的NMS 方法直接進行預測輸出。
圖4 本文的目標檢測算法
基于YOLOv5 的岸橋鋼絲繩損傷目標檢測網(wǎng)絡的訓練需要大量的數(shù)據(jù)集支撐,因此首先進行數(shù)據(jù)集制作。本文數(shù)據(jù)集圖片是岸橋現(xiàn)場拍攝和實驗室損傷模擬制作。具體制作流程如下:
1)制作表面損傷樣本圖片 首先選取合適的岸橋鋼絲繩,直徑為28 mm,然后在實驗室使用銼刀、砂輪機等人為產(chǎn)生岸橋鋼絲繩損傷樣本圖片,并在港口實際工作環(huán)境下拍攝不同損傷形式的鋼絲繩樣本,從1 開始編號,建立鋼絲繩樣本數(shù)據(jù)集圖庫,如圖5 所示。
圖5 鋼絲繩樣本數(shù)據(jù)集圖庫
2)圖片篩選及增強 為了增加數(shù)據(jù)集樣本量,對樣本圖片進行翻轉、縮放、剪切等操作,如圖6 所示,從而使采集到的2 000 張樣本圖片樣本,擴增到8 792 張,同時為了保證處理后圖片特征的不丟失或特征模糊,使用Python 的OpenCV 庫進行圖片處理,對數(shù)據(jù)集樣本進行Mosaic 增強。
圖6 鋼絲繩損傷圖片增強
3)缺陷位置標注 使用LabelImg 打標軟件進行岸橋鋼絲繩損傷數(shù)據(jù)集的標注,在VOC2007 文件夾下的predefined_classes.txt 文檔中輸入Brokenwire、Wear、Cagewire 方便標注操作。如圖7 所示,使用此軟件制作數(shù)據(jù)集,將鋼絲繩圖片中的損傷部分進行打標,其中Brokenwire表示斷絲,Wear表示磨損,Cagewire表示畸變。
圖7 損傷標注圖
4)格式轉換 對圖片標注完成后,生成的XML 文件,不適應于YOLOv5 的輸入格式,需轉換成包含損傷類型及標注框位置信息的txt 格式文件。
采用3 個相機之間間隔120°的方案圍繞岸橋鋼絲繩布置,即每個攝像頭可以采集鋼絲繩表面120°的范圍,使用3 個可采集完整。同時使用每個光源之間角度距離也為120°的3 個光源,高速運行的鋼絲繩在監(jiān)測時,有不同程度的振顫和擺動,要求圖像采集模塊必須多次調試適應此應用環(huán)境,不能有偽影;考慮到在運動過程中鋼絲繩的晃動影響相機采集的穩(wěn)定性,故采用夾具固定環(huán)形放置攝像頭起固定作用,其布置方案如圖8所示。
圖8 圖像采集布置方案圖
本文采用平均精度均值(mean Average Precision,mAP )、準確率P和召回率R等指標進行評估。
式中:n為鋼絲繩總的類別數(shù),NTP、NFP、NFN分別為真正例數(shù)量、假正例數(shù)量、假反例數(shù)量[12]。
本文所提出的改進YOLOv5 模型,其網(wǎng)絡結構圖如圖9 所示。
圖9 改進YOLOv5 模型網(wǎng)絡結構圖
本文使用Pytorch 框架搭建并改進YOLOv5 模型,對岸橋鋼絲繩損傷進行訓練。選用合適學習率對網(wǎng)絡的訓練有很大的幫助,不僅能提升訓練的速度,還能提升網(wǎng)絡的準確率。在鋼絲繩損傷數(shù)據(jù)集上進行訓練,樣本量為8 792 張,其中80%為訓練集,20%為驗證集,進行200 次迭代訓練,耗時約8 h,得出YOLOv5 網(wǎng)絡的損失曲線收斂情況。
在實驗中,為了選取合適的學習率,分別設置不同的學習率1e-2、le-3、1e-4、1e-5 進行對應訓練結果對比,結果如圖10 所示。實驗結果表明訓練學習率為1e-2 時收斂速度較快,且曲線平滑,說明訓練過程中并無較大的損失波動,故1e-2 為最佳學習率。
圖10 不同學習率損失曲線收斂圖
另外,從實驗結果可以看出,在前200 輪訓練中,損失值下降快速,之后損失值下降緩慢并開始逐漸收斂,600 輪后,損失值趨于平衡。訓練完成得到了模型的最佳權重值,進行檢測時,將其加載到網(wǎng)絡模型中便能得到更好的檢測結果。
斷絲、磨損樣本實驗結果如圖11 所示。鋼絲繩損傷的P-R曲線如圖12 所示,模型訓練完成后,輸入數(shù)據(jù)集之外的岸橋鋼絲繩損傷圖片進行模型測試,通過對置信度閾值的設置得到大小不同的預測框,根據(jù)具體的情況進行相應的匹配。
圖11 樣本實驗結果
圖12 鋼絲繩損傷的P-R 曲線
因為畸變損傷的特征較明顯且面積較大,置信度閾值設置為0.4 ~0.9,斷絲比較小,若置信度設置太高易被過濾掉,故設置為0.2 ~0.25。P-R曲線與坐標軸圍成的面積[17]為該損傷類型的精度值(AP),所有損失類型AP 值的平均值為模型預測的平均精度值(mAP),該模型mAP 值為0.903,部分細小損傷未能識別,斷絲、畸變和磨損都能準確識別,滿足鋼絲繩的檢測要求。
對比改進后的YOLOv5 在各類型損傷和原始的YOLOv5 在同一類型的檢測效果,由表1 所示,其AP 值均大于YOLOv5?,F(xiàn)將改進后的YOLOv5 與原始YOLOv5、YOLOv4、YOLOv3 和兩階段的Faster RCNN 在精度(mAP)和速度(FPS)上進行對比,檢測結果如圖13 所示,由雷達圖可知,改進的YOLOv5在精度和速度上均相對更優(yōu),檢測效果更好。即本文訓練出的模型對岸橋鋼絲繩的各種損傷類型檢測精度較高,滿足實際的檢測需求。
表1 對比改進后的YOLOv5 和YOLOv5 算法各類別AP 值
圖13 各類算法檢測結果雷達圖
長期以來,由于缺少科學有效的鋼絲繩在線監(jiān)測設備,使得鋼絲繩的質量管理困難,也造成了很大的安全隱患和企業(yè)經(jīng)濟損失。為此,本文為了解決鋼絲繩損傷檢測故障識別率低的問題,提出了一種改進的YOLOv5岸橋鋼絲繩損傷識別方法。通過引進CBAM 注意力機制,選擇EIOU 損失函數(shù)替換原GIOU 函數(shù),更新加權NMS 算法,改進后YOLOv5 目標檢測網(wǎng)絡在鋼絲繩損傷數(shù)據(jù)集上對斷絲、磨損、畸變3 種損傷類型的檢測平均精度均值達90.3%,滿足了對鋼絲繩損傷的檢測要求,實現(xiàn)了對鋼絲繩更快速的識別,為今后開發(fā)岸橋鋼絲繩在線監(jiān)測系統(tǒng)提供了一定的理論基礎。