梁禮明,鄒 培
(江西理工大學電氣工程與自動化學院,江西贛州 341000)
隨著我國智能電網技術的快速發(fā)展,各種復雜環(huán)境下的輸電線路建設已經取得巨大成功,然而輸電線路常年暴露在大自然中,時常會出現(xiàn)一些故障,給電力輸送的穩(wěn)定性和安全性均造成較大影響[1]。輸電線路出現(xiàn)故障很大程度上是受絕緣子的影響。絕緣子是輸電線路中重要的組成部分,其一般由玻璃或陶瓷材料制成,可以增加爬電距離、提高輸電效率,但容易出現(xiàn)破損、掉串等問題。為提高電網的安全系數(shù),必須經常對輸電線路的絕緣子進行檢測,以保證電力輸送質量。
傳統(tǒng)的絕緣子檢測方法一般依靠人工方式提取絕緣子的特征信息,如絕緣子的外觀、顏色以及輪廓特征等。例如,尚方等[2]提出一種基于絕緣子顏色特征和空間特征的缺陷檢測方法,該方法在復雜多變的背景環(huán)境下也能夠較好地檢測出絕緣子故障,模型魯棒性較強;方挺等[3]認為絕緣子的破損和掉串問題會嚴重影響輸電線的絕緣能力,為了及時檢測出絕緣子故障,其提出一種基于絕緣子輪廓特征的故障檢測方法,該方法首先定位出絕緣子的輪廓,然后通過計算絕緣子數(shù)目判斷出其是否出現(xiàn)掉串等問題。傳統(tǒng)的絕緣子檢測方法過于依賴特征的人工提取,提取結果好壞直接影響到模型檢測絕緣子的精確度。
自深度學習理論被提出,業(yè)界開始采用卷積神經網絡(Convolutional Nerural Network,CNN)自適應學習絕緣子的語義特征,大幅度提高了檢測模型的泛化性能和魯棒性。目前主流的目標檢測算法可分為二階段算法、關鍵點算法、一階段算法3 類。二階段算法首先提取目標的候選區(qū)域(錨框),然后對該區(qū)域進行分類和回歸,代表算法包括Faster RCNN(Faster Region-CNN)[4]和SSD(Single Shot Multibox Detector)[5]。二階段法由于提取了更為精確的候選區(qū)域,檢測精度較高,但步驟稍顯繁瑣,從而導致檢測速度較慢。例如,Liu 等[6]基于Faster R-CNN 算法提出一種檢測絕緣子故障檢測方法,能以較高的精確度檢測出絕緣子故障位置,但未能解決該類算法速度較慢的問題。關鍵點算法摒棄了錨框機制生成候選區(qū)域的步驟,采用目標關鍵點生成點范圍內的高斯分布區(qū)域,從而對點區(qū)域內的目標像素進行分類和回歸,代表算法包括CornerNet[7]、CornerNet-lite[8]、Centernet-triplets[9]。該類算法采用檢測目標的多個關鍵點預測目標的位置和類別,但一幅圖像中的目標并不是單一的,可能存在多個,在預測出大量關鍵點信息時,需要對這些關鍵點進行分組,以找出屬于同一目標的關鍵點,該步驟不僅耗時而且極易產生錯誤分組。針對這個問題,Zhou 等[10]提出一種CenterNet 算法,其僅用目標的中心點信息作為預測框,由于模型僅預測出每個目標的中心點,不需要對關鍵點進行分組,大幅度提高了模型的檢測速度,但中心點特征信息遠少于多關鍵點(如角點),故需要更為強大的特征提取網絡學習目標的特征表示。一階段算法同時進行目標類別的預測和邊界框的生成,在檢測速度上具有明顯優(yōu)勢。如YOLOv3 算法直接采用Darknet53 網絡進行目標的坐標和類別預測[11],其將目標圖像劃分為多種大小的網格區(qū)域,然后對每個網格區(qū)域內的像素進行檢測,以判斷出是否含有目標像素。YOLOv3 算法采用Darknet53 網絡同時進行分類和位置預測兩個任務,這對模型的特征學習能力提出了較大挑戰(zhàn)。例如,陳智羽等[12]基于YOLOv3 算法提出一種絕緣子檢測算法,其對Draknet53 網絡中的殘差塊[13]進行了優(yōu)化,額外增加了小目標特征學習的殘差模塊,使得模型的特征學習能力進一步增強。為使一階段算法的檢測精度進一步提高,就必須對原有特征提取網絡結構進行優(yōu)化,從而使一階段算法的精度和檢測速度達到最佳平衡狀態(tài)。隨后,YOLOv4 算法[14]的提出解決了一階段算法檢測精度不夠的問題。該算法從特征提取網絡結構、數(shù)據處理以及模型訓練等多個方面對YOLOv3 算法進行了改進,無論是檢測精度還是檢測速度方面均較YOLOv3 算法得到了質的提升,但YOLOv4 算法在一些較暗和形變的圖像處理任務中不能達到最佳檢測效果。
鑒于以上問題,本文基于YOLOv4 算法的思想提出一種改進的檢測算法,以克服絕緣子圖像光線較暗的問題,并自適應絕緣子形變圖像的特征學習。
YOLOv4 是一種通用的目標檢測算法,期在YOLOv3的基礎上從多個角度對模型進行了優(yōu)化,如在數(shù)據預處理部分引入了馬賽克數(shù)據增強方法,增強了模型的抗干擾能力;在特征提取網絡結構中,YOLOv4 采用了更為穩(wěn)健的網絡結構CSPDarknet53,在卷積模塊中采用了非線性表達能力更強的Mish 激活函數(shù),并融合了殘差單元與CSPNet[15]網絡兩者的優(yōu)點,形成了語義特征學習能力更強的CSPResNet;在模型訓練過程中,引入了Drop-block 的方式隨機刪除某些神經元,以降低模型過擬合的可能性。
YOLOv4 能適應多尺度的目標檢測,得益于其強大的特征提取網絡,網絡結構如圖1所示。
Fig.1 YOLOv4 network structure圖1 YOLOv4網絡結構
YOLOv4 算法輸入圖像的大小為416×416,通道數(shù)為3,首先經過卷積模塊(Conv+BN+Mish)擴充圖像的通道特征,再經過殘差單元(Residual)提取目標的特征信息,并且特征圖像的尺度不斷縮小,通道數(shù)不斷增加。網絡結構的中部為SPPNet 模塊,可使網絡獲得較大的感受野,學習到更為高級的語義特征。在網絡結構后端有跨層連接(Concat)結構以及卷積層,這是由于圖像尺度的變化會導致特征信息丟失,而增加跨層連接可以對不同網絡層的特征信息進行融合;卷積層則是為了將特征信息的大小和維度統(tǒng)一后進行跨層連接操作。YOLOv4 網絡的輸出端共有3個,分別為out1、out2 以及out3,3 個端口分別輸出52×52、26×26 以及13×13 大小的特征圖,大尺度的特征圖像用于預測小目標,小尺度的特征圖像用于預測大目標。
YOLOv4 將特征圖劃分為不同數(shù)量的網絡格,每個網絡格設置3 個預測框,每個預測框都會預測5 個參數(shù),即目標的位置坐標(x,y)、目標預測框的寬和高(w,h)以及目標所屬類別的置信度(confidence)。本文針對單類別的絕緣子進行檢測,故模型輸出的維度為3×(5+1)=18。
在采集絕緣子圖像過程中,圖像質量會受到相機角度和光照等因素的影響,從而導致模型無法很好地學習到絕緣子的特征,為此在圖像預處理過程中需要針對環(huán)境因素作出相應措施。此外,CNN 對圖像輸入的大小有限制,如YOLOv4 要求輸入的圖像大小為416×416,而采集到的圖像大小一般不能達到這一要求,常規(guī)處理是對采集圖像大小直接進行調整,而這會使得圖像產生非剛體形變,從而損失掉大部分有用的特征信息,在采用卷積層學習絕緣子的特征表示時,卷積層固有的采樣模式并不能很好地對絕緣子進行采樣學習。圖2 為某一絕緣子調整后的圖像和尺寸。
Fig.2 Adjusted insulator image and size圖2 絕緣子調整后圖像和尺寸
YOLOv4 算法采用馬賽克數(shù)據增強策略豐富目標的特征信息,其將4 張目標圖像通過隨機縮放、隨機翻轉以及隨機放置等方法進行組合,在對圖像數(shù)據進行批次標準化處理時會計算這4 張圖像的相關參數(shù),故在GPU 顯存不夠的情況下,設置較小的batch 參數(shù)便可以較好地訓練模型。
從圖3 中可以看出,4 種不同絕緣子圖像的亮度值各不相同,部分圖像存在亮度值過大或過小的問題,這會給特征提取帶來較大影響。針對圖像亮度值過大和過小的問題,一般會采用伽馬變換的方式進行調整。伽馬變換是一種簡單的指數(shù)運算,通過控制灰度縮放系數(shù)c和伽馬因子r的大小對輸出灰度值大小進行調整,從而改善圖像亮度。假設輸入圖像和輸出圖像的灰度值分別為i和o,其取值區(qū)間均為[0-1],則伽馬變換的計算公式為:
Fig.3 Different insulator picture brightness圖3 不同絕緣子圖像亮度
式中,當c 取1 時,不同的r值對輸出圖像的灰度值有不同程度的影響;當r>1 時,輸出的灰度值相對輸入的灰度值會變小,而r<1時則相反。
r值需要根據圖像的特征人為確定。面對大量圖像數(shù)據時,每個圖像均需要設定不同的參數(shù),此時人工方式已經失效。針對這個問題,本文借鑒文獻[16]提出的自適應伽馬變換方法對絕緣子圖像亮度值進行調整。首先計算絕緣子圖像三通道的亮度傾向指數(shù)k[17],公式為:
式中,Larg為絕緣子圖像亮度均值;Lmin和Lmax分別為絕緣子圖像中亮度值的最小值和最大值。
由式(2)可分別得出絕緣子圖像3 個通道的k 值。文獻[10]指出k值與式(1)中的r值呈線性關系,即:
根據設定的α和β值即可得出3 個通道的k 值,結合式(1)可以得到自適應伽馬變換后的圖像亮度值。
YOLOv4 算法輸出的特征圖大小是固定的,為滿足這一特性,需要統(tǒng)一輸入圖像的大?。?16×416),而本文使用的絕緣子圖像大小為1 152×864??梢钥闯?,絕緣子圖像的寬和高與輸入圖像的寬和高并不同時呈現(xiàn)倍數(shù)關系,若強行進行尺寸調整勢必會使得絕緣子圖像扭曲,從而導致模型無法學習到有用的特征表示。針對這個問題,本文采用可變形卷積[18]替代傳統(tǒng)卷積。傳統(tǒng)卷積為規(guī)則的格點采樣模式,并采用滑動窗口的方式按照從左到右、從上到下的順序依次遍歷整個圖像,在面對形變后產生失真的絕緣子圖像時,規(guī)則的格點采樣已經不能提取到高質量的絕緣子特征??勺冃尉矸e打破了傳統(tǒng)卷積固有的采樣模式,其對每個采樣位置均增加了一個偏移量預測,以提高算法對形變后絕緣子圖像特征的學習能力。
現(xiàn)假設有1 個大小為3×3 的卷積核kernel,對輸入特征圖x進行傳統(tǒng)卷積計算,輸出特征圖局部位置l0處的特征映射用T(l0)表示為:
其中kernel及n的分別定義為:
式(4)中的w(*)表示卷積核的權重值,ln為kernel的某個局部位置。
可變形卷積與傳統(tǒng)卷積最大的區(qū)別是前者加入了偏移量Δln的學習,從而使卷積采樣點可以自適應滿足形變的絕緣子圖像,可變形卷積表示為:
選取中國電力絕緣子公開數(shù)據庫[19],其包含不同材料、不同結構的絕緣子圖像,分辨率為1 152×864,從中選取600 張質量較好的絕緣子圖像作為本次實驗數(shù)據??紤]到數(shù)據庫樣本量較少的問題,本文另從百度圖庫中爬取了400 張絕緣子圖像,并采用LabelImg 軟件對圖像中的絕緣子進行標注,標注格式為VOC2007。
YOLOv4 算法需要預先計算錨框大小,以判斷固定網格內是否含有目標并優(yōu)化預測框與真實框的距離。原始的YOLOv4 算法得到的錨框數(shù)據是基于VOC 數(shù)據庫獲取的,與本文實驗數(shù)據庫的多樣性與長寬比例均有較大差異,為此本文采用Kmeans[20]算法重新計算數(shù)據庫的錨框。
Kmeans 算法是一種無監(jiān)督的機器學習算法,采用隨機選擇聚類中心的方式計算聚類中心與每個樣本數(shù)據的特征距離,并根據距離大小劃分簇,從而得到新的聚類中心,不斷循環(huán)迭代得到最終聚類結果。本文采用距離公式作為Kmeans算法的優(yōu)化指標,表示為:
式中,IoU表示真實框與預測框的交并比。
根據Kmeans 算法,本文得到9 個不同大小的錨框,不同特征圖大小對應的錨框關系如表1所示。
Table 1 Different sizes of the feature map corresponding to anchor box relationship表1 不同特征圖大小對應的錨框關系
實驗仿真平臺為PyCharm,編程語言為Python,采用第三方圖形處理庫OpenCV 及深度學習框架Keras。計算機配置為Intel?CoreTMi7-6700H CPU,16G 內存,Nvidia Ge-Force GTX 2070 GPU,操作系統(tǒng)為Ubuntu16.04.2。模型訓練Epoch 數(shù)為100,批次大小設置為16,學習率設置為0.000 1。
采用精確率P(Precision)和召回率R(Recall)作為模型評價指標,分別表示為:
式中,TP表示絕緣子被正確預測的數(shù)目;FP表示背景被預測為絕緣子的數(shù)目;FN表示絕緣子被預測為背景的數(shù)目。
為更好地評價模型的綜合性能,基于不同的IoU 閾值計算出模型的平均精確率AP(Average Precision),并采用每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)評價算法的檢測速度,其中AP的計算公式為:
為充分驗證本文算法的的有效性,采用目前主流目標檢測算法Faster RCNN、YOLOv3、YOLOv4、CornerNet、CenterNet 與本文算法進行比較實驗,模型訓練與測試均采用上述數(shù)據庫,得到的實驗結果如表2 所示??梢钥闯?,本文算法的綜合性能最佳,其中AP 指標達到93.2%,比YOLOv4 的檢測精度提高了0.7%,檢測速度為43FPS,比YOLOv4 的檢測速度慢了1 幀,但仍然能夠達到實時性的檢測要求。表2 的前3 行算法均為錨框算法,使用預定義的錨框搜索絕緣子可能存在的位置,有利于絕緣子位置的精確判斷,其中原始YOLOv4算法的AP 值和檢測速度均高于其他兩種算法,這得益與其采用的多模塊網絡結構,使得算法對絕緣子的特征學習能力大幅度提高。CornerNet 和CenterNet 算法作為無錨框算法的代表,摒棄了錨框機制的使用,直接將絕緣子的關鍵點部分作為目標候選區(qū)域,在檢測精度上高于Faster RCNN 和YOLOv3。
Table 2 Comparison of experimental results of different algorithms表2 不同算法實驗結果比較
圖4 為4 種對照算法與本文算法在測試集上的檢測效果比較,其中實驗圖像為從測試集中隨機抽取的2 張圖像,其明亮度以及背景復雜度均有所不同。
Fig.4 Test results of contrast algorithms compared with proposed algorithm圖4 對照算法與本文算法測試效果比較
可以看出,F(xiàn)aster RCNN 和YOLOv3 算法在檢測絕緣子的位置時,其預測框與真實目標位置存在一定差距,預測框并不能精確地包圍住目標。CornerNet 算法雖然能夠較為精確地預測出絕緣子位置,但存在多個預測框重疊的問題,分析認為,該算法雖然摒棄了錨框機制的使用,而采用預測目標的一對角點回歸出目標的預測框,但在一幅圖像中存在多個目標時,CornerNet 算法會預測出大量角點對,在對角點對進行分組操作時會錯誤地將不同目標的角點分為一組,從而導致不同目標的預測框出現(xiàn)重疊現(xiàn)象。同時,本文發(fā)現(xiàn)Faster RCNN、YOLOv3 和CornerNet 算法在第2 張圖像的檢測中存在一定的漏檢現(xiàn)象,如圖4 第2 列圖像所示,第2 張圖像光線較暗,且絕緣子目標存在一定的遮擋現(xiàn)象,導致以上3 種算法產生了漏檢問題,說明這3 種算法不能較好地克服光線昏暗以及目標遮擋問題。
YOLOv4 算法在這2 張測試圖像中的檢測效果相較其他3 種對照算法更好,其采用的馬賽克數(shù)據增強方法能在一定程度上克服目標遮擋問題,同時其穩(wěn)健的模型結構具有很好的語義特征學習能力。YOLOv4 算法在第2 張光線較暗的測試圖像中雖然能夠檢測出遮擋的絕緣子,但預測框不夠精準,這可能與圖像光線較差以及目標圖像形變等因素有關。綜上所述,本文算法能較好地克服以上問題,采用的自適應伽馬變換在光線較暗的場景中也能檢測出絕緣子,同時采用的可變形卷積能夠學習到各種形變目標的特征,自適應形變目標的精準預測。
為驗證本文模型的魯棒性能,對絕緣子圖像進行翻轉、裁剪以及縮放處理,然后使用本文模型對處理后的絕緣子圖像進行檢測,結果如圖5 所示??梢钥闯觯^緣子圖像在經過各種變換后會丟失掉一定量的特征信息,并且存在失真的問題,但本文模型仍然能夠較好地檢測出相應目標,充分說明該模型的魯棒性較好。
Fig.5 Robust performance verification of the proposed model圖5 模型魯棒性能驗證
本文提出一種基于YOLOv4 的絕緣子檢測算法,該算法能夠克服圖像形變、失真問題的影響,且具有檢測精度高、速度快的優(yōu)點,相較于幾種常用絕緣子檢測算法,本文算法的綜合性能最佳。然而,本文算法在模型訓練時需要花費大量時間,同時對計算機配置有較高要求,后期將重點研究模型壓縮以及訓練效率提高等問題,以實現(xiàn)算法的成功落地轉化。