馬靜,王慶杰,2,孟海磊,王栩成,董嘯,趙文越,任敬飛
(1.華北電力大學電氣與電子工程學院,北京市昌平區(qū) 102206;2.國家電網(wǎng)有限公司,北京市西城區(qū) 100031;3.國網(wǎng)山東省電力公司,山東省濟南市 250001)
配電網(wǎng)工程存在施工現(xiàn)場點多面廣、安全風險防控及現(xiàn)場監(jiān)管難度大等特點[1-3]。目前配電網(wǎng)工程投資規(guī)模較大,省公司平均每年項目在3000個以上,現(xiàn)場作業(yè)人數(shù)上萬。與上述規(guī)模相比,工程管理人員少、監(jiān)管力量配備不足,容易導致現(xiàn)場作業(yè)不規(guī)范、安全事故多、工程完成質(zhì)量差等問題,因此亟需通過強化機器視覺等人工智能手段加強配電網(wǎng)工程的安全與質(zhì)量管控[4-5]。深度學習因提取特征能力強,識別精度高,實時性快等優(yōu)點,在圖像識別領(lǐng)域被廣泛應(yīng)用。
目前基于機器視覺的目標檢測算法主要有:基于輸入圖像特征和邊緣檢測的傳統(tǒng)檢測技術(shù)和基于深度學習的檢測技術(shù)。傳統(tǒng)檢測技術(shù)[6-8]通過選擇目標候選區(qū)域,提取圖像樣本特征如方向梯度直方圖(histogram of oriented gradient,HOG)特征、支持向量機(support vector machines,SVM)特征等,將圖像特征送到迭代算法等分類器中進行分類并輸出結(jié)果,傳統(tǒng)檢測算法遵循圖像預(yù)處理、目標定位、目標分割及目標識別4個階段。各個階段的設(shè)計誤差均會影響后續(xù)結(jié)果,且大量人工提取特征的使用,導致魯棒性差,難以適用于場景復(fù)雜的配電網(wǎng)工程檢測任務(wù)?;谏疃葘W習的圖像識別方法[9-13]采用卷積神經(jīng)網(wǎng)絡(luò)模型,識別率更穩(wěn)定,適用性較廣,但易受到復(fù)雜多變的環(huán)境影響,同時神經(jīng)網(wǎng)絡(luò)模型較大,速度較慢。以卷積神經(jīng)網(wǎng)絡(luò)為核心的目標檢測算法可分為1階段法和2階段法[14]。1階段目標檢測法不使用候選框,將目標邊框定位問題轉(zhuǎn)化成回歸問題進行處理,使得檢測速度較快。2階段目標檢測法通過生成樣本候選框,再利用卷積神經(jīng)網(wǎng)絡(luò)在候選框中對樣本進行分類,最終完成目標的檢測與識別。
針對上述問題,本文提出一種基于改進的YOLOv5網(wǎng)絡(luò)模型的配電網(wǎng)工程實時檢測方法。首先,對配電網(wǎng)工程樣本數(shù)據(jù)集進行預(yù)處理,改進YOLOv5網(wǎng)絡(luò)的特征提取網(wǎng)絡(luò),采用加權(quán)的雙向特征金字塔網(wǎng)絡(luò)(weighted bidirectional feature pyramid network,Bi-FPN)代替?zhèn)鹘y(tǒng)特征金字塔(feature pyramid network,F(xiàn)PN)模塊,加快多尺度融合與小目標物體檢測精度?;诖?,改進損失函數(shù)、非極大值抑制模塊,以提高模型識別精度與收斂速度,最后經(jīng)過Darknet深度學習模型對識別樣本進行多次重復(fù)迭代訓練,保存最優(yōu)權(quán)重數(shù)據(jù)用于測試集測試。
YOLO系列目標檢測算法是深度學習領(lǐng)域經(jīng)典的1階段算法,其單一圖片的推理時間能達到7 ms,可滿足工程現(xiàn)場實時檢測的需求。同時,YOLOv5模型大小僅有27 MB,而且通過參數(shù)調(diào)整就可以實現(xiàn)不同大小、不同復(fù)雜度的模型設(shè)計,更加適用于工業(yè)場景。
YOLOv5模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。由圖可知模型主要分為4個部分,分別為輸入網(wǎng)絡(luò)、主干提取網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)和預(yù)測網(wǎng)絡(luò)[15]。
圖1 YOLOv5模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structureof YOLOv5 model
YOLOv5輸入端網(wǎng)絡(luò)包括馬賽克數(shù)據(jù)增強、圖片尺寸處理、錨框自適應(yīng)位置計算等多部分,可解決圖片大小、長寬比不一致等問題,有效提升小目標識別率,適用于本項目中安全帽、熔斷器等小型目標的檢測。針對大型卷積神經(jīng)網(wǎng)絡(luò)中存在的梯度信息重復(fù)問題,主干提取網(wǎng)絡(luò)采用CSPDarknet53提取信息特征,減少了模型的參數(shù)量、規(guī)模,提高了推理的速度和準確率。頸部網(wǎng)絡(luò)采用路徑聚合網(wǎng)絡(luò)(path aggregation network,PANet)和增強模塊空間金字塔池化(spatial pyramid pooling,SPP)加強特征的提取[16],以獲取更有效的特征層。整個結(jié)構(gòu)采用特征金字塔上采樣和下采樣融合的做法,F(xiàn)PN是自上而下的,將高層特征利用上采樣的方式對信息進行傳遞融合,獲得預(yù)測的特征圖。PAN采用自底向上的特征金字塔[17],具體結(jié)構(gòu)如圖2所示。
圖2 FPN+PAN結(jié)構(gòu)Fig.2 Structureof FPN and PAN
YOLOv5預(yù)測網(wǎng)絡(luò)包括損失函數(shù)和非極大值抑制(non-maximum suppression,NMS)等。YOLOv5采用一種廣義的交并比(generalized intersection over union,GIoU)作為損失函數(shù),用來計算邊界框的損失,可以有效解決邊界框不重合的問題。非極大值抑制即為對同一位置產(chǎn)生的多個候選框根據(jù)置信度進行排序,選取最大值作為最佳的目標邊界框。
1.2.1 Bi-FPN特征網(wǎng)絡(luò)
改進 YOLOv5網(wǎng)絡(luò)原有的FPN結(jié)構(gòu),采用Bi-FPN網(wǎng)絡(luò)來提取特征[18]。將CSPDarknet53中5 次下采樣的后3次輸出特征做多次自上而下和自下而上的特征融合,并添加新的連接來更大程度地提取特征。圖3為使用Bi-FPN 特征融合網(wǎng)絡(luò)代替YOLOv5原有的多尺度融合網(wǎng)絡(luò)的改進YOLOv5神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[19]。
圖3 改進的YOLOv5神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Structure of improved YOLOv5 neural network
通過快速歸一化融合特征的方式,利用Bi-FPN對不同尺度的特征進行融合
式中:取ε=0.00001,避免數(shù)值的不穩(wěn)定,模型采用ReLu激活函數(shù)[20]。通過將Bi-FPN反復(fù)運算,得到3個有效特征層,將它們傳輸?shù)筋悇e預(yù)測層和邊框預(yù)測層就可以獲得預(yù)測結(jié)果。
1.2.2 錨框優(yōu)化
本文通過K-means聚類和遺傳算法,生成與當前數(shù)據(jù)集匹配度更高的錨框。K-means采用距離作為相似度的評價指標,對象之間距離越近,其相似度越高。
K-means算法流程如下。
步驟1)隨機選擇樣本作為初始聚類中心;
步驟2)計算每個樣本到聚類中心的距離并分類
步驟3)針對每個類別,重新計算其聚類中心
步驟4)重復(fù)步驟2)到3),直至滿足收斂條件,收斂條件如式(4)所示
函數(shù)J表示每個樣本點到其質(zhì)心的距離平方和。K-means最終將J調(diào)整到最小。
計算初始錨框的目標框最大可能召回率(best possible recall,BPR),當其小于98%時,對錨框的寬高比進行K-means聚類后,再利用遺傳算法隨機變異1000次,得到更適合樣本訓練的先驗框。
1.2.3 CIoU—Loss損失函數(shù)
本文選取CIoU作為損失函數(shù),其計算過程如下。
如圖4所示,藍色線框為目標框,淺綠色線框為預(yù)測框。目標框坐標為B=(x1,y1,x2,y2),預(yù)測框坐標為 BP=(x1P,y1P,x2P,y2P)[21]。
圖4 目標框與預(yù)測框位置圖Fig.4 Location of target frame and prediction frame
目標框面積
預(yù)測框面積
目標框與預(yù)測框重疊面積(交集)
式中:
找到可以包含目標框與預(yù)測框的最小矩形BU
其面積(并集)
計算交并比(intersection over union,IoU):
在式(11)中,交并比的值與檢測結(jié)果成正比,即交并比的值越大(接近于1),實際檢測結(jié)果的預(yù)測框與物體的真實標記框越接近,算法性能越好。
計算LCIoU
式中:α為權(quán)重函數(shù);ν用來衡量目標框與預(yù)測框之間長寬比的一致性。
兩框中心點之間的距離d、可同時覆蓋預(yù)測框和目標框的最小矩形對角線距離 c為
使用CIoU作為損失函數(shù),可以充分考慮預(yù)測框與目標框的重疊面積、中心點距離、長寬比,能夠進一步地快速收斂、提升性能。
1.2.4 標簽平滑處理
標簽平滑處理對真實標簽的分布進行改造,使其不再符合獨熱形勢,如
即
標簽平滑后的分布,相當于向真實分布中加入了噪聲,避免模型對于正確標簽過于自信,使得預(yù)測正負樣本的輸出值差別不那么大,從而避免過擬合,提高模型的泛化能力。
1.2.5 非極大值抑制
在經(jīng)典的非極大值抑制代碼中,得分最高的檢測框和其他檢測框逐一算出一個對應(yīng)的IoU值,并將該值超過非極大值抑制閾值的檢測框全部過濾掉。但在實際應(yīng)用場景中,當兩個不同物體距離很近時,由于IoU值比較大,往往經(jīng)過非極大值抑制處理后,只剩下一個檢測框,導致漏檢的錯誤情況發(fā)生。
基于此,基于距離的交并比計算(distanceintersection over union,DIoU)不僅考慮交并比,還考慮2個檢測框中心點之間的距離。如果2個檢測框之間IoU比較大,但是2個檢測框的中心距離比較大時,可能會認為這是2個物體的框而不會被過濾掉[22]。非極大值抑制部分使用DIoU可以一定程度上提升對相近目標的檢測。DIoU計算公式如式(19)所示
YOLOv5網(wǎng)絡(luò)采用平均精度均值、召回率、損失函數(shù)、查準率評估模型的性能。
如圖5所示,將所有測試樣本的置信度(用于表示預(yù)測的邊界框?qū)ξ矬w定位的準確程度)按種類分類后的預(yù)測得分值排序。將樣本中的目標實例分成正類(分類正確的樣本)或負類(分類錯誤的樣本),若正類目標被預(yù)測為正類,則為真正類(true positive,TP)。若負類目標被預(yù)測為正類,則為假正類(false positive,F(xiàn)P)。同理,若負類目標被預(yù)測為負類,則為真負類(true negative,TN)。若正類目標被預(yù)測成負類,則為假負類(false negative,F(xiàn)N)。
圖5 樣本分類情況Fig.5 Sample classification
召回率為模型正確識別出的目標占測試集中總目標的比例,如
查準率為模型識別目標的正確率,如
設(shè)定閾值不同時,可以得到多組查準率-召回率值,以查準率和召回率值作為坐標,可以繪制出P-R曲線,如圖6所示。
圖6 P-R曲線Fig.6 P-R curve
平均查準率(average precision,AP),為P-R曲線與坐標軸所圍的面積,即查準率對召回率(recall,R)的積分,用來衡量模型在單個類別上檢測的性能:
全類別平均查準率(mean average precision,mAP),為對所有類別的平均查準率求平均值,表示模型對所有類別檢測的性能。
目標識別實驗步驟如下:
1)數(shù)據(jù)集制作。將整體數(shù)據(jù)集按照8:2比例分為訓練集與測試集,采用圖像標定工具標注數(shù)據(jù),并統(tǒng)一為YOLO標注格式。
2)實驗準備。配置實驗環(huán)境,修改訓練運行文件,設(shè)置迭代批量、訓練次數(shù)、學習率等訓練參數(shù)。
3)重復(fù)訓練。導入訓練集圖像,進行重復(fù)迭代訓練。
4)模型測試。測試生成的模型。利用模型在重復(fù)訓練中生成的最優(yōu)權(quán)重文件best.pt,對測試集中的圖片進行識別檢測。
5)結(jié)果分析。統(tǒng)計測試集識別結(jié)果,計算準確率。
文中網(wǎng)絡(luò)模型訓練過程參數(shù)設(shè)置如下:批量大小為32,總迭代次數(shù)為500次,學習率設(shè)置為0.001。其平均精度均值、召回率、損失函數(shù)、查準率如圖7所示。
由圖7可知,召回率在模型迭代到100次后穩(wěn)定在0.93左右;精準率在模型迭代到80次后大于0.9;平均精度均值在模型迭代到100次時達到0.97;損失函數(shù)在模型迭代到500次時穩(wěn)定,約等于0.1。
圖7 YOLOv5模型性能評估Fig.7 Performance evaluation of YOLOv5 model
本次實驗使用Windows操作系統(tǒng),選用TensorFlow架構(gòu),使用GeForce RTX 2070的顯卡進行運算。具體實驗配置如表1所示。
表1 實驗配置Table 1 The configuration for theexperiment
本實驗樣本集由多個企業(yè)公司提供配電網(wǎng)現(xiàn)場作業(yè)照片,以進行安全帽、熔斷器等安全項目的識別。利用圖像處理將原始樣本集擴充至大約10000張,作為實驗數(shù)據(jù)集。數(shù)據(jù)集按照8:2的比例分為訓練集和測試集,其中訓練集包含8000張圖片,測試集包含2000張。具體數(shù)量如表2所示。
表2 樣本訓練集及測試數(shù)據(jù)集劃分Table2 Division of sample training set and test data set
模型訓練完成后,將測試集輸入至模型中進行測試,測試結(jié)果如圖8所示。圖中紅色目標框表示正確佩戴安全帽,粉色目標框表示為未正確佩戴安全帽,目標框上數(shù)值代表為各類別標簽的
圖8 算法識別結(jié)果Fig.8 Resultsof algorithm recognition
置信度。從算法測試結(jié)果看出,算法識別工程現(xiàn)場工人是否正確佩戴安全帽結(jié)果較好,同時在多目標下、目標受遮擋情況下也沒有出現(xiàn)漏檢情況。
為衡量算法測試實驗的實際效果,對測試集樣本中的目標識別情況進行了統(tǒng)計,定義樣本識別準確率 k如式(23)所示
式中: nTure為樣本集中算法正確檢測出的目標數(shù);nAll為圖片中的目標總數(shù)。
利用式(23),可計算得安全帽識別準確率為97.87%。表3給出了本文算法與參考文獻[22-23]中2種算法的測試性能對比,本文算法的準確率明顯高于參考文獻中算法的準確率。檢測速度為140幀/s,相比于文獻[23]中的改進YOLOv3算法提升了近3倍。由此可知,本方法均優(yōu)于參考文獻中的2種現(xiàn)有算法,且檢測速度極快,滿足工程現(xiàn)場檢測需求。
表3 算法性能對比Table 3 Comparison of algorithm performances
除安全帽外,本次實驗還針對配電網(wǎng)工程中常見的幾類安全種類進行了檢測識別,檢測結(jié)果如圖9—10所示,識別準確率如表4所示。
圖9 設(shè)備底板是否封堵檢測結(jié)果Fig.9 Testing resultsof whether theequipment bottom plate is blocked or not
由表4可知,針對不同種類工程現(xiàn)場可能存在的安全問題,本算法識別準確率均較高。
表4 不同安全情況識別準確率Table4 Identification accuracy of different safety conditions
1)改進YOLOv5主干特征提取網(wǎng)絡(luò),采用加權(quán)的雙向特征金字塔網(wǎng)絡(luò)Bi-FPN代替?zhèn)鹘y(tǒng)特征金字塔FPN模塊,修改模型損失函數(shù),得到了一種收斂速度更快、魯棒性更強的改進YOLOv5模型。
圖10 跌落式熔斷器是否斷開檢測結(jié)果Fig.10 Testing resultsof whether thedrop fuse is disconnected or not
2)利用改進的YOLOv5算法進行了訓練識別實驗,不同類型樣本準確率均可超過95%。同時,改進的YOLOv5算法識別速度快,可達140幀/s,滿足工程現(xiàn)場實時使用要求。