顧允迪,徐望明,2*,何 欽
(1. 武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢 430081;2. 武漢科技大學(xué) 教育部冶金自動(dòng)化與檢測(cè)技術(shù)工程研究中心,湖北 武漢 430081)
隨著中國(guó)物聯(lián)網(wǎng)技術(shù)的發(fā)展,基于物聯(lián)網(wǎng)的智能儀表正逐漸取代老式機(jī)械儀表,但是生活中仍然存在著大量老式字輪表(如水表、電表、燃?xì)獗淼龋┬枰M(jìn)行抄表。傳統(tǒng)人工抄表方式存在著工作效率低、工作量大且容易出錯(cuò)的問(wèn)題,自動(dòng)抄表(Automatic Meter Reading,AMR)已成為一種必然趨勢(shì),已經(jīng)有許多相關(guān)的設(shè)計(jì)被提出?;贛-Bus 總線(xiàn)或RS-485 總線(xiàn)的有線(xiàn)抄表技術(shù)通過(guò)在一定區(qū)域鋪設(shè)電纜對(duì)該區(qū)域儀表進(jìn)行集中讀數(shù),雖然解決了低效的問(wèn)題,但在已投入使用的建筑中鋪設(shè)電纜會(huì)影響用戶(hù)的日常生活和業(yè)務(wù)[1]。使用GPRS 遠(yuǎn)程通信技術(shù)雖然可靠性高、覆蓋面廣、成本低,但是存在用戶(hù)容量小、信號(hào)差的問(wèn)題[2],且隨著2G 退網(wǎng),GPRS 網(wǎng)絡(luò)用戶(hù)數(shù)量將會(huì)日益萎縮?;贚oRa 的遠(yuǎn)程通信技術(shù)雖然在電池壽命和成本上有優(yōu)勢(shì),但是其服務(wù)質(zhì)量(QoS)、通信延遲和可靠性相對(duì)較差[3-4]。相比之下,窄帶物聯(lián)網(wǎng)(NB-IoT)技術(shù)具有高服務(wù)質(zhì)量、高可靠性、高覆蓋、低延遲、低功耗、低成本等優(yōu)勢(shì),可廣泛應(yīng)用于遠(yuǎn)程抄表系統(tǒng)[5-8]。
近年來(lái),光學(xué)字符識(shí)別(Optical Character Recognition,OCR)技術(shù)飛速發(fā)展[9-10],國(guó)內(nèi)外學(xué)者基于OCR 技術(shù)在儀表讀數(shù)識(shí)別任務(wù)中展開(kāi)了大量研究。早期的識(shí)別方法采用傳統(tǒng)圖像處理技術(shù),如模板匹配[11-13]和特征提取及分類(lèi)[14],依賴(lài)預(yù)先做好的字符模板或人工設(shè)計(jì)的特征,對(duì)圖像質(zhì)量要求高,魯棒性較差且對(duì)字輪表中出現(xiàn)的雙半字符(兩個(gè)讀數(shù)字符均出現(xiàn)一部分)的情況識(shí)別效果較差。隨著神經(jīng)網(wǎng)絡(luò)特別是卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的廣泛應(yīng)用,對(duì)圖像質(zhì)量差、環(huán)境復(fù)雜的儀表圖像讀數(shù)識(shí)別成為可能。王志威等[15]改進(jìn)殘差網(wǎng)絡(luò)[16]在分割出的二值字符圖像上訓(xùn)練分類(lèi)網(wǎng)絡(luò)。王望等[17]訓(xùn)練了一個(gè)輕量級(jí)CNN 用于二值字符圖像分類(lèi),并通過(guò)合成二值雙半字符圖像解決了雙半字符訓(xùn)練樣本少的問(wèn)題。上述方法依賴(lài)于圖像二值化效果,對(duì)表盤(pán)表面存在污漬或復(fù)雜光照情況的魯棒性較差。楊帆等[18]設(shè)計(jì)了一個(gè)全卷積序列識(shí)別網(wǎng)絡(luò)(FCSRN),基于CTC[19]損失函數(shù)提出一種增強(qiáng)損失函數(shù),樣本標(biāo)簽不用真實(shí)標(biāo)簽而用雙半字符中“較低狀態(tài)”的字符標(biāo)簽,引導(dǎo)模型將雙半字符識(shí)別為“較低狀態(tài)”字符而非“較高狀態(tài)”字符。綜上所述,字輪式儀表讀數(shù)識(shí)別的難點(diǎn)主要在于存在的雙半字符訓(xùn)練樣本少及雙半字符與其對(duì)應(yīng)的兩個(gè)單字符具有較大相似性,故雙半字符的識(shí)別更具挑戰(zhàn)性。
目前已有部分基于物聯(lián)網(wǎng)技術(shù)與圖像處理技術(shù)的自動(dòng)抄表系統(tǒng)被提出。馬學(xué)文[20]針對(duì)指針式工業(yè)儀表使用STM32F407作為主控制器,使用4G 模塊將采集的圖像上傳至云端,設(shè)計(jì)了基于Hough 變換與徑向灰度統(tǒng)計(jì)的指針式儀表讀數(shù)識(shí)別方法。江亞杰[21]針對(duì)LCD 段碼表使用樹(shù)莓派作為邊緣計(jì)算平臺(tái),設(shè)計(jì)了基于Faster-RCNN的讀數(shù)識(shí)別算法并通過(guò)WIFI 模塊將識(shí)別的讀數(shù)上傳至云端。王杜毅等[22]使用ARM926 作為主控制器,使用當(dāng)前采集圖像與模板圖像的差值進(jìn)行壓縮感知從而降低了使用NB-IoT 傳輸圖像過(guò)程中的功耗。不同的系統(tǒng)設(shè)計(jì)可以解決不同的實(shí)際問(wèn)題。
針對(duì)以上問(wèn)題,本文設(shè)計(jì)了一種基于NB-IoT和輕量級(jí)CNN 的智能抄表系統(tǒng),通過(guò)NB-IoT 模組將采集的表盤(pán)圖像遠(yuǎn)程傳輸至云平臺(tái)并在云平臺(tái)內(nèi)對(duì)表盤(pán)圖像自動(dòng)識(shí)別讀數(shù),實(shí)現(xiàn)了對(duì)水表、電表、燃?xì)獗淼茸州喪絻x表的智能遠(yuǎn)程抄表。同時(shí),設(shè)計(jì)了一種基于多標(biāo)簽分類(lèi)的輕量級(jí)CNN 模型識(shí)別表盤(pán)讀數(shù),提高了表盤(pán)讀數(shù)字符尤其是雙半字符的識(shí)別精度,并通過(guò)實(shí)驗(yàn)證明了其有效性。
如圖1 所示,本文設(shè)計(jì)的智能圖像抄表系統(tǒng)以NB-IoT 網(wǎng)絡(luò)為基礎(chǔ),主要由采集層、傳輸層、應(yīng)用層組成。
圖1 智能抄表系統(tǒng)結(jié)構(gòu)Fig.1 Structure of intelligent meter reading system
采集層為安裝在字輪式儀表上的圖像采集終端,具有定時(shí)采集圖像、向云平臺(tái)發(fā)送圖像數(shù)據(jù)、接收云平臺(tái)下發(fā)的指令等功能;傳輸層為整個(gè)系統(tǒng)的橋梁,連接圖像采集終端與云平臺(tái),以MQTT 協(xié)議實(shí)現(xiàn)圖像數(shù)據(jù)的上傳及云平臺(tái)指令的分發(fā);應(yīng)用層為云平臺(tái),包括接收?qǐng)D像數(shù)據(jù)、下發(fā)指令、讀數(shù)識(shí)別、管理系統(tǒng)等功能。為了降低功耗、延長(zhǎng)電池使用時(shí)間,圖像采集終端平時(shí)處于休眠模式,當(dāng)需要采集和上傳圖像數(shù)據(jù)時(shí)便會(huì)自動(dòng)喚醒。當(dāng)云平臺(tái)接收到圖像后便會(huì)自動(dòng)對(duì)其進(jìn)行識(shí)別,先定位得到每個(gè)讀數(shù)字符的位置信息并分割出相應(yīng)的子圖像,然后使用離線(xiàn)訓(xùn)練好的字符識(shí)別模型對(duì)每個(gè)讀數(shù)字符子圖像進(jìn)行識(shí)別,從而得到當(dāng)前表盤(pán)的完整讀數(shù)。
圖像采集終端總體結(jié)構(gòu)及實(shí)物電路板如圖2所示。電源模塊包括電池與線(xiàn)性穩(wěn)壓電源,分別為Air302 模組、AT32 微控制器、攝像頭及照明模塊供電。照明模塊為多組高亮LED,為系統(tǒng)提供輔助光源,保證攝像頭采集到清晰的表盤(pán)圖像。AT32 微控制器通過(guò)GPIO 接口與攝像頭模組及照明模塊相連,實(shí)現(xiàn)圖像采集功能。時(shí)鐘模塊為攝像頭模組及AT32 微控制器提供運(yùn)行需要的時(shí)鐘信號(hào)。Air302 模組作為AT32 的上位機(jī)實(shí)現(xiàn)采集終端的定時(shí)喚醒、休眠、圖像傳輸及接收指令的功能。
圖2 圖像采集終端結(jié)構(gòu)圖及實(shí)物電路板Fig.2 Structure diagram and physical circuit board of image acquisition terminal
(1)Air302 模組
Air302 是基于EC616 芯片的NB-IOT 模組,具有低功耗、低成本、開(kāi)發(fā)便捷等優(yōu)勢(shì)。Air302 支持2.2~4.3 V 供電,在PSM(Power Save Mode)模式下電流僅為800 nA,支持LuatOS 嵌入式實(shí)時(shí)操作系統(tǒng),以Lua 腳本語(yǔ)言進(jìn)行開(kāi)發(fā),從而用少量代碼實(shí)現(xiàn)了業(yè)務(wù)邏輯。Air302 模組外圍電路包括射頻天線(xiàn)、貼片SIM(Subscriber Identity Module)卡、串口接口及復(fù)位、下載按鍵。本文圖像采集終端采用的Air302 與AT32 微控制器通過(guò)串口相連實(shí)現(xiàn)數(shù)據(jù)傳輸。
(2)AT32 微控制器
本文采用的微控制器是基于32 位ARM Cortex M4 內(nèi)核的AT32F403A,擁有高達(dá)1 MB Flash、最高224 KB 內(nèi)存,具有高能效、高容量、低成本特點(diǎn),適合對(duì)成本敏感及高運(yùn)算需求的場(chǎng)景。AT32F403A 的閃存存儲(chǔ)器支持兩種配置,即256 KB 零等待(ZW)Flash、768 KB 非零等待(NZW)Flash、96 KB RAM 和128 KB 零等待Flash、896 KB 非零等待Flash、224 KB RAM,可通過(guò)寄存器切換配置方案。非零等待Flash 的執(zhí)行速率是零等待Flash 的0.4 倍,因此需要將實(shí)時(shí)性高的程序編譯到零等待Flash 中。
(3)攝像頭模組
攝像頭模組采用GC0328,最大支持圖像分辨率為640×480。本文配置為320×240 以減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,通過(guò)DVP 接口與AT32 相連。
(4)電源模塊
由于部分老式字輪表并未通電,因此采集終端設(shè)計(jì)使用兩節(jié)ER14505 鋰亞硫酰氯電池作為電源。電池額定電壓3.6 V,額定容量為2 700 mAh。鋰亞電池一路直接為Air302 模組供電,另一路經(jīng)過(guò)RT9013 線(xiàn)性穩(wěn)壓芯片,將3.6 V 電壓降為3.3,2.8,1.5 V 為AT32、攝像頭及LED 供電。RT9013 的 使 能 腳 與Air302 的GPIO 相 連,當(dāng) 圖像采集終端需要采集圖像時(shí),Air302 控制GPIO輸出高電平,使能線(xiàn)性穩(wěn)壓電源為AT32 與攝像頭等供電。當(dāng)圖像上傳完畢后,關(guān)閉線(xiàn)性穩(wěn)壓電源。在采集終端進(jìn)入休眠后,線(xiàn)性穩(wěn)壓電源處于關(guān)閉狀態(tài),進(jìn)一步降低整機(jī)功耗。
(5)照明模塊
照明模塊的補(bǔ)光效果直接影響后續(xù)讀數(shù)識(shí)別算法的精度。如圖3 所示,若按圖3(a)的設(shè)計(jì),LED 直射表盤(pán)會(huì)造成表盤(pán)圖像光照不均,甚至在表盤(pán)上形成光斑,導(dǎo)致算法無(wú)法正確識(shí)別讀數(shù)。因此,本文創(chuàng)造性地設(shè)計(jì)多組高亮側(cè)光LED 直射圖像采集終端的外殼內(nèi)壁,經(jīng)外殼內(nèi)壁反射形成漫射照明,如圖3(b)所示。雖然該設(shè)計(jì)中LED燈組在同一功率下光照強(qiáng)度低于直射照明,但能有效減小光斑形成。
圖3 照明模塊設(shè)計(jì)對(duì)比Fig.3 Comparison of lighting module design
圖像采集終端軟件分布在Air302 與AT32中,其中Air302 利用Lua 腳本語(yǔ)言開(kāi)發(fā),主要包括系統(tǒng)休眠喚醒及數(shù)據(jù)傳輸;AT32 在Keil5 下使用C 語(yǔ)言開(kāi)發(fā),主要包括采集圖像及圖像壓縮。
(1)Air302 程序設(shè)計(jì)
Air302 開(kāi)機(jī)后首先檢查開(kāi)機(jī)原因。如果是普通上電或復(fù)位上電,便會(huì)進(jìn)行初始化工作,然后聯(lián)網(wǎng)獲取云平臺(tái)下發(fā)的休眠時(shí)間并存入低功耗內(nèi)存中,隨后進(jìn)入休眠模式。如果是喚醒上電,接著檢查是否到達(dá)采集時(shí)間。當(dāng)采集時(shí)間到達(dá)時(shí),使能線(xiàn)性穩(wěn)壓電源,接收AT32 通過(guò)串口發(fā)送的圖像數(shù)據(jù)。在上傳表盤(pán)圖像數(shù)據(jù)的同時(shí),會(huì)將鋰亞電池電壓、信號(hào)強(qiáng)度、Air302 的IMEI(International Mobile Equipment Identity)碼以及貼片SIM 卡 的IMSI(International Mobile Subscriber Identification Number)碼一起上傳。待數(shù)據(jù)上傳完畢,查詢(xún)?cè)破脚_(tái)是否有下發(fā)指令或是否更新休眠時(shí)間,若無(wú),便重新進(jìn)入休眠模式。Air302 程序流程圖如圖4 所示。
圖4 Air302 工作流程Fig.4 Air302 workflow
(2)AT32 程序設(shè)計(jì)
AT32 同時(shí)具有單精度浮點(diǎn)單元(FPU)和數(shù)字型號(hào)處理器(DSP),運(yùn)算能力強(qiáng)。由于本文設(shè)計(jì)的AT32 程序具有較高內(nèi)存需求,因此當(dāng)AT32 開(kāi)機(jī)后首先將內(nèi)存擴(kuò)展至224 KB,同時(shí)初始化GPIO、I2C 接口并點(diǎn)亮補(bǔ)光LED。為了減小數(shù)據(jù)上傳的流量消耗,通過(guò)I2C 配置攝像頭模組輸出YUV 格式數(shù)據(jù)以便AT32 對(duì)此數(shù)據(jù)進(jìn)行JPEG壓縮。申請(qǐng)150 KB 內(nèi)存用于存儲(chǔ)攝像頭輸出的YUV 圖像數(shù)據(jù),申請(qǐng)30 KB 內(nèi)存用于存儲(chǔ)壓縮后的JPEG 格式圖像數(shù)據(jù)。當(dāng)壓縮完成后,通過(guò)串口將JPEG 格式圖像發(fā)送至Air302 中。AT32 程序流程圖如圖5 所示。
圖5 AT32 工作流程Fig.5 AT32 workflow
本文讀數(shù)識(shí)別算法的流程如圖6 所示,分為離線(xiàn)過(guò)程和在線(xiàn)過(guò)程。由于本設(shè)計(jì)中每個(gè)圖像采集終端唯一對(duì)應(yīng)一臺(tái)固定的儀表表盤(pán),為減小圖像處理算法復(fù)雜度,可事先離線(xiàn)為每個(gè)儀表準(zhǔn)備一張采集好的表盤(pán)圖像作為模板圖像(參考圖像),標(biāo)記其讀數(shù)區(qū)域每個(gè)字符的位置信息及小數(shù)位數(shù)信息并存入云平臺(tái)數(shù)據(jù)庫(kù)。考慮到受安裝條件限制,圖像采集終端不一定能正立安裝,要求制作的模板圖像正立即可。圖6中展示了實(shí)際場(chǎng)景下倒裝而采集的圖像以及與其對(duì)應(yīng)的正立的模板圖像。當(dāng)云平臺(tái)在線(xiàn)接收到圖像采集終端上傳的當(dāng)前表盤(pán)圖像后,將其視為識(shí)別算法的輸入圖像,為不受圖像采集終端安裝方位的限制,同時(shí)為防止后期圖像采集終端可能出現(xiàn)局部移位、旋轉(zhuǎn)或光照變化等因素帶來(lái)影響,這里通過(guò)圖像局部特征(如SIFT[23]或SURF[24]特征)提取與匹配方法,計(jì)算透視變換矩陣,將輸入圖像投影到模板圖像所在坐標(biāo)空間,從而可通過(guò)離線(xiàn)記錄的讀數(shù)字符位置信息分割出輸入圖像上每個(gè)讀數(shù)字符的子圖像。最后,將每個(gè)讀數(shù)字符子圖像依次輸入離線(xiàn)訓(xùn)練好的字符識(shí)別CNN 模型,即可在線(xiàn)識(shí)別得到最終讀數(shù)。
圖6 讀數(shù)識(shí)別方法流程Fig.6 Reading recognition method flow
字輪式儀表要求能準(zhǔn)確識(shí)別完整數(shù)字字符和雙半字符。鑒于傳統(tǒng)方法精度有限,本文采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)方法進(jìn)行識(shí)別。將儀表讀數(shù)字符分為20 類(lèi),其中類(lèi)別標(biāo)簽“0”~“9”分別表示0~9 對(duì)應(yīng)的10 個(gè)完整單字符,類(lèi)別標(biāo)簽“10”~“19”分別表示10 個(gè)雙半字符,如“10”表示超過(guò)“0”(稱(chēng)為“較低狀態(tài)”)但是還未到“1”(稱(chēng)為“較高狀態(tài)”)的雙半字符、“11”表示超過(guò)“1”但是還未到“2”的雙半字符,依此類(lèi)推。然而,在實(shí)際采集的表盤(pán)圖像中雙半字符圖像數(shù)據(jù)量占比極少,導(dǎo)致訓(xùn)練過(guò)程中數(shù)據(jù)不均衡,嚴(yán)重影響雙半字符的識(shí)別精度。為避免訓(xùn)練過(guò)程中數(shù)據(jù)不均衡的影響,在每類(lèi)字符圖像中隨機(jī)篩選1 000 張圖像,通過(guò)人工清洗篩去標(biāo)注錯(cuò)誤的圖像。
神經(jīng)網(wǎng)絡(luò)[25]在樣本充足且形式多樣的情況下可大幅改善字符識(shí)別的魯棒性,精度遠(yuǎn)高于傳統(tǒng)方法。在圖像處理中卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用最為廣泛,其基本結(jié)構(gòu)包括卷積層、池化層、批歸一化層、激活層及全連接層。卷積層用于提取圖像特征,池化層用于壓縮特征,批歸一化層用于約束特征分布,激活層用于引入非線(xiàn)性因素,全連接層用于分類(lèi)。
實(shí)際表盤(pán)讀數(shù)字符的圖像尺寸較小,太深的神經(jīng)網(wǎng)絡(luò)會(huì)導(dǎo)致過(guò)擬合,因此本文采用輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)如圖7 所示。輸入圖像尺寸為28×28的單通道圖像,第一個(gè)卷積層采用16個(gè)5×5 的卷積核,步長(zhǎng)為1,填充2 個(gè)像素,并依次經(jīng)過(guò)批歸一化層、激活層、池化層。之后的每一層使用2 個(gè)3×3 的卷積層,步長(zhǎng)為1,填充1 個(gè)像素,在通道數(shù)上先降維再升維,這樣能在有效降低參數(shù)量的情況下提高感受野。使用全局平均池化與最后一個(gè)卷積層的池化層相連,整合全局空間信息,降低參數(shù)量。最后經(jīng)過(guò)兩個(gè)全連接層得到20維的網(wǎng)絡(luò)輸出。本文所使用的卷積神經(jīng)網(wǎng)絡(luò)總參數(shù)量為44 084。
圖7 本文方法使用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 CNN structure used in this method
雙半字符與其對(duì)應(yīng)的兩個(gè)單字符具有較大相似性,當(dāng)雙半字符中某一字符占比極大而另一字符占比較小時(shí),神經(jīng)網(wǎng)絡(luò)會(huì)傾向于將其識(shí)別為其中占比較大的單字符,然而此時(shí)仍處于還未完全進(jìn)位的狀態(tài),因此若將其識(shí)別為其中占比較大的單字符會(huì)造成讀數(shù)錯(cuò)誤。同時(shí)對(duì)于人而言也很難判斷其是否是雙半字符,會(huì)造成標(biāo)簽錯(cuò)誤,導(dǎo)致模型難以訓(xùn)練。因此本文提出一種基于多標(biāo)簽分類(lèi)的思想改進(jìn)CNN 字符識(shí)別模型,同時(shí)給予雙半字符樣本表示是否為雙半字符的標(biāo)簽及雙半字符中占比較大的單字符的標(biāo)簽。標(biāo)簽向量由20 維組成,前10 維表示是否屬于單字符或雙半字符中占比較大字符的標(biāo)簽,后10 維表示是否屬于雙半字符。如單字符“1”的標(biāo)簽為“0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0”,“0”~“1”之間的雙半字符且“1”的占比較大的樣本標(biāo)簽為“0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0”。相比于傳統(tǒng)圖像分類(lèi)使用的交叉熵?fù)p失(Cross Entropy Loss),本文使用二值交叉熵?fù)p失(Binary Cross Entropy Loss)。該方法除了能預(yù)測(cè)單字符或雙半字符類(lèi)別以外,還能預(yù)測(cè)雙半字符中“較低狀態(tài)”和“較高狀態(tài)”的占比關(guān)系,即占比較大或較小,可用于在后處理階段判別雙半字符對(duì)應(yīng)的儀表讀數(shù)。
模型輸出根據(jù)公式(1)得到預(yù)測(cè)字符類(lèi)別c、公式(2)得到預(yù)測(cè)結(jié)果的置信度p。其中:x1表示模型輸出的前10 維;x2表示模型輸出的后10 維;pthresh表示將字符識(shí)別為雙半字符的置信度閾值,本文取0.5 效果最佳。若預(yù)測(cè)為雙半字符,可通過(guò)argmax(x1)得到雙半字符中占比較大字符對(duì)應(yīng)的向量索引(0~9)。
通過(guò)觀察實(shí)際表盤(pán)圖像,可能是字輪表機(jī)械部件的原因,發(fā)現(xiàn)如圖8 所示的某些表盤(pán)讀數(shù)區(qū)域前幾位字符處會(huì)露出一部分相鄰字符區(qū)域,這時(shí)CNN 模型很可能會(huì)將其預(yù)測(cè)分類(lèi)為雙半字符。在最終判別雙半字符的讀數(shù)時(shí),若直接將其判別為“較低狀態(tài)”的字符顯然是不合理的。因此本文使用后處理操作來(lái)判定雙半字符的最終讀數(shù),其具體做法為:
圖8 含有特殊雙半字符的圖像示例Fig.8 Example images containing special double halfcharacters
(1)若表盤(pán)圖像讀數(shù)區(qū)域最后一位或最后幾位連續(xù)出現(xiàn)雙半字符,將該雙半字符判別為其中“較低狀態(tài)”的字符;
(2)若表盤(pán)圖像前幾位出現(xiàn)雙半字符,將該雙半字符判別為其中占比較大的字符。
通過(guò)實(shí)驗(yàn)研究分別評(píng)估智能抄表系統(tǒng)讀數(shù)識(shí)別準(zhǔn)確率、圖像采集終端功耗及整體系統(tǒng)功能。模型訓(xùn)練和推理平臺(tái)所用處理器為Intel(R)Xeon(R) Gold 5218 CPU @ 2.30 GHz,64 GB內(nèi)存,顯卡為NVIDIA RTX3090,操作系統(tǒng)為Ubuntu21.04。在PyTorch 深度學(xué)習(xí)框架下搭建神經(jīng)網(wǎng)絡(luò)。本文數(shù)據(jù)集構(gòu)建于在實(shí)際場(chǎng)景下339 個(gè)不同儀表上采集到的66 000 張表盤(pán)圖像。在預(yù)處理后,通過(guò)篩選得到20 類(lèi)20 000 張單通道字符圖像作為訓(xùn)練集,1 436 張不同表盤(pán)共8 263 張字符圖像作為測(cè)試集。訓(xùn)練過(guò)程中學(xué)習(xí)率為0.001,使用Adam 優(yōu)化器,迭代50 次。CNN 模型訓(xùn)練的收斂曲線(xiàn)如圖9 所示,包括損失曲線(xiàn)和準(zhǔn)確率曲線(xiàn)。
圖9 CNN 模型訓(xùn)練的收斂曲線(xiàn)Fig.9 Convergence curves for CNN model training
針對(duì)字輪式儀表的讀數(shù)識(shí)別任務(wù),本文采用字符識(shí)別準(zhǔn)確率(Character Accuracy Rate,CAR)及讀數(shù)識(shí)別準(zhǔn)確率(Reading Accuracy Rate,RAR)兩個(gè)指標(biāo)來(lái)衡量模型,其定義如式(3)和式(4)所示:
其中:Nrc表示識(shí)別正確的字符樣本數(shù)量,Nc是測(cè)試集中讀數(shù)字符樣本總數(shù)量,Nrm表示表盤(pán)中所有讀數(shù)識(shí)別完全正確的表盤(pán)樣本數(shù)量,Nm表示測(cè)試集中表盤(pán)圖像總數(shù)量。
本文方法的識(shí)別結(jié)果如表1所示,對(duì)比方法包括傳統(tǒng)的支持向量機(jī)(Support Vector Machines,SVM)分類(lèi)法、HOG(Histogram of Oriented Gradient)特征提取與SVM 相結(jié)合的方法(HOG+SVM)、LeNet-5[26]卷積神經(jīng)網(wǎng)絡(luò)方法、文獻(xiàn)[17]所采用的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)方法以及具有更深層次的VGG16 卷積神經(jīng)網(wǎng)絡(luò)方法。其中,SVM方法直接使用標(biāo)準(zhǔn)化后的像素作為特征向量,選用高斯核函數(shù),松弛變量為100;HOG+SVM 方法是提取圖像的HOG 特征向量后再使用SVM分類(lèi);LeNet-5主要包含2個(gè)5×5的卷積層、2個(gè)池化層和3 個(gè)全連接層,使用ReLU 激活函數(shù)替代Sigmoid 激活函數(shù);文獻(xiàn)[17]所采用的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)將原網(wǎng)絡(luò)的10 分類(lèi)修改為20 分類(lèi);由于VGG16 有5 個(gè)池化層不適合28×28 尺寸的輸入,因此在對(duì)比實(shí)驗(yàn)時(shí)使用32×32 尺寸的輸入。由于除了本文方法外其余方法無(wú)法獲得雙半字符中的占比關(guān)系,因此其余方法在判別雙半字符讀數(shù)時(shí)直接將其判別為“狀態(tài)較低”的字符。對(duì)于基于卷積神經(jīng)網(wǎng)絡(luò)的方法,表1 中還列出了模型參數(shù)量和推理時(shí)間進(jìn)行比較。從結(jié)果來(lái)看,在雙半字符的置信度閾值pthresh取0.5 時(shí),本文方法整體效果最佳,字符識(shí)別準(zhǔn)確率(CAR)達(dá)到了96.36%,非常接近VGG16 方法的96.62%,而模型參數(shù)量卻比VGG16 要少數(shù)百倍,所用推理時(shí)間約為VGG16 的1/3,同時(shí)讀數(shù)識(shí)別率(RAR)是所有對(duì)比方法中最高的,達(dá)到了94.15%。
表1 不同方法的識(shí)別結(jié)果Tab.1 Recognition results of different methods
為了進(jìn)一步說(shuō)明和解釋本文提出的基于多標(biāo)簽分類(lèi)的CNN 字符識(shí)別模型所發(fā)揮的作用,借助Grad-CAM[27]工具繪制卷積神經(jīng)網(wǎng)絡(luò)所關(guān)注圖像區(qū)域的熱力圖,如圖10 所示,顏色越深則強(qiáng)度越高。圖10(a)和圖10(b)分別展示了單字符圖像和與之接近的雙半字符圖像的熱力圖分布,其中第1 列是列舉的單字符或雙半字符圖像,第2 列對(duì)應(yīng)于本文CNN 模型輸出的后10 維中最大置信度所在類(lèi)別的熱力圖,第3列對(duì)應(yīng)于本文CNN模型輸出的前10 維中最大置信度所在類(lèi)別的熱力圖。可見(jiàn),圖10(a)中第2 列的強(qiáng)度都較低,而圖10(b)中第2 列都存在強(qiáng)度較高的區(qū)域,從而很好地區(qū)分了單字符圖像和雙半字符圖像;圖10(a)中第3列的強(qiáng)度較高之處位于單字符圖像中心附近,符合實(shí)際情況,而圖10(b)中第3 列的強(qiáng)度較高之處均位于占比較大的半字符中心附近,從而很好地說(shuō)明了本文CNN 模型在識(shí)別雙半字符時(shí)能準(zhǔn)確關(guān)注到其中占比較大的字符區(qū)域。
圖10 Grad-CAM 熱力圖Fig.10 Grad-CAM heatmap
圖像采集終端采用直流電源供電,供電電壓為3.6 V。圖像采集終端完成一次工作周期同時(shí)記錄工作電流,使用電流表分辨率為10 μA。當(dāng)終端進(jìn)入休眠模式后停止記錄,功耗測(cè)試結(jié)果如圖11 和表2 所示。根據(jù)測(cè)試結(jié)果,圖像采集終端的休眠電流小于電流表分辨率,最大工作電流為100 mA,若每日采集1 次,兩節(jié)鋰亞電池可使用5 年以上。
表2 功耗測(cè)試結(jié)果Tab.2 Test result of power consumption
圖11 單次工作周期電流波形Fig.11 Current waveform of single duty cycle
本文設(shè)計(jì)了一個(gè)完整的智能圖像抄表系統(tǒng)。測(cè)試時(shí),首先通過(guò)云平臺(tái)下發(fā)指令,設(shè)置圖像采集終端的參數(shù),圖像采集終端將此參數(shù)保存在低功耗內(nèi)存中,在每次喚醒時(shí)讀取。設(shè)置圖像采集終端休眠時(shí)間為24 h,即每天采集一次圖像并上傳至云平臺(tái),云平臺(tái)再將其存入數(shù)據(jù)庫(kù)內(nèi)并調(diào)用讀數(shù)識(shí)別算法得到表盤(pán)讀數(shù),最后抄表管理平臺(tái)通過(guò)MQTT 協(xié)議將表盤(pán)圖像及識(shí)別結(jié)果提取出來(lái),如圖12 所示,可在儀表管理平臺(tái)查看表盤(pán)讀數(shù)識(shí)別結(jié)果并能監(jiān)視某一儀表近些天以來(lái)的日用量,方便供應(yīng)公司和物業(yè)公司實(shí)現(xiàn)信息化管理。
圖12 抄表管理平臺(tái)Fig.12 Meter reading management platform
針對(duì)人工抄表效率低和現(xiàn)有圖像識(shí)別方法對(duì)雙半字符識(shí)別不準(zhǔn)的問(wèn)題,本文提出了一種基于NB-IoT 和輕量級(jí)CNN 的智能圖像抄表系統(tǒng),適用于字輪式儀表。本文的讀數(shù)識(shí)別算法使用局部特征提取與匹配方法分割出讀數(shù)字符子圖像,使用基于多標(biāo)簽分類(lèi)的輕量級(jí)CNN 模型識(shí)別出讀數(shù)字符。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)的圖像采集終端休眠電流小于10 μA,可保證兩節(jié)鋰亞電池工作5 年以上;所提出的字輪式儀表讀數(shù)識(shí)別算法能準(zhǔn)確識(shí)別單字符和雙半字符,在測(cè)試集上達(dá)到了96.36%的字符識(shí)別準(zhǔn)確率和94.15%的讀數(shù)識(shí)別準(zhǔn)確率,整體性能優(yōu)于所對(duì)比的其他識(shí)別算法。為減小圖像處理算法復(fù)雜度,目前方法需人工制作儀表表盤(pán)的模板圖像,通過(guò)圖像匹配定位讀數(shù)字符位置,不適用于開(kāi)放環(huán)境下移動(dòng)式圖像采集終端,因此下一步工作是實(shí)現(xiàn)對(duì)讀數(shù)字符的自動(dòng)檢測(cè)定位,并進(jìn)一步通過(guò)深度學(xué)習(xí)[28]提升算法的識(shí)別精度,使其適用于更多應(yīng)用場(chǎng)景,如使用移動(dòng)機(jī)器人或無(wú)人機(jī)進(jìn)行巡檢抄表的場(chǎng)合。