張長樂,金 鈞
(大連交通大學(xué)自動化與電氣工程學(xué)院,遼寧大連 116028)
智能巡檢取代人工巡查,是必然的發(fā)展趨勢[1]。絕緣子在野外工作時,很容易出現(xiàn)各類故障。因此研究基于圖像識別的絕緣子故障檢測算法對于智能巡檢工作具有重要意義[2-3]。
針對絕緣子的故障檢測,目前已有一定的研究。如文獻[4]將水平投影法用于定位絕緣子破損位置;文獻[5]采用雙向GRU(Gated Recurrent Unit)和PCNN(Pulse Coupled Neural Network)相結(jié)合抽取人物關(guān)系的方法;文獻[6]將YOLOv2 網(wǎng)絡(luò)結(jié)合垂直投影等方法進行檢測;文獻[7]通過圖片的深度特征來訓(xùn)練SVM(Support Vector Machine)分類器。
該文算法在YOLOv5s[8]基礎(chǔ)上進行優(yōu)化,成功檢測出破損(damage)、閃絡(luò)(flash)、臟污(dirt)三種故障,且速度、大小、精度都優(yōu)于原算法,仿真驗證了該算法對于原始算法的提升。
YOLOv5[9-10]的初始先驗框尺寸來源于K 均值(K-Means)聚類算法,而改進后先驗框尺寸來源于K-Means++[11]算法。改進后的先驗框大小和默認(rèn)的先驗框大小如表1 所示。

表1 默認(rèn)先驗框和改進先驗框大小比較表
該文算法在骨干網(wǎng)絡(luò)中添加了SE注意力模塊[12],即把骨干網(wǎng)絡(luò)中的C3 模塊都修改為添加了SE 模塊的SEC3 模塊,有效提升了算法的特征提取能力。
為了驗證SE 注意力模塊的有效性,對帶有破損故障的絕緣子進行熱力圖仿真,效果如圖1 所示。

圖1 熱力仿真對比圖
從圖1可以看出,未使用SE 注意力模塊的網(wǎng)絡(luò)未側(cè)重故障處聚焦,甚至對于環(huán)境的關(guān)注更強;當(dāng)加入SE注意力模塊后,對故障處的關(guān)注明顯有了一定的側(cè)重。
因為絕緣子的故障痕跡通常為扁平狀且大小較小,所以加強算法對中小目標(biāo)的針對性、對多尺度特征的融合能力很有必要。
該算法在頸部網(wǎng)絡(luò)中引入了BiFPN[13]雙向特征金字塔,有效提升了算法的特征融合利用能力。
修改頸部網(wǎng)絡(luò)的concat 模塊即可引入BiFPN,原網(wǎng)絡(luò)的頸部中共有四處concat 模塊,為了將BiFPN的作用發(fā)揮到最大,該文將所有concat 全部修改為了BiFPN_Add。
改進后網(wǎng)絡(luò)整體結(jié)構(gòu)如表2 所示,表中輸入為-1 時在,表示輸入來自上一層;為中括號時,表示同時來自好幾層,數(shù)字代表具體層數(shù),如[-1,4]代表來自上一層和第四層,張量信息代表該模塊的輸入通道數(shù)、輸出通道數(shù)、卷積核大小、步長等參數(shù)。

表2 改進后YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)示意表
該文的數(shù)據(jù)集來自于無人機拍攝故障絕緣子圖像共1 600 張;共有1 228 處破損故障,1 385 處閃絡(luò)故障,806 處臟污故障。
該文使用LabelImage 標(biāo)注工具對所有絕緣子故障進行標(biāo)注,共以三種故障為識別目標(biāo),分別將破損標(biāo)注為damage、閃絡(luò)標(biāo)注為flash、臟污標(biāo)注為dirt。
對于1 600 張原始圖片首先采用隨機矩形遮擋、翻轉(zhuǎn)、調(diào)整色調(diào)等方式將圖像擴充至4 640 余張,從而提高模型的泛化能力和訓(xùn)練效率。該文隨機將訓(xùn)練集、驗證集、測試集的比例劃分為10∶1∶1。部分圖像數(shù)據(jù)增強效果如圖2 所示。

圖2 部分圖像增強示例圖
2.2.1 仿真環(huán)境
具體仿真環(huán)境如表3 所示。

表3 仿真運行環(huán)境
2.2.2 網(wǎng)絡(luò)訓(xùn)練
在YOLOv5s 模型訓(xùn)練中,模型結(jié)構(gòu)的損失函數(shù)Loss 值越小越好。為了實現(xiàn)模型的最佳性能,該文將迭代次數(shù)設(shè)置為250,權(quán)重衰減系數(shù)設(shè)置為0.000 1,學(xué)習(xí)率動量設(shè)置為0.937,圖片尺寸為640×640,最大訓(xùn)練批次設(shè)置為16。
Loss 曲線在0 到100 次時損失函數(shù)值急劇下降;在100 到200 次時損失數(shù)緩慢下降;在經(jīng)過200 次迭代后,損失值在0.06 附近趨于穩(wěn)定,模型達(dá)到最優(yōu)狀態(tài)??傆婰oss 曲線變化如圖3 所示。

圖3 該文算法的總計Loss曲線
在目標(biāo)檢測領(lǐng)域,精度(Precision)、召回率(Recall)和mAP 是評估訓(xùn)練算法性能和可靠性的常用指標(biāo)。由于平均精度的概括性、代表性強于前兩個指標(biāo),故該文使用平均精度對絕緣子故障檢測算法性能進行評估。
精確率的公式為:
召回率的公式為:
式中,TP 表示被模型預(yù)測為正類的正樣本數(shù)量,F(xiàn)P 則表示被模型預(yù)測為負(fù)類的正樣本數(shù)量,而FN 則表示被模型預(yù)測為正類的負(fù)樣本數(shù)量。
平均精度的計算式為:
平均精度AP 是指在所有召回值的可能取值前提下,求得的所有精度的平均數(shù)。即mAP 的AP 值在所有類別下的平均值,計算公式為:
式中,Q為總類別數(shù)量。
通過訓(xùn)練得到權(quán)重文件,使用權(quán)重文件對目標(biāo)圖像進行檢測,部分結(jié)果如圖4 所示。示例結(jié)果中有兩處破損故障,七處閃絡(luò)故障,四處臟污故障,全部識別正確。

圖4 部分仿真結(jié)果示例圖
為驗證算法性能,在同一數(shù)據(jù)集中,對幾種常見目標(biāo)檢測算法的評估指標(biāo)進行了對比,具體情況如表4 所示。

表4 分類準(zhǔn)確度比較表
由表4 可知,該文算法能夠有效提高對破損、臟污、閃絡(luò)的檢測精度。該文算法對三種故障的平均檢測精度均遠(yuǎn)高于Faster R-CNN 和SSD。該文算法與YOLOv2 以 及原始YOLOv5s 相比,在FPS 和mAP上都有一定提升。除此之外,模型的參數(shù)量僅有13.8 MB,顯著優(yōu)于其他算法,比原有的YOLOv5s 進一步縮減了3.5%。
該文共有三處改進模塊,將改進后的模型中的改進模塊逐個添加并進行訓(xùn)練,驗證模型的改進模塊是否具有正面影響。消融實驗具體結(jié)果由表5所示。

表5 消融實驗結(jié)果表
實驗結(jié)果表明,每個模塊單獨應(yīng)用均能對最終結(jié)果產(chǎn)生正向作用,mAP 和FPS 都是伴隨著改進增多逐漸提升。單個模塊中BiFPN 對于評估指標(biāo)的提升最大;三個模塊同時使用對于速度和準(zhǔn)確度的提升效果最明顯。
該文提出了一種基于YOLOv5s 的絕緣子故障檢測算法,該算法利用K-means++算法重新設(shè)計先驗框大小,在骨干網(wǎng)絡(luò)中融合SE 注意力模塊,在頸部網(wǎng)絡(luò)融合BiFPN 雙向特征金字塔。通過以上操作,使得絕緣子故障檢測的總體mAP 相比于原網(wǎng)絡(luò)提升了3.6%,達(dá)到91.4%,速度提升了5 FPS,達(dá)到30 FPS,且文件大小比原YOLOv5s小了0.5 MB,僅為13.8 MB。
該算法具有較強的深度學(xué)習(xí)能力,能高速準(zhǔn)確檢測絕緣子故障、臟污、閃絡(luò)三類故障缺陷位置,且保持了輕量化的優(yōu)點。未來將繼續(xù)探索如何減少算法參數(shù)量以及如何提升算法對小目標(biāo)的識別能力。