張煜彬,方中純
(1.內(nèi)蒙古科技大學 信息工程學院,內(nèi)蒙古 包頭 014010;2.內(nèi)蒙古科技大學 工程訓練中心創(chuàng)新創(chuàng)業(yè)教育學院,內(nèi)蒙古 包頭 014010)
電力產(chǎn)業(yè)是十分重要的公共基礎事業(yè),與國民經(jīng)濟的發(fā)展和社會安定有著密不可分的聯(lián)系[1].其中,架空輸電線路是電力系統(tǒng)的重要組成部分,幾乎覆蓋了全國各地,是電力傳輸?shù)臉蛄?,架空輸電線路的安全運行是電網(wǎng)穩(wěn)步發(fā)展的前提條件.然而分布廣泛的輸電線路的安全性往往遭到威脅.據(jù)國內(nèi)數(shù)據(jù)統(tǒng)計,30%的輸電線路故障事件是由外力破壞導致的,外力破壞已成為除雷害以外的輸電線路安全運行的最大隱患[2].常見的外力破壞危險行為主要有:低空飛行物、線路起火、超大工程車輛、懸掛異物、搭建違章建筑、林區(qū)高樹成長壓線、可疑人員蓄意破壞、桿塔沉降傾斜等.
目前,輸電線路在線監(jiān)測技術已在實際中得到應用.和傳統(tǒng)的人工巡檢相比,在線監(jiān)測可以實時檢測輸電線路的運行狀態(tài),一定程度上提升了工作效率.但仍然靠后臺人工篩選出有隱患的圖像進行預警,缺點是:一方面預警信息不具備實時性;另一方面大量無預警信息圖像占據(jù)了寶貴的通信資源.因此,架空輸電線路警戒區(qū)危險行為的自動預警與識別是當前基于監(jiān)測圖像的輸電線路故障與危險行為識別的關鍵[3].
提出了一種改進的危險行為檢測方法,該方法基于經(jīng)典YOLOv3算法,能夠滿足實時監(jiān)控的要求,具有較高的檢測精度和準確度,同時也可以直接嵌入到遠程攝像頭中進行工作,提高了工作效率[4,5,6].
YOLOv3算法于2018年提出,是目前目標檢測領域最具有代表性的算法[7,8,9],該算法在YOLOv2基礎上進行了改進,具體的改進包括:重新設計了骨干網(wǎng)絡;修改了損失函數(shù),通過交叉熵函數(shù)實現(xiàn)分類任務;使用了多尺度訓練方法[10],改善了小目標的檢測效果.
為了學習更加豐富的特征信息,YOLOv3增加了網(wǎng)絡層數(shù),設計了由52個卷積層和1個全連接層組成的特征提取網(wǎng)絡——Darknet-53.整個網(wǎng)絡結構由連續(xù)的1×1和3×3卷積層以及1個全連接層組成,每個卷積層后面都有Batch normalization層和Leaky ReLU函數(shù)層.Darknet-53的卷積層之間使用了shortcut跨層連接,可以避免梯度彌散和梯度爆炸.Darknet-53結構如圖1所示,圖中左側的數(shù)字代表的是殘差單元的重復個數(shù).殘差單元是由2個卷積層和1個短接鏈路組成,如圖2所示.
圖1 Darknet-53網(wǎng)絡結構
圖2 殘差單元圖
YOLOv3損失函數(shù)包含3部分:邊界框回歸損失、目標置信度損失和目標分類損失.損失函數(shù)公式如式(1)所示.
(1)
在基于anchor的目標檢測算法中,產(chǎn)生了大量的矩形候選框,但這些矩形框有許多是針對同一目標的,因此存在大量冗余矩形框.非極大值抑制算法(Non-Maximum Suppression,NMS)的作用是通過消除多余框來尋找最佳的物體檢測位置.在圖像中只有單個物體被檢測的情況下,改算法具有很好的效果.然而圖像中若存在2個或2個以上重疊度很高的物體時,該算法會濾除掉其中置信度較低的目標,導致漏檢.表達式如式子(2)所示.si為候選框i的得分,M為當前得分最高的候選框,iou(M,bi)為候選框bi與M的交并比,Nt為超參數(shù)設定的重疊閾值.
(2)
為了實現(xiàn)對輸電線路外力破壞危險行為檢測的研究,采用了較高準確性和實時性的YOLOv3模型作為外力破壞危險行為檢測的基礎模型,并做了改進.首先,針對文中檢測目標的特征對YOLOv3的網(wǎng)絡結構進行改進.其次,針對外力破壞危險行為的漏檢問題,對損失函數(shù)進行改進,減少漏檢現(xiàn)象.最后,針對圖像的輸出處理時使用的非極大值抑制的方法進行改進.
網(wǎng)絡結構是在YOLOv3網(wǎng)絡的前段加入3個卷積層,功能是對輸入的圖片進行特征提取,生成更高層次的抽象特征,并不是針對經(jīng)典YOLOv3骨干網(wǎng)絡結構進行的增改.改進后的檢測模型網(wǎng)絡結構如圖3所示.本檢測模型中,為所有樣本的每個不同尺度的特征圖只設計了2種預選框.經(jīng)典YOLOv3中設置的3種預選框,分別用來檢測大、中、小物體,而在研究的項目中圖像出現(xiàn)的小目標代表著目標離輸電線路警戒區(qū)域較遠,對輸電線路暫時不會造成危害,不必要進行檢測.故本模型只將圖片劃分成13×13和26×26的單元格[11].這樣可以在不損失模型精度的條件下,使模型的檢測速度得到提升.改進后的檢測模型網(wǎng)絡原理如圖4所示.
圖3 檢測模型網(wǎng)絡結構
在目標檢測問題中,網(wǎng)絡模型的輸出包含檢測框的位置信息,一般以中心點坐標和寬高表示,記為(x,y,w,h),還包含檢測框中識別物體的置信度confidence以及該目標在各個類別上的概率值P.根據(jù)實際標注的目標框的位置信息以及目標框中物體的類別信息即可計算出網(wǎng)絡的預測輸出與實際標框之間的誤差.誤差的計算方式則取決于模型定義的損失函數(shù),因此一個好的損失函數(shù)對于網(wǎng)絡的訓練速度以及最終的預測精度都起到了關鍵性作用[12].
圖4 檢測模型網(wǎng)絡原理
2.2.1定位損失函數(shù)改進
YOLOv3在計算位置坐標誤差時,只是簡單地將邊界框假設為獨立的4個變量,然后采用差值平方和作為損失函數(shù),根據(jù)4個坐標點獨立進行邊界框回歸.這種方法存在2個缺點:(1)訓練和檢測時所用的標準不一樣而導致結果不準確.通常檢測時用IoU進行模型性能評估,然而實際回歸坐標僅是4個坐標點.(2)回歸時4個坐標點是相互獨立的,欠缺對坐標相關性的考慮,應該進行聯(lián)合回歸.
為了解決損失函數(shù)對邊界框坐標相關性欠缺考慮、定位不準確的問題.使用GIoULoss[13]作為定位損失函數(shù).GIoU函數(shù)表達式如式(3)所示,其中:C為預測框A與真實框B的最小外接矩形.GIoU損失函數(shù)的表達式如式(4)所示.
(3)
GIoULoss=1-GIoU.
(4)
2.2.2置信度損失函數(shù)改進
考慮到文中數(shù)據(jù)集中正負樣本不均衡性,置信度損失函數(shù)采用了Focal Loss[14].Focal Loss就是為解決目標檢測任務中的正負樣本不均衡及難易樣本不均衡問題提出的.通過大量降低負樣本和難樣本在訓練中所占的權重,使得正負樣本、難易樣本達到平衡.Focal Loss的函數(shù)表達式如式(5)所示.
(5)
從式(5)中可知:Focal Loss函數(shù)在交叉熵的基礎上添加了2個因子γ和α.其中γ是一個大于0的常數(shù),作用是使易分類樣本的損失減少.如當γ=3時,就正樣本來說,若預測的結果為0.97,則這個樣本十分容易被區(qū)分其正負樣本類別,即該樣本為簡單樣本.其損失函數(shù)的值為(1~0.97)的立方,會更小.若某個樣本預測概率為0.3,其對應的損失函數(shù)值為(1~0.3)的立方,會大一些,得到更多的關注.就負樣本而言,預測概率為0.2的樣本,其損失函數(shù)值與預測概率為0.5的樣本的損失函數(shù)值相比較會小很多.因為預測概率為0.5的樣本的損失函數(shù)值減少了0.75,而預測概率為0.2的樣本的損失函數(shù)值減少了0.04.同時模型的參數(shù)是隨著損失函數(shù)的變化而改變,這樣會讓整個模型給予那些比較難以區(qū)分的樣本更多的關注,同時使得容易區(qū)分樣本對模型的影響也減弱了.Focal Loss函數(shù)的另外一個平衡因子α是為了平衡數(shù)據(jù)自身存在的正負樣本的不均衡而設置的.α是一個權重因子,它的取值范圍為0~1.可以看出當y=0(非檢測目標)時,隨著α逐漸增大,損失函數(shù)值會逐漸降低,從而使非檢測目標對整個模型訓練的影響減弱.
2.2.3損失計算
在對YOLOv3算法的定位損失和置信度損失函數(shù)進行改進后,算法的損失函數(shù)表達式如式(6)所示.
(6)
在進行去除重復的預測框這步操作的時候,若圖像中存在2個或多個重疊度很高的物體時,NMS會過濾掉其中置信度較低的一個,造成漏檢.為解決這類問題,采用Soft-NMS算法,如式(6)所示.當選取類置信度高的bounding box,計算其余每個bounding box和選定的bounding box的IoU值時,NMS計算方式是直接刪除IoU值大于閾值的bounding box;Soft-NMS則是使用基于IoU的衰減函數(shù)來降低IoU值大于閾值的bounding box的置信度,衰減程度與IoU值成正比.
(6)
實際的巡檢圖像是由有危險行為的圖像和沒有危險行為的圖像組成.因此采集了300張有危險行為的圖像作為正樣本,同樣采集了700張沒有危險行為的巡檢圖像作為負樣本.這些沒有危險行為巡檢圖像同樣包含輸電線路和輸電桿塔,甚至還包括建筑物、樹木和路燈等常見干擾物.然后將這1 000張圖像通過數(shù)據(jù)增強操作來進行數(shù)據(jù)集擴充.圖5的6張圖像分別是原始圖像和進行翻轉、旋轉、縮放、裁剪以及添加噪聲后的圖像.最后,使用數(shù)據(jù)標注工具對擴充后的數(shù)據(jù)集進行標注,主要對人、異物、吊車、挖掘機和其他工程車輛五類目標進行標注.
圖5 原始圖片及數(shù)據(jù)增強后的圖像(a)原圖;(b)翻轉;(c)旋轉;(d)縮放(e)裁剪;(e)添加噪聲
所有實驗均在Linux CentOS服務器上進行,服務器配備有兩個顯存為15 GB的Tesla T4GPU.開發(fā)環(huán)境是Pycharm和Anaconda3,開發(fā)語言是python,深度學習框架為Tensorflow-gpu 2.1.0,cuda10.2.
實驗時首先對模型中需要的一些參數(shù)進行設置,模型的批量大小為64,初始學習率為0.001,動量參數(shù)為0.8,學習率衰減為0.005.
將本研究中的測試圖片分別在YOLOv3網(wǎng)絡模型和改進的YOLOv3模型上進行訓練,測試集中有300張圖片,其中包含240張正樣本和60張負樣本,實驗表明:mAP提高了約4.2%,精確度提升了約5.2%,速度提高了約22.5%.損失函數(shù)的值會隨著訓練次數(shù)的增加而減少,但改進的YOLOv3的損失函數(shù)的值較原始YOLOv3損失函數(shù)的值小,如圖6所示,故本文對損失函數(shù)的改進是有效果的.在原始YOLOv3網(wǎng)絡模型進行危險行為檢測后的評價指標數(shù)據(jù)如表1所示,在改進的YOLOv3網(wǎng)絡模型進行危險行為檢測后的評價指標數(shù)據(jù)如表2所示.
圖6 損失函數(shù)
表1 原始YOLOv3網(wǎng)絡評價指標
表2 改進的YOLOv3網(wǎng)絡評價指標
由表1,2中的數(shù)據(jù)可知,在改進的YOLOv3檢測模型上檢測性能和速度都有一定程度提升,說明進行的改進對危險行為的檢測是有一定貢獻的.
提出了一種基于經(jīng)典YOLOv3改進的目標檢測算法,該算法是對YOLOv3網(wǎng)絡結構、損失函數(shù)及圖像輸出處理部分進行改進而得到的.使用構建的數(shù)據(jù)集分別在經(jīng)典YOLOv3和改進的YOLOv3上進行訓練和測試,實驗表明改進的YOLOv3在實時性和精確度方面都有了進一步的提升.下一步工作將擴大數(shù)據(jù)集,通過不斷訓練網(wǎng)絡模型,對模型中的個別參數(shù)進行微調(diào),找到最優(yōu)的參數(shù),更進一步提高模型的檢測速度和精度.