崔克彬,潘 鋒
(華北電力大學控制與計算機工程學院,河北 保定 071003)
輸電線路故障是造成電網大面積停電事故的重要原因之一,線路運維是保證電力系統安全的重要環節。絕緣子是輸電線路上的重要部分,材質主要為陶瓷、玻璃和復合材料。輸電線路可能因為絕緣子老化被擊穿,不及時發現將造成重大電力事故。目前使用飛行器進行輸電線路巡檢已成為常規巡檢方式,通過圖像處理對航拍圖像中的絕緣子自動定位,將提高電力維護和檢修的效率[1]。
故障絕緣子精確定位是實現故障判斷的前提,為滿足自動化檢測和高精度識別的要求,深度學習中的目標識別方法是個不錯的選擇,通過大量的樣本優化訓練模型,可以高效地檢測出故障絕緣子的位置。現實中難以獲得大量的故障絕緣子樣本,需要對有限的樣本進行擴增,GAN(Generative Adversarial Network)[2]模型是一種擴增樣本的有效方法。本文嘗試改進CycleGAN(Cycle-consistent Generative Adversarial Network)[3],并比較通過其他GAN模型生成的樣本,利用絕緣子識別的驗證性實驗來驗證本文方法的有效性。

Figure 1 Global architecture
隨著深度學習的發展,目標檢測在工業生產中得到廣泛應用。相較于傳統檢測算法,深度學習可以隨著訓練樣本的增加提升精確度,降低漏檢率。文獻[4]提出結合注意力機制的Faster-RCNN(Faster Regions-Convolutional Neural Network)絕緣子識別方法。文獻[5]提出一種改進的YOLOv3(You Only Look Once,version 3)絕緣子串定位與狀態識別方法。文獻[6]提出改進的Mask-RCNN絕緣子識別方法。上述方法都需要在大量的訓練樣本前提下,才能保證識別物體的精確度。傳統的數據擴增方法有旋轉、裁剪等,這些方法與GAN的不同之處在于,GAN是基于輸入的隨機噪聲圖像來學習生成樣本,內容變化無法預測,傳統的旋轉方法則是圖像像素點整體位移。
自GAN被提出,其在圖像處理領域的拓展應用非常廣泛,如高分辨率圖像生成[7]、手寫體漢字生成[8]、視頻預測[9]和人臉生成[10]等,用GAN預測視頻下一幀或生成圖像時需要大量數據,以獲得較好的訓練效果。
針對傳統GAN需要大量數據的問題,本文在CycleGAN網絡的基礎上進行改進,針對CycleGAN在產生絕緣子時出現的歪扭問題,將圖像輸入到2個子生成器生成圖像,即經過第1個子生成器的訓練生成絕緣子輪廓,將生成的絕緣子輪廓輸入到第2個子生成器,在輪廓邊界的限制下生成圖像顏色,從而在生成圖像的同時保持真實圖像的形狀。
本文選取CycleGAN為基礎模型,該模型整體流程為:從原始數據集X(無故障絕緣子數據集)中取一個數據x用生成器G生成數據y′,同理,從原始數據集Y(故障絕緣子數據集)中取數據y輸入到生成器F,生成x′。x″由y′經過生成器F生成得到,先后通過生成器G和生成器F,x″與原始數據x之差用于規范化生成的圖像。整體結構如圖1所示,先后分為生成對抗網絡模型和SSD(Single Shot Detector)[11]目標檢測模型,用GAN擴增數據集后對擴增的樣本記上標記,并按比例放入原始數據的訓練集和測試集中,進行SSD模型訓練,其中每一層都是卷積核大小不同的卷積操作,每一層都將作為最后測試提取特征的預測框。模型訓練好后,對故障絕緣子圖進行故障定位測試。
該模型包含2個生成器G和F,2個鑒別器DX與DY,訓練中X風格圖像生成Y風格圖像和反方向生成同步進行,G和F同步訓練,生成器G的生成方向為從X到Y,生成器F生成方向為從Y到X。損失函數如式(1)所示:
L(G,F,DX,DY)=LGAN(G,DY,X,Y)+
LGAN(F,DX,Y,X)+LcGAN(x,y,z)+
λLcyc(G,F)+L1(x,yc)
(1)
其中,λ表示可調參數,在CycleGAN訓練過程中,若總的損失函數值過大,則調小該值,若總體損失函數值過小,則調大該數值。X和Y分別表示兩類不同風格的原始數據集,x表示取自X集合中的元素,y表示取自Y集合中的元素。LcGAN(x,y,z)表示絕緣子圖像和生成的輪廓圖像之間的一種映射,x表示無故障絕緣子圖像,y表示原始故障絕緣子圖像,z為隨機向量噪聲;L1(x,yc)其中x表示原始絕緣子圖像,yc表示絕緣子對應的輪廓圖像,通過對原始圖像預處理提取輪廓得到,該損失函數用于規范和校正生成圖像的絕緣子輪廓。
式(1)右側前2部分相互對稱,其中第1項如式(2)所示:
LGAN(G,DY,X,Y)=Ey~Pdata(y)[lnDY(y)]+
Ex~Pdata(x)[ln(1-DY(G(x)))]
(2)
DX鑒別真實圖像,DY(G(x))表示鑒別器DY鑒別生成器G生成的樣本G(x)。鑒別器用于區別真偽,鑒別器鑒別輸入圖像時,結果為1表示鑒別其為原始數據集中的圖像,為0表示鑒別輸入圖像為生成圖像,鑒別器會出現誤判,即模型訓練程度較好時,生成器生成的圖像輸入鑒別器后的輸出為0.5,則鑒別器鑒別該圖像一半概率為真,一半概率為假。通過訓練鑒別器識別真實樣本和生成樣本,提高其識別真假的水平,而生成器則不斷生成質量更好的樣本。鑒別器和生成器二者互相對抗與學習,最終達到平衡,即生成器無法再生成更好的樣本,此時鑒別器鑒別生成樣本為真的概率為0.5。
式(1)右側第4項為循環一致性損失,具體展開如式(3)所示:
Lcyc(G,F)=Ex~Pdata(x)[‖F(G(x))-x‖1]+
Ey~Pdata(y)[‖G(F(y))-y‖1]
(3)
其中,F(G(x))表示圖像先經過生成器G,生成的圖像作為生成器F的輸入,這樣可以生成類似于原始數據集X的X′,X′用來衡量與X的差距,即生成的分布是否符合原始圖像的分布。
CycleGAN每次生成圖像后都要反向生成,通過重新生成圖像x″來計算x″與原始圖像的逐像素差距,從而使生成的圖像接近原始圖像,使圖像質量得到提升,但是圖像多樣性受到約束。本文模型借鑒了CycleGAN中的重建圖像步驟,生成輪廓后再生成圖像,用輪廓作為中介通過生成2次的圖像方法來擴大與原始圖像的差異,利于生成不同的缺陷絕緣子圖像。
原始圖像y經過生成器G生成圖像G(y),將G(y)作為反向生成器F的輸入,生成圖像F(G(y)),鑒別器DY鑒別結果。修改生成器后的損失函數如式(4)所示:
LGAN(G,DY,X,Y)=Ey~pdata(y)[lnDY(y)]+
Ex~pdata(x)[ln(1-DY(F(G(y))))]
(4)
此外,將隨機噪聲向量z輸入生成網絡G,生成輸出圖像G(x,z)。使用LcGAN(x,y,z)來訓練生成器G生成黑白輪廓圖像,其定義如式(5)所示:
LcGAN(x,y,z)=Ex,y[lnD(x,y)]+
Ex,z[ln(1-D(x,G(x,z)))]
(5)
L1(x,yc)為絕緣子圖像x轉換到輪廓圖像yc過程中的任務損失,由圖像各個位置所需輪廓決定其稀疏性。改進后的CycleGAN的網絡其余部分未做修改,有2個生成器和2個鑒別器,1個生成器由1個生成輪廓的子生成器和1個生成圖像色彩的子生成器構成。如圖2所示,生成器模型結構參考神經網絡風格轉換[12],使用2個步長為2的卷積層,9個殘差塊[13]及2個步長為0.5的卷積層。通過卷積操作,圖像尺寸逐漸變小,深度逐漸變深。接著進行步長為0.5的卷積操作,其圖像尺寸變大,最終圖像大小和輸入圖像相等。使用IN(Instance Normalization)[14]對圖像進行歸一化,IN可以產生更高像素的圖像。與BN(Batch Normalization)[15]相比,IN分別針對每個通道和每個空間維度進行計算。生成器中使用了殘差塊,通過將卷積后的信息與輸入信息相加,可以更好地得到原始樣本的潛在特征。
鑒別器架構類似于將全卷積神經網絡FCN(Fully Convolutional Network)[16]應用到生成對抗網絡中,經過4次步長為2的卷積后,在最后一層通過卷積生成一維輸出。

Figure 2 Structure of generator model
本文實驗硬件為Intel(R)Core(TM)i7,使用圖形處理單元(NVIDIA GTX1060)、CUDA9.0和CUDNN 7.0 對訓練過程進行加速,使用的深度學習框架為PyTorch。實驗數據集為泰迪杯競賽絕緣子數據集,通過旋轉裁剪得到2 500幅圖像,在SSD訓練時使用的框架為PyTorch,1 200幅用作訓練,800幅用于測試,400幅用于驗證,使用的圖像標注工具為LabelImg。
從實驗結果來看,CycleGAN生成的樣本總體質量較高,部分絕緣子盤片存在扭曲形變,且存在樣本生成單一的問題。DCGAN(Deep Convolutional Generative Adversarial Network)生成的圖像具有絕緣子的輪廓,生成圖像細節相對CycleGAN生成圖像的模糊。由于改進的CycleGAN在生成圖像輪廓的基礎上再生成圖像顏色,生成的絕緣子串整體平直,不存在原始CycleGAN生成的絕緣子串歪扭(圖4第2行第4列)的現象,達到了擴增樣本的目的。CycleGAN生成的樣本如圖3所示。DCGAN[17]生成的樣本如圖4所示。改進的CycleGAN部分測試樣例生成樣本如圖5所示。

Figure 3 Samples generated by CycleGAN

Figure 4 Samples generated by DCGAN

Figure 5 Samples generated by modified CycleGAN
CycleGAN通過訓練能夠學習到原始數據的分布,訓練之初生成器G中生成的圖像離真實圖像樣本的分布很遠,隨著訓練的進行,生成器G的生成數據也逐漸逼近真實數據的分布。CycleGAN的訓練損失曲線如圖6所示。

Figure 6 Loss curves of CycleGAN
CycleGAN模型在初始時刻,循環一致性損失很高,表明經過一個方向轉換后的圖像很難反方向轉換回來。在迭代50次時,循環一致性損失下降并靠近0.5。在第100個迭代輪次時,訓練損失曲線下降緩慢,此后不再有較明顯且持續的下降,表示此刻的訓練效果最優。
用基于深度學習的SSD目標檢測模型分別對原始數據和擴增后的數據進行訓練測試,SSD訓練檢測模型時使用VGG16預訓練作為初始訓練模型。數據擴增的部分由不同的GAN訓練后各自生成。
對生成的圖像使用廣義霍夫變換進行圖像輪廓定位,廣義霍夫變換是一種傳統的目標檢測算法,通過表的形式保存輪廓邊緣坐標,可處理任何形狀的圖形。
SSD目標檢測模型采用多尺度檢測的方法,因為檢測速度較快,經SSD訓練后的模型可以剪枝以應用到嵌入式設備中,其在工業界應用前景較好。在訓練時,設置學習率為0.001,最大迭代次數為7萬次,批處理大小設置為4。在訓練時每保存一次模型,就將該模型用于測試生成圖像。為生成的質量較好的圖像打上標簽,加入到SSD目標檢測的訓練集中,擴增的絕緣子數據集中掉串絕緣子與正常絕緣子的比例為9∶1,絕緣子掉串檢測結果如圖7所示。

Figure 7 Detection of cracked insulator
檢測結果如表1和表2所示,原始數據集經過旋轉操作,擴增的數據集經過SSD訓練,此時SSD算法的識別率為18.2%,誤檢率為20.2%。CycleGAN擴增后的數據集訓練的SSD模型,故障絕緣子識別率為21.6%,誤檢率為21.8%;DCGAN擴增后的數據集訓練的SSD檢測模型,故障絕緣子識別率為27.5%,誤檢率為26.8%;改進的CycleGAN擴增后的數據集訓練的SSD模型,絕緣子故障識別率為29.1%,誤檢率為26.2%。不同故障類型的識別結果如表1所示,DCGAN、CycleGAN和改進的CycleGAN模型擴增原始數據集,對于提升SSD目標檢測模型的故障識別率有效。改進的CycleGAN擴增的數據集訓練得到的SSD檢測模型,在掉串故障下的識別率為24.7%,DCGAN和CycleGAN擴增的數據集訓練得到的SSD檢測模型,在掉串故障下的識別率分別為22.5%和17.8%。對斷裂故障,改進的CycleGAN擴增的數據集訓練得到的SSD檢測模型的識別率為4.3%,DCGAN擴增的數據集訓練得到的SSD檢測模型的識別率為5%,CycleGAN擴增的數據集訓練得到的SSD檢測模型的識別率為3.75%。由于斷裂故障屬于細小特征,因而檢測效果不好。本文所用的輪廓監督的CycleGAN擴增的數據集訓練得到的SSD模型,掉串識別率高于CycleGAN擴增數據集后訓練得到的SSD模型的,提升了38.4%,比DCGAN擴增數據集后訓練得到的SSD模型的識別率高了10%。

Table 1 Detection results of different kinds of cracked insulator
當故障絕緣子為表面破損,或絕緣子因被鐵塔遮擋而只顯示不連續的段時,此時對絕緣子故障位置的檢測容易發生漏檢。如圖8所示為絕緣子串檢測。由于在給絕緣子串打標簽時,易將背景(鐵塔)和絕緣子串一起標記進去,因此會出現絕緣子串誤檢,但隨著訓練迭代的進行,卷積層不斷提取到絕緣子串特征,絕緣子串誤檢率會逐漸下降。

Table 2 Detection results on different datasets

Figure 8 Detetction of insulator string
針對絕緣子目標檢測圖像需要大量樣本和實際樣本不足的問題,本文提出了一種改進的CycleGAN絕緣子圖像生成方法,通過修改CycleGAN的損失函數學習缺陷絕緣子圖像的模式分布來生成混肴圖像,采用生成的圖像對原始數據集進行擴增。該方法在原始圖像中隨機添加噪聲構成圖像,沒有明確的建圖規則。在真實采集的圖像數據上進行測試,得到以下結論:
(1)基于改進的CycleGAN的圖像生成方法生成的圖像并非與樣本保持完全一致(由隨機噪聲生成的圖像與原始圖像逐像素相同概率很低),兩者在外形輪廓相似的情況下有所差異,這使得增強后的缺陷絕緣子圖像具有多樣性特征。
(2)相比于傳統的GAN模型,基于改進的CycleGAN模型,在圖像生成的多樣性和真實度上有了明顯提升。DCGAN生成的圖像,由于沒有規則制約生成圖像的輪廓,通過人眼判斷其真實度不如改進的CycleGAN模型的,誤檢率也較高。
(3)在生成對抗網絡模型訓練時,當訓練集中2幅圖像的絕緣子之間長寬比相差較大時,生成的絕緣子圖像給人的真實感不夠理想。絕緣子上的破損在訓練時易和灰塵混肴,不利于檢測。