?

基于YOLOv5s和Android部署的電氣設備識別

2024-01-22 10:55廖曉輝謝子晨路銘碩
鄭州大學學報(工學版) 2024年1期
關鍵詞:電氣設備部署變電站

廖曉輝, 謝子晨, 路銘碩

(鄭州大學 電氣與信息工程學院,河南 鄭州 450001)

變電站內電氣設備的可靠運行對電力系統是至關重要的。及時、準確地完成各種電氣設備識別,有利于對變電設備進行巡檢保護,同時可以取代傳統的人工巡檢方式,滿足變電站電氣設備實時檢測的需求[1]。此外,開發設計變電站電氣設備識別APP,有助于變電站工作人員以及參觀學習人員對變電站設備進行快速準確識別,對變電站電氣設備的實時識別與設備學習具有重要意義。

為了滿足變電站巡檢智能化與高效化的要求,要對變電站電氣設備進行快速、準確的識別。傳統的目標檢測算法有SIFT算法、HOG算法、LBP算法等[2-4],這些算法雖然可以很好地進行特征提取,但在變電站復雜背景下設備識別效果較差、精確率不高?;谏疃葘W習的目標檢測算法有RCNN系列、YOLO系列、SSD系列等。Girshick等[5]在2014年設計了R-CNN模型,該模型識別過程中需要對每個候選區域都做特征提取,存在著訓練速度慢等問題。在R-CNN和SPP的基礎上,Girshick[6]又提出了Fast R-CNN模型。李文璞等[7]使用Faster RCNN模型識別變電設備缺陷,識別的平均精度可達90%以上。但這些算法的網絡參數量較大,識別速度難以滿足要求,部署在Android端上很難實現電氣設備的實時檢測。Redmon等[8]提出YOLO算法,該算法與SSD算法都是單階段算法,目前已有多個版本,其中的YOLOv5模型具有體積小、檢測速度快、實時性好等優點,更加適用于此類實時的視頻檢測。YOLOv5模型中的YOLOv5s版是深度最小、特征圖的寬度也最小的算法,體積較小,便于實現Android端的部署。

本文以變電站常見6種電氣設備為例,采用改進后的YOLOv5s算法對設備數據集進行訓練,訓練完成的模型能實現變電站電氣設備的圖片識別和視頻識別,同時將訓練好的電氣設備識別網絡模型通過TensorFlow Lite框架進行部署,在Android上實現電氣設備準確快速的識別。

1 YOLOv5s目標檢測算法原理

YOLOv5s是YOLO系列中性能較好的算法,相較于以往版本有很大的提升,目前在電力系統的各類圖像識別中也被廣泛應用。YOLOv5s算法主要由輸入端、Backbone、Neck和輸出端4部分組成。

在輸入端部分,YOLOv5s采用了Mosaic數據增強技術、自適應錨框計算以及自適應圖片縮放技術,提高了模型對小目標的檢測能力,對不同訓練集的最佳錨框尺寸進行自動計算,同時解決了黑邊填充過多造成的信息冗余問題,提高了模型的推理速度[9]。

在Backbone部分,采用快速空間金字塔池化(spatial pyramid pooling-fast, SPPF),將不同感受野的特征圖融合,以提高特征圖的表達能力,同時采用C3結構來增加網絡的深度和感知能力,提高特征提取的能力。

在Neck部分,采用特征金字塔網絡(feature pyramid network,FPN)與路徑聚合網絡(path aggregation network,PAN)相結合的結構[10-11],通過FPN結構的上采樣操作與PAN結構的下采樣操作相結合,輸出預測的特征圖,大大提高了特征提取能力。

在輸出端部分,YOLOv5s采用CIOU_Loss作為損失函數。該損失函數可以同時考慮重疊面積、目標框中心點距離、長寬比等因素,同時采用非極大值抑制操作來對檢測框進行篩選。

2 網絡模型改進

為了解決目前變電站電氣設備識別過程中存在的問題、提高變電站中小目標檢測的能力、減少漏檢和誤檢的情況,對YOLOv5s網絡模型進行改進,改進后的YOLOv5s網絡結構如圖1所示。

圖1 改進后的YOLOv5s網絡結構圖Figure 1 Structure of the improved YOLOv5s network

2.1 引入C2f模塊

YOLOv5s主要通過網絡中的C3模塊來增加網絡的深度和感受野、提高特征提取的能力,C3模塊的結構圖如圖2所示,模塊中使用了3個卷積模塊CBS以及n個Bottleneck。Bottleneck結構主要是為了降低參數量,減少網絡的復雜度,同時也是梯度流主分支。C3模塊將輸入通道分為兩部分:一部分經過一個卷積模塊后連接到輸出端;另一部分經過若干個Bottleneck層后輸出。

圖2 C3模塊結構圖Figure 2 C3 module structure diagram

為了提高電氣設備識別精確度,在YOLOv5s算法中引入梯度流更豐富的C2f模塊,模塊結構如圖3所示,C2f將輸入通道分為兩部分:一部分直接連接到輸出端;另一部分經過若干個Bottleneck層后再與輸出端拼接。C2f減少了卷積操作,同時將不同階段的特征進行拼接和融合,梯度流相比C3模塊更加豐富,識別效果較好。在YOLOv5s代碼的common.py文件中對C2f模塊進行定義,同時更改配置文件中對應參數,即可對原C3模塊進行更改。

圖3 C2f模塊結構圖Figure 3 C2f module structure diagram

2.2 采用Soft-NMS

在對檢測框進行篩選的過程中,需要進行非極大值抑制(non-maximum suppression,NMS)操作[12-13]。由于變電站中設備種類較多且較為密集,因此收集到的電氣設備數據集中同一類型的設備容易出現重疊現象。NMS在對目標框進行篩選的過程中直接對IOU大于設定閾值的框進行刪除處理,容易出現漏檢和誤檢的情況,因此采用改進的Soft-NMS目標框篩選方法。Soft-NMS將IOU大于閾值的框的得分降低:將獲得的IOU取高斯指數后與原得分相乘,之后重新排序,不斷循環。公式如下:

(1)

式中:M為預測框中得分最大的邊框;bi為第i個預測的邊框;Si為第i個邊框的得分。

由式(1)可以看出,IOU越大,預測框得分越低,可以更準確地選擇目標框,適用于重疊程度較高的預測框的篩選。在YOLOv5s代碼的general.py文件中對Soft-NMS進行定義,調用Soft-NMS函數來進行訓練與驗證即可改進原NMS操作。

3 基于YOLOv5s的電氣設備識別

3.1 訓練環境搭建

在對變電站電氣設備識別過程中,搭建的模型訓練環境配置:Windows10系統、R5 5600 H處理器、GTX 1650顯卡、16 GB內存、Python3.7.3、CUDA11.3。Android端運行環境配置:realme GT大師探索版機型,運行內存12 GB;高通驍龍870八核處理器。

3.2 數據集預處理

3.2.1 幾何變換與像素變換

如圖4所示,對電氣設備數據集通過水平及垂直翻轉、縮放等幾何變換操作,以及改變亮度、調節對比度、高斯模糊等像素變換操作來進行數據增強。同時,在采集數據的過程中,不良照明或高溫容易造成傳感器噪聲,因此,對部分電氣設備圖像添加高斯噪聲,進而提高模型的魯棒性。

3.2.2 基于K-means算法的背景替換

為了避免采集的電氣設備圖片背景較為單一,對采集到的部分圖片進行背景替換。如圖5所示,利用K-means聚類算法對原圖進行圖像分割[14],生成對應的二值圖像,也稱為mask圖;將mask圖與原圖通過OpenCV中的cv2.bitwise_and()函數進行圖像的按位與運算摳出設備圖像;將設備圖像與新的背景圖像進行背景融合,從而實現圖片的背景替換。

數據集預處理后,所構建的電氣設備圖像數據集共有2 076張圖片,按照6∶2∶2的比例將數據集隨機劃分成訓練集、驗證集和測試集。數據集構建完成之后,使用LabelImg軟件標注數據集。本文共制作6個標簽,分別是電力變壓器(power transformer)、絕緣套管(insulating sleeve)、油枕(conservator)、風機(fan)、絕緣子串(insulator string)、隔離開關(disconnector)。標注后得到txt格式的標簽文件用于模型訓練。各個設備的標簽數量分布如表1所示,標簽數量總計5 902個。

圖4 數據增強Figure 4 Data enhancement

圖5 圖像分割與融合Figure 5 Image segmentation and fusion

表1 數據集各標簽數量分布表Table 1 Table of label quantity distribution in data set

3.3 結果分析與模型評估

模型的評估指標包括:精確率Precision、召回率Recall、平均精度均值mAP、幀率以及P-R曲線等。Precision和Recall兩個評估指標的計算公式如下所示:

(2)

(3)

式中:TP為真陽性;FN為假陰性;FP為假陽性。

幀率是評估模型檢測速度的一個重要指標,即每秒內可以處理的圖片數量,通過幀率大小來評估模型是否滿足實時檢測的需求。P-R曲線是以召回率和精確率分別作為橫縱坐標繪制出的二維圖像。曲線與坐標軸圍成的面積即為某一類別的AP值,對所有N個類別的AP值取平均值即為mAP值,公式如下:

(4)

本文在原有YOLOv5s算法基礎上進行改進:引入C2f模塊來提高設備檢測尤其是小目標檢測的精度;采用Soft-NMS取代原有的NMS對檢測框進行篩選,來解決數據集設備重疊問題,減少漏檢現象。使用評估指標對算法不同改進方法進行實驗結果對比,如表2所示。由表2可知,在算法中引入C2f模塊后,模型的mAP值較原算法提高了2.6百分點;采用Soft-NMS檢測框篩選方法之后,模型的mAP值提高了0.8百分點,由于Soft-NMS篩選檢測框相比NMS更加復雜,參數量增加,使得推理時間變慢,幀率有所降低。將兩個改進方法相結合后的YOLOv5s模型的mAP值為91.6%,與原模型相比提高了3.3百分點,識別精度提高,由于模型參數量增加,使得幀率從54幀/s降到了38幀/s,但整體推理速度還保持在較高水平。

表2 算法不同改進方法的實驗結果對比Table 2 Experimental results comparison of algorithm with different improved methods

如圖6所示,根據算法改進前后模型的P-R曲線可知,改進后的P-R曲線與坐標軸所包圍面積更大,意味著模型性能更好,各個設備的mAP值也在提高,其中識別效果最好的電力變壓器的mAP穩定在97%。

YOLOv5s改進前后網絡模型訓練變化曲線如圖7所示,經過100個Epoch后模型逐漸趨于穩定,改進后的網絡模型訓練結果更好,且與改進前相比更早達到收斂狀態。

圖6 P-R曲線對比Figure 6 Comparison of P-R curves

圖7 模型訓練指標變化曲線對比Figure 7 Comparison of model training index change curve

選取未參與訓練圖片進行測試,將YOLOv5s改進前后的電氣設備識別效果進行對比,結果如圖8所示,其中標簽后邊的數字為置信度,表示圖中設備被模型正確識別的程度??梢钥闯?改進后的模型的識別置信度提升明顯,各種電氣設備的識別置信度均維持在較高水平。

圖8 YOLOv5s改進前后電氣設備識別效果對比Figure 8 Comparison of electrical equipment recognition effect before and after YOLOv5s improvement

4 訓練模型在Android端的部署

4.1 TensorFlow Lite框架

將訓練完成的識別網絡模型部署在Android端時,往往會受到移動設備計算能力和內存占用等方面的限制,造成部署后的APP出現運行慢、卡頓等情況[15],而使用深度學習框架TensorFlow Lite (TF-Lite)可以對不同的硬件進行優化,通過量化等方式來減少模型的大小[16]。

TensorFlow Lite由模型轉換器和解釋執行器兩個主要部件組成。其模型處理過程如圖9所示[17]。模型轉換器將已訓練好的TensorFlow模型編譯,生成可供移動設備使用的TensorFlow Lite文件格式(FlatBuffer格式)。在設備端,解釋執行器讀取TensorFlow Lite模型,調用不同的硬件加速器比如GPU進行執行操作[18]。TensorFlow Lite框架具有低功耗、低內存、兼容性好等優點,同時部署方式簡單,適用于識別網絡模型在移動設備上的部署。

4.2 APP調試

Android Studio軟件可以對Android進行開發與調試。TensorFlow Lite模型由模型轉換器轉換得到。在開發過程中,主要用到了模型中的*.tflite文件和一個label.txt的標簽文件,將這兩個文件加入到Android工程的Assets目錄下,設置識別APP的各個界面和參數。在Android Studio軟件中加載網絡模型,之后連接手機進行APP調試,完成模型在Android端的部署。

圖9 TensorFlow Lite模型轉換過程Figure 9 TensorFlow Lite model conversion process

調試完成之后,打開電氣設備識別APP進入到主界面,主界面有“變電站電氣設備識別”和“常見電氣設備介紹”兩個按鈕,選擇“常見電氣設備介紹”進入到設備介紹子界面可以查看設備的簡介、功能及作用等內容。選擇“變電站電氣設備識別”進入到電氣設備實時檢測子界面,通過調用手機攝像頭可以對電氣設備進行實時視頻檢測,如圖10所示。在移動端對常見電氣設備進行識別,平均識別精確率在85%以上,且每張圖片的處理速度均不超過1 s,幀率為16幀/s,具有較好的識別精度和識別速度;應用大小為90 M,內存占用較小,可在移動設備上正常使用。

圖10 電氣設備識別APP效果圖Figure 10 APP renderings of electrical equipment identification

5 結論

本文以電力變壓器、絕緣套管、油枕、風機、絕緣子串、隔離開關6種常見電氣設備為研究對象,設計了一個基于改進YOLOv5s的變電站電氣設備識別系統以及基于Android系統的電氣設備識別APP。YOLOv5s網絡模型較小,便于在移動端進行部署,同時引入C2f和Soft-NMS對算法進行改進,使用改進后的網絡模型YOLOv5s對設備進行識別,利用精確率、召回率、mAP、幀率、P-R曲線等模型評估指標對訓練好的變電站電氣設備識別模型進行評估,mAP值穩定在91.6%,與原模型相比提高了3.3百分點,具有較好的識別效果。同時,利用TensorFlow Lite框架對訓練好的網絡模型進行Android端部署,部署后的APP占用內存較小、兼容性好,對移動設備要求不高,可滿足變電站電氣設備實時檢測的需求。所設計的APP還具有設備學習功能,對于變電站參觀學習人員學習了解電氣設備起到很好的輔助作用。

猜你喜歡
電氣設備部署變電站
一種基于Kubernetes的Web應用部署與配置系統
晉城:安排部署 統防統治
部署
關于變電站五防閉鎖裝置的探討
超高壓變電站運行管理模式探討
PLC技術在電氣設備自動化控制中的應用
部署“薩德”意欲何為?
220kV戶外變電站接地網的實用設計
變電站,城市中“無害”的鄰居
10kV變配電站一、二次電氣設備的選擇
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合