朱志猛
(中關村硬創(chuàng)空間集團有限公司,北京 100083)
隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、通信、和圖像識別領域深度學習技術[1-3]的深入和普及,電力監(jiān)控系統(tǒng)[4]迅速發(fā)展,各項成本得到一定程度地降低。電力監(jiān)控系統(tǒng)是一種集視覺、紅外、聲音傳感器于一體,可以對電力設備的熱缺陷、斷電狀態(tài)、異?,F(xiàn)象進行檢測的系統(tǒng)。系統(tǒng)還可讀取指針或數(shù)字指示儀表的編號,包括壓力表、油溫表、避雷器指示燈等,從而可快速分析設備運行狀態(tài),便于設備管理。因此,實現(xiàn)智能指針或數(shù)字識別[5]是智能電力監(jiān)控重要的前提之一。
近年來,許多學者對電力監(jiān)控中智能儀表識別相關的工作進行了研究。文獻[6]提出了一種基于OpenCV的變電站儀表識別方法。該方法利用圖像處理分割表盤單個數(shù)字圖片后,基于卷積神經(jīng)網(wǎng)絡進行數(shù)字識別。文獻[7]提出了一種融合感知與控制的數(shù)顯儀表識別方法。該方法使用圖像目標檢測網(wǎng)絡識別數(shù)顯儀表,標出目標區(qū)域。接著,通過卷積循環(huán)神經(jīng)網(wǎng)絡進行實時儀表數(shù)字識別。文獻[8]針對海上升壓作業(yè)的特征對儀表識別技術做了改進,在嵌入深度學習技術后,使系統(tǒng)能夠分別完成儀表檢測與識別任務。由于該識別技術分兩個步驟完成,為此,還須根據(jù)各步驟的難度、特征設計對應的深度學習模型?,F(xiàn)有的基于計算機視覺的儀表識別技術雖然具有較高的準確率,但其大多數(shù)方法只能在仿真環(huán)境中表現(xiàn)出良好的性能,很難應用于復雜多變的真實場景。此外,大部分儀表圖像處于良好的拍攝條件下,當讀數(shù)區(qū)域受到氣泡、污漬和光點干擾時,很難正確的讀數(shù)。
為改善上述問題,本文提出了一種智能儀表監(jiān)控系統(tǒng)。首先,對系統(tǒng)的架構進行設計。其次,對系統(tǒng)中最為重要的識別任務環(huán)節(jié),設計了基于深度學習的智能儀表檢測模型,從而實現(xiàn)電力儀表的智能識別。
智能儀表監(jiān)控系統(tǒng)架構如圖1所示,主要由感知層、網(wǎng)絡層、信息層、應用層四部分組成。首先,每個智能儀表都附有一個GPS、攝像頭、通信模塊,便于本地監(jiān)控視頻關鍵幀發(fā)送至云端進行識別并產(chǎn)生預警信息。其次,采用互聯(lián)網(wǎng)和窄帶物聯(lián)網(wǎng)[9-13](NB-IoT,narrow band internet of things)進行通信,其中NB-IoT用于與儀表間的有效通信,互聯(lián)網(wǎng)用于最終用戶管理。最后,建立了一個基于云的智能處理方案,從而實現(xiàn)處理、識別、存儲和決策各個待監(jiān)控儀表的狀態(tài)信息。
圖1 智能儀表監(jiān)控系統(tǒng)結構
感知層由大量感知設備及傳感器構成如光學傳感器、振動和位置傳感器等?;谶@些感知單元,系統(tǒng)可以實時感應到儀表的振動、表盤讀數(shù)等信息。
網(wǎng)絡層是實現(xiàn)智能儀表監(jiān)控系統(tǒng)最重要的組成部分之一。一方面云服務器需要與所有儀表通信,另一方面管理人員必須跟蹤所有的儀表,從而預警相關設備運行狀態(tài),如遇故障或突發(fā)事件也可安排人員執(zhí)行維修工作。
信息層根據(jù)感知層級網(wǎng)絡層傳輸?shù)臄?shù)據(jù)進行響應控制。當從儀表監(jiān)控系統(tǒng)根據(jù)攝像頭采集的數(shù)據(jù)產(chǎn)生報警信息時,立即響應異常情況非常重要。例如,如果儀表讀數(shù)異常,則基于GPS位置傳感器,云服務器能夠獲取異常儀表的位置信息。同時,系統(tǒng)可基于位置信息調(diào)度距離最近的維修人員到現(xiàn)場確認情況,從而使得智能監(jiān)控過程形成閉環(huán),及時處理報警信息。
應用層主要包括智能監(jiān)控、空間感知以及智能管理等模塊。主要完成不同儀表監(jiān)控視頻展示,位置標識(經(jīng)緯度),以及遇到突發(fā)事件的預警提醒、維修人員調(diào)度等。
智能儀表監(jiān)控系統(tǒng)原理如圖2所示。系統(tǒng)在工作過程中,感知層中信息采集單元主要采集表盤信息。當信息采集完成后,圖像將基于網(wǎng)絡層將數(shù)據(jù)發(fā)送到云服務器。同時,系統(tǒng)基于深度學習的智能儀表檢測模型執(zhí)行目標檢測。需注意,基于深度學習的智能儀表檢測模型是智能儀表監(jiān)控系統(tǒng)中最為重要的一環(huán)。
圖2 智能儀表監(jiān)控原理
此外,為提高系統(tǒng)工作效率,可利用多核、PC集群和GPU集群計算等并行計算技術[14-16],從而將云端的數(shù)據(jù)按需共享給多個計算單元。為了保證系統(tǒng)靈活性和可擴展性,通信或信息共享時采用HTTP傳輸協(xié)議,從而滿足易于監(jiān)控和維護需求。
本文所提基于深度學習的智能儀表檢測模型如圖3所示。模型可分為數(shù)字區(qū)域檢測網(wǎng)絡(DaNet,digital area detection network)和數(shù)字識別網(wǎng)絡(DiNet,digital identification network)兩大模塊。首先,對原始圖像進行預處理;其次,將RGB轉換到YCbCr顏色,從而提出顏色干擾;再次,利用目標檢測技術檢測電力儀表讀數(shù)區(qū)域,然后進行旋轉校正以確定儀表類型。接著,針對不同類型的儀表采用不同的識別算法,最終得到并保存識別結果。
圖3 智能儀表檢測模型
為了對異常用電情況進行實時偵測,智能電表對用戶的用電信息進行有規(guī)律地監(jiān)測。設Dn為一維用電數(shù)據(jù)。則:
(1)
因為一維數(shù)據(jù)沒有考慮當天用電量的變化,如果偵測天數(shù)多,那么Dn將不能反映不同時段電力數(shù)據(jù)間的深層聯(lián)系。為提取不同時段、不同日期間的電力特征,文章給出了二維電力數(shù)據(jù)。其表達式為:
(2)
式中,列項表示單天的用電數(shù)據(jù)。在各種技術支持下,智能電表可對多種用電數(shù)據(jù)進行收集。比如,功率因數(shù)、三相電流與電壓??紤]到篇幅限制,為簡化運算,文章只討論第Di天中所收集的數(shù)據(jù)量,其列向量為:
xdi={x1,x2,…,xj,…,xF}T
(3)
式中,智能電表收集的總的用電數(shù)據(jù)數(shù)表示為F。針對某一用戶,其用電數(shù)據(jù)集公式是:
Dn={xd1,xd2,…,xdi}
(4)
最后,由于數(shù)字電表位于不同的環(huán)境條件下,拍攝距離不同,因此捕獲的電表圖像的大小也不同。為了在同一程序中處理所有捕獲的電表圖像,需要調(diào)整捕獲的輸入數(shù)字電表圖像的大小。為此,將輸入圖像的大小調(diào)整為512×512。
由于RGB對照明變化敏感,因此原始圖像可能存在一定照明干擾,為此,本文將原始RGB圖像將轉換為YCbCr圖像。YCbCr顏色空間[17-18]是一種典型的線性亮度顏色空間。在YCbCr中,Y代表亮度,Cb和Cr分別是藍色和紅色的色度。通過轉換過程,對RGB信息進行編碼,并將Y的信息范圍調(diào)整為16到235,Cb和Cr的信息范圍調(diào)整為16到240。RGB圖像轉換為YCbCr顏色空間公式如下:
(5)
由于傳統(tǒng)方法適應性差,本文采用DaNet來檢測電力儀表數(shù)字讀數(shù)區(qū)域。圖4為DaNet網(wǎng)絡模型結構。該網(wǎng)絡模型共分為三層:特征提取、候補指針區(qū)域生成和區(qū)域檢測。
圖4 多層深度網(wǎng)絡模型結構
2.3.1 特征提取
對于特征提取過程,本文通過多次卷積融合池化層進行處理,從而生成大小為原始圖像八分之一的特征圖。特征圖將有助于獲得電力抄表所需的細粒度細節(jié)。因此,經(jīng)特征提取后,即使照明條件低,圖像質量差,網(wǎng)絡也可學習部分特征,從而在一定程度提高模型精度。特征提取網(wǎng)絡相關配置如表1所示。其中Conv為卷積層,Max為最大池化層,Inception為GoogLeNet網(wǎng)絡。
表1 特征提取網(wǎng)絡相關配置
表2 MASK-RCNN網(wǎng)絡中錨點框取
特征提取網(wǎng)絡中卷積層主要利用一定大小的卷積濾波器來提取電力數(shù)據(jù)特征,因此卷積層是深度神經(jīng)網(wǎng)絡的基本算子。在前一層卷積核處理之后,可以基于如下激活函數(shù)獲得卷積層的新層特征圖:
(6)
卷積層之后的最大池化層主要進行下采樣,從而使得特征提取網(wǎng)絡具備抗過擬合和保持特征不變能力。最大池化層描述如下:
(7)
式中,dw(·)為下采樣函數(shù)。
2.3.2 候補區(qū)域生成
本研究使用MASK-RCNN[19]完成候補指針區(qū)域生成過程。
MASK-RCNN是在FASTER RCNN的基礎上添加了一個預測分割MASK的分支,其網(wǎng)絡結構如圖5所示。然而MASK-RCNN中特征金字塔網(wǎng)絡(FPN,feature pyramid network)使用多出度特征作為輸入,并使用全連接分類器生成候補框。對于電力儀表,一般情況下候補區(qū)域相對較固定,但是不同電表差異明顯,因此需要對電力儀表候補指針區(qū)域生成中錨點框進行計算。
圖5 MASK-RCNN網(wǎng)絡結構
考慮到電力儀表的縱橫比和比例大小,選取k=12個錨點框,并將其應用于輸入特征圖的每個位置。這些特征進一步與通道連接以形成512維特征向量。接著,將這些特征向量輸入兩個卷積層生成候補指針區(qū)域邊界框。
對于神經(jīng)網(wǎng)絡中各層的輸出,可由MASK-RCNN的前向傳播加以運算。設C是卷積層輸出特征映射,有:
C=φ(H(x,y))
(8)
φ(H(x,y))≡max(0,H(x,y))
(9)
(10)
式中,卷積層的輸入/輸出分別為x、y;映射函數(shù)為f(·);卷積核權重矩陣為W,值為m×n;ReLU激活函數(shù)為φ(·);偏置為b。實踐證明,ReLU函數(shù)能彌補梯度消失缺陷,促進網(wǎng)絡收斂,且極大程度地減少了輸出計算量,這是sigmoid、tanh等函數(shù)所不具有的優(yōu)勢。
池化層能避免出現(xiàn)過擬合現(xiàn)象,用于控制網(wǎng)絡的參數(shù)數(shù)量,減小空間面積。文中將所提網(wǎng)絡設置核為2×2。以P作為輸出映射,其方程為:
P=g(C)
(11)
式中,g(·)函數(shù)的功能是求解最大值。如果C中有池化層窗口穿過,那么g(·)會直接擯棄其它小值,而選定最大的窗口值。根據(jù)已有研究經(jīng)驗,文章在優(yōu)化過擬合時采用了Dropout操作,且設置了0.5的更新概率。Dropout之所以能預防過度擬合,在于其不參與正向、反向傳輸。
設Fq為神經(jīng)元在q位置的全連接輸出:
(12)
設L為網(wǎng)絡softmax損失函數(shù),并在訓練中應用MBGD法。在該方法下,每次迭代的樣本數(shù)量相同,且每次迭代的梯度方向由每個小批量中的全部樣本決定,即可控制隨機性,還能防止訓練跑偏。L函數(shù)公式:
(13)
式中,每次迭代的樣本數(shù)量設為M,M=64;神經(jīng)元在q位置的網(wǎng)絡輸出為pq;神經(jīng)元總量表示為J。
進一步,使用反向傳播算法更新權重w,更新規(guī)則如下:
(14)
wt=wt-1+Δvt
(15)
式中,μ表示可以加速收斂的動量系數(shù)(本研究令μ=0.9),Δvt-1表示之前更新的權重值,wt表示迭代t時的當前權重,α表示學習率(本研究取α=0.01)。α更新規(guī)則如下:
αt=αt-1×γt/u
(16)
式中,γ表示gamma函數(shù)(本研究令γ=0.1);u為最大迭代步長(本研究令u=150)。
2.3.3 區(qū)域檢測
數(shù)字區(qū)域檢測指將檢測出的候補區(qū)域分為數(shù)字區(qū)域和非數(shù)字區(qū)域。因此,這一部分為前面執(zhí)行的最終優(yōu)化結果,即試圖最小化誤報和錯報情況。為此,本文利用RoI池化層進行預測,并將池化層設置為8×7。
此外,為了充分提取識別特征,本文使用了包含2 048個神經(jīng)元的全連接層,并設置丟失率為0.1。然后將這些特征平鋪展開為向量并通過全連接層輸出。最終,該層產(chǎn)生兩個輸出,指示每個RoI檢測/未檢測到數(shù)字區(qū)域的概率。
當檢測到數(shù)字區(qū)域后,接下來進行數(shù)字分割識別。數(shù)字分割[20]是促進識別過程的一個重要階段,主要指從電力儀表圖像中提取數(shù)字。現(xiàn)實環(huán)境存在許多因素使數(shù)字識別過程復雜化,例如噪聲、模糊、污垢、碎玻璃、反射、旋轉數(shù)字、低分辨率、不同的顏色和編號系統(tǒng)等使得數(shù)字有遮擋或不清晰。為此,訓練時本文對數(shù)據(jù)進行數(shù)據(jù)增強,從而提高樣本多樣性,增強模型魯棒性。測試時,首先對檢測出數(shù)字區(qū)域的圖片進行截取,并進行旋轉校正,最后帶入網(wǎng)絡進行識別,從而增加識別精度。
2.4.1 旋轉校正
理想的電力儀表識別場景為相機垂直拍照,然而由于實際安裝現(xiàn)場的限制,很多時候無法直接獲取垂直照片。為此,本文通過投影變換對旋轉或扭曲的原始圖像進行校正,以減少隨后的讀數(shù)誤差。投影變化規(guī)則定義如下:
(x,y,w′)=(u,v,w)×T=
(17)
(18)
(19)
式中,(U,V)為原始圖像中某個點的坐標;(X,Y)為變換后圖像平面中點的坐標;(u,v,w)和(x,y,w′)分別是(U,V)和(X,Y)的齊次坐標系表達式;w和w′通常取1;T為從原始圖像平面到新圖像平面的變換矩陣,A為其元素值。
2.4.2 圖像增強
為提高識別精度,本文收集了10類(0~9)不同電力儀表數(shù)字從而訓練模型。為了增加類別的數(shù)量,提高模型魯棒性,同時對數(shù)據(jù)進行增強操作,如添加隨機高斯噪聲、改變亮度、應用中值濾波器、并以多個角度(10,-10,+25,-25,+30和-30)旋轉數(shù)字等。
此外,部分電力抄表數(shù)字圖片經(jīng)干擾后成為有部分遮擋的字符。然而,這種數(shù)字識別準確率遠遠低于完全字符。分析原因,由于原始字符數(shù)據(jù)集中遮擋字符數(shù)量較小,網(wǎng)絡訓練掌握特征嚴重不足。因此,本文提出了一種遮擋字符數(shù)據(jù)增強方法。具體過程如圖6所示。首先取n組0~9個數(shù)字,在垂直方向上隨機組合,形成0~9的垂直長圖像。然后,在組合圖像自上向下移動滑動窗口,且每次以0~15°隨機角度旋轉滑動窗口中的圖片,從而生成最終數(shù)據(jù)圖像。需注意,上下字符和旋轉角度選取時都是隨機的,因此可以有效地提高數(shù)據(jù)集的多樣性。
圖6 遮擋字符數(shù)據(jù)增強方法
2.4.3 數(shù)字識別
本文將數(shù)字識別分為兩個階段。在第一階段,利用DiNet對數(shù)字和非數(shù)字進行排序,從而檢測電力抄表圖像中的每個數(shù)字,并對數(shù)字和非數(shù)字進行預測。在第二階段中,刪除太小或太寬的數(shù)字。數(shù)字識別CNN網(wǎng)絡相關配置如表3所示。
表3 數(shù)字識別網(wǎng)絡相關配置
結合完整模型,電力抄表系統(tǒng)最終得到4種不同的損失:RPN(背景)、RPN(前景)、RCNN(最終類輸出)和RCNN(邊界框回歸)。因此整個模型總損失計算如下:
Lt=(Lcls+Lb)RPN+(Lcls+Lb)RCNN
(20)
其中:(Lcls+Lb)RPN表示區(qū)域檢測損失,分別描述背景和前景分類損失。(Lcls)RCNN表示不同類別之間的損失。(Lb)RCNN為邊界框的損失。
在仿真中,所使用的數(shù)據(jù)集均來自12 000張真實拍攝的電力儀表圖片,數(shù)據(jù)集大小約為8 GB。首先,將原始數(shù)據(jù)進行清洗,剔除一些質量極差的圖片。剔除后,數(shù)據(jù)集約有10 000張可用圖像。根據(jù)前述內(nèi)容,所提模型主要包含兩個網(wǎng)絡:數(shù)字區(qū)域檢測網(wǎng)絡和數(shù)字識別網(wǎng)絡。在訓練數(shù)字區(qū)域檢測網(wǎng)絡時,使用數(shù)據(jù)集中的9 000張圖像進行訓練,使用1 000張圖像進行測試。對于數(shù)字識別網(wǎng)絡,該網(wǎng)絡以RCNN為基礎,使用預先準備的200張數(shù)字基本圖片,并根據(jù)所提圖像增強方法生成干擾數(shù)據(jù)和遮擋數(shù)據(jù)。進一步,將增強后的數(shù)據(jù)集按照8:2的比例分為訓練集和測試集。
仿真時硬件環(huán)境為:8核酷睿 i7CPU,主頻3.60 GHz,內(nèi)存為64 GB,2塊GEFORCE GTX1080 Ti顯卡,顯存為11 G。模型運行在操作系統(tǒng)為Win10×64為聯(lián)想工作站。仿真時軟件以python中pytorch模塊搭建,并基于openCV3.1實現(xiàn)圖像處理。
為了驗證所提出方法的穩(wěn)健性和有效性,將所提出的方法與VGG16和Fast Yolo方法進行了比較。仿真仿真運行過程描述如下:首先,對所有數(shù)據(jù)集中輸入數(shù)字電表圖像的大小調(diào)制為512×512。其次,由于RGB對照明變化敏感,因此原始圖像可能存在一定照明干擾。數(shù)據(jù)集中所有RGB圖像將轉換為YCbCr圖像。再次,將數(shù)據(jù)分別帶入數(shù)字區(qū)域檢測網(wǎng)絡(DaNet)和數(shù)字識別網(wǎng)絡(DiNet)進行訓練,并根據(jù)識別結果進行驗證,從而調(diào)整模型參數(shù)。最后,輸出仿真結果并預主流模型進行對比與分析。
訓練時采用SGD優(yōu)化器訓練模型,仿真時部分參數(shù)定義如下:批量大小設置為16,初始學習率為10-2,學習率衰減率為10-1,學習率衰減周期設置為10,最大迭代次數(shù)設置為150,每次迭代訓練100次。
3.3.1 DaNet仿真結果與分析
所提數(shù)字區(qū)域檢測網(wǎng)絡(DaNet)識別結果如圖7所示。可以看出所提模型能夠有效識別數(shù)字區(qū)域。表5為不同方法區(qū)域識別準確率、召回率和F分數(shù)對比結果??梢钥闯?,所提方法區(qū)域識別準確率為97.84%,召回率為92.65%,F(xiàn)分數(shù)為95.17%。8因此,本文方法較VGG16和Fast Yolo相比,準確率分別提升12.5%和5.21%。
表5 不同方法區(qū)域識別性能對比結果
圖7 數(shù)字區(qū)域檢測網(wǎng)絡識別結果
3.3.2 DiNet仿真與分析
本節(jié)研究了數(shù)據(jù)增強對數(shù)字識別的影響。首先,使用原始數(shù)字圖片數(shù)據(jù)對不同模型進行訓練。然后,使用所提出的數(shù)據(jù)增強方法,分別進行了4組數(shù)據(jù)增強仿真,每個仿真數(shù)據(jù)集分別擴充為1 000、2 000、5 000和10 000。最終,所提數(shù)字識別網(wǎng)絡(DiNet)在不同曾廣數(shù)據(jù)集下識別準確率統(tǒng)計結果如表6所示。
表6 不同數(shù)據(jù)集下數(shù)字識別統(tǒng)計結果
可以看出,在不使用數(shù)據(jù)增強的情況下,有遮擋數(shù)字的識別率較低,僅為85.21%;執(zhí)行數(shù)據(jù)增強后,準確度顯著提高。當數(shù)據(jù)擴增至5 000時,識別準確率達到99.387%。然而數(shù)據(jù)擴充至10 000時,準確率增加已經(jīng)不明顯。分析原因,DiNet網(wǎng)絡已基本學習到數(shù)字特征,因此數(shù)據(jù)即使再擴增也無法改善網(wǎng)絡性能。為提高計算效率,仿真將數(shù)據(jù)增強數(shù)量最終選取為5 000。仿真充分說明了數(shù)據(jù)增強方法的有效性,可以大大提高遮擋數(shù)字識別的準確率。
仿真設置數(shù)據(jù)增強階段的旋轉角度r和滑動窗口t,并取值1、5、10進行對比仿真。最終識別準確率統(tǒng)計結果如表7所示??梢钥闯觯D步長越大,滑動窗口越大,識別精度越低。隨著滑動和旋轉步長的減小,精度將逐漸提高。然而步長越小,數(shù)據(jù)越容易受到干擾。故最終選取r=t=5為參數(shù)取值。
表7 不同旋轉角度和滑動窗口識別結果
最后,將所有網(wǎng)絡連接,并在測試集進行了整體網(wǎng)絡驗證,測試結果如圖8所示。表8所示為所提整體網(wǎng)絡(DaNet+DiNet)性能統(tǒng)計??梢钥闯?,經(jīng)過遮擋數(shù)據(jù)增強與旋轉滑動窗口數(shù)據(jù)增強后,模型性能明顯改善,最終識別準確率達到94.96%。
表8 網(wǎng)絡整體性能統(tǒng)計結果
圖8 測試結果
本文對電力系統(tǒng)中智能儀表監(jiān)控進行了研究與分析,根據(jù)已有文獻的指導,作者進行了詳細的建模,并提出了一種電力智能儀表監(jiān)控系統(tǒng)。在設計了系統(tǒng)結構以及系統(tǒng)工作過程基礎上,提出了基于深度學習的智能儀表識別模型。該模型首先了基于數(shù)字區(qū)域檢測網(wǎng)絡對電力儀表數(shù)字區(qū)域進行提取,有效識別各種電表數(shù)字讀數(shù)區(qū)域。同時,通過數(shù)據(jù)增強技術改善數(shù)字識別網(wǎng)絡識別性能,提高了數(shù)字識別精度。該模型對遠程自動電力儀表讀取研究提供了一定借鑒作用。