饒毅,王魯,趙亞軍,王泓博
(1.貴州黔源電力股份有限公司,貴州 貴陽 550000;2.南京南自信息技術有限公司,江蘇 南京 210031)
針對數字式儀表的識別方法,主要可以分為傳統圖像處理和深度學習方法。傳統圖像處理方法主要有基于HSV 空間的H 分量去定位圖像中的數字符號。或者利用數字儀表字符的特點,以數碼管作為特征進行數字識別。但隨著對深度學習的研究深入,以YOLO 系列和SSD 系列為代表的一階段檢測器和以RCNN 系列為代表的二階段檢測器的快速發展。更多學者研究通過深度學習算法對數字儀表區域進行定位和識別,使用深度學習算法可以有效降低復雜環境對識別的干擾,但相對的深度學習的算法往往結構復雜且計算量大,因此,對于電廠大多數算力有限的設備往往會部署困難。
YOLOv5 是YOLO 系列檢測器中的第5 個版本,它有YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x 四個模型。其中YOLOv5s 模型最小,檢測速度最快,因此非常適合邊緣端部署,但同時檢測精度也最低。
本文擬基于最便于部署的YOLOv5s 模型,通過改進算法提高識別精度,以便于針對電廠環境可以更好地完成檢測任務。最后,在電廠現場應用中實際驗證本文改進YOLOv5 算法的有效性。
YOLOv5 采 用CSPDarknet53 架 構 加SPP 層 作 為Backbone, 搭 配PANet 作 為Neck, 再 以YOLO 結 構為Prediction。我們提出的改進YOLOv5 算法計劃在Backbone 中加入CBAM 注意力模塊提高對小目標的識別精度,在Neck 中替換使用BiFPN 結構來加強特征聚合進一步提升網絡特征融合能力。
改進的YOLOv5 的網絡結構如圖1 所示。

圖1 改進YOLOv5 網絡結構示意圖
Input:采用多種數據增強方法,如幾何失真對圖像進行隨機縮放、裁剪、旋轉等;光度失真可以調整圖像的亮度、色度、對比度以及加入噪點;Mosaic 增強可以隨機縮放、拼接,可以豐富數據集樣本,提高識別的成功率。
Backbone(骨干網絡):采用了Focus、CBAM、CSP和SPP 結構。Focus 首先復制自己然后進行切片操作,原始輸入圖片尺寸為608×608×3 經過切片操作變為304×304×12,從而加快網絡推理速度;CBAM 是一種輕量級的注意力模塊,能直接集成進YOLOv5 架構中,有效加強骨干網絡提取小目標的特征。CBAM 結構示意圖如圖2 所示。

圖2 CBAM 注意力模塊
如圖2 所示,CBAM 模塊擁有通道和空間兩個維度的注意力機制,將輸入特征與注意力映射相乘,從而細化特征。集成CBAM 可以有效提升網絡對識別任務不同細粒度目標的識別精度;CSP 的殘差結構可以優化訓練時的梯度傳導同時也可以減少推理的計算量。在我們的改進的YOLOv5 的網絡結構中骨干網絡使用了CSP1_X 結構,而Neck 使用了CSP2_X 結構;SPP 是空間金字塔結構通過concat 來融合直連和尺寸分別為5、9、13 的最大池化以提升感受野范圍。
Neck( 頸部網絡):使用BiFPN 結構代替原來的PANet 結構,以雙向交叉的連接方式融合特征從而提高識別精度。BiFPN 網絡相比PANet 集成了雙向交叉和加權融合,是一種更加高效的多尺度特征融合網絡結構(FPN)。原始的PANet 是基于FPN+PAN 結構,通過自頂向下加強語義特征,自底向上加強定位特征,利用不同檢測層的特征進行融合,但這樣計算量大同時自底向上時,輸入特征沒有融入骨干網絡的原始輸出。因此本文提出BiFPN 代替PANet 的方案。BiFPN 的結構如圖3 所示,BiFPN 跨越連接來去除PANet 中對特征融合共享小的節點,同時在同一尺度下增加一個跳躍鏈接連接輸入節點與輸出節點,以此在減少計算成本同時融合更多特征。

圖3 BiFPN 網絡結構
Prediction:采用GIOU 作為邊界框的損失函數,來預測值與真實值的誤差,來解決邊界框不重合的問題;并提供3 種檢測尺度(76×76、38×38、19×19);另外,采用傳統的非極大值抑制(NMS)舍棄得分低的預測框,保留得分最高的預測量,從而降低錯檢漏檢的風險。
當本文以某發電廠的數字式電表箱為目標拍攝采集多組相關圖像,發現電廠現場存在諸多問題,如電表箱型號多樣大小不一,攝像頭的拍攝角度和光照情況不同,電表屏幕有發光、污漬、陰影,各類儀表的字體顏色查表較大等各種復雜問題,對我們的改進YOLOv5 識別算法提出了很大的挑戰。
為了增加識別準確率,我們深入現場,調用高清晰攝像頭采集捕捉電廠電表箱中各類數字儀表圖片并進行數據清洗與數據增強,總共得到10000 張圖片,其中8000 張圖片用于數字儀表識別模型訓練,剩下的2000張圖片用于圖片識別的測試。
為了驗證YOLOv5 改進后的檢測效果,本文網絡訓練 環 境 為:Window10 系 統、Pytorch 1.12.1 框 架、CPU 為Intel Xeon Silver 4214、GPU 為 四 張Nvidia Tesla V100,從而對網絡進行訓練、測試實驗。訓練參數設置見表1,總迭代次數為500 次。

表1 網絡訓練參數設置
經過測試,該改進YOLOv5 模型有較好的準確率,且對小數點敏感,對于實際電廠采集的測試圖片識別率為95%以上。實際識別效果如圖4 所示,由于攝像頭安裝位置較高,數據集中大多數圖片都存在傾斜形變和少部分儀表讀數被箱體遮擋的現象。從結果來看,本文提出的算法模型對傾斜形變的數字儀表示數依然有很高的識別精度,但遺憾的是對遮擋的數字示數因為精度低而被非極大值抑制濾除從而無法定位與識別讀數。

圖4 電廠數字電表讀數識別效果圖
本文研究了一種改進的YOLOv5 的電廠數字儀表識別算法,在骨干網絡中添加CBAM 模塊強化了網絡對小目標特征提取能力,在頸部網絡用BiFPN 網絡替換原來的PANet 網絡結構,減少計算量的同時也增強了對特征的融合利用。本文在實際的發電廠的數字電表測試中,有95%以上的識別精度,同時魯棒性強,擁有對傾斜形變的檢測能力,后續工作將致力于對遮擋示數的預測。