?

基于改進YOLOv5的絕緣子缺陷檢測算法

2022-10-20 13:02余明慧武明虎楊成健
關鍵詞:絕緣子損失精度

唐 靚, 余明慧, 武明虎, 楊成健

(1.湖北工業大學電氣與電子工程學院, 武漢 430072;2.湖北工業大學太陽能高效利用及儲能運行控制湖北省重點實驗室, 武漢 430068)

在社會生產的用電量需求不斷增長的情況下,電網安全、穩定、可靠的運行是非常重要的.據統計,由絕緣子缺陷引起的事故在電力系統故障中所占比例最高.這是由于在電力傳輸過程中,采用絕緣子來支撐和分離電導,而通常情況下,絕緣子都是暴露在強電場環境以及各種惡劣的天氣條件中,如烈日、臺風或颶風、雷暴、凍雨、暴風雪等.這些惡劣的條件會使絕緣子易損壞,從而威脅電網系統的安全及電力的使用[1].傳統的絕緣子缺陷檢測主要依賴于人工巡檢,這往往需要耗費大量的人力和時間,并且存在一定的危險性.因此,智能化和及時地檢測絕緣子缺陷顯得尤為重要.

目前的絕緣子自動缺陷檢測方法主要有傳統圖像處理方法、基于機器視覺的方法和基于深度學習的方法三類.

其中,傳統圖像處理方法主要通過對絕緣子圖像進行分割和特征提取進行檢測和分類.一般來說,絕緣子圖像中的絕緣子特征包括紋理、形狀、顏色、梯度、邊緣等.因此,通常采用邊緣檢測、形態學、尺度不變特征和小波變換來提取特征和從復雜背景中分離絕緣子[3-4].張曉春等[2]采用尺度不變特征變換算法和歐氏距離函數實現絕緣子串的特征提取,并將其與標準絕緣子串圖像進行匹配,進而判斷絕緣子是否存在缺陷.Anjum等[3]對捕獲的射頻脈沖進行小波包特征提取,對提取的特征進行縮減和選擇,最終得到分類的結果.傳統的圖像處理方法在進行目標檢測時依靠多種特征提取算法,對背景干擾非常敏感.同時,在實際的探測環境中,無人機拍攝的航拍圖像往往存在不同的拍攝角度、拍攝距離和發光條件.因此,不可能設計一個模型來同時檢測多個絕緣子.

在基于視覺的絕緣子缺陷檢測方法中,最常用的是HOG+SVM[5]和Haar+AdaBoost[6].傳統的檢測算法主要是利用滑動窗口選擇感興趣的區域,提取每個窗口的特征,然后對特征樣本進行分類,得到檢測結果.此外,還有基于輪廓特征對絕緣子進行分類的算法.Tan等[7]將輪廓特征和灰度相似度匹配相結合,先提取絕緣子的輪廓,再計算絕緣子的灰度相似度,從而檢測出有缺陷的絕緣子.翟永杰等[8]利用數學形態學算法對復雜背景下的絕緣子進行分割.并引入Ada-Boost分類器檢測雜波背景下航拍圖像中的絕緣子.然而,這些方法通常是基于積累的經驗來提取圖像特征,算法復雜,計算量大,效率低,精度有限,耗時長.但與傳統圖像處理方法相比,機器學習方法對航拍圖像特定特征的依賴較少.

隨著計算機性能的不斷提高,基于深度學習的檢測方法被廣泛應用于電氣設備檢測領域.深度學習架構充分利用卷積神經網絡(Convolutional Neural Network,CNN)逐層自動學習圖像的深度特征,并通過訓練大規模數據優化網絡模型參數,提高檢測精度.目前已經提出了許多有效的目標檢測算法,如YOLO(you only look once)[9]、Faster R-CNN(faster region-based convolutional neural network)[10]、Mask R-CNN、SSD(single shot multibox detector)[11]等.其中,Faster R-CNN和Mask R-CNN 是經典的雙階段檢測網絡,YOLO系列網絡和SSD網絡是經典的單階段檢測網絡.雙階段檢測網絡通過兩個步驟實現目標的檢測,首先生成特征候選框,然后再對生成的候選框進行分類和回歸.單階段檢測算法則是直接進行分類和回歸,省去了生成候選框這一步驟.由于網絡結構的不同,所以檢測速度和檢測精度也有所不同,單階段檢測算法速度較快但精度較低,相應的,雙階段檢測算法的精度較高但速度較慢.由于深度學習檢測方法具有學習能力強、覆蓋范圍廣等優點,被廣泛用于電氣設備檢測等領域.Rahman等[12]首先通過無人機航拍獲取數量足夠且畫質清晰的絕緣子圖像,然后利用深度學習的方法對所收集的數據集進行缺陷檢測.解決了以往利用深度學習的方法對絕緣子進行缺陷檢測時數據集不足的問題,并且檢測精度也有所提升.Wen等[13]采用RoI Align代替RoI pooling來解決對齊錯位問題,并引入深度可分離卷積和線性瓶頸來減少計算量,同時利用編碼器-解碼器掩模提取網絡生成絕緣子掩模圖像以消除復雜背景.有效地提升了絕緣子缺陷檢測的檢測精度.Liu等[14]在YOLOv3網絡中加入密集模塊、多尺度特征融合結構和多級特征映射模塊以增強特征重用、傳播和提高對不同尺寸絕緣子的檢測精度以及獲取上下兩層的豐富語義信息.然而,由于無人機拍攝的絕緣子圖像中大都包含了許多無關的背景信息,因此在圖像中絕緣子的有用信息并不多.此外,絕緣子的細長形狀特性和不同的缺陷變化導致缺陷在圖像中的表現形式多樣而復雜.因此,現有的絕緣子檢測方法的準確性還有待提高.

由于巡檢圖像的數據量大,以及電網對輸電線路絕緣子缺陷檢測有速度快,便于及時排除故障保證電網安全穩定運行的要求.所以在要求準確地識別檢測出絕緣子的同時還需要在盡可能短的時間內完成檢測任務.因此,本文在網絡深度較小、檢測速度較快的輕量級深度學習網絡YOLOv5[15-16]的基礎上提出了一種改進的絕緣子缺陷檢測方法——YOLOv5t.為了在保證網絡運行速度的條件下更加關注所檢測目標的信息,將三重注意力機制[17]添加到網絡中用于提取不同維度之間的語義依賴,消除通道與權值之間的間接對應,從而以較小的計算開銷達到了提高準確率的效果.同時,修改網絡的損失函數以及非極大值抑制算法,以提高模型預測框架的精確定位能力,增強模型的收斂效果并且減少漏檢.

1 YOLOv5網絡模型

由于絕緣子缺陷檢測對算法的實時性和準確性要求較高,YOLO系列網絡的檢測速度和檢測精度在單階段檢測網絡中是較為優秀的,相較于其他檢測網絡而言,它在檢測速度和檢測精度之間取得了一個較好的平衡[9].YOLOv5作為YOLO系列網絡最新版本,相較于之前的幾個版本,YOLOv5在網絡結構、損失函數和數據增強等方面都進行了優化.并且在Pascal VOC(visual object classes)[18]和Microsoft COCO(common objects in context)[19]兩個官方的對象檢測數據集上取得了較好的結果.YOLOv5網絡有s、m、l、x 4個版本,它們的網絡的深度和寬度是依次提升的,也就是說,YOLOv5s網絡的深度和寬度最小,即網絡模型最小,YOLOv5x網絡的深度和寬度最大,即網絡模型最大.與此同時,網絡的檢測精度和檢測速度依次降低和增加.為考慮絕緣子檢測的實時性,本文對YOLOv5s網絡進行改進,在保證檢測速度的條件下提升網絡的檢測精度.YOLOv5s的網絡結構如圖1所示.

數據增強方面,YOLOv5采用自適應圖像縮放通過在縮放圖像時增加最小的黑邊來提高目標檢測的速度;Mosaic數據增強用于提高網絡對于較小目標的檢測能力;自適應錨盒計算對于不同的訓練數據集能夠計算出最佳錨盒值.

損失函數方面,YOLOv5的損失主要包括回歸、分類和置信三個損失部分.網絡用二元交叉熵函數計算計算類別概率和目標置信分數,也就是分類和置信損失;采用GIoU Loss[20]作為回歸損失的損失函數.

在網絡結構方面,如圖1所示,YOLOv5在Backbone部分增加了一個Focus模塊,對圖像進行切片操作,在減少參數量的同時保留了更為完整的圖像信息,用于后續的特征提??;CBL模塊用于提圖像的特征信息;同時,將跨階段局部網絡CSPNet(cross stage partial network)[21]整合到Darknet網絡框架中,解決了大型骨干網絡中梯度信息重復的問題,并將梯度變化整合到特征圖中,從而降低了模型的參數和每秒浮點運算次數,既保證了推理速度和準確性,又減小了模型的尺寸;空間金字塔池化SPP(spatial pyramid pooling)模塊用于實現局部特征與全局特征的融合,從而提高特征圖的表示能力.Neck部分采用的路徑聚合網絡PANet(path aggregation network)[22]改進了原特征金字塔網絡(feature pyramid networks, FPN)[23]低層次特征傳播困難的問題,增加了自底向上的路徑,提高了底層特征的傳播.預測部分通過生成3種不同尺寸的特征圖,實現多尺度的預測,使模型能夠處理不同大小的目標.

圖1 YOLOv5網絡結構[15]Fig.1 Structure of YOLOv5

總體而言,Backbone部分用于從圖像中提取特征,并對目標進行定位和分類來捕獲特征;Neck部分用于融合來自通過Backbone的初始輸出特征,適應大小,從而提高體系結構的整體性能;預測部分網絡用于接收Neck的三個輸出,最后輸出每個特征映射輸出層的包圍盒位置、對象置信度和對象類別的預測.

YOLOv5網絡4個版本的網絡基本結構基本相同,主要區別在于CSP1_X模塊中的殘差組件(Res unit)、CSP2_X模塊中的卷積(CBL)數量不同,以及CBL模塊中的卷積核數量不同.前兩個不同數量的模塊用于控制網絡的深度,深度越深,特征提取和融合能力越強;CBL模塊中的卷積核數量用于控制網絡的寬度,寬度越寬,提取特征的能力越強.但隨著網絡深度和寬度的增加,網絡的檢測速度就會有所下降,本文采用最輕量的YOLOv5s網絡結構為基本結構進行改進.

2 改進網絡

針對輸電線路絕緣子缺陷檢測對于檢測速度,檢測精度的要求,本文采用網絡深度較小的輕量級深度學習網絡進行訓練,這種輕量級網絡能夠大幅提升網絡的檢測速度.并在此基礎上添加注意力機制、修改損失函數和預測結果處理方法以提高網絡的準確率.最終在盡可能短的時間內準確地完成檢測任務.YOLOv5t的基本結構如圖2所示.

圖2 YOLOv5t的基本結構Fig.2 The basic structure of YOLOv5t

2.1 骨干網絡上的改進

由于注意力機制具有能夠建立通道或者空間位置之間的相互依賴關系,在各種信息中將注意力集中在對當前任務目標更為重要的信息上.因此,近年來各種計算機視覺任務中都有注意力機制的身影.

針對網絡對待每一個通道特征是平等的,導致網絡不能在有效的通道特征上給予較大的權重,而導致的網絡檢測精度不高的問題,將注意力機制添加到原始網絡中,以增強網絡的特征提取能力,從而提升網絡的檢測精度.

為保證在提高檢測精度的同時網絡的運行速度不會受到影響,本文選擇基于如何構建計算量小但有效的注意力,但同時保持相似或提供更好的性能而提出的三重注意力機制(triplet attention,TA)[17].相較于其他注意力機制,三重注意力機制有以下優點:1) 空間信息和通道信息不會大量丟失;2) 能夠實現跨維度交互;3) 計算量較小.

三重注意力機制可以同時在通道和空間注意力上建模,實現跨維度的信息交互,給予有效的特征通道更大的權重,讓網絡更多的關注重要的通道特征,降低無用信息對網絡的影響,以微弱的內存代價,增強網絡Backbone部分對特征的提取能力.三重注意力機制的基本結構如圖3所示.

三重注意力機制采用三個平行分支的結構,其中前兩個分支用于提取空間維度與通道維度C之間的相互依賴關系,最后一個分支用于提取空間特征依賴關系.在前兩個分支中,先將輸入的張量χ分別沿H軸和W軸逆時針旋轉90°,將張量的形狀轉變為W×H×C和H×C×W,記為χ1和χ2.在第三個分支中,輸入張量的形狀不變.然后,分別通過Z-pool層將維度上的最大池化和平均池化特征相連接,從而將張量維度縮減為2維,這使該層能夠在保留實際張量豐富表示的同時縮小其深度,并且計算量不會大幅上升.Z-pool定義為式1:

Z-Pool(χ)=[MaxPool(χ),AvgPool(χ)],

(1)

(2)

三重注意力機制在網絡中通過旋轉操作和殘差變換建立不同維度間的依賴關系,消除了通道與權值之間的間接對應,以較小的計算開銷達到了提高準確率的效果[24].

圖3 三重注意力機制的基本結構Fig.3 The basic structure of triplet attention

2.2 優化損失函數

本文網絡模型的損失分為三種,分別是回歸損失,置信損失和分類損失.損失函數是用于計算網絡損失值的函數,主要是在網絡運行的過程中不斷地計算預測值和真實值之間的差值.網絡根據損失函數計算的差值不斷地更新優化各個參數,從而使模型的檢測效果更好.因此,損失函數的選擇對于檢測網絡而言是非常重要的,合適的損失函數能夠加速模型的收斂并且最小化預測值和真實值之間的差值.本文對網絡的回歸損失的損失函數進行改進,網絡最初使用GIoU Loss作為回歸損失函數,然而,由于GIoU Loss僅考慮了邊界盒的重疊面積以及預測框和真實框的中心點距離,因此在網絡訓練的過程中會存在預測框回歸不穩定、容易發散等問題[20].為了最小化預測框與真實框之間的距離,提高網絡的收斂速度,本文使用CIoU Loss[25]作為網絡的回歸損失函數.CIoU Loss在GIoU Loss的基礎上把預測框與真實框之間的寬高比(w/h)也考慮在計算中,進一步提高了網絡的收斂速度和回歸精度.CIoU Loss的公式為:

(3)

2.3 非極大值抑制算法(NMS)

NMS(non-maximum suppression)是用于網絡對每個目標進行檢測時生成的所有預測框篩選,選出最優的預測框作為最終的結果.而原網絡采用的傳統的非極大值抑制算法在檢測目標距離比較近以及被遮擋時容易產生漏檢,這是由于非極大值抑制算法在對兩個近距離目標的預測框進行篩選時,只保留得分最高且交并比較低的預測框.由于絕緣子間的距離往往都比較近,航拍圖像中也存在被遮擋的情況,如果采用傳統的非極大值抑制算法對預測框進行處理,會產生大量的漏檢.因此,為了降低網絡漏檢率,本文引入了Soft-NMS算法[26].Soft-NMS算法流程如圖4所示.

圖4 Soft-NMS算法流程圖Fig.4 The flow chart of Soft-NMS

首先,根據置信度對列表中的所有預測框進行排序;其次,將得分最高的預測框BM移至最終檢測列表D,其余預測框分配唯一標識Bi;第三,當使用NMS算法時,去除與BM重疊面積大于一定閾值Nt的任何預測框Bi;而使用Soft-NMS算法時,當某個預測框Bi與BM的重疊面積大于一定閾值Nt時,并不是將該預測框刪除,而是將重新計算該預測框的得分Si,并將其與一定置信閾值Ot相比較,當該預測框的得分Si大于一定置信閾值Ot時,將該預測框移到最終檢測列表D中,反之,則刪除該預測框;對其余的框Bi重復此過程,直到初始列表為空.由于在NMS中,設置了一個確定的閾值來決定哪些檢測框應該保留,哪些檢測框應該刪除.然而,如果一個對象確實存在,但與BM的重疊率大于Nt時,則其預測框將被刪除,從而導致漏檢.而Soft-NMS的核心思想則是使用懲罰函數來衰減與BM重疊的預測框的分數,而不是將這些分數設置為零.使用Soft-NMS算法時與BM重疊較大的預測框得分會大大降低,而距離BM較遠的預測框則不會受到影響.因此,可以大大降低網絡的漏檢率[26].NMS和Soft-NMS算法的得分函數分別表示為式4、5:

(4)

(5)

3 實驗及結果分析

3.1 實驗環境和數據預處理

實驗在Intel Xeon Gold 5218 @2.3GHz CPU、TITAN RTX GPU、12GB顯存、Win10,64位操作系統和PyTorch 1.9深度學習框架上進行.此外,實驗環境是Python 3.7,GPU加速軟件 CUDA 10.2和CUDNN 7.6.5.

由于目前還沒有針對絕緣子故障訓練和測試的標準數據集并且絕緣子故障航拍圖像稀少且不易采集,為了獲得盡可能多的絕緣子故障圖像,本文在中國電力線絕緣子數據集(CPLID)[27]的基礎上進行了圖像增強處理.利用圖像處理軟件擦除正常的絕緣體串,并用它們附近的像素替換它們創建了模擬絕緣子故障樣本,同時通過自適應對比度、旋轉、隨機灰度變化、平移、裁剪、顏色通道標準化、隨機遮擋等方法對數據集進行圖像增強,增加樣本的數量以及多樣性,提升模型的魯棒性.最終的數據集包含2 500張圖像.在COCO數據集上預訓練網絡的權重,使用隨機梯度下降優化器對網絡參數進行更新.在訓練過程中,輸入圖像尺度為640×640,動量參數設為0.9,批大小設為32,批尺寸為16,學習率設置為0.001,重量衰減為0.000 5,每次訓練執行300個epoch.

3.2 評價指標

評價指標是用于衡量網絡模型性能的一些計算參數.本文將準確率P(precision)、召回率R(recall)、交并比IoU(intersection over union)和平均精度均值mAP(mean average precision)等作為網絡的評價指標.準確率用來評估網絡檢測的準確程度,召回率用來評估網絡檢測到目標的能力,交并比是檢測框和真實框的交集和并集之間的比值,AP(average precision)為單類別的平均精度值,也就是P-R曲線和坐標軸包圍部分的面積.mAP為所有類別的平均精度值之和與所有類別數目的比值.一般以IoU=0.5時計算mAP值,即mAP@.5.準確率、召回率和平均精度的具體計算公式如下:

(6)

(7)

(8)

(9)

其中,TP(ture positive)表示真陽性,即網絡檢測分類后的樣本與標記的樣本相符合.FP(false positive)表示假陽性,網絡檢測分類后的樣本不在標記的樣本之中,即誤檢.FN(false negative)表示假陰性,標記的樣本在網絡檢測分類之后沒有完全被檢測分類,即漏檢.P(R)表示召回率為R時,準確率P的值,S表示一共有s個類別.

3.3 實驗結果分析

圖5是根據YOLOv5t和YOLOv5s在本文絕緣子數據集上進行訓練得到的實驗結果繪制的loss對比圖.由圖5(a)可知YOLOv5t的網絡的收斂速度較快且回歸損失的損失值更小.圖(b)和圖(c)分別是網絡的置信損失和分類損失,二者分別用二元交叉熵函數計算所得,由圖可知,二者都是趨近于0的數值,并且收斂效果較好,所以本文沒有對二元交叉熵函數進行優化,因此,置信損失和分類損失的變化不大.

圖5 損失對比圖Fig.5 Loss comparison chart

進一步將YOLOv5t網絡模型與YOLOv3、SSD、YOLOv5s以及YOLOv5x等網絡模型進行檢測性能比較.各網絡模型訓練后的各個性能指標、模型大小以及檢測速度如表1所示.其中,Precision、Recall以及mAP@.5的值是當預測框與真實框的交并比大于0.5時記為TP,小于0.5則記為FP計算出來的.具體分析,YOLOv5t網絡模型的準確率比YOLOv3高1.3%,比YOLO5s高0.9%,比YOLOv5x低1.6%;召回率相較于YOLOv3低了0.6%,相較于YOLOv5s和YOLOv5x分別高5.1%和1.7%.由于準確率和召回率是相互影響的,準確率上升,召回率就會下降,由表1可知,YOLOv5t在準確率和召回率上取得了一個較好的平衡,在保證召回率的情況下,準確率也較高.與此同時,YOLOv5t網絡訓練得到的mAP@.5的值達到了99.1%,比YOLOv3、SSD、YOLOv5s和YOLOv5x分別高1.3%、8.0%、2.1%、和0.9%;并且,雖然YOLOv5t的網絡參數量比YOLOv5s大,但是計算量(FLOPs)稍小于YOLOv5s,只有16.1GFLOPs.由于,參數量影響網絡模型的大小,計算量影響網絡模型的運行速度,因此,YOLOv5t的網絡模型比最小的YOLOv5s模型大0.9MB,但檢測速度卻與最快的YOLOv5s相仿.這說明YOLOv5t在不損失檢測速度的條件下對絕緣子的缺損檢測的精確度更高.

表1 幾種檢測算法對比Tab.1 Comparison of several methods

圖6是各網絡的檢測結果對比.通過觀察圖片可以得到,SSD檢測方法在進行絕緣子缺損檢測時,并不能很好的檢測出絕緣子的缺損;其他幾種檢測方法都能較為準確的檢測到絕緣子和絕緣子的缺損,但YOLOv3、YOLOv5s和YOLOv5x都存在誤檢和漏檢的情況,而YOLOv5t更夠準確的檢測出絕緣子的缺損,并且沒有誤檢和漏檢.

4 結論

本文以YOLOv5s網絡模型為基礎進行改進得到本文的檢測算法,針對網絡對待每一個通道特征是平等的,導致網絡不能在有效的通道特征上給予較大的權重問題,本文將三重注意力機制添加到模型的骨干網絡中,以微小的內存代價提升了網絡的檢測精度.同時,對網絡的損失函數和非極大值抑制算法進行改進,提升了網絡的收斂速度和回歸精度,降低了網絡的漏檢率.實驗結果表明,本文提出的YOLOv5t檢測算法的平均精度均值比原YOLOv5s網絡高2.1%,較YOLOv3、SSD和YOLOv5x分別高1.3%、8.0%和0.9%,并且檢測速度沒有受到影響.

猜你喜歡
絕緣子損失精度
基于Mask RCNN的絕緣子自爆缺陷檢測
熱連軋機組粗軋機精度控制
胖胖損失了多少元
超高精度計時器——原子鐘
分析誤差提精度
玉米抽穗前倒伏怎么辦?怎么減少損失?
淺析輸電線路絕緣子防污閃技術
基于DSPIC33F微處理器的采集精度的提高
考慮懸垂絕緣子串偏斜的張力放線計算研究
1000kV特高壓輸電線路失效絕緣子判斷的仿真計算
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合