唐翔翔,沈 薇,朱 明,鮑文霞
(安徽大學(xué) 電子信息工程學(xué)院,安徽 合肥 230601)
輸電線路為電能傳輸?shù)妮d體,保障輸電線路安全穩(wěn)定運(yùn)行具有十分重要的意義.輸電線路的常見(jiàn)異物有鳥(niǎo)巢、蜂巢、風(fēng)箏等,這些異物會(huì)造成短路或引發(fā)火災(zāi),進(jìn)而引起區(qū)域停電,帶來(lái)嚴(yán)重經(jīng)濟(jì)損失,甚至危及輸電線路周邊人員的生命安全,所以需對(duì)輸電線路異物進(jìn)行及時(shí)排查和清除.輸電線路通常經(jīng)過(guò)人煙稀少、交通不便的地區(qū),傳統(tǒng)人工巡檢不僅耗時(shí)費(fèi)力,且無(wú)法做到及時(shí)排查.智能巡檢技術(shù)具有更高的檢測(cè)效率及精度,能節(jié)省大量人力物力,是一種經(jīng)濟(jì)有效的巡檢手段.基于飛行器的航拍巡檢是輸電線路異物檢測(cè)的常用巡檢方法,雖該方法不需人員到現(xiàn)場(chǎng),但傳感器拍攝的海量數(shù)據(jù)仍需人工分析判斷,故檢測(cè)效率及準(zhǔn)確性均有待提高.
近年來(lái),深度學(xué)習(xí)發(fā)展迅速,與傳統(tǒng)算法相比,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法的精度和速度均有顯著提升.基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法可分為如下兩類:two-stage及one-stage算法.two-stage算法先生成一系列候選框,再通過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,代表算法有:R-CNN(region-convolutional neural network)算法、Fast-RCNN算法及Faster-RCNN算法.two-stage算法由于需提前生成大量候選框,檢測(cè)計(jì)算量大、效率低,很難滿足實(shí)時(shí)檢測(cè)的要求.與two-stage算法不同,one-stage算法不產(chǎn)生候選框,直接對(duì)圖像卷積,把邊框定位轉(zhuǎn)化為回歸,實(shí)現(xiàn)了端到端的訓(xùn)練,代表算法有:SSD(single shot multibox detector)和YOLO(you only look once).one-stage算法由于不產(chǎn)生候選框,故計(jì)算量小,常用于實(shí)時(shí)檢測(cè). Bochkovskiy等提出的YOLOv4(you only look once的第4個(gè)版本)算法具有很好的檢測(cè)效果,是當(dāng)前目標(biāo)檢測(cè)的主流算法.但是,YOLOv4算法用于輸電線路異物檢測(cè)時(shí)存在一些不足之處,如目標(biāo)圖像與背景相似時(shí)池化操作會(huì)剔除目標(biāo)信息卻保留背景信息、對(duì)顏色和紋理相似的目標(biāo)區(qū)分能力不強(qiáng).鑒于此,筆者提出基于改進(jìn)YOLOv4的輸電線路異物檢測(cè)算法.該算法在YOLOv4的特征金字塔池化(spatial pyramid pooling,簡(jiǎn)稱SPP)模塊中加入平均池化,將平均池化與其他尺度的最大池化進(jìn)行融合,使輸出的圖像信息包含特征圖池化的平均值和最大值,可減少錯(cuò)檢和漏檢率.針對(duì)目標(biāo)相似導(dǎo)致的不易區(qū)分問(wèn)題,該算法對(duì)損失函數(shù)進(jìn)行優(yōu)化,以提升區(qū)分相似目標(biāo)的能力.
YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)的主體采用Darknet53網(wǎng)絡(luò)結(jié)構(gòu)的進(jìn)階版CSPDarknet53.CSPDarknet53是在Darknet53的基礎(chǔ)上借鑒CSPNet而形成的Backbone結(jié)構(gòu).CSPDarknet53包含5個(gè)CSP模塊,每個(gè)模塊包含3×3的卷積核.輸電線路的特定異物圖像大小為416×416,經(jīng)過(guò)5次下采樣,最終得到的特征圖大小為13×13.CSPDarknet53輸出的13×13特征圖,經(jīng)過(guò)一個(gè)3×3的卷積核后送入SPP模塊,把SPP模塊的輸出結(jié)果與52×52,26×26大小的特征圖一同送入FPN+PAN模塊,經(jīng)過(guò)Downsampling和Concat操作得到3個(gè)不同大小的特征圖,用于不同大小的目標(biāo)檢測(cè).此外,通過(guò)BCE損失函數(shù)進(jìn)行回歸分類.YOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 YOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv4在CSPDarknet53后使用SPP模塊,用于提高特征信息量.該SPP模塊由4個(gè)不同大小(1×1,5×5,9×9,13×13)的最大池化組成.這4個(gè)最大池化均采用padding操作,stride=1.將CSPDarknet53輸出的13×13特征圖送入SPP模塊,使用大小5×5的池化核,padding=2,以保證輸出特征圖的大小不變.
在深度學(xué)習(xí)中,通過(guò)最大池化對(duì)特征圖進(jìn)行下采樣操作.最大池化可減少特征信息,從而減少計(jì)算量.除了最大池化外,還有平均池化,平均池化關(guān)注的是每個(gè)“池”的平均值.在處理與背景信息相似的目標(biāo)圖像時(shí),平均池化可保留更多目標(biāo)信息,有較好的處理效果.圖2為最大池化和平均池化示意圖.
圖2 最大池化及平均池化示意圖
YOLOv4中的SPP模塊對(duì)圖像進(jìn)行降采樣時(shí),由于只保留每個(gè)“池”的最大值信息,若目標(biāo)與背景信息相似,可能僅保留背景信息,丟失目標(biāo)信息,造成誤檢和漏檢.圖3為典型的漏檢及錯(cuò)檢圖.
圖3 典型的漏檢(a, b)、錯(cuò)檢(c, d)圖
針對(duì)誤檢和漏檢問(wèn)題,筆者在YOLOv4算法的基礎(chǔ)上,對(duì)SPP模塊進(jìn)行改進(jìn),將平均池化替代5×5的最大池化,在尺度融合時(shí)可保留更多的異物目標(biāo)信息,能降低漏檢和錯(cuò)檢率.
YOLOv4算法采用二進(jìn)制交叉熵(binary cross entropy,簡(jiǎn)稱BCE)損失函數(shù),代替YOLOv3使用的均方誤差(mean square error, 簡(jiǎn)稱MSE)損失函數(shù).BCE損失函數(shù)的表達(dá)式為
(1)
其中:x
為第i
個(gè)預(yù)測(cè)目標(biāo)的概率,y
為第i
個(gè)真實(shí)目標(biāo)的概率,N
為目標(biāo)樣本數(shù).BCE損失函數(shù)對(duì)顏色和紋理信息相似的目標(biāo),易出現(xiàn)錯(cuò)檢.為降低相似目標(biāo)的錯(cuò)檢率,筆者在文獻(xiàn)[22]的BCE損失函數(shù)基礎(chǔ)上,構(gòu)造GBCE(gradient-boosting binary cross entropy)損失函數(shù),其表達(dá)式為
(2)
其中:s
為真實(shí)目標(biāo);s
為與真實(shí)目標(biāo)最相近的其他目標(biāo);J
′={i
:i
∈J
∩s
≥t
},J
為負(fù)類集合,t
為設(shè)定的閾值.為解決最大池化帶來(lái)的特征信息丟失問(wèn)題,筆者對(duì)YOLOv4的SPP模塊進(jìn)行了改進(jìn),使Backbone輸出的特征圖可保留更多的目標(biāo)信息.將SPP模塊輸出的特征圖與52×52,26×26大小的特征圖一同送入FPN+PAN模塊,以提升YOLOv4算法的目標(biāo)識(shí)別精度.此外,還對(duì)原有BCE損失函數(shù)進(jìn)行改進(jìn),得到GBCE損失函數(shù).該損失函數(shù)對(duì)相似目標(biāo)的區(qū)分度更高,降低了錯(cuò)檢率.圖4為改進(jìn)的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu).基于改進(jìn)的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu),筆者提出輸電線路異物檢測(cè)算法(為了方便,下文將該算法簡(jiǎn)稱為改進(jìn)YOLOv4算法).
圖4 改進(jìn)的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)
由于輸電線路異物沒(méi)有公開(kāi)的數(shù)據(jù)集,故筆者只能采用鳥(niǎo)巢、蜂巢和風(fēng)箏的私有數(shù)據(jù)集.鳥(niǎo)巢、蜂巢和風(fēng)箏原始圖像的數(shù)量分別為510,312,293,增廣后分別為1 932, 1 248, 1 172.這些輸電線路異物圖像常含有復(fù)雜的背景,如建筑物、公路、麥田和山林等.數(shù)據(jù)集按8∶1∶1的比例分為訓(xùn)練集、驗(yàn)證集、測(cè)試集.圖5為數(shù)據(jù)集中的部分圖像.
圖5 數(shù)據(jù)集中的鳥(niǎo)巢(a~c)、蜂巢(d~f)和風(fēng)箏(g~i)圖像
實(shí)驗(yàn)中對(duì)數(shù)據(jù)進(jìn)行旋轉(zhuǎn)和翻轉(zhuǎn)操作,對(duì)數(shù)據(jù)量進(jìn)行擴(kuò)充,主要目的是增強(qiáng)模型泛化能力,提高模型收斂速度.原圖像分辨率較高,對(duì)原圖像進(jìn)行裁剪后可得到大小為416×416的圖像.
計(jì)算機(jī)的配置如下:系統(tǒng)為Ubuntu 18.04、顯卡為GTX-2080 TI、運(yùn)行內(nèi)存為10 G、CPU為Intel酷睿i7 8700六核處理器.
學(xué)習(xí)率在一定程度上決定網(wǎng)絡(luò)的收斂速度,過(guò)高的初始學(xué)習(xí)率會(huì)導(dǎo)致網(wǎng)絡(luò)梯度在一定范圍來(lái)回震蕩,過(guò)低的初始學(xué)習(xí)率會(huì)延緩網(wǎng)絡(luò)收斂,進(jìn)而影響實(shí)驗(yàn)進(jìn)程.該文根據(jù)網(wǎng)絡(luò)收斂情況將學(xué)習(xí)率設(shè)置為0.001.
根據(jù)硬件設(shè)備性能,將網(wǎng)絡(luò)的batch參數(shù)設(shè)為32,subdivision參數(shù)設(shè)為16.
該文采用的評(píng)測(cè)指標(biāo)為FPS (frame per second)和mAP(mean average precision).FPS評(píng)測(cè)模型的運(yùn)行速度,其值越高,模型運(yùn)行速度越快.與mAP有關(guān)計(jì)算公式為
(3)
圖6為改進(jìn)YOLOv4算法的網(wǎng)絡(luò)訓(xùn)練LOSS曲線.從圖6可看出:迭代次數(shù)小于40 000時(shí),LOSS值緩慢波動(dòng)下降;迭代次數(shù)大于40 000時(shí),LOSS值基本穩(wěn)定于0.5左右;LOSS值有較好的收斂性,未發(fā)生過(guò)擬合現(xiàn)象.
圖6 改進(jìn)YOLOv4算法的網(wǎng)絡(luò)訓(xùn)練loss曲線
在數(shù)據(jù)集上使用Faster-RCNN、SSD、YOLOv4、改進(jìn)YOLOv4算法進(jìn)行實(shí)驗(yàn),mAP和FPS的實(shí)驗(yàn)結(jié)果如表1所示.由表1可知:從mAP角度看,改進(jìn)YOLOv4算法的mAP值最高;從FPS角度看,改進(jìn)YOLOv4算法的FPS值僅次于YOLOv4.因此,相對(duì)于其他3種算法,改進(jìn)YOLOv4算法具有更好的綜合性能.
表1 不同算法的實(shí)驗(yàn)結(jié)果
筆者基于改進(jìn)的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu),提出輸電線路異物檢測(cè)算法,旨在解決輸電線路巡檢過(guò)程中出現(xiàn)的人力巡檢工作量大、難度高和檢測(cè)不精確的問(wèn)題.該算法對(duì)YOLOv4的SPP模塊和BCE損失函數(shù)做了改進(jìn),提高了模型的檢測(cè)精度,且能滿足實(shí)時(shí)檢測(cè)的需求.