池小波,張偉杰,賈新春,續(xù)澤晉
(1.山西大學(xué) 自動化與軟件學(xué)院,山西 太原 030013;2.山西大學(xué) 數(shù)學(xué)科學(xué)學(xué)院,山西 太原 030006)
絕緣子狀態(tài)檢測和安全防護對保障輸電線路的正常運行起著至關(guān)重要的作用。為了提高絕緣子的檢測效率,無人機巡檢已經(jīng)代替人工巡檢成為主流的巡檢方式。由于無人機采集到的圖片數(shù)量繁多且圖像中的背景復(fù)雜,絕緣子尺寸大小存在很大差異,如果采用人工判讀的方式極有可能出現(xiàn)誤檢和漏檢。因此,利用計算機視覺和圖像處理的技術(shù)進行絕緣子定位和故障檢測成為目前主要研究方向。Dalal N等[1]采用方向梯度直方圖(HOG)的方法提取目標(biāo)特征,然后利用提取到的特征訓(xùn)練圖像特征分類器;李衛(wèi)國等[2],廖圣龍[3],劉洋等[4]分別從絕緣子的紋理特征、顏色以及輪廓入手,采用邊緣計算的方法對絕緣子進行檢測;黃新波等[5]針對玻璃絕緣子在光照條件下顏色特征不明顯的問題,提出采用聯(lián)合分量灰度化算法來進行目標(biāo)增強。上述傳統(tǒng)檢測方法雖然可以識別絕緣子,但是其泛化性和魯棒性較差,識別準(zhǔn)確率也較低。
目前應(yīng)用廣泛的基于深度學(xué)習(xí)的目標(biāo)檢測模型主要分為兩大類:一類是基于回歸的一階段(one-stage)檢測方法,該類方法直接對圖像上的目標(biāo)進行預(yù)測和分類,不需要預(yù)先生成候選框,常見的one-stage 模型有SSD[6]以及YOLO 系列的改進模型,如YOLOv2[7],YOLOv3[8]等;另一類是基于候選區(qū)域的兩階段(two-stage)檢測算法,首先通過算法生成一些候選框,進而對候選區(qū)域進行分類和位置修正,R-CNN[9]、Faster-RCNN[10]等是two-stage 的代表模型。Tao X 等[11]提出一種深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)級聯(lián)架構(gòu),用于定位和檢測絕緣子缺陷;何寧輝等[12]采用改進的Faster-RCNN 網(wǎng)絡(luò)捕獲圖像中絕緣子和缺失部位。隨著YOLOv4[13]和YOLOv5 等方法的提出,不論是檢測精度還是速度,one-stage 均大幅度優(yōu)于two-stage。劉行謀等[14]提出一種基于K-means和YOLOV4 的復(fù)雜背景下絕緣子缺失檢測方法;王年濤等[15]利用GhostNet 模塊改進YOLOv5 主干網(wǎng)絡(luò),提升了模型的檢測精度;田慶等[16]通過引入注意力模塊,提出基于SE-YOLOv5s的絕緣子檢測模型,顯著提升模型的準(zhǔn)確率和召回率。盡管上述文獻已經(jīng)取得了一些有價值的研究成果,但在實際應(yīng)用場景中,這類目標(biāo)檢測模型均存在參數(shù)量大、計算復(fù)雜度高、推理速度較慢等問題。針對這些問題以及考慮到航拍絕緣子圖像背景復(fù)雜、小目標(biāo)檢測困難等現(xiàn)狀,本文提出一種基于改進YOLOv5s 的輕量級絕緣子缺失檢測模型,實驗結(jié)果表明,所提模型對小目標(biāo)、遮擋目標(biāo)以及模糊等場景有著較強的魯棒性,且在保證近似檢測精度的同時極大減少了計算量。
YOLOv5s 模型由輸入端(Input)、主干網(wǎng)絡(luò)(Backbone)、Neck 模塊、輸出端(Output)4 個部分組成。YOLOv5s 模型輸入端采用Mosaic 數(shù)據(jù)增強和自適應(yīng)圖片縮放等方法對圖像進行預(yù)處理。主干部分包括切片模塊(Focus)、卷積模塊(Conv)、C3 模塊和空間金字塔池化模塊(SPP)。其中,F(xiàn)ocus模塊是YOLOv5系列所特有的結(jié)構(gòu),當(dāng)進行切片操作時,可確保下采樣不會丟失信息;SPP 模塊解決了卷積神經(jīng)網(wǎng)絡(luò)對圖像特征重復(fù)提取的問題,提高了產(chǎn)生備選框的速度;C3模塊主要起到了精簡網(wǎng)絡(luò)結(jié)構(gòu),減少計算量的作用。Neck模塊部分采用特征金字塔網(wǎng)絡(luò)(FPN)+路徑聚合網(wǎng)絡(luò)(PAN)的多尺度特征融合結(jié)構(gòu),F(xiàn)PN 通過上采樣操作融合高層特征和底層特征信息;PAN則采用下采樣的方式傳達信息。
原始的YOLOv5s 模型各模塊的層數(shù)及參數(shù)量如表1 所示。其中C3 模塊通過引入1×1 的卷積核來降低整個模型的參數(shù)量。通過比較可知,主干網(wǎng)絡(luò)中C3模塊的層數(shù)較多且參數(shù)量大。為了降低網(wǎng)絡(luò)計算復(fù)雜度,同時考慮小目標(biāo)難以檢測以及有遮擋物、相似目標(biāo)干擾等問題,本文提出一種融合的輕量級絕緣子缺失檢測模型。
表1 各模塊層數(shù)及參數(shù)量Tab.1 Layers and parameters of each module
由于所采集的圖像存在分辨率和像素值較低以及目標(biāo)通道特征信息較少等問題,本文在Concat 模塊之后嵌入CBAM(Convolutional Block Attention Module)模塊[17],使網(wǎng)絡(luò)能夠更好地關(guān)注絕緣子缺失部位的特征信息。CBAM 結(jié)合了空間(spatial)和通道(channel)的注意力機制,結(jié)構(gòu)如圖1 所示。
圖1 CBAM整體結(jié)構(gòu)Fig.1 Overall structure of CBAM
CBAM的整體注意力過程表示如下
式中:將中間特征圖F∈RC×H×W作為輸入,CBAM依次輸出一維通道注意力圖MC∈RC×1×1和二維空間注意力圖MS∈R1×H×W;?表示逐元素相乘;C為特征圖通道數(shù);H和W分別為特征圖的高度和寬度。如圖2 所示,通道注意力模塊MC(F)為
圖2 通道注意力模塊Fig.2 Channel attention module
圖3 空間注意力模塊Fig.3 Spatial attention module
式中:σ為sigmoid 函數(shù);MLP(Multi-Layer Perceptron)表示多層感知器;AvgPool 和MaxPool 分別表示對特征圖進行平均池化和最大池化操作;分別為平均池化特征和最大池化特征;W0∈RC/r×C,W1∈RC×C/r為MLP的權(quán)重。
式中:σ為sigmoid 函數(shù);f7×7為大小為7×7 的卷積運算。
隨著檢測網(wǎng)絡(luò)層數(shù)的不斷加深,特征逐漸由低層轉(zhuǎn)向高層。其中,低層特征由于分辨率較大,具有更強的位置信息,適合對目標(biāo)進行定位;高層特征由于感受野較大,具有更強的語義信息,適合對目標(biāo)進行分類。然而,在特征轉(zhuǎn)變過程中會造成低層特征信息的丟失,因此需要對不同尺度的特征進行融合,豐富特征的語義信息。不同特征融合網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。其中,PAN 和FPN 均未考慮不同分辨率下特征的貢獻差異問題。因此,本文采用加權(quán)雙向特征金字塔網(wǎng)絡(luò)(WBiFPN)[18]構(gòu)造雙向通道,對特征進行跨尺度連接來實現(xiàn)加權(quán)融合。如圖4(c)中所示,對于同層級的原始輸入和輸出節(jié)點,WBiFPN 對兩者進行了連接,在增加極小計算量的情況下融合更多特征。
圖4 不同特征融合網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Network structure of different feature fusion
由于不同的輸入特征分辨率不同,所以,對輸出特征的貢獻程度也不同。WBiFPN 為每個輸入特征賦予可學(xué)習(xí)的權(quán)重,令網(wǎng)絡(luò)可根據(jù)輸入特征的重要程度自主調(diào)整權(quán)重。
式中:ωi為可學(xué)習(xí)的權(quán)重,使用ReLU激活函數(shù)來保證ωi≥0;O為輸出特征;Ii為輸入特征;ε=0.000 1是一個很小的值,以保證數(shù)值的穩(wěn)定。以層級6為例,式(6)和式(7)描述了WBiFPN網(wǎng)絡(luò)的雙向跨尺度連接和加權(quán)特征融合的過程。
式中:Resize通常指上采樣或下采樣操作;為自上而下路徑第6層的中間特征;為由底向上路徑第6層的輸出特征;Pin和Pout分別為輸入和輸出特征。為了滿足輕量化的要求,本文使用Add融合模塊,在不增加參數(shù)量的情況下對特征進行跨尺度加權(quán)融合,保證所提取特征的完整性。
傳統(tǒng)的目標(biāo)檢測損失函數(shù)僅考慮了真實框和預(yù)測框之間的距離、重疊區(qū)域和縱橫比這幾類指標(biāo),未考慮預(yù)測框收斂時的方向特征。本文使用SIoU 損失函數(shù),其由Angle cost,Distance cost,Shape cost,IoU cost 4 個Cost 函數(shù)組成。Angle cost 對損失函數(shù)的貢獻方案如圖5 所示,其中B為預(yù)測框,BGT為真實框,若收斂過程將優(yōu)先最小化α,否則最小化β。
圖5 Angle cost示意圖Fig.5 Schematic diagram of Angle cost
Angle cost表達式為
Distance cost對損失函數(shù)表達式為
式中:cw為預(yù)測框和真實框的水平距離;ch為預(yù)測框和真實框的豎直距離??梢钥闯?,當(dāng)α→0時,Distance cost 的貢獻程度隨之變??;而當(dāng)時,貢獻程度則越來越大。
Shape cost表達式為
IoU cost表達式為
最后,回歸損失函數(shù)表達式為
總的損失函數(shù)表達式為
式中:Lcls為Focal loss;Wbox,Wcls分別為框和分類損失權(quán)重,可用遺傳算法進行選擇。圖6 為改進的YOLOv5s模型結(jié)構(gòu)圖。
圖6 改進的YOLOv5s模型結(jié)構(gòu)圖Fig.6 Improved YOLOv5s model structure diagram
本文所使用的數(shù)據(jù)集一部分來自于中國電力線絕緣子數(shù)據(jù)集(CPLID)[11],另一部分利用背景融合、隨機旋轉(zhuǎn)、添加噪聲等數(shù)據(jù)增強的方式對數(shù)據(jù)集進行擴充。圖像中包含完整的絕緣子串以及有缺失部分的故障絕緣子。數(shù)據(jù)集共包含4 618 張圖片,訓(xùn)練集、測試集、驗證集按照8∶1∶1的比例劃分。
本文所提方法是在pytorch框架上實現(xiàn)的。操作系統(tǒng)為Ubuntu,CPU 為24 核AMD EPYC 7642 48-Core Processor,內(nèi) 存80 G,GPU 為NVIDIA GeForce RTX 3090,顯存24 G。
對輸入圖像進行Mosic 增強,增加訓(xùn)練數(shù)據(jù)的多樣性,提高模型的泛化能力。初始學(xué)習(xí)率Ir0=0.001,采用余弦退火策略更新學(xué)習(xí)率,終止學(xué)習(xí)率Irf=0.2;優(yōu)化器選用SGD,動量momentum=0.937,避免網(wǎng)絡(luò)出現(xiàn)局部最優(yōu)解的情況;輸入圖像的尺寸、batch_size和訓(xùn)練輪數(shù)分別為640*640,16和300。
本文選用mAP@0.5 和mAP@0.5:0.95 作為模型檢測精度的評價指標(biāo),mAP@0.5 為IOU=0.5 時的平均精度均值,mAP@0.5:0.95表示IOU 從0.5 到0.95,步長 為0.05 時mAP 的平均值。其中,IOU 為交并比,mAP綜合考慮了模型的精確率P(Precision)和召回率R(Recall);使用浮點運算數(shù)(GFLOPS)作為模型計算量的評價指標(biāo);使用參數(shù)量(Parameters)作為衡量模型大小的指標(biāo);使用每秒處理圖像的數(shù)量(FPS)來評價模型的檢測速度。選用評價指標(biāo)計算公式為
式中:A為真實框;B為預(yù)測框;TP為正例被正確判斷為正例的數(shù)量;FP為負(fù)例被錯誤判斷為正例的數(shù)量;FN為正例被錯誤判斷為負(fù)例的數(shù)量;AP為P-R曲線所圍成的面積;mAP為各類別AP的平均值,mAP越高,表示模型的精確度越好。
為驗證本文所提 4 種改進策略的有效性,使用上述數(shù)據(jù)集進行消融實驗,分別測試每種改進以及混合使用的效果。消融實驗結(jié)果如表2 所示,其中表2 第 1 行為原始YOLOv5s的實驗結(jié)果。
表2 消融實驗結(jié)果Tab.2 Ablation experiment results
通過分析可知,去除C3模塊之后模型的浮點運算數(shù)是2.8 GFLOPS,僅為原始模型的17.2%,參數(shù)量為1.22 M,是原始模型的18.1%,精確度下降了約1.6%。實驗表明去除C3模塊可以有效減小模型的計算量和參數(shù)量,達到輕量化的目的,但是也帶來了一些精度上的損失。接下來在去除C3模塊的基礎(chǔ)上對檢測精度進行提升。由表2 可以看出,每一處改進之后模型的檢測精度都會有提高,且計算量與參數(shù)量沒有增大。綜合來看,當(dāng) 4 處改進同時進行時的效果最佳,精確度相較原始模型降低約0.8%,浮點運算數(shù)依然為2.8 GFLOPS。結(jié)果表明,計算量和參數(shù)量明顯降低,精確度損失極小,符合本文所提出輕量化檢測的目標(biāo)。
為了更直觀地展示所提模型的性能,本文選取了小目標(biāo)、遮擋目標(biāo)以及模糊 3 個特殊場景進行檢測,檢測結(jié)果如圖7 所示,左邊為原始YOLOv5s 檢測結(jié)果圖,右邊為改進后的YOLOv5s 檢測效果圖。由圖7(a)可以看出,原始YOLOv5s 漏檢了圖像上占比較小的絕緣子部分,改進后的模型可以順利檢測出小目標(biāo);圖7(b)是在有遮擋物的場景中,原始YOLOv5s沒有檢測出桿塔遮擋下的絕緣子,由于本文引入WBiFPN 結(jié)構(gòu),使得模型能夠在融合了不同層次語義信息的全局特征中進行學(xué)習(xí),從而使模型在預(yù)測時能更好地區(qū)分背景和目標(biāo),提高了在有遮擋物情況下目標(biāo)的識別率。因此,改進之后的模型可以很好地檢測出有遮擋物的絕緣子;圖7(c)中,原始YOLOv5s 誤將圖像右上角的一排樹木看作絕緣子,在存在相似目標(biāo)的場景中,本文所提YOLOv5s 模型能精確地識別絕緣子。實驗表明,原始YOLOv5s 模型在復(fù)雜多樣的檢測場景下出現(xiàn)了較多的漏檢以及誤檢的情況,而本文所提模型對此類特殊場景有很好的魯棒性,檢測效果明顯優(yōu)于原始YOLOv5s模型。
圖7 特殊場景檢測結(jié)果對比圖Fig.7 Comparison of detection results in special scenes
為了證明所提模型的優(yōu)越性,本節(jié)將從模型輕量化、注意力機制以及檢測性能 3 個角度設(shè)計對比實驗。首先,在主干網(wǎng)絡(luò)中分別對shuffle-NetV2,ghost,mobileNetV3 3 種輕量級模型進行對比,試驗結(jié)果如表3 所示。
表3 不同輕量化模型的性能對比Tab.3 Performance comparison of different lightweight models
由表3 可知,本文所提算法的精確度為96.8%,浮點運算數(shù)為2.8 GFLOPS,均優(yōu)于其他3種輕量級模型。實驗結(jié)果驗證了本文所提算法在保證較高目標(biāo)識別精確度的同時具有較低的計算量。其次,在改進YOLOv5s 模型中分別引入CBAM、CA(Coordinate Attention)、SE(Squeeze-and-Excitation)和ECA(Efficient Channel Attention)4 種注意力機制進行對比研究,具體結(jié)果如表4 所示。
表4 不同注意力機制下改進YOLOv5s模型的性能對比Tab.4 Performance comparison of improved YOLOv5s model under different attention mechanisms
分析數(shù)據(jù)可知,由于選用的都為輕量級注意力機制,因此,在浮點運算數(shù)和參數(shù)量方面差別較小。由于CBAM注意力機制可以同時關(guān)注到空間和通道信息,抓取重點特征,抑制一般特征,因此,融合了CBAM注意力機制的改進YOLOv5s模型的目標(biāo)識別精確度明顯優(yōu)于其他 3 種注意力機制。
為了進一步評估所提模型的有效性,使用上述數(shù)據(jù)集分別對YOLOv3,F(xiàn)aster-RCNN,SSD,YOLOv5s、改進的YOLOv5s進行對比實驗,結(jié)果如表5 所示。通過對比可以看出,本文模型因減少了神經(jīng)網(wǎng)絡(luò)的深度,檢測精度相較于原始YOLOv5s下降了0.8%,但仍高于YOLOv3和SSD等模型。在計算量、參數(shù)量和推理速度方面表現(xiàn)出極大的優(yōu)越性,實驗結(jié)果驗證了所提模型的有效性。
表5 與現(xiàn)有目標(biāo)檢測模型性能對比結(jié)果Tab.5 Performance comparison results with existing target detection models
本文提出了一種基于改進的YOLOv5s 輕量級絕緣子缺失檢測模型。為了彌補主干網(wǎng)絡(luò)輕量化所帶來的精度損失,在Neck部分融合了輕量級CBAM 注意力模塊,并采用WBiFPN 機制有效提高了模型對重點信息的感知能力,最后利用SIoU損失函數(shù)提高模型的收斂速度。實驗結(jié)果表明,本文所提模型很好地解決了現(xiàn)有絕緣子故障檢測模型存在的計算量大、復(fù)雜度高以及對小目標(biāo)漏檢和誤檢的問題;在保證近似檢測精度的情況下,極大減小了計算量和復(fù)雜度,使得該模型更適用于實際工作場景。后續(xù)將針對因相機抖動而導(dǎo)致圖像模糊難以檢測的問題進行深入研究。