張青華,李彩林,孫延坤,楊長磊
(山東理工大學建筑工程學院,山東 淄博255000)
近年來,隨著新能源的發(fā)展,我國的高壓和超高壓輸電線路覆蓋越來越廣,電網(wǎng)規(guī)模日益龐大,更加復雜,已由傳統(tǒng)電網(wǎng)向智能電網(wǎng)轉(zhuǎn)型。文獻[1]介紹了智能電網(wǎng)的重要性及發(fā)展趨勢,并提出了智能電網(wǎng)的自愈功能。當前的智能電網(wǎng)態(tài)勢要素所提取的信息主要包括電網(wǎng)故障信息、運行信息、設備狀態(tài)信息、環(huán)境信息、系統(tǒng)結(jié)構(gòu)信息等[2]。
絕緣子作為輸電線路中的特殊部件,對于整個輸電線路的安全運行起到至關重要的作用。據(jù)統(tǒng)計,500 kV輸電線路由于絕緣子故障引起的停運事故目前已成為電力系統(tǒng)故障中所占比例最高的[3]。利用無人機巡檢輸電線路不受地理、氣候等因素的影響,節(jié)約了大量的人力與物力,在巡檢中,無人機拍攝大量的照片,基于這些影像,進行絕緣子檢測是一種較為新穎的技術路線[4]。綜合以上問題,針對無人機拍攝的海量影像進行后期處理,快速準確地檢測出絕緣子,將有效提高智能電網(wǎng)的智能水平。目前的絕緣子影像識別方法主要分為以下兩類:
1)傳統(tǒng)的圖像處理方法
石麗根據(jù)污穢區(qū)域顏色突變導致的絕緣子灰度值的突然變化,對正常絕緣子和污穢絕緣子進行灰度歸一對比分析,判斷出污穢區(qū)域[5],但基于傳統(tǒng)特征的識別方法魯棒性較差,難以適應各種環(huán)境下的絕緣子識別;金立軍等提出一種可見光圖像顏色特征與支持向量機相結(jié)合的絕緣子污穢狀態(tài)識別方法,對絕緣子全局污穢進行等級判斷[6],然而該算法存在步驟繁瑣、檢測效率較低等問題。
2)利用深度學習的圖像目標檢測方法
自2012年卷積神經(jīng)網(wǎng)絡在ImageNet[7]比賽中取得優(yōu)異的成績后,深度學習的方法在圖像目標檢測領域開始大放異彩。目前基于深度學習的目標檢測根據(jù)檢測階段的劃分主要分為兩大分支:一個是兩步檢測,主要有Fast R-CNN[8]、Faster R-CNN[9]、R-FCN[10]等主流算法;另一個是YOLO(You Only Look Once)系列[11-13]、SSD(Single Shot Multibox Detector)系列[14-15]、Retina-Net[16]等基于回歸的檢測算法。一步檢測相比于兩步檢測具有更快檢測速度,但精度不如兩步檢測,但在滿足精度需求的情況下,更適用于實際應用。
近年來利用深度學習的方法來處理絕緣子識別的研究愈來愈多。文獻[3]提出了使用Fast R-CNN(Region-Convolutional Neural Networks)的目標檢測算法對絕緣子進行識別定位,利用深度卷積神經(jīng)網(wǎng)絡對絕緣子提取特征圖,結(jié)合超像素分割等圖像處理方法構(gòu)建用作顯著性檢測的SOM網(wǎng)絡,最后對得到的單個絕緣子,建立絕緣子串的數(shù)學模型,可以識別絕緣子的自爆缺陷,但該方法識別精度和效率仍較低。文獻[17]提出利用基于Faster R-CNN的目標檢測算法對航拍絕緣子進行識別定位,雖然該方法相較于Fast R-CNN識別精度和速度都有提高,但距離達到快速檢測的目的仍存在一定的差距。
綜合以上問題,筆者提出MFPSSD目標檢測網(wǎng)絡架構(gòu)。該網(wǎng)絡將多向特征金字塔結(jié)構(gòu)引入原始SSD檢測架構(gòu)中,提高了檢測框架的特征表達能力,同時利用K-means算法分析樣本數(shù)據(jù)設置默認框,可有效提高對絕緣子目標的識別的精度和速度,為絕緣子缺陷的檢測提供了有力的技術支撐。
2016年,Wei Liu等在ECCV會議上(EuropeanConference on Computer Vision)提出了SSD目標檢測算法。SSD是一種一步目標檢測算法,結(jié)合了YOLO的回歸思想和Faster R-CNN中Anchor的概念,SSD算法的整體網(wǎng)絡模型如圖1所示,是以VGG-16 Net[18]為基礎框架,采用VGG-16 Net的前五層網(wǎng)絡作為基礎網(wǎng)絡,然后又添加了多尺度的特征提取網(wǎng)絡,產(chǎn)生多個尺度的預測值,最后利用非極大值抑制產(chǎn)生最終檢測結(jié)果。目前,SSD算法根據(jù)輸入圖像的大小不同分為300×300和512×512兩個版本,通過對VOC2007標準數(shù)據(jù)集的測試,SSD 512×512版本具有更高的檢測精度,筆者對SSD512×512版本網(wǎng)絡結(jié)構(gòu)進行改進。
圖1 SSD 512×512網(wǎng)絡模型Fig.1 SSD 512×512 network model
SSD網(wǎng)絡的VGG-16基礎網(wǎng)絡首先在Image Net數(shù)據(jù)集進行預訓練,獲得的預訓練基礎網(wǎng)絡具有很好的圖像特征提取能力,為圖像目標檢測的遷移學習提供了很好的網(wǎng)絡基礎。
在二次訓練過程中,首先將預訓練完成的VGG-16網(wǎng)絡參數(shù)作為SSD模型初始化參數(shù),然后通過訓練集迭代回歸四個參數(shù)變量(Δcx,Δcy,ΔwΔh),達到目標檢測的目的,其中包括兩個損失函數(shù),一個是位置損失函數(shù)Lloc,進行目標的精確定位,另一個是置信度損失函數(shù)Lconf,判斷預測框的分類概率,代價函數(shù)就是上述兩類損失函數(shù)的加權平方和,具體計算公式如式(1):
(1)
式中,N為默認框與真實框匹配到的樣本數(shù)量,Lloc為預測框與真實框的smoothL1損失,Lconf是預測框與真實框的多類別的置信度softmax損失,具體計算公式如式(2):
(2)
原始的SSD算法為了準確識別不同尺度的目標,吸納特征金字塔(Feature Pyramid Networks,F(xiàn)PN)[19]的思想,在不同尺度的特征層提取多種尺度特征的特征圖(如Conv4_3,F(xiàn)C7,Conv6_2,Conv7_2,Conv8_2,Conv9_2,Conv10_2),然后借鑒Faster RCNN中Anchor的思想,在特征圖中的每個單元設置一系列的默認框作為檢測框,如圖2所示。
圖2 默認框設置方式Fig.2 Default box setting method
默認框的初始設置為6種,其計算公式主要包括兩部分:第一,寬高比ar;第二,各層特征圖默認框占輸入圖像的比例s。假設模型框架在檢測采用n層特征圖作為特征提取層,設置ar=[2,3,1/2,1/3],具體計算公式(3)如下:
(3)
由上面的計算公式可知,傳統(tǒng)的通過手動設置默認框?qū)捀弑鹊姆绞饺テヅ淠繕宋矬w,默認框?qū)捀弑鹊男螤钤O置越多,訓練和檢測的時間越長,初始的默認框?qū)捀弑仍O置為[1,2,3,1/2,1/3],但是有部分的寬高比設置不符合實際檢測目標的真實情況,筆者提出利用K-means算法對實際檢測目標的寬高比進行聚類,消除了手動設置的盲目性,可有效提高檢測速度。
針對本研究對于絕緣子的檢測任務,通過對絕緣子訓練數(shù)據(jù)集進行K-means聚類,得到聚類后的寬高比,具體步驟如下:
1)輸入K值,我們需要通過聚類得到K個分組,設置K=5。
2)從數(shù)據(jù)集中隨機選取K個默認框?qū)捀弑茸鳛槌跏假|(zhì)心,集合每一個樣本點,計算與每一個初始質(zhì)心的距離,樣本點與哪個初始質(zhì)心距離近,就屬于那個類。
3)按距離對所有樣本分完組后,計算每個組的均值并作為新的聚類中心。
4)重復前三步,直到新的質(zhì)心與原質(zhì)心相等。
5)最終得到K種樣本默認框的長寬比。聚類后的結(jié)果見圖3。
圖3 寬高比聚類結(jié)果Fig.3 Clustering results of aspect ratio
根據(jù)K-means聚類結(jié)果重新設置默認框參數(shù),對于絕緣子目標,其實際測量寬高比的范圍集中在1/5、1/4、2、4和5。因此將初始的默認框設置修改為1/4、4、1、2、1/5和5,這6種默認框的長寬比作為深度學習模型的超參數(shù)(hyperparameter),減少了調(diào)整超參數(shù)的時間,而且加快模型的訓練速度。
SSD檢測框架利用不同尺寸的特征映射圖進行目標檢測,這種結(jié)構(gòu)對于高層語義信息和低層位置信息并沒有充分融合,因此對于中小目標的檢測效果并不理想。分析SSD網(wǎng)絡結(jié)構(gòu)可知,低層特征映射圖主要包含圖像的細節(jié)信息,對小目標的檢測較為敏感,而傳統(tǒng)的SSD檢測架構(gòu)使用Conv4_3特征層檢測小目標,雖然該層特征也會隨著特征提取網(wǎng)絡的層層傳遞,但隨著層層卷積、池化的作用,小目標的特征信息逐漸流失。筆者提出一種將多向特征金字塔結(jié)構(gòu)引入SSD檢測框架的MFPSSD網(wǎng)絡,充分利用低層網(wǎng)絡的細節(jié)特征和高層網(wǎng)絡的語義信息,多向特征金字塔網(wǎng)絡結(jié)構(gòu)如圖4所示。
圖4 多向特征金字塔Fig.4 Multidirectional feature pyramid
其中,C1~C5為輸入特征層,N2~N4為中間特征層,M1~M5為輸出特征層,相同顏色的特征映射圖具有相同的特征維度,具體連接步驟如下:
1)自上而下的融合路徑。對輸入特征圖的不同尺寸的特征映射圖,采用自上而下的路徑。如圖4所示,中間路徑N4,首先將C5進行下采樣至與C4相同的尺寸并相加,最后進行卷積操作得到N4;對于N2~N3,采用傳統(tǒng)的自上而下的融合方式,具體計算方式如下公式(4):
(4)
2)自下而上和跳躍連接的融合路徑。輸出路徑M1,將N2下采樣至與C1相同尺寸的特征映射圖,然后相加后進行卷積操作得到M1。對于M2~M4,由三種連接方式進行特征融合,例如M2:第一,自下而上的連接方式,首先將低層特征映射圖M1進行上采樣得到與N2相同尺寸的特征映射圖;第二,跳躍連接方式,C2直接通向輸出路徑與其它特征映射圖融合;第三,側(cè)向連接方式,經(jīng)由中間路徑的N2與輸出路徑的低一層特征映射圖進行融合。對于M5直接由M4上采樣至與C5相同尺寸的特征映射圖,然后與C5相加后進行卷積操作得到M5,具體計算公式如式(5):
(5)
Mi=Conv(Ci+Ni+Resize(Mi-1)),i∈{2,3,4}
加入多向特征金字塔結(jié)構(gòu)后的整體網(wǎng)絡框架如圖5所示。在原來多尺度特征提取的基礎之上加入多向特征金字塔的結(jié)構(gòu)。SSD檢測網(wǎng)絡使用沒有經(jīng)過特征融合的6個尺寸的特征映射圖進行多尺度檢測,而MFPSSD檢測網(wǎng)絡利用7個尺寸的特征映射圖,其中將不同尺寸的特征映射圖Conv4_3,Conv7,Conv6_2,Conv7_2,Conv8_2經(jīng)過多向特征金字塔結(jié)構(gòu)進行融合,輸出與輸入尺寸相同的特征映射圖,然后與Conv9_2、Conv10_2一樣,流向目標檢測網(wǎng)絡,使網(wǎng)絡充分利用多層特征信息進行檢測。
圖5 MFPSSD檢測框架Fig.5 MFPSSD detection framework
原始SSD算法使用SGD算法進行損失函數(shù)的優(yōu)化,但該算法的缺點是下降速度較慢,并可能收斂于局部最優(yōu)。Adam算法相較于SGD主要優(yōu)勢在于可利用梯度的1階矩估計和2階矩估計動態(tài)調(diào)整每個參數(shù)的學習率,有利于收斂于全局最優(yōu)點。因此本文引入Aadm算法用于優(yōu)化損失函數(shù)。主要公式如式(6):
(6)
本研究實驗數(shù)據(jù)集主要包括3個數(shù)據(jù)集:ImageNet、DOTA(A Large-scale Dataset for Object Detectionin Aerial Images)[20]和高壓塔缺陷影像數(shù)據(jù)集。
ImageNet數(shù)據(jù)集主要用于模型預訓練,該數(shù)據(jù)集具有140萬張標記圖片,1 000種不同類別,是針對圖像識別的全球最大公開數(shù)據(jù)集之一,利用該數(shù)據(jù)集進行模型預訓練可以使模型具有更好的泛化能力,并且加快二次訓練的速度。
DOTA數(shù)據(jù)集是包含2 806張航空影像的數(shù)據(jù)集,尺寸大約為4K×4K,包含15個類別共計188 282個實例,其中包含較多的中小目標。本研究主要利用該數(shù)據(jù)集對改進后的SSD算法對中小目標的檢測精度做對比分析。
高壓塔缺陷影像數(shù)據(jù)集是本研究利用無人機航拍高壓塔制作的數(shù)據(jù)集,該數(shù)據(jù)集共計約2萬張影像,涵蓋絕緣子、銹跡、塔標等類別。
1)實驗環(huán)境:實驗軟件環(huán)境為Ubuntu18.04系統(tǒng)、tensorflow深度學習框架。實驗硬件環(huán)境為Intel Xeon E3-1220 v5處理器、GTX1070 8G顯卡、16G內(nèi)存。
2)數(shù)據(jù)準備:實驗使用的數(shù)據(jù)集首先進行數(shù)據(jù)增強,主要通過隨機改變影像的飽和度、亮度、對比度、亮度,同時對影像進行隨機裁剪、鏡像等操作,最后對影像進行歸一化處理。
3)模型預訓練:根據(jù)遷移學習的原理,利用模型網(wǎng)絡淺層提取特征的一致性,在具有大量數(shù)據(jù)的公共數(shù)據(jù)集進行模型的預訓練,然后再針對本文所制作的特有數(shù)據(jù)集進行模型微調(diào),以達到充分利用先驗模型的目的。
4)精度評估方法:使用平均精度(Average Precision,AP)來評估訓練所得絕緣子模型,計算公式如下:
(7)
AP的幾何意義即P-R曲線與坐標軸所圍面積,其中P表示訓練精準率,R表示訓練召回率,計算公式分別定義為:P=TP/(TP+FP),R=TP/(TP+FN),TP表示正確識別為絕緣子的數(shù)量,F(xiàn)P表示錯誤識別為絕緣子的數(shù)量,F(xiàn)N表示錯誤識別為非絕緣子的數(shù)量。
5)速度評估方法:使用每秒幀速(Frame Per Second,F(xiàn)PS),即每秒內(nèi)處理的影像數(shù)量,F(xiàn)PS越大,速度越快。計算公式如下:
FPS=F/T
(8)
式中,F(xiàn)為處理影像數(shù),S為處理時間,單位為秒。
6)超參數(shù)設定如表1所示。
表1 超參數(shù)設定Table 1 Hyperparameter setting
3.3.1 MFPSSD算法訓練分析
在原始數(shù)據(jù)進入訓練階段前,在數(shù)據(jù)層對原始數(shù)據(jù)進行均值處理和數(shù)據(jù)增強,數(shù)據(jù)增強采用隨機擾動、隨機裁剪、隨機擴張及縮放操作,初始訓練的學習率采用warmup[21]的策略,學習率設置為0.01,前200次訓練,模型先由0.001的學習率緩慢地增加至0.01,然后學習率按照余弦衰減法[22]緩慢衰減至0.001。學習率變化圖如圖6所示。訓練損失曲線如圖7所示,訓練初始階段,損失值隨著迭代次數(shù)迅速下降,在第50個epoch時,損失值下降速度趨于平緩,但是仍有下降,最終在第350個epoch階段訓練基本平穩(wěn),這說明訓練模型的超參數(shù)設置合理。
圖6 Warmup學習率變化Fig.6 Warmup learning rate change
圖7 訓練損失曲線Fig.7 Training loss curve
模型訓練策略采用Adam算法取代原來的SGD算法進行損失函數(shù)優(yōu)化。為分析Adam算法的有效性,分別用Adam和SGD兩種訓練策略對SSD算法進行訓練,并在高壓塔數(shù)據(jù)測試集進行精度評定,結(jié)果如表2所示。
表2 不同優(yōu)化算法性能對比Table 2 Performance comparison of different optimization algorithms
由表2中第一行數(shù)據(jù)和第二行數(shù)據(jù)的AP值對比可知:當損失函數(shù)不變時,使用Adam優(yōu)化算法訓練的SSD300模型精度要高于使用SGD優(yōu)化算法訓練的SSD300模型精度;同樣對比表2中第三行數(shù)據(jù)和第四行數(shù)據(jù)的AP值可知:使用Adam優(yōu)化算法得到的模型精度高于使用SGD優(yōu)化算法得到的模型精度。
3.3.2 MFPSSD算法性能分析
為更好地分析MFPSSD算法的性能,同時利用訓練集訓練了Faster R-CNN算法和SSD算法作為對比,并在測試集進行精度評定。
由表3中第五列數(shù)據(jù)可知,MFPSSD算法精度明顯高于其他算法,但是MFPSSD網(wǎng)絡相較于SSD300檢測速度有所降低,其可能原因是多向特征金字塔結(jié)構(gòu)增加的特征計算的時間,但總體上MFPSSD 算法兼具檢測精度和檢測速度的性能。
表3 不同算法在高壓塔缺陷數(shù)據(jù)集中的檢測結(jié)果Table 3 Test results of different algorithms in defect data set of high pressure tower
3.3.3 檢測結(jié)果對比分析
為有效驗證本文提出算法的有效性,將本文算法分別在高壓塔缺陷數(shù)據(jù)集和DOTA數(shù)據(jù)集進行訓練和驗證。在高壓塔缺陷測試集的檢測結(jié)果如圖8所示,(a)(b)、(c)(d)分別為對絕緣子和銹帽的算法改進前后檢測結(jié)果。通過檢測結(jié)果分析可知,MFPSSD網(wǎng)絡模型,對影像的檢測精度更高,針對其他模型無法檢測出的小目標仍具有較好的檢測效果,有效降低了中小目標的漏檢率。
圖8 改進前后檢測結(jié)果Fig.8 Test results before and after improvement
在DOTA測試集的檢測結(jié)果如圖9所示,(a)、(b)分別是算法改進前后對密集小目標車輛的檢測結(jié)果,針對檢測目標較為密集的情況下,改進后的算法明顯有更好的檢測精度。綜合以上實驗分析,改進后的算法具有較強的魯棒性。
圖9 改進前后對車輛檢測結(jié)果Fig.9 Vehicle test results before and after improvement
通過對SSD算法進行改進,提出了MFPSSD目標檢測網(wǎng)絡。針對SSD算法默認框的設置特點,使用K-means算法聚類分析數(shù)據(jù)集的待檢測目標的形狀特征;根據(jù)SSD多尺度檢測的特點,引入了多向特征金字塔結(jié)構(gòu),同時在損失函數(shù)優(yōu)化過程中使用Adam算法取代SGD算法,最終使得檢測模型具有更好的檢測精度和檢測速度。實驗分析表明,MFPSSD算法在絕緣子目標較小的情況下,仍可以精確檢測絕緣子,有助于為下一步絕緣子缺陷檢測排除干擾,但仍存在對遮擋目標會出現(xiàn)漏檢、檢測精度低的問題,因此如何提高對遮擋目標的檢測精度將是主要的研究方向。