陳開峰, 俞偉聰, 唐雁文, 吳仲
(1.中國大唐集團科學技術研究總院有限公司華東電力試驗研究院, 合肥 230093; 2.安徽智寰科技有限公司, 合肥 230601; 3.大唐萬寧天然氣發電有限責任公司, 萬寧 571500)
當前數字互聯網經濟作為新興經濟發展的排頭兵,得到了全社會的矚目。然而傳統工業項目向互聯網數字化轉型之路并不容易,仍有許多大型設備依賴于人力巡檢,工程師自身經驗判斷來決定設備的健康程度。如何將指標數字化,用人工智能算法替代機械重復的勞動,一直是工業界研究的重點。
對工廠等環境下的數字式儀表進行智能化監測和管理能有效增強實時性,可以有效降低安全隱患[1]。儀表又分為指針式和數字顯示式兩種類型,本文的研究對象為數字顯示儀表。近年來,相關研究人員提出了多種數字式儀表數據進行實時讀取的方式,如采用穿線法、圖像分割、特征提取、支持向量機、深度學習等。祝長生等[2]提出了一種基于不變矩信息融合的溫濕度計數字自動識別算法,對數字識別問題提出了新的理論思路,降低了模型的復雜度,提高了檢測效率,但是存在較大的局限性和針對性。陳家翔等[3]提出將儀表盤分為幾個區域對應不同的數碼管,根據數碼管點亮或者熄滅設計不同的特征。但是存在區域劃分繁瑣,必須根據不同顯示類型分別設計不能復用。宋一言等[4]提出改進穿線法與梯度直方圖(histogram of oriented gradient,HOG)與支持向量機(support vector machine,SVM)結合的方式,采用基于輪廓提取與輪廓排序的相結合的數碼管圖像分割方法。劉晶[5]提出采用一對一(one-against-one,OAO)分類法將最小二乘支持向量機算法(least squares support vector machine,LSSVM)拓展到多分類,并引入粒子群優化算法(particle swarm optimization,PSO)對LSSVM參數進行優化。這兩種方法雖然精度較高但是實時性較差。最近幾年,隨著深度學習卷積神經網絡(convolutional neural network,CNN)[6-7]技術的興起,將深度學習算法遷移到數字儀表識別已是大勢所趨。如趙輝等[8]基于改進YOLO v3算法對變電站環境中的指標儀表進行了監測與識別,能夠滿足變電站的實際需求,且識別結果相對于Faster R-CNN(faster region-convolutional neural network)和原始的YOLO v3網絡,速度分別有了73.7%和45.8%的提升。湯鵬等[9]提出基于Mask-RCNN(mask-region convolutional neural network)海上升壓站數字式儀表讀數的自動識別,將不同類型的數字儀表原始圖像制作成數據集,利用深度學習算法進行訓練,再進行識別分析。但仍然存在過于依賴計算資源的問題,不利于在邊緣平臺上實習部署的不足。
數字儀表識別是無人點巡檢系統的重要組成模塊,針對人員難以常態化巡檢的位置,通過架設高清攝像頭,實現數據的實時采集,異常數據指標的精確報警。當前數字儀表識別的研究在以下幾個方面存在困難:一是對表盤的定位問題。有讀數的表盤區域在整個圖像中占比較低,存在難定位的問題;二是目標尺度分布不均衡。例如,對于數字8,在不同圖像上的大小不一致。算法識別數字后,還需要對識別后的數字排序,還原其本來的意思。
因此,現提出一種基于深度學習YOLOv5s的輕量化、易部署的改進模型,在第一部分主干網絡進行有目標的ROI提取,并將提取的區域統一到相同的尺度;第二部分網絡在這些區域上將數字提取出來,并進行相應的排序。在損失函數上,應用一種新型的損失評價函數DIoU(distance intersection over union)。最終在NVIDIA Xavier NX邊緣計算板上實現部署,部署后在電廠無人點巡檢系統落地實現,實現真實環境下的商用運行。
常用的目標檢測算法有一階段(如YOLO)[10]與二階段(如Faster-RCNN)[11]之分,二階段的方法利用區域建議網絡(region proposal network,RPN)首先產生提議框,然后對提議框的形狀進行修正,以及對提議框內的目標類別進行預測。二階段的方法由于運行過程中需要產生的大量的提議框需要進行分類和修正,因此運行速度較慢,很難做到實時檢測。本文研究則選擇使用運行速度較快的一階段方法YOLOv5目標檢測框架作為基線(baseline),并針對本文任務進行改進。
YOLOv5通過一個全卷積網絡將輸出的特征圖劃分為S×S個網格,通過目標物體中心所處的網格來負責單個實例的 檢測。通過將目標信息編碼在輸出張量的不同通道上,來同時預測目標的置信度,類別和目標框相對于錨框的偏移量。因此相較于二階段的網絡,YOLOv5在速度上有著較大的優勢。
YOLOv5采用CSPDarknet53[12]作為主干網絡,相較于原版的CSPDarknet53,YOLOv5刪除最后的池化層、全鏈接層和SoftMax層,并在網絡結構中添加了跨層模塊。本文研究中采用YOLOv5s作為基線網絡,YOLOv5s是YOLOv5的一個版本,區別在于模型深度和寬度和YOLOv5不一樣,在YOLOv5s的基礎上進行改進。
YOLOv5的損失函數[13]如式(1)所示,主體為3個部分的累加:

(1)
式(1)中:Gw、Gh為網格的長、寬;n為目標框的數量;qi,j為坐標點(i,j)存在目標的概率;lobj(i,j)用來計算當前網格內目標的置信度;lbox(i,j)用于計算目標的位置以及目標框的長寬相對于錨框的偏移;lcls(i,j)用來計算目標的類別損失。
(2)



(3)


(4)

本文研究提出一種基于YOLOv5s的迭代檢測
網絡,用于針對天然氣表的數字檢測,網絡整體結構圖如圖1所示。
圖1中大體分為兩部分,均為改進后的YOLOv5s目標檢測網絡其中主干網絡部分C3~C5為輸入特征金字塔的特征圖,特征金字塔部分對應的P3~P5為檢測頭進行檢測的特征圖。本文研究利用了多尺度信息進行檢測,按照大中小目標共設計了3個檢測頭分別為{20×20,40×40,80×80},分別對應大中小目標。迭代檢測網絡的工作首先由一張圖像x∈RW×H×3開始,將圖像輸入主干網絡1后,由主干網絡提取圖像特征并按照不同尺度輸入特征金字塔1中進行多尺度信息的融合,隨后檢測頭1將對燃氣表數字區域ROI進行識別,在提取到ROI后,將ROI送入網絡2,進行迭代檢測。網絡2與網絡1共享權重,經過相同的步驟之后,將ROI內對應的數字分別檢測出來,并按照先后順序進行排序。
數字尺寸分布的統計如圖2所示,由圖2(a)可以看見,在將圖像輸入網絡前,數據標注尺寸分布極為分散,網絡需要由多個尺度獲取信息,導致網絡較難收斂,檢測效果較差。因此首先利用網絡1檢測尺度范圍較為統一的ROI,隨后將ROI從原圖2中進行截取,隨后再利用ROI對圖2中的數字進行迭代檢測,圖2(b)顯示了截取ROI之后數據標簽的分布情況,可以看到,數據標注尺寸分步變得較為集中,有利于網絡進行檢測,對于此部分的實驗,在第4節中進行說明。

圖1 迭代檢測網絡架構Fig.1 Architecture of iterative detection network

圖2 不同數字的尺寸分布統計Fig.2 Size distribution statistics for different numbers
為了提升對多尺度語義信息的提取效果,將主干網絡中的殘差模塊進行了替換,換為對多尺度信息提取更好的Res2Net[14]模塊,具體結構如圖3所示,Res2Net結構通過對特征圖中的部分通道進行分別卷積后累加,從而達到了更強的多尺度特征提取能力,同時保持了相似的計算負載。

X1~X4為Res2Net結構中維度值為4的特征組;Y1~Y4 表示X1~ X4分別經過不同類型的卷積計算輸出的融合特征結果圖3 Res2Net模塊Fig.3 Res2Net structure
IoU為目標檢測中的兩個目標框的交并比,IoU Loss為定位損失函數,用于計算預測目標框與真實目標框之間的差距。IoU計算的是“預測的邊框”和“真實的邊框”的交集和并集的比值,計算公式為

(5)
式中:A、B為預測的邊框、真實的邊框。在計算得到IoU后,可以進一步計算出總體的損失函數loss=1-IoU,然而這種定位損失函數也存在著兩點不足。
(1)當預測框和目標框不相交時IoU(A,B)=0此時沒有梯度,不能進行梯度回傳,梯度下降法失效。
(2)IoU在存在相交情況下的比例大小進行評價,通過反向傳播優化損失,對于相交方式和不相交情況下的位置關系則無法評價。GIoU[15]是對原始IoU的改進,然而也存在兩個框屬于包含關系時,兩個框中心點位置關系無法評價的缺點。
如圖4所示,在同樣為IoU(A,B)=0的情況下,圖4(a)兩個預測框比圖4(b)兩個預測框位置關系更近。當IoU(A,B)=0.14時,圖4(c)相比圖4(d)兩框相交的更整齊,對于回歸效果的計算更好。如圖5所示,當綠色的目標框和紅色的預測框是包含的位置關系,GIoU退化成IoU,無法進行指標衡量。
考慮到IoU和GIoU的不足之處,本文研究采用一種新型的損失評價函數DIoU作為評價指標。由于IoU損失在候選框和真實框沒有重疊時不提供任何移動梯度,于是DIoU引入一個懲罰項,由于懲罰項的引入,在不重疊的情況下,預測框會向目標框移動,具體公式為

圖4 IoU=0和IoU=0.14情況下兩種位置關系Fig.4 Two positional relationships in the case of IoU=0 and IoU=0.14

圖5 DIoU函數在包含情況下的評價效果Fig.5 The evaluation effect of the DIoU function in the case of inclusion

(6)
式(6)中:b、bgt為錨點框、目標框的中心點;ρ為計算兩個中心點間的歐式距離;c為能夠同時覆蓋錨點框和目標框的最小矩形的對角線距離。
DIoU不僅關注到存在重疊的情況,還關注到非重疊的目標框。相比IoU在沒有相交的情況下,克服了IoU梯度為0無法優化的情況,目標框不重疊時,仍然可以為邊界框提供移動方向。DIoU可以直接最小化框與框之間的距離,收斂速度比GIoU更快。
采集265張數字燃氣表圖像,劃分為訓練集200張,測試集65張,主干網絡使用ImageNet數據集[6]進行預訓練,隨后在MS-COCO(microsoft common objects in context)數據集[16]上進行整體網絡的預訓練,并將得到的權重進行遷移學習,作為的初始權重。框架依托在英偉達GTX1080Ti顯卡上進行訓練,網絡1共迭代500輪,網絡2利用網絡1的權重進行微調(finetune),訓練輪次為300輪,訓練過程損失函數如圖6所示。
為衡量模型性能,本文研究采用通用的目標檢測指標來評價模型性能優劣,包括精確度(Precision)、召回率(Recall)、置信度在0.5的各數字平均精確度[mAP(0.5)],置信度在0.5~0.95的各數字平均精確度[mAP(0.5~0.95)],每秒浮點運算次數(giga floating-point operations per second,GFLOPs)。

圖6 損失函數的變化Fig.6 Change of model loss function
Precision是模型對某一類數字正確預測數量占所有被模型判定為該類型的比值,即
(7)
Recall是模型對某一類數字正確預測數量占真實情況正例數量的比值,即

(8)
式(7)中:TP表示真正例樣本的真實類別是正例,并且模型預測的結果也是正例;TN表示真反例樣本的真實類別是負例,并且模型將其預測成為負例;FP表示假正例樣本的真實類別是負例,但是模型將其預測成為正例;FN表示假反例樣本的真實類別是正例,但是模型將其預測成為負例。
設計了3組實驗來驗證,首先是僅使用YOLOv5s網絡,而不使用迭代檢測網絡,由表1可以看出,網絡在經過訓練之后僅僅達到了12%的準確率與53%的查全率,原因是目標尺度太過于分散,導致網絡不易收斂。在進行迭代檢測之后,可以看見,網絡的準確率提升到了86.9%,召回率提升到了93.7%,相較于原始網絡有了極大的提升。在替換Res2Net模塊之后,可以看到,網絡最終達到了99.62%的準確率和99.55%的查全率。對于平均準確率(mAP)0.5的區間上達到99.52%的置信度,GFlOPs降至12.3,能夠實現在邊緣設備平臺的實時性要求。
圖7展示了在邊緣設備平臺運行數字儀表識別方法的效果,可見無論在燃氣表黑色區域的數字還是在紅色區域的數字,包括最后一位在轉動數字,都能準確的識別出來,說明該算法在數字識別性能上具有較好的魯棒性和適用性。

圖7 燃氣表讀數識別效果圖Fig.7 Effect drawing of gas meter reading recognition

表1 三組模型網絡的對比實驗Table 1 The result of three algorithms were used to detect
邊緣智能計算的想法來源于將數據在接近于數據源頭的地方進行處理,不同于云計算將計算發生在云平臺利用超大型計算機實現運算,邊緣計算在整個網絡的邊緣節點以分布式部署的硬件作為平臺,實現數據的存儲和處理。邊緣計算解決了對云計算過度依賴,有效解決了海量數據傳輸對網絡資源占用的問題。然而邊緣計算并不能取代云計算,而是作為云計算在網絡終端的延伸和拓展。邊緣計算主要用在對實時性要求較高的行業,云計算主要用在對可靠性準確性要求較高的行業,將二者結合,邊緣平臺為云平臺提供了數據采集,數據預處理等便利,同時也是硬件部署的平臺,云平臺為邊緣平臺提供了大數據處理和相應規則的建立,也可以將訓練好的模型在邊緣平臺上部署,提高邊緣平臺的業務處理性能。如圖8所示,邊緣平臺與云平臺協作成為云邊協作平臺的組織結構。
為進一步在邊緣設備上進行比照分析實驗,將在服務器上訓練好的模型部署在邊緣計算設備NVIDIA Xavier NX上,檢測模型在邊緣平臺上的業務處理能力。Xavier NX是英偉達公司開發的專門為人工智能平臺打造的邊緣計算設備,在10 W功率下可提供14TOPS,而在15 W功率下可提供21TOPS,非常適合在大小和功率方面受限的系統。Xavier NX只有一張信用卡大小,可以采用直接集成的方式,通過樹莓派與監控攝像頭建立聯系,Xavier NX系統結構示意圖如圖8所示。
將算法植入邊緣計算平臺后,各算法識別準確度和速度如表2所示。本文改進的YOLOv5s算法在邊緣計算平臺上檢測速度比YOLOV4提升了52%,檢測精度略有降低,但是仍然高于YOLOv3的識別準確度。YOLOv5s在參數數量上的優勢體現在模型需要的內存遠小于YOLOv4和YOLOv3,下降了接近90%,相比后兩者,YOLOv5s在邊緣計算平臺上具有明顯的不占內存容量、易部署的特點。總而言之,改進后的YOLOv5s進一步降低了模型的參數量,在不過分犧牲精度的前提下,可以滿足工業互聯網對于數字顯示儀表實時性、準確性的識別要求,符合商業應用標準。接近90%,相比后兩者,YOLOv5s在邊緣計算平臺上具有明顯的不占內存容量、易部署的特點。總而言之,改進后的YOLOv5s進一步降低了模型的參數量,在不過分犧牲精度的前提下,可以滿足工業互聯網對于數字顯示儀表實時性、準確性的識別要求,符合商業應用標準。

圖8 云邊協作平臺的結構Fig.8 Structure of cloud-edge platform collaboration platform
將應用改進后YOLOv5s模型部署到實際的電廠無人點巡檢系統上,系統集合了攝像頭、樹莓派、NVIDIA Xavier NX等設備,圖9是運行后系統的軟件界面。

表2 算法在邊緣平臺上的性能指標對比Table 2 Comparison of performance indicators of algorithms on edge platforms

圖9 后臺管理平臺系統畫面Fig.9 System screen of background management platform
針對傳統巡檢依靠人力記錄儀器顯示數字的問題,提出了一種基于YOLOv5s輕量化的目標檢測網絡,得出如下結論。
(1)算法改進了CSPDarknet53網絡結構,通過兩層迭代檢測網絡,解決原圖像數據上感興趣區域占原圖比例不一樣的問題和感興趣區域內相同數字統一到相同的尺度的問題。
(2)改進了YOLOv5殘差模塊,用對多尺度語義信息提取更好的Res2Net網絡結構。在燃氣儀表數據集上達到了mAP為99.52%的優秀結果。
(3)通過在邊緣計算平臺NVIDIA Xavier NX上實際部署,實現了在生產環境中的儀表數字讀數。
本文算法改進了傳統儀表盤識別算法準確率較低的問題,提高了工業現場的巡檢效率,對傳統行業到數字化轉型具有一定的貢獻,并且本文算法已經在邊緣計算平臺上的終端進行部署,實現了穩定的商業化運行,取得了較好的實際檢測成果和經濟效益。