魯江坤,萬聿楓,曹龍漢,3
(1.重慶人文科技學(xué)院 計(jì)算機(jī)工程學(xué)院 重慶 401524;2.重慶郵電大學(xué) 自動(dòng)化學(xué)院 重慶 400065;3.重慶通信學(xué)院 控制工程重點(diǎn)實(shí)驗(yàn)室 重慶 40035)
燃?xì)庀到y(tǒng)的燃?xì)鉁?zhǔn)確計(jì)量是十分重要的,燃?xì)庥脩糁饕植荚诔鞘懈鱾€(gè)小區(qū),數(shù)量眾多,為了解決燃?xì)獬砑笆召M(fèi)的復(fù)雜問題,燃?xì)夤颈厝灰蟾酶斓貙?shí)現(xiàn)燃?xì)庾詣?dòng)抄收。信息技術(shù)的應(yīng)用領(lǐng)域越來越廣泛,抄表難、收費(fèi)難是人工抄表方式的致命缺陷,智能燃?xì)獗響?yīng)運(yùn)而生[1]。IC卡燃?xì)獗頍o法實(shí)時(shí)統(tǒng)計(jì)燃?xì)庥脩舻氖褂们闆r以及燃?xì)獗淼恼w運(yùn)行情況,燃?xì)夤鞠胍M(jìn)行較好的財(cái)務(wù)分析和供銷差統(tǒng)計(jì)是非常困難的;通過有線方式進(jìn)行遠(yuǎn)程抄表在一定程度上解決了抄表難的問題,但該方式布線量較大,易損壞,故障率較高,維護(hù)難度大。無線通信技術(shù)的不斷發(fā)展為無線抄表系統(tǒng)的應(yīng)用提供了有效手段。
隨著信息化技術(shù)的發(fā)展,圖像識(shí)別在各行業(yè)的應(yīng)用場(chǎng)景越來越多,基于圖像識(shí)別的燃?xì)獗磉h(yuǎn)程直讀系統(tǒng)的研究受到的關(guān)注度越來越高。本文研究的基于圖像識(shí)別的智能燃?xì)獗恚瑢?shí)現(xiàn)了燃?xì)獗頇C(jī)械部分和電子部分完全分離,構(gòu)造方式簡(jiǎn)便,可靠性更高,方便大規(guī)模生產(chǎn)及應(yīng)用。對(duì)于智能膜式燃?xì)獗?,機(jī)械字輪讀數(shù)與電子計(jì)數(shù)存在累計(jì)誤差難以避免。國(guó)家標(biāo)準(zhǔn)規(guī)定,一旦出現(xiàn)誤差,必須以機(jī)械表讀數(shù)為準(zhǔn),攝像直讀方式可以做到零誤差。本文深入研究基于圖像識(shí)別的遠(yuǎn)程直讀系統(tǒng)[2],基本思路是不需要更換原有燃?xì)獗?,只需將一個(gè)具有圖像識(shí)別功能的抄表終端加裝在燃?xì)獗砩霞纯伞@眉友b的CMOS攝像頭獲取燃?xì)獗碜x數(shù)圖像,抄表終端進(jìn)行相應(yīng)的圖像預(yù)處理,然后實(shí)現(xiàn)燃?xì)獗碜x數(shù)的識(shí)別,最終識(shí)別數(shù)據(jù)通過GPRS的方式傳送到遠(yuǎn)程管理中心[3],管理人員在后臺(tái)能夠非常方便進(jìn)行燃?xì)鈹?shù)據(jù)的統(tǒng)計(jì)和分析。
基于圖像識(shí)別的燃?xì)獗磉h(yuǎn)程直讀系統(tǒng)包括圖像識(shí)別抄表終端與后臺(tái)管理中心。圖像識(shí)別抄表終端的主要功能為原始圖像的獲取、圖像預(yù)處理、特征提取和數(shù)據(jù)約簡(jiǎn)、字符識(shí)別等。獲取的圖像存儲(chǔ)在加裝的抄表終端中,經(jīng)過相應(yīng)的預(yù)處理后,獲得高質(zhì)量的單個(gè)字符圖像;特征提取是獲取每類字符的特征向量;數(shù)據(jù)約簡(jiǎn)的目的是為了將這些復(fù)雜的特征向量簡(jiǎn)單化,只保留那些識(shí)別度較高的關(guān)鍵屬性;字符識(shí)別是為了獲取燃?xì)獗碜罱K讀數(shù)。最終燃?xì)獗碜x數(shù)通過無線通訊方式傳送到管理中心,達(dá)到燃?xì)獗磉h(yuǎn)程直讀的目的。系統(tǒng)總體結(jié)構(gòu)如圖1所示[4]。
圖1 系統(tǒng)總體結(jié)構(gòu)Fig.1 Overall structure of the system
設(shè)計(jì)圖像采集模塊的目的是為了獲取燃?xì)獗淼脑甲x數(shù)圖像。根據(jù)國(guó)家相關(guān)規(guī)定,基于防爆要求,干電池是智能燃?xì)獗砉╇姷奈ㄒ贿x擇,每個(gè)月只需要獲取1-2次燃?xì)獗碓紙D像,很大一部分時(shí)間都處于功耗非常低的休眠狀態(tài),能夠確保干電池的使用壽命較長(zhǎng),便于家庭使用。在電路設(shè)計(jì)過程中,降低能耗是重點(diǎn)考慮因素,盡量減少硬件使用數(shù)量,并盡可能選擇低功耗元器件。本文選擇的CPU為Cortex-M3 ARM微處理器STM32F103[5],它的高性價(jià)比、低功耗有優(yōu)勢(shì),不需要擴(kuò)展外部存儲(chǔ)器。燃?xì)獗淼淖x數(shù)區(qū)域尺寸并不大,因此,選擇30萬像素的CMOS微型攝像頭作為圖像傳感器即可,工作模式為320×80,這樣能夠最大限度節(jié)約存儲(chǔ)空間和傳輸時(shí)間。燃?xì)獗戆惭b位置光線普遍較差,采用發(fā)光二極管補(bǔ)光,在外界光線不好時(shí)也能較好完成燃?xì)庾x數(shù)采集工作。
CPU主要實(shí)現(xiàn)以下功能:利用CMOS攝像頭完成燃?xì)獗碜x數(shù)原始圖像的采集、對(duì)讀數(shù)圖像的預(yù)處理,然后采用GPRS的方式將其傳送到后臺(tái)管理中心。為了后續(xù)步驟能夠得到更好的識(shí)別效果,采用圖像濾波的方式完成降噪工作。為了降低遠(yuǎn)程傳輸?shù)臄?shù)據(jù)量,可以對(duì)圖像進(jìn)行二值化和數(shù)據(jù)壓縮。
經(jīng)攝像頭采集到的燃?xì)獗頇C(jī)械字輪讀數(shù)圖像可能會(huì)因?yàn)閿z像頭安裝傾斜造成亮度不均勻,后續(xù)進(jìn)行字符識(shí)別難度會(huì)加大。因此,采取一定的預(yù)處理技術(shù)對(duì)圖像進(jìn)行修正和加工,能夠最大限度地將一些不利于圖像識(shí)別的因素消除掉,以獲得對(duì)后續(xù)字符識(shí)別最有利的圖像。
圖像預(yù)處理主要包括:圖像增強(qiáng)、圖像去噪、圖像二值化、燃?xì)獗碜x數(shù)區(qū)域定位和傾斜校正、邊緣檢測(cè)和字符分割等。
本文采用RBF神經(jīng)網(wǎng)絡(luò)來完成燃?xì)獗碜址淖R(shí)別。RBF神經(jīng)網(wǎng)絡(luò)模型如圖2所示。
圖2 RBF神經(jīng)網(wǎng)絡(luò)模型Fig.2 RBF neural network model
該模型具有3層結(jié)構(gòu)[6-7],工作原理:首先,隱層節(jié)點(diǎn)從輸入神經(jīng)元獲取相應(yīng)的特征向量,然后使用相應(yīng)的徑向基函數(shù)對(duì)獲取的特征向量進(jìn)行非線性運(yùn)算。設(shè)rj(x)為徑向基函數(shù),通常選擇高斯函數(shù)為映射函數(shù),表示為
(1)
(1)式中:j=1,2,…,m,x是輸入向量;cj是第j個(gè)隱層神經(jīng)元中心值;σj為隱層中心寬度,可通過(2)式求得
(2)
(2)式中:d為任意2個(gè)隱層神經(jīng)元中心值最大歐氏距離;m是隱層神經(jīng)元個(gè)數(shù)。
最后,最終輸出層神經(jīng)元通過隱層輸出的加權(quán)映射獲得,具體網(wǎng)絡(luò)輸出為
(3)
(3)式中,k=1,2,…,p,yk為輸出層單個(gè)神經(jīng)元響應(yīng);p為神經(jīng)元總數(shù);wjk為輸出權(quán)值。
為了提高RBF神經(jīng)網(wǎng)絡(luò)的字符識(shí)別能力,RBF神經(jīng)網(wǎng)絡(luò)的參數(shù)需要優(yōu)化,包括隱層中心位置和中心寬度、輸出層的連接權(quán)值。本文使用最近鄰聚類與K-均值聚類相結(jié)合的算法確定隱層中心位置,中心寬度的優(yōu)化使用遺傳算法,使用違逆法確定輸出層的連接權(quán)值。
具體算法步驟如下。
步驟1計(jì)算每類字符中任意一個(gè)特征向量與其他向量歐式距離之和,依次計(jì)算完成并將其存入矩陣DIT。
步驟2確定DIT中最小值dit及其對(duì)應(yīng)的向量cj,最終結(jié)果存放到初始聚類C中。
步驟3逐個(gè)計(jì)算特征向量與cj的歐式距離,假如該距離小于ditMean,那個(gè)該向量就屬于聚類中心,最終該輸入向量將會(huì)被刪除。ditMean計(jì)算公式為
(4)
(4)式中,n為每類字符樣本個(gè)數(shù)。
步驟4設(shè)th=5,將其余向量進(jìn)行迭代循環(huán),直到向量個(gè)數(shù)小于th循環(huán)結(jié)束。
算法步驟如下。
步驟1經(jīng)過3.2節(jié)的計(jì)算,可以得到各個(gè)類別字符的聚類中心,這些聚類中心可以作為本次K-均值聚類的初始中心。
步驟2分別計(jì)算各個(gè)特征向量與各個(gè)聚類中心的距離,進(jìn)行類別劃分需要計(jì)算相應(yīng)的誤差平方和
(5)
步驟3計(jì)算各個(gè)數(shù)據(jù)集中的向量均值,以該均值為新聚類中心并由(4)式計(jì)算誤差平方和e_new。
步驟4將e_new與e做差,假如兩者之差的絕對(duì)值小于事先設(shè)定的閾值,轉(zhuǎn)至步驟5,否則轉(zhuǎn)至步驟2。
步驟5將K個(gè)聚類中心分別輸出,將每個(gè)聚類中心包含的數(shù)據(jù)依次累加,若累加數(shù)據(jù)大于所有訓(xùn)練數(shù)據(jù)的90%,則將這些數(shù)據(jù)對(duì)應(yīng)的中心作為各個(gè)類別字符的最終聚類中心。
通常情況下,確定隱層中心寬度時(shí)可采用(2)式來完成,但該方法對(duì)中心值的依賴性較高,當(dāng)隱層中心值的選擇不合理時(shí),利用RBF神經(jīng)網(wǎng)絡(luò)對(duì)燃?xì)獗碜址诸惣白R(shí)別的效果會(huì)受影響。本文采用遺傳算法對(duì)中心寬度進(jìn)行優(yōu)化,目的是消除中心寬度對(duì)中心值的依賴。具體方法如下:在構(gòu)造適應(yīng)度函數(shù)的過程中,選擇神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出和標(biāo)準(zhǔn)輸出的均方誤差來表征。假設(shè)隱層中心值確定,中心寬度需要進(jìn)一步優(yōu)化,輸出權(quán)值計(jì)算公式為
D=HW
(6)
W=H+D
(7)
H+=(HTH)-1HT
(8)
網(wǎng)絡(luò)的實(shí)際輸出為
OUT=HW
(9)
(6)—(9)式中,H為隱層輸出矩陣;W為連接權(quán)值矩陣;D為標(biāo)準(zhǔn)輸出矩陣。
利用3.2節(jié)給出的最近鄰聚類和K-均值聚類算法相結(jié)合的方法來確定隱層中心值,在中心寬度位置、標(biāo)準(zhǔn)輸出已經(jīng)確定的情況下,利用(7)式和(8)式表示出輸出權(quán)值,再根據(jù)(9)式求得網(wǎng)絡(luò)實(shí)際輸出。基于上述原理,將均方誤差作為因變量,將未知的中心寬度作為自變量,編寫適應(yīng)度函數(shù);在對(duì)中心寬度進(jìn)行優(yōu)化的過程中進(jìn)行優(yōu)化的過程中可以使用Matlab 自帶的遺傳算法的工具想來完成,可以使用gatool來打開該工具箱。需要將適應(yīng)度函數(shù)寫成M文件,然后在界面中設(shè)定好交叉概率和變異概率就可以運(yùn)行遺傳算法,經(jīng)過仿真實(shí)驗(yàn)得到該算法迭代到23代的時(shí)候,優(yōu)化函數(shù)達(dá)到極小值,中心寬度的優(yōu)化也就完成了,具體仿真結(jié)果見3.5.2節(jié)。
RBF神經(jīng)網(wǎng)絡(luò)字符識(shí)別流程如圖3所示。
圖3 RBF神經(jīng)網(wǎng)絡(luò)字符識(shí)別流程Fig.3 RBF neural network character recognition process
3.5.1 預(yù)處理仿真
對(duì)于任意一幅燃?xì)獗碜x數(shù)圖像,只需要提取7個(gè)數(shù)字字符。本文研究過程中,使用了光照不一樣、角度不同、清晰度不同的場(chǎng)景下的燃?xì)獗碜x數(shù)圖像共計(jì)125幅,分成隨機(jī)噪聲0.1,0.2,0.3及無噪聲組,產(chǎn)生的初始樣本圖像500幅。為了提升圖像的質(zhì)量,合理采用直方圖均衡化的方式來處理,圖像的二值化處理能夠很好區(qū)分圖像的前景和背景,目標(biāo)區(qū)域的確定采用水平和垂直投影的方式來完成,Canny算子的使用能夠進(jìn)一步細(xì)化字符圖像,傳輸像素個(gè)數(shù)得以減少,最終得到單個(gè)的字符圖像。任意選取1 600個(gè)字符用于仿真實(shí)驗(yàn),其中訓(xùn)練樣本和測(cè)試樣本分別為1 200和400。圖像預(yù)處理過程如圖4所示。
圖4 圖像預(yù)處理過程Fig.4 Image preprocessing process
3.5.2 綜合仿真及結(jié)果分析
本文所有實(shí)驗(yàn)仿真均采用Matlab 2014a來完成,實(shí)驗(yàn)數(shù)據(jù)為0~9共10個(gè)數(shù)字,選擇每類樣本100個(gè)??紤]到數(shù)字1與其它字符之間的寬度差別明顯,在區(qū)別數(shù)字1的過程中只需要利用寬度即可,本次實(shí)驗(yàn)中不考慮數(shù)字1。
仿真實(shí)驗(yàn)中,從每類100個(gè)樣本中隨機(jī)選擇20個(gè)共計(jì)180個(gè)字符作為訓(xùn)練數(shù)據(jù),其余數(shù)據(jù)作為測(cè)試數(shù)據(jù)。通過前面的算法得到RBF網(wǎng)絡(luò)輸入神經(jīng)元數(shù)為48個(gè),隱層神經(jīng)元數(shù)為23個(gè),輸出層神經(jīng)元個(gè)數(shù)為9個(gè)。
為了對(duì)比BP神經(jīng)網(wǎng)絡(luò)、RBF神經(jīng)網(wǎng)絡(luò)使用遺傳算法優(yōu)化前后的算法的識(shí)別率以及訓(xùn)練速度,訓(xùn)練誤差性能指標(biāo)選擇0.001,最大遺傳代數(shù)取100。各個(gè)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)、最終迭代次、訓(xùn)練時(shí)間以及識(shí)別率數(shù)如表1所示。
表1 3種神經(jīng)網(wǎng)絡(luò)識(shí)別算法對(duì)比結(jié)果
抄表終端的程序設(shè)計(jì)流程如圖5所示。燃?xì)獗碓级葦?shù)圖像的獲取需要使用攝像頭來完成,經(jīng)過圖像預(yù)處理后得到后續(xù)實(shí)驗(yàn)應(yīng)用的單個(gè)字符。利用本文選擇的特征提取方法提取每類字符的實(shí)際特征[8],隨后進(jìn)行相應(yīng)的合理性判定。對(duì)于那些存在問題的特征向量,需要重復(fù)上述過程再次獲取相應(yīng)特征;對(duì)合理的特征向量,使用特征約簡(jiǎn)刪除冗余數(shù)據(jù),保留數(shù)據(jù)特征的關(guān)鍵屬性。如果識(shí)別之后的數(shù)據(jù)有錯(cuò)誤,需重新進(jìn)行數(shù)據(jù)約簡(jiǎn),否則程序結(jié)束。
圖5 抄表終端程序及二次驗(yàn)證流程圖Fig.5 Meter reading terminal program and the second verification flow chart
為了進(jìn)一步提高系統(tǒng)識(shí)別的準(zhǔn)確度,我們?cè)O(shè)計(jì)了智能單元處理程序“二次驗(yàn)證”體系。程序第一遍執(zhí)行過程中,需要對(duì)識(shí)別的燃?xì)獗碜x數(shù)進(jìn)行預(yù)判,判讀本次的識(shí)別結(jié)果并與上一次抄表結(jié)果比對(duì),假如該數(shù)據(jù)比上次獲得的數(shù)據(jù)大,將G1記作1,表明程序被執(zhí)行1次,得到的識(shí)別結(jié)果將被記錄并存儲(chǔ),該二次判斷程序會(huì)繼續(xù)執(zhí)行,否則,將G1記作0,抄表終端將再一次被執(zhí)行,上一次的抄表結(jié)果便是錯(cuò)誤的。
在G1被記為1的時(shí)候,要考慮本次抄表結(jié)果與上次抄表結(jié)果是否有差異,如果2次識(shí)別結(jié)果完全一致,則認(rèn)為該結(jié)果可信,程序執(zhí)行結(jié)束,否則需要進(jìn)行二次判斷。
圖像抄表終端對(duì)燃?xì)獗韴D像處理和識(shí)別之后,得到相應(yīng)的燃?xì)獗碜x數(shù),然后通過GPRS遠(yuǎn)程傳送到燃?xì)獗砉芾碇行?,管理中心的工作人員會(huì)根據(jù)傳輸上來的燃?xì)獗碜x數(shù)和燃?xì)獗韴D像進(jìn)行比對(duì),并根據(jù)上期讀數(shù)計(jì)算出該用戶本月的燃?xì)馐褂昧俊?/p>
仿真測(cè)試過程中,選擇的圖片共計(jì)500幅,對(duì)識(shí)別及應(yīng)答情況進(jìn)行分析,具體情況如表2所示。其中,應(yīng)答失敗的數(shù)據(jù)共有4組,應(yīng)答中的 7 組數(shù)據(jù)超過規(guī)定的時(shí)間內(nèi)成功返回到管理中心。應(yīng)答成功率達(dá)到97.8%。分析500組數(shù)據(jù),出現(xiàn)錯(cuò)誤的數(shù)據(jù)共有6組,其中4組數(shù)據(jù)是應(yīng)答失敗,另外2組是因?yàn)閻毫迎h(huán)境導(dǎo)致圖像模糊造成識(shí)別錯(cuò)誤,此時(shí)燃?xì)夤拘柰ㄟ^重新抄表或者改變有燃?xì)獗戆惭b環(huán)境的方式來處理。測(cè)試結(jié)果表明本系統(tǒng)適合燃?xì)獗淼倪h(yuǎn)程抄表。
表2 準(zhǔn)確率與應(yīng)答率測(cè)試結(jié)果
基于圖像識(shí)別的智能物聯(lián)網(wǎng)燃?xì)獗恚粌H要考慮其功能是否完備,還要考慮功耗問題。抄表終端完成圖像識(shí)別,將得到的數(shù)據(jù)傳送到管理中心,考慮到燃?xì)夤镜膫浒腹芾淼刃枨?,還需要將識(shí)別的每張圖片都傳送到管理中心。燃?xì)獗沓斫K端的功耗主要包括STM32F103微處理器、攝像頭模塊和GPRS通信模塊的功耗,其中,STM32F103工作模式電流為36 mA,休眠電流為20 μA;攝像頭模塊工作模式電流為30 mA,休眠電流為20 μA;GPRS模塊的發(fā)送工作模式電流為90 mA,休眠電流為20 μA。每幅圖像(320×80)的傳輸數(shù)據(jù)量為3.125 kbit。每天完成一次抄表花費(fèi)的平均時(shí)間為20 s??梢杂?jì)算出每次抄表的功耗為
Wa≈20×(36+30+90)/3 600≈0.87 mAh
選擇4節(jié)1 000 mAh的5號(hào)干電池串聯(lián)進(jìn)行供電,具體參數(shù)為L(zhǎng)R6 AA 1.5 V,在放電截止電壓為4.4 V時(shí),可計(jì)算出燃?xì)獗沓斫K端的工作時(shí)間可達(dá)3年以上,完全滿足工程應(yīng)用需求。
本文設(shè)計(jì)了一種基于圖像識(shí)別的遠(yuǎn)程直讀智能物聯(lián)網(wǎng)燃?xì)獗恚岢隽嘶趫D像識(shí)別的物聯(lián)網(wǎng)燃?xì)獗碓O(shè)計(jì)方案與實(shí)現(xiàn)方法。通過字符識(shí)別,在滿足低功耗要求的同時(shí),實(shí)現(xiàn)了物聯(lián)網(wǎng)燃?xì)獗淼耐ㄐ拧@眠z傳算法對(duì)RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,字符正確識(shí)別率更高。測(cè)試結(jié)果表明,系統(tǒng)各項(xiàng)指標(biāo)達(dá)到預(yù)定要求,具有抄表成功率高、功耗低、成本低及可靠性高等優(yōu)點(diǎn),完全適應(yīng)燃?xì)獗硎袌?chǎng)的需求。