王義軍,曹培培,王雪松,閆星宇
(1.東北電力大學電氣工程學院,吉林 吉林 132012;2.國網(wǎng)吉林省電力有限公司通化供電公司,吉林 通化 134000;3.國網(wǎng)冀北電力有限公司張家口供電公司,河北 張家口 075001)
絕緣子在輸電線路運行中擔負著電氣絕緣和機械固定的重任.據(jù)統(tǒng)計,電力設(shè)備中絕緣子故障的頻率最高[1-4].為了保證電網(wǎng)的正常運行,絕緣子故障檢測已成為電力巡檢的首要任務(wù).電力巡檢部門近年來開始使用無人機進行輸電線路故障檢測,工作人員對海量圖片的主觀判斷會有漏檢、誤檢等問題,極易產(chǎn)生安全隱患,迫切需要一種自動識別故障的方法.
基于航拍圖像的絕緣子自爆檢測方法目前可分為三類:人工觀察法、傳統(tǒng)目標檢測法和深度學習檢測法[5].人工觀察法受主觀因素影響較大,面對海量圖像會出現(xiàn)視覺疲勞,易發(fā)生誤檢、漏檢現(xiàn)象;傳統(tǒng)目標檢測法使用滑動窗口生成感興趣區(qū)域(ROI),利用諸如SIFT、Haar、HOG、SURF等算子獲取固定長度的特征向量,提取的特征需要人工事先確定.存在計算量大、對硬件要求高、學習效率低、學習能力差等缺點[6-11];深度學習法則能在很大程度上改善傳統(tǒng)目標檢測法的不足.
目前使用較多的深度學習目標檢測模型主要有兩大類:雙階段(Two Stage)檢測模型和單階段(One Stage)檢測模型.雙階段檢測模型將目標檢測分為特征提取和特征分類兩個步驟,檢測精度高但是不能滿足實時性要求.具有代表性的模型包括R-CNN系列模型[12-13].單階段檢測模型將目標檢測問題轉(zhuǎn)化為回歸問題,可以直接預(yù)測出故障位置和故障類別,可以在保證檢測精度的同時滿足實時性要求,具有代表性的模型包括SSD[14]和YOLO系列模型[15-17].
為了在海量絕緣子航拍圖像中快速準確地識別自爆故障,文章以單階段檢測模型YOLOV3-tiny為基礎(chǔ),用K-means++對Anchor box重新聚類,借鑒Resnet網(wǎng)絡(luò)跳躍連接思想對絕緣子自爆特征進行提取,在不影響檢測速度的同時,提高絕緣子自爆故障的檢測準確率.
YOLOV3-tiny是基于回歸的端到端深度學習目標檢測模型,借鑒特征金字塔模型(FPN)的思想輸出兩個特征圖,與其他模型相比,最大的特點就是速度快,可以在移動端或設(shè)備端運行[18].YOLOV3-tiny模型主要由卷積層和池化層組成,其結(jié)構(gòu)如圖1所示.圖1中Conv代表卷積層,Pool代表池化層,數(shù)字代表輸出特征圖大小,紅色為最終輸出的特征圖.
YOLOV3-tiny模型將輸入像素為416×416的圖像送入卷積神經(jīng)網(wǎng)絡(luò)進行特征提取,最終得到13×13和26×26兩個尺度的特征圖,將特征圖分別劃分為13×13和26×26個網(wǎng)格(Grid Cell),若目標中心在某個網(wǎng)格內(nèi),則該網(wǎng)格負責檢測該目標,最終根據(jù)置信度信息對檢測結(jié)果進行非極大值抑制(NMS).具體的檢測流程,如圖2所示.文章中每個網(wǎng)格借助候選框參數(shù)(Anchor Box)預(yù)測3個邊界框(Bounding Box),與真實邊界框IOU最大的即為預(yù)測邊界框.每個邊界框包含目標4個坐標信息、1個置信度信息和1個類別信息,模型最終輸出維數(shù)為S×S×[B×(4+1+1)].置信度信息的計算公式為[19-20]
(1)
公式中:Pr(obj)為網(wǎng)格是否包含某個目標,包含為1,不包含為0;IOU為預(yù)測邊界框和真實邊界框的交并比.
圖1虛線框內(nèi)為YOLOV3-tiny模型的主干網(wǎng)絡(luò),由7個卷積層和6個池化層組成,卷積層由多個卷積核構(gòu)成,通過反向傳播算法在訓練時優(yōu)化權(quán)重參數(shù),通過卷積核和非線性層變換提取圖片特征.池化層通常位于卷積層之后,主要對卷積層輸出的特征圖相鄰區(qū)域的特征信息聚合統(tǒng)計,進行進一步選擇,具有特征降維、防止過擬合的作用.每層的特征圖均由多個卷積核采用局部連接和權(quán)值共享方式特征提取得到.
YOLOV3-tiny模型每個卷積層后都連接一層批歸一化(Batch Normalization,BN)和激活函數(shù)帶泄露修正線性單元(Leaky-Relu).BN層用來解決訓練過程中相同的輸入由于參數(shù)優(yōu)化引起的不同的輸出問題,把逐漸向非線性函數(shù)映射后向取值區(qū)間極限飽和區(qū)靠攏的輸入分布強制拉回到均值為0,方差為1的比較標準的正態(tài)分布,使得非線性變換函數(shù)的輸入值落入對輸入比較敏感的區(qū)域,以此避免梯度消失問題,同時加快網(wǎng)絡(luò)的訓練速度[21];Leaky-Relu使網(wǎng)絡(luò)能夠?qū)Ψ蔷€性擬合,提高模型的表達能力.與其他激活函數(shù)諸如Sigmoid、Tanh等相比,Leaky-Relu簡單有效,可以在一定程度上避免梯度消失問題[22].
YOLOV3-tiny模型在主干網(wǎng)絡(luò)之后,又經(jīng)過3個卷積層輸出尺度為13×13的特征圖,對于像素為416×416的航拍圖像,此特征圖的像素點感受野較大,適合粗粒度目標檢測.為了實現(xiàn)對細粒度特征的精確檢測,對第9層輸出的特征圖上采樣后與第5層特征圖融合,經(jīng)過2個卷積層后輸出感受野較小的26×26尺度的特征圖[23].多尺度融合預(yù)測能夠加強小目標檢測的精確度.
損失值是估計訓練階段神經(jīng)模型收斂結(jié)果的重要標準,損失曲線是否收斂反映模型是否穩(wěn)定.在訓練階段,YOLOV3-tiny模型使用的損失函數(shù)(loss)考慮了位置誤差(coordError)、置信度誤差(noobjError)以及類別誤差(objError),它們的計算如公式(2)~公式(6)所示.
loss=coordError+objError+noobjError+classError
,
(2)
(3)
(4)
(5)
(6)
λnoobj可以解決包含目標和不包含目標的網(wǎng)格數(shù)量不均衡問題.目標在一張圖像中個數(shù)較少,包含目標的網(wǎng)格數(shù)量和不包含目標的網(wǎng)格數(shù)量相差懸殊,通過設(shè)置較小的λnoobj,可增加包含目標的網(wǎng)格對損失函數(shù)的貢獻.
考慮到Y(jié)OLOV3-tiny最初用于檢測車輛、行人等,文章對其主干網(wǎng)絡(luò)和Anchor參數(shù)進行改進,提出一種面向絕緣子自爆故障的端到端檢測模型,其結(jié)構(gòu)如圖3所示.
卷積神經(jīng)模型能夠提取絕緣子缺失圖像的低、中、高層特征,模型越深,提取到不同層的語義信息也就越豐富.以一副背景簡單的絕緣子自爆圖片為例,對特征圖進行可視化,第3層、5層、7層提取的特征如圖4所示.
由圖4可以明顯看出,淺層卷積特征包含較多的邊緣紋理等細節(jié)信息,深層卷積特征則包含較高的語義特征.如果單純的關(guān)注其中的一方,就會造成另一方一定程度的信息丟失,模型檢測效果就會大打折扣.
殘差模型中的跳躍連接,將不同層的特征進行融合,在一定程度上解決了傳統(tǒng)的卷積層在提取圖片特征時存在的信息丟失問題.在此過程中并沒有引入額外的參數(shù)和計算復雜度,保證了模型的訓練速度,提升了模型的訓練效果[25].殘差網(wǎng)絡(luò)的思想是將深層網(wǎng)絡(luò)通過恒等函數(shù)H(x)=x變換為淺層網(wǎng)絡(luò),殘差網(wǎng)絡(luò)中的跳躍連接使得恒等函數(shù)的擬合變得更加容易.若輸入x時其基礎(chǔ)映射為H(x),學習到的殘差函數(shù)為F(x)=H(x)-x,那么輸出的特征為F(x)+x,當殘差F(x)=0時,模塊做的就是恒等映射,并且沒有增加額外的參數(shù)以及計算復雜度.殘差模型由殘差單元構(gòu)成,殘差單元結(jié)構(gòu)如圖5所示,其中各層間的參數(shù)傳遞過程如公式(7)~公式(10)所示.殘差單元包括映射部分和殘差部分,映射部分為圖5上部分的直線部分,殘差部分為含卷積的部分.
z[l+1]=W[l+1]a[l]+b[l+1]
,
(7)
a[l+1]=g(z[l+1])
,
(8)
z[l+2]=W[l+2]a[l+1]+b[l+2]
,
(9)
a[l+2]=g(z[l+2]+a[l])
,
(10)
公式中:W、b分別為網(wǎng)絡(luò)權(quán)重參數(shù)和偏置參數(shù);a,z為層間的輸入或輸出;g(·)為激活函數(shù).
文章使用兩個殘差單元代替YOLOV3-tiny主干模型中的第3、第6個的卷積層(圖3中紫色模塊),并借鑒殘差網(wǎng)絡(luò)中跳躍連接的思想進一步將淺層特征和深層特征進行融合(圖3中主干網(wǎng)絡(luò)中的紅色連接線),達到學習豐富特征的目的.
YOLOV3-tiny模型的預(yù)測基于事先確定的一組或多組Anchor Box,Anchor Box是根據(jù)訓練集中標注的目標信息統(tǒng)計出目標最有可能的形狀和尺寸,故其維度直接影響模型檢測效果.YOLOV3-tiny模型基于COCO數(shù)據(jù)集使用K-means算法對Anchor Box進行量化,對于文章研究的自爆絕緣子數(shù)據(jù)集不太適用.傳統(tǒng)的K-means聚類方法因使用歐幾里德距離函數(shù),受邊界框的影響較大.為了使模型做出更合理的預(yù)測,文章采用預(yù)測框和Anchor Box面積的交并比IOU,通過分別計算框與聚類中心的IOU,IOU值越大,說明這兩個框的距離越近,從而距離度量d應(yīng)該越小.計算k個中點與所有boxes的平均IOU的方法為
(11)
公式中:boxes為所有Anchor Box的寬高;clusters為k個隨機中心點的寬高;Iiou為中心框和聚類中心的交并比;nk為第k個聚類中心中Anchor Box的個數(shù);n為Anchor Box的總個數(shù);k為聚類中心個數(shù);Avg-IOU為最終IOU的平均值.
通過聚類方法,基于平均IOU選擇九個錨箱來預(yù)測邊界框.聚類使用的距離函數(shù)為
d=1-Avg-IOU
.
(12)
文章在絕緣子自爆數(shù)據(jù)集基礎(chǔ)上選擇k=1~10進行聚類,得到的結(jié)果如圖6所示.由圖6可知,在k=6之后折線逐漸平緩,所以選擇預(yù)測框的大小對應(yīng)6個聚類中心.
在絕緣子自爆數(shù)據(jù)集上聚類出的結(jié)果是(11,10),(18,22),(26,32),(32,41),(49,55),(70,85).YOLOV3-tiny 26×26的特征圖使用前3個Anchor,13×13的特征圖使用后3個Anchor,對在圖像中所占大小不一樣的絕緣子進行檢測,最終每個網(wǎng)格都會有兩個預(yù)測框,每個預(yù)測框都有5個參數(shù),分別為:(x,y,w,h,confidence),還要有一個類別的概率,所以兩個尺度的輸出深度都是3×(5+1)=18,這樣既可以加快損失函數(shù)的收斂,又可以減少Anchor Box帶來的誤差.
深度學習模型的訓練需要以大量樣本為支撐,豐富的樣本具有豐富的特征,考慮到輸電線路所處背景復雜,圖像的拍攝受光照、天氣等因素的影響,從不同地區(qū)收集的不同天氣、不同季節(jié)下的絕緣子自爆圖片337張.為了提高模型泛化能力,避免過擬合,通過翻轉(zhuǎn)、旋轉(zhuǎn)、添加噪聲等數(shù)據(jù)增強技術(shù)將數(shù)據(jù)擴充到1 000張.
表1 絕緣子自爆數(shù)據(jù)集
將1 000張圖片用圖片縮放方法統(tǒng)一調(diào)整像素大小為模型需要的416×416,統(tǒng)一連續(xù)命名后存儲到同一文件夾;使用Labelimg軟件對圖片中的絕緣子自爆目標進行標注,獲取反映故障對象信息的的xml文件,放到另一文件夾;從1 000張圖片中隨機選取200張作為測試數(shù)據(jù)集(包含243個自爆絕緣子),余下的800張作為訓練數(shù)據(jù)集,并生成相應(yīng)的txt文檔,以供模型訓練和測試使用.數(shù)據(jù)集具體信息如表1所示.
實驗采用的圖形處理單元為GTX 1060,顯存為4 GB,采用深度學習框架Tensorflow搭建模型.訓練時采用隨機梯度下降算法,設(shè)置批處理大小為24,迭代次數(shù)為10 000,學習率為0.001,衰減系數(shù)為0.000 5.訓練完成后,訓練過程中的數(shù)據(jù)被整合,得到的損失曲線結(jié)果如圖7所示.
由圖7可以看出,改進模型的loss值剛剛開始超過1 000,然后急劇下降.當?shù)螖?shù)達到10 000次時,loss曲線收斂于0.96左右,比原YOLOV3-tiny模型降低1.16,改進模型的收斂結(jié)果較為理想.
文章采用檢測采用目標檢測領(lǐng)域常用的評價指標平均精確率(Average Precision,AP)和每秒傳幀數(shù)(Frames Per Second,FPS)來評估模型性能.查全率-查準率(P-R)曲線反映的是不同R與對應(yīng)R下最大P間的關(guān)系,AP大小等于P-R曲線下的面積大小,反映模型針對某類故障的檢測性能,相關(guān)計算如公式(13)~公式(16)所示.
R=XTP/(XTP+XFN)
,
(13)
P=XTP/(XTP+XFP)
,
(14)
,
(15)
(16)
公式中:XTP為檢測正確的目標個數(shù);XFN為未被檢測出的目標個數(shù);XFP為錯檢的個數(shù);tavg為檢測一張航拍圖像需要的時間.
模型檢測結(jié)果如表2所示,從表2中數(shù)據(jù)可以看出:
(1)改進模型改善了錯檢、漏檢問題.改進模型的漏檢個數(shù)為10,比YOLOV3-tiny模型減少44.44%;錯檢個數(shù)分別為9,比YOLOV3-tiny模型減少55%.
(2)改進模型提高了查全率R和查準率P.改進模型的查全率為95.73%,比YOLOV3-tiny模型提高了3.8個百分點;查準率為96.14%,比YOLOV3-tiny模型提高了5.03個百分點.
(3)改進模型提高了平均精確率AP.改進模型的AP為94.57%,比YOLOV3-tiny模型提高了8.35個百分點.
以上數(shù)據(jù)表明,文章的改進方法能夠改善錯檢漏檢問題,改進模型較原YOLOV3-tiny模型具有較好的表達能力,均得益于文章將殘差網(wǎng)絡(luò)引入模型主干網(wǎng)絡(luò),提高了模型對小目標的檢測能力.
表2 測試P、R結(jié)果
改進模型與YOLOV3-tiny、SSD、Faster R-CNN在絕緣子自爆測試集檢測的AP和FPS結(jié)果,如圖8所示.觀察圖中數(shù)據(jù)不難發(fā)現(xiàn):
(1)改進模型的AP最高.改進模型的AP以92.57%分別高于SSD模型6.11個百分點、高于Faster R-CNN模型3.29個百分點.與YOLOV3-tiny模型8.35個百分點、
(2)改進模型的FPS與YOLOV3-tiny模型的相等.也就是說,兩者的檢測速度一樣快,均為38 f/s,文章的改進方法并沒有影響模型的檢測速度.二雙階段檢測模型Faster R-CNN的檢測速度只有12 f/s,這也是雙階段檢測模型中區(qū)域提議模型存在導致的結(jié)果.
改進模型部分檢測結(jié)果如圖9所示,其中標簽里insbl表示模型檢測類別為絕緣子自爆故障,后面的數(shù)字表示確定是此類別的置信度分數(shù).從圖9中絕緣子自爆故障的標注可以直觀看出改進模型可以準確地識別出尺寸較小的絕緣子自爆故障以及支持一張圖中多處故障同時檢測.
上述實驗結(jié)果表明,綜合檢測速度和檢測準確率兩個指標來看,文章改進模型在眾多模型中表現(xiàn)最優(yōu).
文章提出一種基于深度學習的改進模型用于解決絕緣子自爆海量圖片與人工檢測效率不平衡不匹配的問題,將殘差模型引入快速性較好的YOLOV3-tiny模型提高檢測精度,并采用K-means++算法基于絕緣子自爆數(shù)據(jù)集對Anchor Box重新聚類.實驗結(jié)果表明,改進后的模型在保持實時檢測速度的同時,改善了錯檢、漏檢問題,AP達到92.57%,能夠快速準確的識別絕緣子自爆故障,在眾多深度學習模型中性能最優(yōu).