曾偉銘
(國網(wǎng)黑龍江省電力有限公司大慶供電公司,黑龍江 大慶 163000)
電能表作為電費收取的計量依據(jù),涉及到抄表,從現(xiàn)行技術(shù)來看主要有IC卡式和遠傳抄表式。IC卡電表收費系統(tǒng)的成本較低、使用壽命長。但由于用戶終端與系統(tǒng)主機并沒有直接聯(lián)系,只有在用戶持卡交費時才能了解到用戶情況,信息反饋滯后,IC卡的使用規(guī)定存在不公平之處,因此IC卡收費系統(tǒng)只能作為一種過渡性產(chǎn)品[1]。智能電表有總線制集中抄表和電力載波集中抄表兩種常見的抄表方案:前者的優(yōu)點是數(shù)據(jù)傳輸可靠性高,造價較低,缺點是需布線,安裝較復雜,拉線易被人為破壞;后者要求電表含有通訊接口以及通訊模塊,若出現(xiàn)通訊接口不開放或通訊模塊故障等問題,大范圍更換電表雖然可以解決,但需要花費大量人力財力[2]。
隨著圖像處理技術(shù)的日漸成熟和神經(jīng)網(wǎng)絡(luò)的廣泛應(yīng)用,利用圖像處理算法與神經(jīng)網(wǎng)絡(luò)算法結(jié)合的遠程抄表技術(shù)也開始發(fā)展起來,這種遠程抄表方法相較于傳統(tǒng)的遠程抄表技術(shù),具備不受電表本身硬件限制的優(yōu)點[3],無需對電表改裝或更換就能大量應(yīng)用,減少了資金的消耗。該文所研究的電表識別方法的核心是對液晶屏的定位,電表的數(shù)字字符是以液晶屏為載體顯示,需要考慮液晶屏材質(zhì)的特殊性,和光照條件的影響[4]。該文主要針對電表液晶屏數(shù)字顯示區(qū)域定位,提出改進的Canny算法對液晶屏邊緣定位截取,對分割后的電表字符進行識別,分析和總結(jié)研究結(jié)果。
在對電表液晶屏數(shù)字部分定位之前,需要對采集的圖像歸一化、灰度化、濾波等預(yù)處理,使圖片更清晰[5]。該文使用加權(quán)平均值法灰度化,高斯濾波器對圖像去噪處理,結(jié)果如圖1所示。
圖1 圖像預(yù)處理結(jié)果
首先對液晶屏初次定位,初次定位是基于形態(tài)學對二值化后的圖像進行一系列處理,包括腐蝕、膨脹、開操作、閉操作等[6],其次通過改進的Canny邊緣檢測算法對液晶屏精確定位操作。
1.2.1 圖像二值化和形態(tài)學處理
圖像的腐蝕和膨脹是兩種基本的形態(tài)學運算,主要用來尋找圖像中的極大區(qū)域和極小區(qū)域。如圖2所示為二值圖像經(jīng)過腐蝕和膨脹處理后的結(jié)果圖,經(jīng)過多次開操作和閉操作后,圖像的區(qū)域特征差異十分明顯,經(jīng)過二值化后圖像的液晶屏位置(白色部分)與背景(黑色部分)分離清晰,但液晶屏內(nèi)有部分黑色,而腐蝕和膨脹處理,讓液晶屏與表身背景部分分離更加明顯,排除了一定干擾,在后面定位液晶屏時可以提高定位準確性。
圖2 圖像形態(tài)學處理
1.2.2 改進的Canny邊緣檢測算法
Canny邊緣檢測算法的實質(zhì)是先用高斯函數(shù)作為平滑運算,然后用一階微分極大值定位邊緣點,二階導數(shù)過零點對應(yīng)一階導數(shù)的極大值和極小值[7]。Canny算法實現(xiàn)步驟如圖3所示。
圖3 Canny算法實現(xiàn)步驟
首先,設(shè)圖像為f(x,y),用高斯函數(shù)G(x,y,σ)對圖像濾波,得到一個已平滑數(shù)據(jù)陣列S(x,y),即式(1)
S(x,y)=f(x,y)*G(x,y,σ)
(1)
式中:σ表示高斯函數(shù)的散布參數(shù),它反映高斯函數(shù)的平滑程度。
傳統(tǒng)的Canny算法處理帶有污染干擾的圖像時,會造成邊緣過多或邊緣不連通的問題,對后期字符矯正和分割產(chǎn)生影響[8],該文將鄰域范圍由2×2改為3×3,則S(x+1,y),S(x-1,y),S(x+1,y+1),S(x,y+1),S(x-1,y+1),S(x+1,y-1),S(x,y-1),S(x-1,y-1)等分別為以像素點S(x,y)為中心的鄰域像素點[2],如圖4所示,分別計算0°、45°、90°、135°等4個方向上的有限差分近似一階偏導,以此來計算像素梯度和幅值。
圖4 Canny算法鄰域象限圖
0°(即x方向)的一階偏導陣列為
Px(x,y)=[S(x+1,y)-S(x,y)+
S(x-1,y)-S(x,y)]/2
(2)
45°(即u方向)的一階偏導陣列為
Pu(x,y)=[S(x+1,y+1)-S(x,y)+
S(x-1,y-1)-S(x,y)]/2
(3)
90°(即y方向)的一階偏導陣列為
Py(x,y)=[S(x,y+1)-S(x,y)+
S(x,y-1)-S(x,y)]/2
(4)
135°(即v方向)的一階偏導陣列為
Pv(x,y)=[S(x-1,y+1)-S(x,y)+
S(x+1,y-1)-S(x,y)]/2
(5)
則幅度和方位角的計算式分別為
(6)
θ′(x,y)=arctan(Py(x,y)/Px(x,y))
(7)
將濾波器從2×2擴展到3×3,可以對梯度幅值陣列中的任一像素沿梯度方向進行梯度幅值的差值計算[4],這樣可以抑制非極大值,保留局部梯度最大的點,以得到細化的邊緣,從而有效降低噪聲的干擾,有利于提高邊緣定位的準確率。如圖5所示,為傳統(tǒng)Canny邊緣檢測算法和改進后的Canny邊緣檢測算法對圖像處理后的結(jié)果圖,其中圖5(b)中提取到的邊緣特征明顯比圖5(a)多。
圖5 邊緣特征提取對比圖
采用300張圖片做數(shù)據(jù)集,數(shù)據(jù)集來源于手機實拍用戶家的單相智能電表,分別應(yīng)用傳統(tǒng)Canny算法與改進的Canny算法實驗,部分液晶屏定位截取圖如圖6所示。
圖6 定位結(jié)果圖
從圖6中可以看出,原Canny算法定位結(jié)果中,失敗的比例較大,該文使用300張樣本定位試驗,定位準確與失敗的結(jié)果對比見表1,原Canny算法定位液晶屏的準確率為91.67%,有部分液晶屏受光線等噪聲干擾導致定位結(jié)果失敗,而改進的Canny算法在液晶屏定位中抗干擾能力較強,準確率達98.67%,極個別定位失敗的原因是液晶屏表面臟,或者獲取圖像時液晶屏暗、反光等。
表1 液晶屏定位結(jié)果對比表
定位截取后的液晶屏內(nèi)只保留數(shù)字,且字符間在垂直方向無連通,因此采用垂直投影法對字符分割,分割結(jié)果如圖7所示。
圖7 垂直投影分割結(jié)果
應(yīng)用較常見的卷積神經(jīng)網(wǎng)絡(luò)lenet-5訓練和識別,所用模型的結(jié)構(gòu)包含輸入層、2個卷積層、2個池化層、1個全連接層、輸出層、輸入圖像的尺寸歸一化為32×32,數(shù)據(jù)集分別采用不同定位提取預(yù)處理分割后的字符,共近2 000張字符圖片,使用搭建的卷積神經(jīng)網(wǎng)絡(luò)訓練,迭代次數(shù)為1 000,每迭代一次輸出一次驗證的準確率,訓練過程中驗證的準確率變換如圖8所示,識別結(jié)果如表2所示。表明該文提出的改進方法在提高液晶屏讀數(shù)識別準確率方面是有效的。
表2 識別準確率結(jié)果對比
圖8 卷積神經(jīng)網(wǎng)絡(luò)訓練過程中的準確率
該文提出了一種基于數(shù)字圖像處理的智能電表讀數(shù)方法,通過提高液晶屏定位的準確率,達到提高智能電表讀數(shù)識別的準確率,從而使智能電表讀數(shù)更方便、準確。該文的核心部分為智能電表液晶屏的定位,提出了改進的Canny邊緣檢測算法,適用于各種液晶屏的定位識別,具有較高的實用價值。通過試驗表明,所提算法對于提高智能電表液晶屏讀數(shù)的準確率是有效的。