宋成根,張正鵬,趙瑞山,卜麗靜
(1.遼寧工程技術(shù)大學(xué) 測(cè)繪與地理科學(xué)學(xué)院,遼寧 阜新 123000;2.湘潭大學(xué) 自動(dòng)化與電子信息學(xué)院,湖南 湘潭 411105)
隨著科學(xué)技術(shù)的飛速發(fā)展,工業(yè)生產(chǎn)水平和人民生活水平的提高,各種電器設(shè)備在人民的生活中被使用,巨大的電能消耗導(dǎo)致舊的電網(wǎng)已經(jīng)不能滿足人們?cè)絹碓礁叩纳钚枰?020年數(shù)據(jù)顯示,配電網(wǎng)覆蓋率達(dá)到90%,輸電桿塔是承載電網(wǎng)重要的基礎(chǔ)設(shè)施,然而每年輸電桿塔都會(huì)新建、拆除以及遭受自然、人為破壞。輸電桿塔信息得不到及時(shí)的更新,將會(huì)影響電網(wǎng)的安全高效運(yùn)行。國(guó)家電網(wǎng)的智能化是電網(wǎng)行業(yè)的共同發(fā)展目標(biāo),高壓輸電桿塔的自動(dòng)檢測(cè)在國(guó)家電網(wǎng)的智能化中極其重要。另一方面,遙感技術(shù)快速發(fā)展,遙感影像分辨率越來越高,為遙感圖像的目標(biāo)檢測(cè)開辟了更好的前景[1],同時(shí),利用遙感影像進(jìn)行大面積的輸電桿塔目標(biāo)檢測(cè)可加快電網(wǎng)行業(yè)的智能化。但是,目前基于遙感影像的電塔檢測(cè)方法一般采用人工解譯或者是機(jī)器檢測(cè),人工解譯需花費(fèi)大量的人力物力,并且受人的主觀影響,機(jī)器檢測(cè)的方法泛化能力差,無法適應(yīng)輸電桿塔的多樣性。常用的桿塔目標(biāo)檢測(cè)可以分為傳統(tǒng)方法和深度學(xué)習(xí)方法。傳統(tǒng)方法采用滑動(dòng)窗口進(jìn)行圖片中的顏色、紋理、形狀等特征的提取,分類器根據(jù)特征對(duì)其進(jìn)行分類和識(shí)別。鄒棟[2]采用直線段檢測(cè)算法(a line segment detector,LSD)和角點(diǎn)檢測(cè)(Harris),實(shí)現(xiàn)電塔的初定位,最后通過方向梯度直方圖特征(histogram of oriented gradient,HOG)進(jìn)行支持向量機(jī)(support vector machine,SVM)分類器的訓(xùn)練,采用訓(xùn)練好的分類器去除偽目標(biāo),實(shí)現(xiàn)桿塔的最終定位,具有較好的識(shí)別效果。劉操等[3]通過改進(jìn)的HOG特征提取方法將多通道特征進(jìn)行融合,最后采用SVM對(duì)融合后的特征進(jìn)行分類器訓(xùn)練和車輛目標(biāo)檢測(cè)。柳長(zhǎng)安等[4]通過融合飛行機(jī)器人的GPS信息和電力桿塔的GIS信息,得到電力桿塔在飛行機(jī)器人拍攝得到的圖像中的位置,再采用可變形的組件模型(deformable part model,DPM)進(jìn)行特征提取和SVM進(jìn)行目標(biāo)檢測(cè)識(shí)別。
近些年來,深度學(xué)習(xí)的快速發(fā)展得到廣泛關(guān)注,它能夠從海量影像數(shù)據(jù)中學(xué)習(xí)目標(biāo)特征[5],為自動(dòng)提取目標(biāo)特征提供了一個(gè)有效的框架。自R-CNN[6]的橫空出世,之后的目標(biāo)檢測(cè)逐漸進(jìn)入深度學(xué)習(xí)的時(shí)代。楊知等[7]基于SAR影像對(duì)輸電桿塔的檢測(cè),采用YOLOv2和VGG模型聯(lián)級(jí)的目標(biāo)檢測(cè)算法,首先使用YOLOv2對(duì)整景的輸電桿塔進(jìn)行識(shí)別,再使用VGG對(duì)識(shí)別結(jié)果進(jìn)行假陽性消除,雖然提高了檢測(cè)精度,但是檢測(cè)速度大幅度下降。梁懌清[8]基于YOLOv3的高分辨率SAR影像的輸電桿塔目標(biāo)檢測(cè),將原始網(wǎng)絡(luò)的輸入改為適應(yīng)目標(biāo)尺寸大小的960×960,結(jié)合focal loss[9]思想改進(jìn)損失函數(shù),改善了YOLOv3的誤檢、漏檢現(xiàn)象,但存在迭代時(shí)間長(zhǎng)的問題。韋汶妍等[10]采用Faster R-CNN算法對(duì)輸電桿塔檢測(cè),利用VGG16作為特征提取網(wǎng)絡(luò),進(jìn)行遷移學(xué)習(xí),提高了檢測(cè)精度,縮短訓(xùn)練時(shí)間但是檢測(cè)時(shí)間并沒有改善。
綜上,傳統(tǒng)的目標(biāo)檢測(cè)算法由于其約束條件較多,在特定的場(chǎng)景下有較好的效果,環(huán)境發(fā)生變化時(shí)存在誤檢和漏檢的問題,并且存在特征構(gòu)建復(fù)雜、檢測(cè)精度不高、檢測(cè)速率較低等問題,處理過程較為復(fù)雜。雖然目前深度學(xué)習(xí)目標(biāo)檢測(cè)算法有一些改進(jìn),但并沒有針對(duì)密集目標(biāo)的檢測(cè)進(jìn)行改進(jìn),并且目前算法主要是針對(duì)SAR影像、地面拍攝影像的輸電桿塔檢測(cè),對(duì)于高分辨率遙感影像的輸電桿塔檢測(cè)研究較少。
在數(shù)據(jù)集制作過程中發(fā)現(xiàn),同一類別的輸電桿塔大目標(biāo)與小目標(biāo)的特征差異較大,不同拍攝角度導(dǎo)致輸電桿塔呈現(xiàn)不同形狀,背景復(fù)雜且存在同一類目標(biāo)相互遮擋的情況,最終導(dǎo)致電塔檢測(cè)不準(zhǔn)確。因此,本文對(duì)YOLOv3算法進(jìn)行改進(jìn),解決上述問題,提出了高分辨率遙感影像的輸電桿塔智能檢測(cè)方法。而且,目前公開的大型數(shù)據(jù)集如DOTA[11]、VEDAI[12]等主要包含汽車、輪船、飛機(jī)、球場(chǎng)等常見目標(biāo),但沒有公開的高分辨率遙感影像輸電桿塔的數(shù)據(jù)集,因此,本文制作的輸電桿塔目標(biāo)數(shù)據(jù)集對(duì)后續(xù)輸電桿塔的檢測(cè)研究和發(fā)展具有重要實(shí)際應(yīng)用價(jià)值。
收集了中俄邊境、江蘇省、廣州省等地區(qū)輸電桿塔的航空遙感影像共1 110景,分辨率為0.5 m,詳細(xì)參數(shù)見表1。影像數(shù)據(jù)集包含不同背景、形狀的輸電桿塔復(fù)雜情況,如圖1所示。
表1 航空遙感影像數(shù)據(jù)參數(shù)
原始影像大小為30 000像素×20 000像素,通過Python程序進(jìn)行圖像裁剪,人工篩選獲取不同背景、不同成像形狀的輸電桿塔數(shù)據(jù)集。針對(duì)原始影像中輸電桿塔的尺寸特點(diǎn),為了能夠更好保證輸電桿塔樣本的完整性,本文數(shù)據(jù)集圖片裁剪尺寸大小為640像素×640像素。
為了滿足目標(biāo)檢測(cè)的通用標(biāo)準(zhǔn)格式,本文采用PASCAL VOC[13]格式標(biāo)準(zhǔn)制作輸電桿塔數(shù)據(jù)集,數(shù)據(jù)集的詳細(xì)制作過程如下。
1)利用LableImg軟件進(jìn)行圖片中輸電桿塔目標(biāo)的手動(dòng)標(biāo)注。LableImg是由Python編寫的,QT作為圖形界面,用于深度學(xué)習(xí)數(shù)據(jù)集制作的圖片標(biāo)注工具。人工進(jìn)行輸電桿塔的識(shí)別,使用輸電桿塔的最小外接矩形將目標(biāo)選中,設(shè)置目標(biāo)類別名稱為“tower”,該軟件生成與圖片對(duì)應(yīng)的可擴(kuò)展標(biāo)記語言xml格式文件。xml文件保存了圖片中目標(biāo)的類別名稱和相對(duì)應(yīng)的位置信息,其中標(biāo)注的矩形框如圖2(b)所示。xml文件中的(xmin,ymin)為圖2(b)標(biāo)注數(shù)據(jù)示例圖中綠色矩形框的左上角坐標(biāo),(xmax,ymax)為矩形框的右下角坐標(biāo)。
2)利用xml文件保存輸電桿塔在圖中的位置信息如圖2(c)所示。根據(jù)YOLOv3的訓(xùn)練要求,將xml文件進(jìn)行格式轉(zhuǎn)換,主要包含訓(xùn)練圖片的路徑、目標(biāo)坐標(biāo)和目標(biāo)類別信息。
不同于汽車、輪船目標(biāo),輸電桿塔屬于塔狀建筑物,在影像中隨著拍攝角度的不同,輸電桿塔呈現(xiàn)出的形狀差異較大,其結(jié)構(gòu)屬于空間桁架結(jié)構(gòu),背景更為復(fù)雜。由于輸電桿塔目標(biāo)檢測(cè)只有一類、影像數(shù)據(jù)有限,為提高模型的泛化能力,防止訓(xùn)練模型過擬合,需要對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充操作,主要采用平移、旋轉(zhuǎn)、顏色變化等方式,如圖3所示。
為解決數(shù)據(jù)少的問題,本文采用遷移學(xué)習(xí)進(jìn)行模型的訓(xùn)練?;诖?,本文使用COCO[14](common objects in context)數(shù)據(jù)集作為源域,本文的輸電桿塔數(shù)據(jù)集作為目標(biāo)域,使用COCO數(shù)據(jù)集學(xué)習(xí)到的模型參數(shù)來訓(xùn)練YOLOv3輸電桿塔檢測(cè)模型。
首先修改網(wǎng)絡(luò)結(jié)構(gòu)。因?yàn)镃OCO數(shù)據(jù)集包括80個(gè)類別,YOLOv3層輸出為255,本文的輸電桿塔檢測(cè)只有一個(gè)類別,所以將YOLOv3層輸出改為18。使用預(yù)訓(xùn)練權(quán)重文件,凍結(jié)主干網(wǎng)絡(luò)的提取層參數(shù)不參與訓(xùn)練。因?yàn)橹鞲删W(wǎng)絡(luò)已經(jīng)使用大量的圖片訓(xùn)練過具有良好的特征提取能力,所以直接將主干網(wǎng)絡(luò)的特征提取遷移到輸電桿塔的特征提取中。訓(xùn)練其余層進(jìn)行參數(shù)微調(diào),訓(xùn)練過程中損失趨于平穩(wěn)時(shí)進(jìn)行解凍,全部層參與訓(xùn)練,使得提取到的特征更適合輸電桿塔的目標(biāo)檢測(cè),從而實(shí)現(xiàn)源域到輸電桿塔目標(biāo)域的遷移學(xué)習(xí)。與從零開始訓(xùn)練相比,使用遷移學(xué)習(xí)能夠很大程度上縮短訓(xùn)練時(shí)間,并且得到更好的特征提取效果,完成目標(biāo)檢測(cè)任務(wù)[15]。
深度學(xué)習(xí)目標(biāo)檢測(cè)主要分為雙階段(two-stage)和單階段(one-stage)算法,其中two-stage目標(biāo)檢測(cè)算法主要包括Fast R-CNN[16]、Faster R-CNN[17]等,one-stage目標(biāo)檢測(cè)算法主要包括YOLOv1[18]、SSD[19]、YOLOv2[20]、YOLOv3[21]算法等。YOLOv3是在YOLOv1、YOLOv2基礎(chǔ)上進(jìn)行改進(jìn),使用Darknet-53網(wǎng)絡(luò),并且采用多個(gè)尺度融合的方式做檢測(cè),對(duì)小目標(biāo)的檢測(cè)精度有很大改善。其中YOLOv3是目前為止速度和精度最為均衡的目標(biāo)檢測(cè)網(wǎng)絡(luò),并且在目標(biāo)檢測(cè)任務(wù)中性能表現(xiàn)尤為突出。
YOLOv3的特征提取網(wǎng)絡(luò)主要由1×1和3×3的卷積層組成,由于引入殘差結(jié)構(gòu)[22]、錨點(diǎn)機(jī)制(anchor)和特征金字塔模塊,使得YOLOv3算法有更強(qiáng)的特征提取能力、更高的檢測(cè)精度以及更好的小目標(biāo)檢測(cè)效果。在對(duì)416像素×416像素圖像進(jìn)行特征提取過程中,借鑒特征金字塔網(wǎng)絡(luò)思想,分別在13×13、26×26和52×52 3個(gè)特征尺度分配3個(gè)不同大小的預(yù)選框進(jìn)行預(yù)測(cè),從而實(shí)現(xiàn)端到端的目標(biāo)檢測(cè)。YOLOv3算法的損失函數(shù)由位置誤差損失(中心坐標(biāo)、長(zhǎng)寬損失)、置信度損失、類別損失[23]共3個(gè)部分組成。
YOLOv3算法的先驗(yàn)框是通過COCO數(shù)據(jù)集采用K-means聚類算法得到,YOLOv3算法中的3個(gè)預(yù)測(cè)尺度分別對(duì)應(yīng)3組先驗(yàn)框,如(10,13)、(16,30)、(33,23)、(30,61)、(62,45)、(59,119)、(116,90)、(156,198)、(373,326)分別對(duì)應(yīng)52×52、26×26、13×13 3種尺度的特征圖。由于COCO數(shù)據(jù)集包含20個(gè)類別并且目標(biāo)尺寸差異較大,并不適用于輸電桿塔檢測(cè),因此采用K-means聚類算法對(duì)輸電桿塔數(shù)據(jù)集進(jìn)行多次聚類求得平均聚類,結(jié)果為:(69,89)、(82,79)、(81,85)、(86,91)、(85,105)、(96,93)、(105,103)、(116,119)、(116,130)。
YOLOv3的損失函數(shù)采用均方差作為目標(biāo)框位置回歸損失,對(duì)目標(biāo)尺度敏感。研究表明,IoU不僅能反映預(yù)測(cè)框與真實(shí)框的重疊程度,同時(shí)還具有尺度不變性。但是當(dāng)預(yù)測(cè)框真實(shí)框沒有交集時(shí),梯度消失不能夠進(jìn)行損失優(yōu)化。當(dāng)預(yù)測(cè)框與真實(shí)框重疊率相同時(shí),IoU相同不能夠反映出重疊效果,如圖4所示,其中綠色框?yàn)檎鎸?shí)框,黑色為預(yù)測(cè)框。
基于IoU存在的問題,Rezatofighi等[24]提出GIoU損失函數(shù)。雖然GIoU可以緩解非重疊情況下的梯度消失的問題,但是出現(xiàn)如圖5所示的情況時(shí),3種情況下GIoU相同并且等于IoU,GIoU退化為IoU導(dǎo)致失效。
為此,Zheng等[25]提出DIoU損失函數(shù),使用距離優(yōu)化方式來解決GIoU的失效問題。為了加快模型訓(xùn)練,本文采用CIoU進(jìn)行損失優(yōu)化,CIoU考慮了目標(biāo)框回歸的3個(gè)重要因素,即重疊面積、距離、長(zhǎng)寬比。CIoU是在IoU的基礎(chǔ)上引入了最小外接矩形、歐氏距離、最小外接矩形的對(duì)角線、界框橫縱比。
在原始的非極大值抑制中使用IoU作為判斷條件來抑制多余的目標(biāo)框,但由于IoU僅僅考慮重疊區(qū)域,經(jīng)常會(huì)造成錯(cuò)誤的抑制,特別是在預(yù)測(cè)框互相包含的情況下。因此將YOLOv3中的非極大值抑制算法中的判斷條件替換DIoU。DIoU同時(shí)考慮了重疊區(qū)域和兩個(gè)中心點(diǎn)距離,能夠改善目標(biāo)重疊情況下的漏檢問題,從而提高目標(biāo)的檢測(cè)精度,DIoU-NMS的公式參見文獻(xiàn)[25]。
本實(shí)驗(yàn)基于Pytorch1.2深度學(xué)習(xí)框架,編程語言Python3.6。
數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集,比例為0.9、0.1,分別在輸電桿塔數(shù)據(jù)集中的訓(xùn)練集和驗(yàn)證集上進(jìn)行訓(xùn)練和驗(yàn)證,數(shù)據(jù)集均為隨機(jī)分配。為了保證實(shí)驗(yàn)的準(zhǔn)確性,從與數(shù)據(jù)集無關(guān)的影像上重新制作測(cè)試數(shù)據(jù)集,數(shù)據(jù)集參數(shù)如表2所示。訓(xùn)練參數(shù)設(shè)置:最大迭代世代100,選用Adam優(yōu)化器,前50世代批次大小設(shè)為8張影像(根據(jù)計(jì)算機(jī)性能來設(shè)),初始學(xué)習(xí)率為1E-4,后50世代批次大小設(shè)為4,學(xué)習(xí)率為1E-5。在調(diào)整為合適的參數(shù)之后,損失平穩(wěn)收斂。本文使用表2數(shù)據(jù)集參數(shù)進(jìn)行訓(xùn)練、驗(yàn)證以及測(cè)試,改進(jìn)后算法的Loss曲線和P-R曲線如圖6、圖7所示。
表2 數(shù)據(jù)集參數(shù) 張
圖6 Loss曲線的橫軸為epoch,縱軸為損失值。由圖6可知,改進(jìn)后算法的損失值下降快速且平穩(wěn)收斂。圖7 P-R曲線的橫軸為召回率,縱軸為精確率。由圖7可知,改進(jìn)后的算法在本文輸電桿塔測(cè)試集上的精確率和召回率均接近1,說明改進(jìn)后算法的誤檢率和漏檢率都很低。本文將原始YOLOv3算法與SSD、Faster R-CNN算法進(jìn)行了對(duì)比實(shí)驗(yàn),并且將改進(jìn)后的算法在本文遙感影像輸電桿塔驗(yàn)證集進(jìn)行算法評(píng)估,其中驗(yàn)證集的輸電桿塔數(shù)量為458個(gè),各算法結(jié)果如表3所示。
表3 各算法結(jié)果表
由表3可知,YOLOv3算法與SSD、Faster R-CNN相比,在檢測(cè)時(shí)間相近的情況下,YOLOv3算法在各方面表現(xiàn)均優(yōu)于其他兩種算法。其中模型A是在原始YOLOv3算法上重新設(shè)置先驗(yàn)框,相比原始算法,其精確度和召回率略有提升。模型B為本文改進(jìn)后的算法,其精確度和召回率有小幅度提升。改進(jìn)之后的算法在對(duì)輸電桿塔的檢測(cè)中提供更加精確的最小外接矩形框,對(duì)桿塔的定位提供了更準(zhǔn)確的數(shù)據(jù),部分實(shí)驗(yàn)結(jié)果如圖8所示。
由圖8(a)可知,改進(jìn)的YOLOv3算法改善了輸電桿塔的誤檢。由圖8(c)可知,改進(jìn)后的算法為輸電桿塔的目標(biāo)檢測(cè)提供了更為精準(zhǔn)的目標(biāo)框。由圖8(b)與圖8(d)可知,改進(jìn)后的算法提高了對(duì)于輸電桿塔密集目標(biāo)的檢測(cè)準(zhǔn)確度。改進(jìn)后的算法對(duì)復(fù)雜背景、密集目標(biāo)的高分辨率遙感影像中的輸電桿塔檢測(cè)效果有一定的提升。
本文提出了高分辨率遙感影像輸電桿塔智能檢測(cè)方法,在YOLOv3目標(biāo)檢測(cè)算法基礎(chǔ)上進(jìn)行改進(jìn)。首先,使用平移、旋轉(zhuǎn)、顏色變化等方式進(jìn)行數(shù)據(jù)擴(kuò)充操作;然后,基于COCO數(shù)據(jù)集的遷移學(xué)習(xí)對(duì)YOLOv3的網(wǎng)絡(luò)進(jìn)行參數(shù)調(diào)整;最后,通過對(duì)輸電桿塔數(shù)據(jù)集特點(diǎn)的分析,對(duì)先驗(yàn)框進(jìn)行重新聚類,對(duì)YOLOv3算法的損失函數(shù)進(jìn)行了改進(jìn),并使用DIoU改進(jìn)的非極大值抑制算法,在檢測(cè)過程中有效降低了目標(biāo)誤檢、漏檢問題以及為輸電桿塔提供更精準(zhǔn)的矩形框。改進(jìn)后的算法在本文數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)驗(yàn)證。相比原始算法,改進(jìn)的YOLOv3算法分別在檢測(cè)精確度和召回率上提高了0.48%、1.53%,對(duì)于變電站附近的密集輸電桿塔目標(biāo),山地、耕地的稀疏輸電桿塔目標(biāo)的檢測(cè)有一定的改善,改進(jìn)后的YOLOv3算法能夠更好地適應(yīng)高分辨率遙感影像的輸電桿塔檢測(cè)。
總之,高分辨率遙感影像的輸電桿塔目標(biāo)檢測(cè)取得了98%以上準(zhǔn)確率的良好效果,表明深度學(xué)習(xí)算法在高分辨率遙感影像輸電桿塔檢測(cè)中的可行性,并且本文數(shù)據(jù)集的制作對(duì)后續(xù)遙感影像輸電桿塔檢測(cè)的深入研究具有一定的借鑒意義。