趙開開,劉兆祥,廉士國
(聯(lián)通數(shù)字科技有限公司-AI創(chuàng)新應用中心,北京 100176)
電力是現(xiàn)代社會不可或缺的資源,在發(fā)電、用電的過程中需要使用大量結(jié)構簡單、成本低廉、抗干擾能力強的電流表、溫度表、壓力表等監(jiān)測類指針式儀表儀器[1]?,F(xiàn)有的自動遠程讀數(shù)系統(tǒng)主要分為兩大類,一類是改造現(xiàn)有儀表或設計全新儀表,直接獲取儀表信號并轉(zhuǎn)換為數(shù)字信號,對儀表讀數(shù)進行統(tǒng)計[2-4],實施難度大,不利于推廣;另一類是基于現(xiàn)有的儀表使用機器視覺算法對指針讀數(shù)進行識別,不影響現(xiàn)有儀表系統(tǒng),可擴展性強。
主流的機器視覺儀表自動遠程讀數(shù)方法主要分為基于霍夫變換的方法,基于關鍵點檢測的方法和基于圖像分割的方法。基于霍夫變換的方法使用霍夫變換檢測圓和直線來確定表盤區(qū)域和指針區(qū)域,進而計算指針讀數(shù)[5]。雖然該方法被不斷改進[6],但霍夫變換法存在預處理復雜、人工閾值多等問題,使得該類方法難以處理復雜背景、光照變化大、多類型表盤等場景下的自動讀數(shù)問題?;陉P鍵點檢測的方法中,文獻[7-10]使用模板匹配定位表盤區(qū)域或指針區(qū)域,文獻[11-12]提取模板圖像和待識別圖像中的SIFT、ORB等特征點進行表盤區(qū)域或指針區(qū)域的匹配,文獻[13]人為設計了指針上的數(shù)個顯著關鍵點,用于指針的定位;此類方法基本都需要提前設定模板圖像,環(huán)境的變化易使模板和關鍵點失效,在實際使用過程中效果不穩(wěn)定?;趫D像分割的方法中,文獻[14]使用深度學習語義分割網(wǎng)絡U-Net對表盤中的刻度線和指針進行提取,進而計算出讀數(shù)值;語義分割是像素級的分類任務,需要輸入圖像的分辨率較高且儀表占整幅圖像主體部分,同時需要腐蝕、擬合等后處理對分割后的結(jié)果進行修正和細化,計算復雜度高,運行效率低。
為了解決電力系統(tǒng)等儀表廣泛使用的場景中人工讀表效率低、成本高、安全性低等問題,本文提出一種基于機器視覺的遠程智能讀表系統(tǒng),該系統(tǒng)只需在現(xiàn)有的儀表基礎上非接觸地添加圖像采集設備、網(wǎng)絡傳輸設備、邊緣計算設備,便可穩(wěn)定、高效、準確地完成遠程讀表任務。
本文提出的指針式儀表遠程讀數(shù)系統(tǒng)主要由網(wǎng)絡攝像機、5G-CPE、MEC服務器構成。
1.1.1 網(wǎng)絡攝像機
網(wǎng)絡攝像機(IP camera, IPC)可以通過網(wǎng)絡將待識別的儀表畫面?zhèn)鬏斨吝h程控制中心。
1.1.2 5G-客戶端終端設備
客戶端終端設備(customer premise equipment,CPE)可以對運營商基站發(fā)出的4G或5G信號進行中繼,以無線或?qū)拵У男问教峁┙o其他網(wǎng)絡設備使用,5G-CPE便是可以接收5G網(wǎng)絡信號,建立無線或有線網(wǎng)絡的設備。
1.1.3 邊緣計算服務器
邊緣計算(mobile edge computing,MEC)服務器在5G網(wǎng)絡的加持下,可以將高密度計算、大流量和低時延需求的業(yè)務就近部署,滿足安全、速率及可靠性的多重要求。
在現(xiàn)有的待識別儀表基礎上,使用IPC、CPE、MEC和客戶端監(jiān)控中心構建的指針式儀表遠程讀數(shù)系統(tǒng)如圖1所示。
圖1中攝像機使用可變焦可轉(zhuǎn)動的球機,由于很多儀表并不需要每時每刻監(jiān)測,因此可以使用一臺球機輪詢監(jiān)控多組儀表,降低成本;5G-CPE-a表示第一臺5G-CPE,它接入運營商基站,接收5G信號并通過有線網(wǎng)絡與攝像機連接;MEC服務器從運營商基站接收相機畫面數(shù)據(jù),同時負責算法推理;5G-CPE-b負責基站與監(jiān)控中心的通信。
在本文構建的儀表遠程讀數(shù)系統(tǒng)中,球機輪詢拍攝儀表畫面,通過5G-CPE-a發(fā)射的無線信號將圖像傳輸至基站并由基站轉(zhuǎn)發(fā)至MEC服務器,MEC服務器使用部署好的自動讀數(shù)算法對輸入圖像進行運算推理,得到圖像中所有儀表、所有指針的讀數(shù),并將讀數(shù)結(jié)果和異常情況通過基站和5G-CPE-b發(fā)送至客戶端的監(jiān)控中心。
為了克服傳統(tǒng)方法的不足,本文基于深度學習模型,提出了基于級聯(lián)卷積神經(jīng)網(wǎng)絡的智能識別方法,可以實時對一幅圖像中不同類型的多個指針式儀表的讀數(shù)進行識別。
本文提出的基于深度學習的級聯(lián)讀數(shù)識別系統(tǒng)由兩級目標檢測器構成,示意圖如圖2所示。第一級使用常規(guī)目標檢測模型,在輸入圖像中定位表盤位置,并從輸入圖像中裁剪出表盤子圖;以表盤子圖為輸入,第二級使用旋轉(zhuǎn)目標檢測模型,得到子圖中所有指針的位置、尺寸和角度,最后使用角度法換算出指針讀數(shù)。
圖像中表盤區(qū)域的定位可用機器視覺中的深度學習目標檢測[15]算法來實現(xiàn)。在基于深度學習的目標檢測模型中,YOLO系列是單階段檢測模型重要代表[16],YOLOv5是YOLO系列最新的進展,在維持單階段模型速度優(yōu)勢的前提下也取得了優(yōu)越的檢測效果[17]。其骨干網(wǎng)絡在Darknet53[18]的基礎上使用了CSP跨空間局部結(jié)構和輸入分塊結(jié)構,可以由淺至深提取圖像的深度特征;中間網(wǎng)絡采用FPN和PAN結(jié)構[19],對圖像特征進行融合,得到可用于識別圖像中表盤區(qū)域的融合多尺度特征;頭部采用全卷積網(wǎng)絡輸出圖像中表盤區(qū)域的位置、尺寸和置信度。
本文以某電網(wǎng)供電系統(tǒng)的電表讀數(shù)識別場景為例,使用YOLOv5完成圖像中的表盤區(qū)域檢測。
在數(shù)據(jù)采集階段,首先使用本文構建的遠程讀數(shù)系統(tǒng)在現(xiàn)有的電網(wǎng)應用場景中輪詢地以不同的距離、不同的時間、不同的位置采集得到不同光線、不同大小、不同角度、不同干擾的視頻數(shù)據(jù),然后對視頻進行抽幀、去重等預處理得到當前應用場景下的圖像數(shù)據(jù)共10000余張。為了增強表盤檢測模型的泛化能力,提升模型的擴展性,使其在其他儀表場景中也能有效檢測出各類表盤,本文又在互聯(lián)網(wǎng)上收集了大約4000張各類指針式儀表的圖像數(shù)據(jù)。
在數(shù)據(jù)集準備階段,可以使用開源工具LabelImg對所有圖像進行標注,在表盤區(qū)域的檢測任務中,只需要標注出圖像中所有表盤的最小外接矩形框即可。標注完成后按照8∶2的比例將數(shù)據(jù)集劃分為訓練集和驗證集。
在模型訓練階段,首先使用Mosaic數(shù)據(jù)增強方法來對訓練數(shù)據(jù)進行在線擴充,進一步增強模型的泛化能力。然后使用多尺度訓練策略增強表盤檢測模型對不同大小表盤的檢測能力。最后使用余弦退火策略動態(tài)調(diào)整學習率,以增強模型訓練的穩(wěn)定性和收斂效果。本文在8張V100顯卡上使用梯度下降法訓練了2000epochs后得到的模型參數(shù)在驗證集上的mAP@0.5∶0.95高達0.98。
在指針式儀表的讀數(shù)識別任務中,指針區(qū)域檢測的精度直接決定了識別結(jié)果的準確率。本文將指針讀數(shù)任務定義為一個旋轉(zhuǎn)目標檢測問題,將表盤檢測模型的輸出子圖作為輸入,用深度卷積神經(jīng)網(wǎng)絡精準定位指針,進而得出讀數(shù)結(jié)果。
2.3.1 目標檢測器模型CenterNet
CenterNet[20]不使用錨框機制,把目標建模為該目標框的中心點,對應于特征圖上的一個點,這種無錨框[21]的檢測器直接檢測目標中心點并回歸其他屬性,有效減少了計算量,且易于擴展。CenterNet網(wǎng)絡結(jié)構示意圖如下圖3所示。
在圖3的示意圖中,CenterNet和YOLOv5模型類似,都需要使用全卷積網(wǎng)絡對輸入圖像進行特征提取和特征融合,二者的區(qū)別在于CenterNet在輸出時不再像YOLOv5那樣輸出目標的坐標信息,而是輸出熱力圖表示目標出現(xiàn)的位置,并輸出偏移圖對目標位置進行修正,長寬圖代表目標的尺寸信息。
2.3.2 旋轉(zhuǎn)指針檢測器模型
CenterNet和YOLOv5等常規(guī)目標檢測器使用橫平豎直的矩形框來表示目標的位置和尺寸,對于傾斜目標,其矩形框的邊界為目標最邊緣像素點的位置。旋轉(zhuǎn)目標檢測使用可傾斜的矩形框來表示目標的位置和尺寸,該矩形框是目標的最小外接矩形,矩形框邊界可以不與圖像邊界平行,對于同一個目標,旋轉(zhuǎn)矩形框包含的背景信息更少[22-25]。
圖4 旋轉(zhuǎn)指針檢測器網(wǎng)絡結(jié)構示意圖Fig.4 Network structure diagram of rotated pointer detector
模型中添加的角度分支首先使用3×3卷積核從豐富的融合特征中提取出利于角度回歸的相關特征,然后使用1×1卷積核對角度特征進行重組和重構,得到角度熱圖。角度熱圖的生成與長寬熱圖的生成是并行的、獨立的,防止模型對目標長寬和角度進行預測時產(chǎn)生沖突和干擾。
以檢測結(jié)果矩形框的左邊界中點為極點,水平向右為極軸,構建極坐標系,圖4中角度圖中每個點的數(shù)值表示該點處指針在極坐標下的極角,由于儀表指針相反方向的讀數(shù)是完全不同的,因此極角的范圍為[0,2π]。
在數(shù)據(jù)收集和數(shù)據(jù)集生成階段,首先使用2.3構建的表盤檢測模型對數(shù)據(jù)集中的所有圖片進行推理,并將推理得到的表盤子圖進行摳圖、保存。然后手工標注所有表盤圖中指針的位置、尺寸和角度。為了增強指針檢測模型對各個角度指針的檢測精度和泛化能力,本文對所有標注后的表盤子圖進行旋轉(zhuǎn),同時將對應的標注旋轉(zhuǎn)矩形框進行相同角度的旋轉(zhuǎn),起到數(shù)據(jù)增強的作用[26]。同時,由于每一種表盤的刻度、量程不同且不一定是均勻的,因此需要記錄電網(wǎng)場景中各類表盤中被標識的讀數(shù)所對應的角度值,由于在特定場景中表盤的種類是有限的、數(shù)量較少的,且表盤上有讀數(shù)標識的刻度也是稀疏的,因此這種標識方法的工作量可以忽略。
在模型訓練階段,在原始CenterNet的損失函數(shù)基礎上,增加角度信息的損失函數(shù),構成旋轉(zhuǎn)目標檢測器的損失函數(shù),損失函數(shù)如下公式(1)所示。
LR=Lk+λsizeLsize+λoffLoff+λangleLangle
(1)
其中Lk為熱力圖損失函數(shù),Lsize為目標尺寸損失函數(shù),Loff為偏移量損失函數(shù),Lk+λsizeLsize+λoffLoff為原始CenterNet目標檢測器的損失函數(shù);Langle為旋轉(zhuǎn)指針檢測模型增加的角度損失函數(shù),本文使用Smooth L1[27]損失函數(shù)來度量,如下公式(2)所示。
(2)
其中p表示角度損失函數(shù)只在目標所在的特征點處進行監(jiān)督,其他點處的角度損失為0。式(2)中的函數(shù)計算方式如式(3)所示。
(3)
由于在表盤指針讀數(shù)識別任務中,指針的角度識別直接決定了讀數(shù)結(jié)果,因此相對于指針的尺寸而言,角度更重要,本文使用權重參數(shù)λangle來控制角度損失項的重要程度。
在模型的推理階段,輸入階段一得到的表盤子圖,旋轉(zhuǎn)指針檢測模型能夠給出指針的位置、尺寸、角度信息。
常用的指針式儀表讀數(shù)計算方法有角度法和距離法,距離法根據(jù)指針和刻度線之間的距離來估算指針表示的讀數(shù),角度法根據(jù)指針和0刻度的夾角來計算指針讀數(shù)。本文使用2.3.3的旋轉(zhuǎn)目標檢測模型得到指針的角度,因此可以使用角度法來計算指針讀數(shù)。
2.4.1 坐標系轉(zhuǎn)換
數(shù)據(jù)標注時,為了對所有類型的表盤都使用同樣的標注規(guī)則,設定極軸正方向為圖像水平向右方向,但每個表盤的零刻度位置不同,因此對于每一類表盤,先將極坐標系進行轉(zhuǎn)換,轉(zhuǎn)換后的極軸正方向為零刻度方向,轉(zhuǎn)換方式如式(4)所示。
(4)
2.4.2 讀數(shù)計算
輸入圖像經(jīng)過2.2中表盤檢測模型推理和2.3中旋轉(zhuǎn)指針檢測模型的推理后,得到每個表盤的位置、尺寸及表盤中每個指針的位置、尺寸、角度信息。由于每一類表盤的刻度可能不是均勻的,因此為了更準確地估算讀數(shù)結(jié)果,先對讀數(shù)的范圍進行初步確定。確定方法如式(5)所示。
(5)
確定讀數(shù)的初步范圍后,使用式(6)計算該范圍內(nèi)的量程精度ρ。
(6)
最后使用式(7)計算指針所代表的讀數(shù)np。
(7)
本文的表盤檢測模型和旋轉(zhuǎn)指針檢測模型離線訓練完成后,在實際使用階段只進行前向推理即可。根據(jù)1.2中介紹的系統(tǒng)結(jié)構,相機獲取圖像后通過5G-CPE傳輸至基站,基站將輸入圖像轉(zhuǎn)發(fā)至MEC服務器,在MEC服務器上完成表盤檢測、表盤子圖摳圖、旋轉(zhuǎn)指針檢測、指針讀數(shù)計算等前向推理計算,最后將推理結(jié)果通過基站和5G-CPE轉(zhuǎn)發(fā)至電網(wǎng)監(jiān)控中心。
以相機拍攝的圖像為輸入,使用本文2.2.2構建的YOLOv5表盤檢測模型進行推理得到圖中所有表盤的位置和尺寸,推理結(jié)果可視化如圖5所示。
(a) 表盤檢測結(jié)果(單類多表盤) (a) Dial detection result(multiple dial of one class)
其中圖5(a)為單類別多個表盤的檢測結(jié)果;圖5(b)中圖像邊界處的表盤未完整出現(xiàn)在畫面內(nèi);圖5(c)中的第一類電表1個,抓拍時正在下雪,且圖像較為模糊;圖5(d)是該場景下視野最大時的抓拍圖,畫面內(nèi)包含9個電表,其中第一類電表2個,第二類電表4個。
除了驗證集數(shù)據(jù)外,又隨機采集了1000張測試集圖像,本文表盤檢測具體實驗結(jié)果如表1所示。
表1 不同方法的驗證集表盤檢測結(jié)果對比Tab.1 dial detection result of different methods in validation set
其中誤檢率表示誤檢表盤數(shù)量占實際總表盤數(shù)量的比例,漏檢率表示未檢測出的表盤占總表盤數(shù)量的比例。由于模板匹配和霍夫變換法無法事先確定圖像中表盤的個數(shù),因此漏檢率很高。另外由于數(shù)據(jù)集中存在各種尺度、各種類型的表盤,這使得模板匹配和霍夫變換法的參數(shù)較難調(diào)整和確定,因此誤檢率也較高。
從實驗結(jié)果可以看到,本文基于深度學習的目標檢測模型能夠在復雜多變的環(huán)境中穩(wěn)定地準確檢測出圖像中的多尺度[28-30]、多類型、多數(shù)量表盤。
首先將3.1中YOLOv5表盤檢測算法的檢測結(jié)果圖進行保存,作為所有模型指針區(qū)域檢測和讀數(shù)識別實驗的數(shù)據(jù)。然后分別使用本文的旋轉(zhuǎn)指針檢測模型和讀數(shù)計算方法進行自動識別,并與模板匹配法和霍夫變換法的指針檢測及讀數(shù)結(jié)果進行對比分析。指針檢測結(jié)果和讀數(shù)識別結(jié)果如表2所示。
表2 不同方法的儀表讀數(shù)識別結(jié)果對比Tab.2 Meter reading recognition result of different methods
其表2中指針漏檢率是漏檢指針數(shù)量占總指針數(shù)量的比例,指針讀數(shù)誤差是指在檢測到的指針中,算法識別讀數(shù)和真實讀數(shù)的差值除以真實讀數(shù)的平均值。從表2的實驗結(jié)果可知,本文深度學習指針檢測模型在指針檢測召回率和角度識別精度上都優(yōu)于傳統(tǒng)方法。
最后,圖6展示了基于本文系統(tǒng)和方法識別的儀表讀數(shù)結(jié)果可視化圖。在圖6中共包含2個第一類儀表(圖6中藍色矩形框,表盤內(nèi)有一個指針),4個第二類儀表(圖6中綠色矩形框,表盤內(nèi)有兩個指針),其中第二類儀表的紅色指針代表該儀表的歷史最大讀數(shù),白色指針代表該儀表當前讀數(shù)。
圖6 基于級聯(lián)卷積神經(jīng)網(wǎng)絡的指針式儀表智能讀數(shù)結(jié)果圖Fig.6 Intelligent reading result of pointer type-meter based on cascaded convolution neural network
為了解決電力系統(tǒng)指針式儀表讀數(shù)場景中人工讀表費時、費力、存在安全隱患等問題,本文基于電力系統(tǒng)中現(xiàn)有的指針式儀表,添加圖像采集設備、人工智能算法推理設備和數(shù)據(jù)傳輸設備構建遠程儀表智能讀數(shù)系統(tǒng)。
在電力系統(tǒng)遠程讀表方法中,傳統(tǒng)的基于霍夫變換方法、基于模板匹配的方法在復雜背景變化、多儀表、多指針等場景中很難適用,本文基于深度學習目標檢測算法構建的級聯(lián)讀數(shù)識別系統(tǒng)由兩級目標檢測器構成。第一級使用YOLOv5目標檢測器為基準模型檢測出圖像中的所有表盤區(qū)域,第二級在CenterNet目標檢測的基礎上添加角度預測分支構成旋轉(zhuǎn)目標檢測器,檢測出每個表盤中的所有指針,指針檢測結(jié)果包含其角度信息,最后使用角度法換算出指針讀數(shù)。本文構建的遠程儀表智能讀數(shù)系統(tǒng)和方法能夠?qū)崟r識別多類儀表、多個指針的讀數(shù),能夠穩(wěn)定、魯棒、高效地完成遠程讀表任務。