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