?

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

2023-09-27 08:14齊至家何盼霞
關鍵詞:絕緣子注意力卷積

張 梅,齊至家,何盼霞

(安徽理工大學電氣與信息工程學院,安徽 淮南 232001)

絕緣子是輸電線路中的重要電力設備之一,其主要作用是負責機械的固定、電線與電纜的連接和輸電線路的電氣絕緣。架設在戶外的輸電線路極容易發生事故,從而引發絕緣子的爆破、破損、放電等,給國民經濟帶來重大的損失。為保證輸電質量與電力系統正常運行,須定期對絕緣子及其缺陷部分進行巡檢。

傳統的電網維護很大程度上依靠人工巡檢,但會受到巡檢人員自身視覺和地理環境因素的影響。誤檢、漏檢等錯誤屢見不鮮,極易造成巨大的人員損傷與財產損失,難以適應智能電網發展需求。無人機巡檢主要利用無人機搭載高清攝像頭、紅外設備等,通過操作飛行獲取目標檢測的電力設備圖像及影像,并利用圖像處理和測量技術從多種角度對電力設備進行巡檢。與傳統巡檢相比,無人機巡檢不僅降低了巡檢過程中的危險系數,同時也減少了因主觀因素造成的錯誤判斷,從而提高了巡檢的效率。隨著深度學習技術的興起和5G技術的發展,在電力巡檢方面無人機巡檢逐漸替代了傳統人工巡檢[1-2]。目前,在絕緣子缺陷檢測技術方面主要有兩種方法。一種是基于圖像形態特征的處理,采用傳統數字圖像處理與傳統目標檢測相結合的方式進行目標檢測。另一種檢測技術是基于深度學習的目標檢測方式,其主要算法分為單階段和兩階段檢測算法。兩階段檢測代表算法有R-CNN(Region-based Convolutional Neural Network)系列算法[3-5];單階段檢測的代表算法有SSD(Single Shot MultiBox Detector)[6]和YOLO(You Only Look Once)[7-8]系列。

采用深度學習目標檢測的代表性成果有:文獻[9]提出一種改進的YOLOv3算法,可以更好地采集無人機拍攝的絕緣子圖像數據集的數據特征以提升算法性能;文獻[10]通過改進YOLOv4的空間金字塔結構和平均交叉熵的方式提升了網絡的檢測精度;為了更好地提高模型的泛化能力與精度,文獻[11]結合GAM(Global Attention Mechanism)注意力模塊與自適應特征融合ASFF(Attentional Semantic Feature Fusion)模塊改進了YOLOv5算法。雖然以上研究成果在檢測精度上取得了不錯的提升,但依舊存在檢測目標單一,誤檢、漏檢率高的問題,難以滿足實際工程中對缺陷檢測的高標準。

針對絕緣子檢測時出現的復雜背景干擾以及實際運用中存在的誤檢、漏檢問題,本文以YOLOv5 6.2版本中的YOLOv5s算法為基礎算法,對絕緣子缺陷檢測進行研究。首先,用全維動態卷積(Omni-Dimensional Dynamic Convolution,ODConv)來替換原網絡中的部分卷積層,在提高算法模型在復雜環境下對絕緣子缺陷檢測的準確率的同時保持其有效的推理速度[12];其次,將原檢測頭替換為YOLOX所提出的解耦檢測頭,以避免因頭部耦合給絕緣子缺陷檢測算法性能帶來損失[13]2;最后,為提升算法在復雜背景下的特征提取能力來避免誤檢、漏檢問題,引入CA(Content-based Attention)注意力機制,并通過實驗對比驗證后確定將CA注意力模塊嵌入至算法骨干網絡部分中,使其更加有效地關注目標信息[14]。本文組織結構如下:第一部分簡要介紹了YOLOv5算法各層網絡結構;第二部分描述了YOLOv5算法的改進方法;第三部分介紹了數據集,并進行了一系列實驗來驗證所提出改進方法的可行性和優越性;最后對全文進行總結。

1 YOLOv5目標檢測算法

YOLOv5是一種單階段目標檢測算法,吸取了很多檢測算法的優點,自2020年發布以來一直在活躍更新迭代中。根據網絡的深度和寬度將YOLOv5依次遞增分為YOLOv5n、YOLOv5s、YOLOv5m等體量不同的版本。YOLOv5s在保證了較高的檢測精度與速度的同時又擁有較小的參數量,更加容易在嵌入式端口部署,所以本文選擇YOLOv5s為基礎進行相關的改進。YOLOv5s算法主要由Input、Backbone、Neck、Output組成,其主要網絡結構如圖1所示。

圖1 YOLOv5s的網絡結構圖

在輸入端采用了Mosaic和Mixup等相結合的數據增強方式對數據集進行預處理,同時對不同數據集采用自適應錨框技術與自適應圖片縮放。在主干網絡(Backbone)中,通過CBS(Constraint-Based Search)、C3和SPPF(Shared Packed Parse Forest)模塊對數據的特征進行提取,進行下采樣操作,生成不同尺度的3種不同的特征圖并輸入到下一層。算法的Neck部主要是由FPN(Feature Pyramid Network)和PAN(Path Aggregation Network)相互結合的結構,這兩種結構分別采用自上而下與自下而上兩種互補的采樣方式來傳遞上層的語義特征與下層的強定位特征。從不同的主干層對檢測層的參數進行聚合來增強特征圖的層次結構,從而增強網絡的特征融合能力。輸出層為預測大、中、小的特征圖,采用CIOU(Complete IoU)函數作為邊界框的損失函數,并且采用非極大值抑制(Non-Maximum Suppression,NMS)來篩選多目標框,避免檢測目標相互遮擋問題。

2 改進的YOLOv5目標檢測算法

針對在復雜背景下絕緣子缺陷檢測存在的誤檢、漏檢與精度較低等問題,本文在YOLOv5s網絡中加入了以下改進,具體改進后的算法網絡結構圖如圖2所示。首先,在原算法的Neck部分引用全維動態卷積ODConv替換一部分傳統卷積;然后,在檢測頭處將原算法的耦合檢測頭替換為解耦檢測頭,并在算法網絡中融合CA注意力機制;最后,將3種改進方法融合,并得到最終的絕緣子目標檢測算法YOLOv5s-ODC(ODConv+Decoupling head+Coordinate Attention)。下面將逐一介紹改進內容。

圖2 YOLOv5s-ODC的網絡結構圖

2.1 全維動態卷積ODConv

在傳統卷積中,為了提高模型性能,大多數是采用堆疊或增加卷積層的方法,這種方式不僅會使算法計算成本增加,還會影響絕緣子缺陷檢測的檢測效率。為了在提升性能的同時不增加過多的參數量和計算成本,本文向算法中引入了全維動態卷積ODConv。與傳統的動態卷積只關注在卷積核維度上的注意力不同,ODConv在卷積中以并行的方式加入了多個維度的互補注意力,因此被稱為全維動態卷積。ODConv結構如圖3所示。

圖3 ODConv結構圖

ODConv利用一種新的多維注意力機制,以并行的方式計算了4種類型的注意力,其中ODConv對動態卷積的定義為

y=(αw1⊙αf1⊙αc1⊙αs1⊙W1+…+αwn⊙αfn⊙αcn⊙αsn⊙Wn)*x

(1)

式中,αw1為對卷積核Wi維度的注意力,αs1為沿卷積核空間維度的注意力,αc1為沿輸入通道維度的注意力,αf1為沿輸出通道維度的注意力。 ⊙表示沿核空間不同維度的乘法操作。x表示與一個多頭注意力模塊進行計算。這4類不同的注意力是相輔相成的,按照位置、通道、濾波器和核等維度依次乘以卷積核Wi并且累加,使卷積運算相對于輸入x的所有空間位置、輸入信道、濾波器和內核存在差異性,保證捕獲豐富的上下文線索。由于卷積的特征提取能力得到了增強,與擁有多個內核的動態卷積對比,ODConv仍然擁有競爭力甚至更有優勢,并且減少了額外的參數。

2.2 頭部解耦

在目標檢測中,分類與回歸任務的沖突問題受到了關注。隨著YOLO系列目標檢測算法的不斷更新,其檢測頭依舊是耦合的。根據文獻[13]2可知,算法的性能會因檢測頭的耦合導致損壞,將YOLO的檢測頭替換成解耦頭可以提高收斂速度,且在端到端的YOLO版本中,使用解耦頭進行訓練時,其精度下降要遠遠低于使用耦合頭的版本。

為了避免分類與回歸任務的沖突,提高算法模型的性能,本文將解耦檢測頭引入到YOLOv5s來代替原有的耦合檢測頭(見圖4)。

圖4 解耦檢測頭結構圖

解耦頭首先采用1×1卷積層將輸入特征中的每一層特征通道減少到256個,然后增加了兩個平行的3×3卷積層分支,分別負責分類和回歸任務,最后再經過1×1卷積層將通道數調整為預測目標類別數。其中,Cls分支完成分類任務,Reg負責輸出預測框的回歸參數,Obj負責判斷預測框中是否含有絕緣子缺陷目標。

2.3 CA注意力機制

本文引入了帶注意力機制的ODConv雖然提升了算法的特征提取能力,但對較為復雜背景下的絕緣子檢測仍然有誤檢、漏檢情況。為了排除背景的干擾提高對小目標的檢測效果,合理利用算法的視覺信息處理資源并且進一步提升算法的特征提取能力,本文在YOLOv5s中引入了CA注意力機制。

與傳統通道注意力機制不同,CA注意力不僅關注權衡不同通道的重要性,還考慮了對空間信息進行編碼。首先,CA模塊對給定的輸入值x分別以水平和垂直坐標方向進行編碼。第C個通道在高度H和寬度W處的輸出可以表示為:

(2)

(3)

這兩種轉換可以在高度和寬度方向上都得到兩個特征圖。其次,將兩種聚合特征圖連接起來發送到共享的1×1卷積變換函數F1中,從空間方向進行上下采樣,得到特征圖f,其中包含了兩個坐標方向的中間特征。再次,將f分為獨立的兩個張量,再通過1×1卷積將兩個張量變換為相同通道的張量并輸入到x中。最后,將輸出的gh和gw展開,作為注意力的兩個權重,得出坐標注意力yc。計算公式如下:

f=δ(F1([zh,zw]))

(4)

gh=σ(Fh(fh))

(5)

gw=σ(Fw(fw))

(6)

(7)

式中,δ為非線性激活函數,[…,…]表示zh和zw是沿空間維度的拼接運算,F1、Fh和Fw為1×1卷積,fh和fw兩個獨立的的張量,σ表示為Sigmoid函數。CA模塊結構如圖5所示。

圖5 CA注意力模塊

由圖5可知,通過式(2)~式(7)的轉換,CA可以沿著一個空間方向(X)捕獲到遠程的相關性,同時可以在另一個方向(Y)上保留精確的位置信息,從而提高對感興趣目標的表達能力。因此,可以在不需要過多計算開銷的同時極大的減少復雜背景對檢測目標的干擾。

很多學者已經通過實驗證明了在卷積神經網絡中嵌入CA注意力模塊可以有效提升目標檢測任務的性能,但是將CA嵌入到網絡結構中的哪一個部分并沒有統一的答案。本文基于2.1節和2.2節兩種改進后的算法YOLOv5s-OD(ODConv+Decoupling head),將CA注意力模塊分別嵌入到算法網絡的不同部位進行驗證。具體方法如圖6所示,分別產生了4種新的網絡模型:

圖6 CA注意力模塊4種嵌入方式

1)將CA注意力層嵌入至骨干部分的池化層上一層構成算法YOLOv5s-OD-A,如圖6(a)所示;

2)將CA注意力層嵌入至檢測頭的前一層構成YOLOv5s-OD-B算法,如圖6(b)所示;

3)將CA注意力層融入了C3模塊的add操作之后構成算法YOLOv5s-OD-C,如圖6(c)所示;

4)將CA注意力模塊融入了C3模塊的Concat操作之后的算法YOLOv5s-OD-D,如圖6(d)所示。

通過實驗得出,只有YOLOv5s-OD-C的改進方式可以提升算法性能。因此,本文采用圖6(c)的CA注意力融合方式,得到最終優化算法YOLOv5s-ODC。

3 實驗與分析

3.1 實驗環境

本文實驗的操作系統為Windows 10 64位,采用Pytorch1.8.2+cu111深度學習框架,python編程語言,Cuda版本為11.1,cudnn版本為8.0.5。硬件配置為:CPU為12th Gen Intel?CoreTMi9-12900K 3.20GHz,NVIDIA GeForce RTX 3080 10GB顯存,32GB運行內存。改進后算法訓練的超參數設置為:動量為0.937,初始學習率為0.01,迭代次數為300次,batchsize為16,權重衰減為0.000 5。

3.2 數據集

本文的數據集由兩種不同的數據集融合而成,分別為:

1)CPLID是由國家電網公司提供的高壓絕緣子航拍圖像集,包含正常絕緣子圖像600張與爆破絕緣子圖像248張;

2)絕緣子缺陷圖像數據集EPRI,包含絕緣子閃絡故障、破損故障和良好的絕緣體外殼圖片共1 684張。通過數據清洗,剔除高度相似的圖像、低清晰度的圖像,得到可用圖像485張。

為避免數據集樣本過少造成過擬合影響算法對絕緣子及其缺陷部位檢測效果,并模擬復雜環境對絕緣子檢測的影響,本文對融合后的數據集進行數據增強,通過旋轉、隨機裁剪、模糊與亮度調整等方式將圖像擴充至3 996張。

本文使用LabelImage標記工具來對融合后的數據集進行標記,并將數據集圖像目標分為4大類,按照8∶1∶1的比例,將標記好的數據集隨機分成訓練集、驗證集和測試集。經過數據集處理,各類目標的名稱與數量如下:insulator類5 124個,defect類714個,broken類961個,flash類1 943個。

3.3 模型算法評價指標

為了對模型算法的性能進行客觀評判,實驗采用準確率(precision,P)、召回率(recall,R)、多類別平均精度(mean average precision,mAP)、占用儲存空間大小(單位:MB)、檢測速度(單位:ms)等指標衡量算法的優越性。P、R、mAP具體計算如下:

(8)

(9)

(10)

式中,TP為正樣本目標被正確檢出的數量;FP為正樣本目標被錯誤檢出的數量;FN為樣本未被檢出的數量;n為類別數;AP為某個類別的平均精度。

3.4 實驗結果與分析

為驗證本文提出的3種改進方式的有效性,分別設計了融合注意力模塊驗證實驗、消融實驗、主流算法對比實驗和圖像檢測結果對比實驗。

1)融合注意力模塊的實驗分析 為探究注意力模塊在算法不同部分對算法性能的影響,本文將CA注意力模塊分別嵌入到算法網絡YOLOv5s-OD(ODConv)的4個不同部分,形成了圖7中提出的4種算法,將4個算法的檢測結果與原算法進行對比實驗。實驗結果如表1所示。

表1 融合注意力模塊驗證實驗

圖7 平均精確率對比圖

由表1可知,只有YOLOv5s-OD-C算法的平均檢測精度相較于原模型有所提高,雖然檢測速度有所降低,但是提升了0.5個百分點的平均檢測精度。該實驗表明在網絡結構特征融合add之后嵌入注意力模塊可以提升算法的檢測效果,證明了方法的可行性,因此,本文采用YOLOv5s-OD-C的注意力融合方式。

2)消融實驗 本文針對YOLOv5s算法提出了3種改進方法,分別為O(ODConv)、D(解耦檢測頭)和C(CA),在原數據集上設計了消融實驗。分別驗證3種模塊單獨加入算法時的有效性和同時采用3種改進在算法上的有效性。消融實驗具體結果如表2所示。

表2 消融實驗結果

表2中“√”代表引用該方法,“×”表示未引用該方法。由表2可知,相比于原模型,引用解耦檢測頭對算法的平均精度提升最為明顯,平均檢測精度提升了2.0個百分點,但是對模型體積影響較大(增加了14MB),檢測速度增加了1.8ms。引入ODConv后平均檢測精度增加了0.8個百分點,體積沒有影響,檢測速度也僅增加了1ms。當向網絡里融合了CA注意力機制后,平均檢測精度提升了0.9個百分點,體積提升了0.1MB,檢測速度增加了0.9ms。由此證明了3種改進單獨加入網絡中的有效性。改進后算法與原算法的性能對比如圖7所示。

由圖7和表2可知,改進后的算法在性能上明顯優于原算法,本文提出的YOLOv5s-ODC算法與原算法相比,平均檢測精度提升了2.5個百分點,模型體積提升了14.2MB,檢測速度增加了6.3ms。說明改進后的算法在滿足實際運用的要求的基礎上擁有更高的檢測精度。

3)對比實驗 為了證明本文算法相較于主流目標檢測算法的有效性與優越性,本文將最終算法模型與主流目標檢測模型和嵌入不同的注意力機制CBAM(Convolutional Block Attention Module)[15]、SE(Squeeze-and-Excitation)[16]在本文所用數據集上進行實驗對比,結果如表3所示。

表3 不同算法模型在本文數據集上的性能對比

由表3可知,YOLv5s-ODC算法擁有最高的平均檢測精度。在檢測精度方面SSD算法雖然擁有最高的準確率,但是在平均檢測精度上只有58.1%,無法在實際條件下應用。在檢測速度上原算法YOLOv5s有優勢,但是它的平均檢測精度相較于本文所提算法相差2.5個百分點。在不同的注意力機制上,本文所引用的CA注意力機制在平均檢測精度上有著明顯的優勢。

綜上所述,與主流目標檢測算法相比較,本文所提出的YOLOv5s-ODC算法擁有最高的檢測精度,并擁有相對輕量的體積,有利于算法在嵌入式設備上的植入,在絕緣子缺陷目標檢測領域中具備一定的競爭力。

4)圖像檢測結果對比實驗 為了驗證本文所提出的算法相對于原算法在絕緣子缺陷檢測上的優勢,本文將隨機選取包含絕緣子缺陷的圖片對兩種算法進行驗證實驗,部分檢測結果如圖8所示。

圖8 檢測結果

由圖8可知,第一組和第二組檢測圖片中原算法都存在著誤檢和漏檢現象,但在改進后的算法檢測中都改善了這些錯誤。第二組和第三組的圖像比較中,改進后的算法所檢測出的故障目標置信度都有所提高,其中第二組類別broken(絕緣子破損類)的檢測置信度從0.64上升到了0.79,第三組類別flash(絕緣子閃絡類)的檢測置信度也比原算法分別高出0.08、0.08和0.13。

綜上所述,改進后的算法YOLOv5s-ODC有效地解決了原算法的誤檢、漏檢現象,并且有效地提升了算法在復雜環境下對絕緣子故障的識別精度。

4 結論與展望

本文提出了一種基于改進YOLOv5的絕緣子故障檢測算法YOLOv5s-ODC,分別以在算法Neck部分引入全維動態卷積ODConv、采用解耦檢測頭來替換原算法的耦合檢測頭、融合CA注意力模塊的方式對YOLOv5s模式進行改進。實驗結果證明經過改進后的算法在絕緣子故障數據集上相較于原模型,檢測精度提高了2.5個百分點,同時改善了誤檢、漏檢問題。改進后算法在主流的目標檢測算法的對比中有更明顯的優勢,更加符合實時檢測的高精度、實時性的要求。

改進后的算法滿足了實際工作中的需求,但在檢測速度上與原算法相比還有所不足。今后工作應著重于提升算法檢測速度、優化算法體積,以實現算法在邊緣計算設備中的部署。

猜你喜歡
絕緣子注意力卷積
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
1000kV耐張絕緣子串單片絕緣子的帶電更換技術
500kV絕緣子串含零值絕緣子時的電暈放電分析
絕緣子的常見故障及排除方法
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合