黃施懿 董效杰 楊龍歡 王一帆
摘? 要:為了解決復(fù)雜背景下,絕緣子準(zhǔn)確快速識(shí)別的實(shí)時(shí)性問題,提出了一種基于YOLOv5改進(jìn)的輕量型絕緣子檢測(cè)算法模型。在網(wǎng)絡(luò)結(jié)構(gòu)中融入了Shufflenet v2網(wǎng)絡(luò)和深度卷積模塊,通過控制通道數(shù)和減少網(wǎng)絡(luò)層數(shù)來減少參數(shù)量,采用K-means算法調(diào)整anchor框,并提出了改進(jìn)損失函數(shù)DCIoU加速了損失函數(shù)的收斂。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的YOLOv5算法在參數(shù)量上僅有原網(wǎng)絡(luò)的10%,準(zhǔn)確率提高了0.2%,推理速度提升了2幀。
關(guān)鍵詞:深度學(xué)習(xí);目標(biāo)檢測(cè);絕緣子;YOLOv5
中圖分類號(hào):TP18;TP391.4? ? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)06-0073-04
Fast Detection of Insulators Based on Improved YOLOv5
HUANG Shiyi, DONG Xiaojie, YANG Longhuan, WANG Yifan
(College of Intelligent Systems Science and Engineering, Hubei Minzu University, Enshi? 445000, China)
Abstract: In order to solve the real-time problem of accurate and rapid identification of insulators under the complex background, an improved lightweight insulator detection algorithm model based on YOLOv5 is proposed. Shufflenet v2 network and deep convolution modules are integrated into the network structure to reduce the number of parameters by controlling the number of channels and reducing the number of network layers. K-means algorithm is adopted to adjust the anchor box, and the improved loss function DCIoU is proposed to accelerate the convergence of the loss function. Experimental results show that the improved YOLOv5 algorithm is only 10% of the original network in terms of the number of parameters, the accuracy rate is increased by 0.2%, and the inference speed is increased by 2 frames.
Keywords: deep learning; target detection; insulator; YOLOv5
0? 引? 言
由于人類社會(huì)對(duì)用電質(zhì)量要求的逐漸提高,輸電線路的長(zhǎng)度也將日益增加[1]。電力輸電線路分布于高山丘陵等地形復(fù)雜、氣候惡劣的環(huán)境,這給線路巡檢帶來了很大的困難[2]。由于電纜線路長(zhǎng)期裸露于嚴(yán)酷的自然環(huán)境下,非常容易發(fā)生自爆和污穢等情況,造成了輸電線路的不安全和不穩(wěn)定,甚至?xí)斐删薮蟮慕?jīng)濟(jì)損失。
由于深度學(xué)習(xí)等人工智能技術(shù)的創(chuàng)新發(fā)展,目標(biāo)檢測(cè)等深度學(xué)習(xí)技術(shù)在視覺圖像方面取得了很大成功[3]。Yang[4]等人通過使用深度卷積神經(jīng)網(wǎng)絡(luò)來檢測(cè)絕緣子自爆位置的方法。林志城[5]等人分別使用Mask-RCNN、Retina-Net、YOLOv3三種目標(biāo)檢測(cè)算法通過多模型融合,將檢測(cè)結(jié)果中置信度和重疊率高的預(yù)測(cè)目標(biāo)框進(jìn)行融合,提高了絕緣子自爆故障的檢測(cè)精度。文獻(xiàn)[6]將改進(jìn)之后的U-Net網(wǎng)絡(luò)和YOLOv5網(wǎng)絡(luò)相融合,檢測(cè)絕緣子的自爆缺陷,精度較高,但沒有檢測(cè)破損小目標(biāo)缺陷。
針對(duì)上述問題,本文提出了一種基于改進(jìn)YOLOv5的絕緣子快速檢測(cè)模型。無人機(jī)為絕緣子檢測(cè)提供了便利,但此方法存在數(shù)據(jù)集內(nèi)樣本數(shù)量少的問題,且需要解決檢測(cè)速度的問題,為此本文在解決這些問題上,提出了對(duì)YOLOv5算法模型的一系列改進(jìn)。
1? 網(wǎng)絡(luò)結(jié)構(gòu)
1.1? YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5網(wǎng)絡(luò)是在原來的YOLOv3和YOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上做出了改動(dòng),是當(dāng)前用于目標(biāo)檢測(cè)且檢測(cè)速度和準(zhǔn)確率都比較好的單階段檢測(cè)網(wǎng)絡(luò)。
輸入端采用了Mosaic數(shù)據(jù)增強(qiáng)的方式以及自適應(yīng)圖片縮放。此方式的數(shù)據(jù)增強(qiáng)豐富了數(shù)據(jù)集,且使得小目標(biāo)的檢測(cè)準(zhǔn)確率得到了很好的提升。自適應(yīng)圖片縮放是將圖片縮放填充時(shí),按小比例填充,對(duì)原始圖像自適應(yīng)的添加最少的黑邊,否則存在信息冗余。
主干采用了Focus結(jié)構(gòu),并增加了切片操作。主干網(wǎng)絡(luò)中采用了CSPDarknet-53,目的是進(jìn)行初步的特征提取,主要從網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的角度解決推理中計(jì)算量很大的問題。網(wǎng)絡(luò)結(jié)構(gòu)中的C3模塊消除了每個(gè)瓶頸結(jié)構(gòu)中的一個(gè)卷積,使得模型尺寸變小了一點(diǎn),且推理速度也有少許的提升。
在頸部中,采用了FPN+PAN結(jié)構(gòu)。用上采樣的方法將上層的特征信息與下層的特征信息融合在一起,實(shí)現(xiàn)自上向下的信息流動(dòng),以達(dá)到優(yōu)勢(shì)互補(bǔ)的目的,解決多尺度的問題。
1.2? ShuffleNet v2網(wǎng)絡(luò)結(jié)構(gòu)
ShuffleNetv2是一種適合用于便攜式設(shè)備的輕量型網(wǎng)絡(luò),由文獻(xiàn)[7]于2018年提出,作者通過理論推導(dǎo)和實(shí)驗(yàn)證明得出了以下四條準(zhǔn)則:
(1)通道數(shù)相等可最大限度地降低內(nèi)存訪問成本。
(2)過多的分組卷積會(huì)增加內(nèi)存占用量。
(3)盡量減少網(wǎng)絡(luò)分支。
(4)元素操作(如Relu函數(shù)和Add)是不可忽略的。
ShuffleNetv2網(wǎng)絡(luò)結(jié)構(gòu)大致分為兩種,如圖1所示,第一種如圖1中左半部分所示,步長(zhǎng)為1,在特征圖輸入后有一個(gè)通道分支(channel split)操作,該操作將輸入通道數(shù)為C的特征圖分為C-C和C,左邊的分支不做任何操作,右邊的分支包含了3個(gè)卷積操作,3個(gè)卷積輸入輸出的通道數(shù)都是一樣的,并且兩個(gè)1×1卷積已經(jīng)由ShuffleNetv1中的分組卷積更換為普通卷積,最后再將這兩個(gè)分支通過Concat進(jìn)行通道拼接,使得該模塊的輸入和輸出通道數(shù)一樣,最后進(jìn)行通道重組(channel shuffle)操作。這樣不僅可以避免Add操作,而且加快了模型的推理速度,值得注意的是,圖1中右邊部分為stride=2,沒有了(channel split)操作,左分支的3×3平均池化變?yōu)榱?×3的DW conv,這會(huì)使得最后Concat之后輸出特征的通道數(shù)為輸入的兩倍。
2? 目標(biāo)檢測(cè)算法的改進(jìn)
2.1? Mosaic數(shù)據(jù)增強(qiáng)
所謂數(shù)據(jù)增強(qiáng),就是指對(duì)圖片數(shù)據(jù)進(jìn)行變換、修改,使其變成新的數(shù)據(jù),從而擴(kuò)充原有圖片數(shù)據(jù)集。使用數(shù)據(jù)增強(qiáng)方法對(duì)于訓(xùn)練神經(jīng)網(wǎng)絡(luò)非常有幫助,可以對(duì)有限的數(shù)據(jù)集進(jìn)行擴(kuò)增,增加神經(jīng)網(wǎng)絡(luò)的魯棒性。
Mosaic-9數(shù)據(jù)增強(qiáng)方法是將九張圖片進(jìn)行隨機(jī)裁剪、縮放后,將之混合形成一張圖上進(jìn)行訓(xùn)練。它的優(yōu)點(diǎn)是大量增加了數(shù)據(jù)信息,增加了小目標(biāo)物體的數(shù)量,在進(jìn)行歸一化操作時(shí),會(huì)計(jì)算九張圖片,并不依賴批處理參數(shù),減輕計(jì)算量,它是普通Mosaic的增強(qiáng)版,如圖2所示。
2.2? K-means聚類先驗(yàn)框
使用先驗(yàn)框方法是為了確定固定框內(nèi)是否有目標(biāo)以及預(yù)測(cè)框與實(shí)際框的差值。本文的檢測(cè)目標(biāo)種類偏少,且長(zhǎng)寬比很大,為了使模型算法有一個(gè)較好的收斂速度,故使用K-means聚類先驗(yàn)框,步驟如下:
(1)首先隨機(jī)選取9個(gè)聚類中心C初始值。
(2)計(jì)算當(dāng)前聚類中心與其他先驗(yàn)框的距離d1,采用IoU距離代替歐式距離進(jìn)行計(jì)算,如式(1)所示。
d1=1-IoU? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
(3)計(jì)算每個(gè)絕緣子先驗(yàn)框被選為下一個(gè)聚類中心的概率P(x):
(2)
(4)重復(fù)上述步驟,直至找到k個(gè)聚類中心,然后將數(shù)據(jù)集中每個(gè)樣本分配到最近的聚類中心,重新計(jì)算每個(gè)類別C的聚類中心,直到聚類中心坐標(biāo)不發(fā)生變化。
(3)
經(jīng)過聚類后得到新的先驗(yàn)框如表1所示。
2.3? 損失函數(shù)
IoU是目標(biāo)檢測(cè)中最常用的指標(biāo),被用來評(píng)估實(shí)際框與預(yù)測(cè)框之間的關(guān)系。如式(4)所示:
(4)
其中,A為真實(shí)框,B為預(yù)測(cè)框。當(dāng)兩個(gè)框沒有重疊部分時(shí),IoU的值為0,導(dǎo)致很大范圍內(nèi)損失函數(shù)沒有梯度。在此基礎(chǔ)上添加了一個(gè)懲罰項(xiàng),提出來GIoU。
(5)
其中,C為A和B的最小外接矩形。GIoU解決了A與B沒有重疊部分時(shí)梯度無法收斂的問題,但是當(dāng)預(yù)測(cè)框?yàn)樗胶拓Q直方向時(shí)依然不能達(dá)到一個(gè)較好的收斂效果。因此提出了DIoU與CIoU。
(6)
(7)
(8)
(9)
其中,a為實(shí)際框的中心位置,b為預(yù)測(cè)框的中心位置,ρ為a與b之間的歐式幾何距離,D為C的對(duì)角線長(zhǎng)度,v為兩個(gè)框的長(zhǎng)寬比的相似性,wgt與hgt為真實(shí)框的寬度和高度,w與h為預(yù)測(cè)框的寬度和高度,α是權(quán)重函數(shù)。CIoU考慮到了A與B的重合面積、A與B的距離、長(zhǎng)寬比,在DIoU的基礎(chǔ)上增加了長(zhǎng)寬比懲罰項(xiàng),使得收斂更加快速穩(wěn)定。
由于圖像中的絕緣子長(zhǎng)寬比大多相似,通過距離懲罰項(xiàng)進(jìn)行收斂,速度較慢,故為了加快算法的收斂速度,引入了兩個(gè)框之間的對(duì)角點(diǎn)距離與中心點(diǎn)距離的關(guān)系,提出了DCIoU。
,,(10)
(11)
其中, 為真實(shí)框與預(yù)測(cè)框左上角頂點(diǎn)的距離, 為真實(shí)框與預(yù)測(cè)框右下角頂點(diǎn)的距離,當(dāng)兩點(diǎn)越近時(shí), 為1,當(dāng)兩點(diǎn)越遠(yuǎn)時(shí), 為0,它能反應(yīng)兩個(gè)框之間的重合情況。
2.4? 深度可分離卷積
深度可分離卷積是2017年由Sandler等提出的用于嵌入式設(shè)備的輕量化方法,深度可分離卷積將傳統(tǒng)卷積中的卷積分離成一個(gè)3×3的逐通道卷積和一個(gè)1×1的逐點(diǎn)卷積。
逐通道卷積,就是各個(gè)卷積核只負(fù)責(zé)自己的通道,即通道與卷積核一一對(duì)應(yīng),這個(gè)過程產(chǎn)生的特征圖通道數(shù)和輸入的通道數(shù)完全一樣。如圖3所示。
逐點(diǎn)卷積的卷積核的尺寸為1×1×M,M為上一層的通道數(shù)。這里的卷積運(yùn)算會(huì)將上一步的map在深度方向上進(jìn)行加權(quán)組合,生成新的特征圖。有幾個(gè)卷積核就有幾個(gè)特征圖。如圖4所示。
假設(shè)輸入層為一個(gè)大小為64×64像素、三通道彩色圖片。經(jīng)過一個(gè)包含4個(gè)卷積核的卷積層,最終輸出4個(gè)特征圖,且尺寸與輸入層相同??梢杂?jì)算出常規(guī)卷積的卷積層的參數(shù)數(shù)量是4×3×3×3=108。而使用深度可分離卷積,逐通道卷積的參數(shù)數(shù)量為3×3×3=27,逐點(diǎn)卷積的參數(shù)數(shù)量為1×1×3×4=12。
因此,將兩種卷積方式進(jìn)行比較:常規(guī)卷積有108個(gè)參數(shù);深度可分離卷積僅有39個(gè)參數(shù),是常規(guī)卷積參數(shù)的約1/3。由比對(duì)可知,使用深度可分離卷積能夠使模型速度得到顯著提升,更有利于部署在嵌入式設(shè)備中。
綜上所述,改進(jìn)后YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
3? 實(shí)驗(yàn)結(jié)果與分析
3.1? 數(shù)據(jù)集制作
本文在制作訓(xùn)練集的時(shí)候,采用了Github上開源的絕緣子數(shù)據(jù)集圖片,從中篩選出了248張缺陷絕緣子圖片,600張完整絕緣子圖片。數(shù)據(jù)集圖片的數(shù)量存在嚴(yán)重的不足,故決定采用數(shù)據(jù)增強(qiáng)的方式以擴(kuò)充數(shù)據(jù)集。本文將原有圖片以1:15的比例進(jìn)行擴(kuò)充,對(duì)圖像進(jìn)行模糊、亮度、裁剪、旋轉(zhuǎn)、平移、鏡像等操作,最終得到12 720張圖片。將8 558張圖劃為訓(xùn)練集,3 462張圖劃為驗(yàn)證集,700張圖劃為測(cè)試集。由于圖片的分辨率較高,直接運(yùn)算量太大,因此將圖片縮放至640×640,盡量加入多尺度、多角度、多背景的絕緣子。
根據(jù)要求將圖片轉(zhuǎn)化為VOC格式,本文采用LabelImg標(biāo)注工具對(duì)圖片進(jìn)行標(biāo)注,將缺陷絕緣子的位置標(biāo)注為defect,將完整絕緣子的位置標(biāo)注為insulator,如圖6所示。
3.2? 實(shí)驗(yàn)環(huán)境及配置
本實(shí)驗(yàn)所用配置如表2所示。
3.3? 實(shí)驗(yàn)結(jié)果
為了全面客觀評(píng)價(jià)改進(jìn)的YOLOv5模型的性能,使用參數(shù)數(shù)量(Parameters)、絕緣子平均值(Insulator AP)、缺陷絕緣子平均值(Defect AP)、平均精度均值(mAP)、檢測(cè)速度(FPS),其中S代表Shufflenet V2網(wǎng)絡(luò),D代表DW深度可分離卷積,A代表ADD融合操作。實(shí)驗(yàn)結(jié)果如表3所示。
由表可知,本文在YOLOv5原模型上,進(jìn)行了控制變量的消融實(shí)驗(yàn),通過控制變量來測(cè)試改進(jìn)是否具有能夠提升模型的效果。YOLOv5+S+D+A模型是在YOLOv5模型的基礎(chǔ)上進(jìn)行了網(wǎng)絡(luò)結(jié)構(gòu)的刪減和模塊的嵌入,模型的檢測(cè)精度比原模型僅有0.3%的提升,且不是所有測(cè)試模型里的最優(yōu)選擇,但此模型的參數(shù)量大約只有YOLOv5原模型的10%,且檢測(cè)速度是最快的。
本研究算法的部分測(cè)試結(jié)果如圖7所示。
4? 結(jié)? 論
本文提出了一種基于YOLOv5改進(jìn)的目標(biāo)檢測(cè)方法,使用了Shufflenet V2網(wǎng)絡(luò)與深度可分離卷積重新構(gòu)建了網(wǎng)絡(luò)模型的框架結(jié)構(gòu),減少了參數(shù)的數(shù)量,減輕了模型的大?。皇褂肒-means算法得到了更加符合大長(zhǎng)寬比數(shù)據(jù)集的先驗(yàn)框;使用了Mosaic-9的數(shù)據(jù)增強(qiáng)方法,豐富了數(shù)據(jù)集的內(nèi)容。實(shí)驗(yàn)結(jié)果表明,與主流算法相比,本文所提出模型的檢測(cè)速度與模型占用內(nèi)存大小均優(yōu)于原模型,檢測(cè)速度可達(dá)到每秒13.58幀,模型文件大小為1.64 MB,為檢測(cè)算法的嵌入式應(yīng)用及巡檢時(shí)邊采集邊檢測(cè)提供了可能性。
參考文獻(xiàn):
[1] 中國(guó)電力企業(yè)聯(lián)合會(huì).中國(guó)電力行業(yè)年度報(bào)告2020 [R/OL].
(2020-06-12).https://cec.org.cn/detail/index.html?3-284214.
[2] 邵瑰瑋,劉壯,付晶,等.架空輸電線路無人機(jī)巡檢技術(shù)研究進(jìn)展 [J].高電壓技術(shù),2020,46(1):14-22.
[3] 陳偉駿,周長(zhǎng)勝,黃宏博,等.基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法綜述 [J].北京信息科技大學(xué)學(xué)報(bào):自然科學(xué)版,2020,35(2):90-96.
[4] YANG Y L,WANG L J,WANG Y,et al. Insulator Self-Shattering Detection:A Deep Convolutional Neural Network Approach [J].Multimedia Tools and Applications,2019,78(8):10097-10112.
[5] 林志成,繆希仁,江灝,等.多模型融合的輸電線路絕緣子自爆故障檢測(cè) [J].福州大學(xué)學(xué)報(bào):自然科學(xué)版,2020,48(2):217-223.
[6] 唐小煜,熊浩良,黃銳珊,等.基于改進(jìn)的U-Net和YOLOv5的絕緣子掩模獲取與缺陷檢測(cè) [J].數(shù)據(jù)采集與處理,2021,36(5):1041-1049.
[7] MA N N,ZHANG X Y,ZHENG H-T,et al. ShuffleNet V2:Practical Guidelines for Efficient CNN Architecture Design [J/OL].arXiv:1807.11164 [cs.CV].[2022-01-03].https://arxiv.org/abs/1807.11164.
作者簡(jiǎn)介:黃施懿(1998—),男,漢族,江蘇南通人,碩士研究生在讀,研究方向:目標(biāo)檢測(cè)與人工智能;董效杰(1978—),男,漢族,上海人,講師,博士,研究方向:紅外圖像與小目標(biāo)特征;楊龍歡(1996—),男,漢族,四川成都人,碩士研究生在讀,研究方向:目標(biāo)檢測(cè)與人工智能;王一帆(1998—),男,漢族,陜西西安人,碩士研究生在讀,研究方向:目標(biāo)檢測(cè)與人工智能。
收稿日期:2022-10-13
基金項(xiàng)目:湖北省教育廳科學(xué)技術(shù)研究計(jì)劃項(xiàng)目(B2016092)