聞梓涵,李彥彰,胡 琪,陳 夢,王維佳
(1.三峽大學 電氣與新能源學院,湖北宜昌 443002;2.國家電網(wǎng)武漢市供電公司,武漢 430000;3.國家電網(wǎng)瑞昌市供電公司,江西瑞昌 332200;4.國家電網(wǎng)合肥市供電公司,合肥 230000;5.中國啟源工程設計研究院有限公司,西安 710000)
我國經(jīng)濟的不斷發(fā)展使人民生活水平上升,隨之對于水、氣、電等資源的需求量逐漸增大。目前,電能表的查抄方式主要有人工抄表、無線發(fā)射式儀表、IC卡預付費抄表等。傳統(tǒng)的人工抄表方式存在很多缺陷,比如成本高、精度低、實時性不足、可靠性差等。無線發(fā)射式儀表和IC卡預付費抄表雖然安裝簡易,智能化程度高,但是,設備成本造價比較高昂,儀表數(shù)據(jù)傳輸可能出現(xiàn)故障。如果用戶不愿更換新型儀表,那么就無法滿足現(xiàn)行系統(tǒng)的要求[1]。所以,近年來也出現(xiàn)了很多基于圖像識別的抄表系統(tǒng)。
本研究針對基于圖像識別的遠程抄表系統(tǒng)中的服務器圖像處理模塊進行了算法改進,采用NML算法和極大值抑制優(yōu)化,實現(xiàn)了對圖像信息更多的細節(jié)處理,從而對后續(xù)識別模塊提供了更好的預處理效果,可以提高整體裝置系統(tǒng)的運行識別效果。
基于圖像識別的抄表系統(tǒng)包括網(wǎng)絡攝像頭、處理器MCU、路由器、服務器。網(wǎng)絡攝像頭是裝設在現(xiàn)場電表箱柜中,在補光裝置的輔助作用下實時拍攝表具圖片,并將圖像數(shù)據(jù)傳至MCU;MCU利用其內(nèi)部Flash接收圖片數(shù)據(jù),再將緩沖區(qū)的壓縮數(shù)據(jù)發(fā)送至路由器;路由器與終端服務器通過網(wǎng)絡協(xié)議定時訪問,遠程傳輸數(shù)據(jù)信息;服務器再進行圖像解壓、預處理、識別及后續(xù)的數(shù)據(jù)顯示,系統(tǒng)結(jié)構(gòu)原理如圖1所示。
圖1 遠程抄表系統(tǒng)結(jié)構(gòu)原理圖
在圖像處理過程中應用最廣泛的是邊緣檢測Canny算法,相比于Sobel檢測、LOG算子等都有著較為優(yōu)良的性能,對此Pellegrino[2]做出了試驗驗證。
2.1.1 高斯濾波
Canny算法的第一步是對灰度圖進行濾波平滑處理,采用對信噪比和定位精度乘積最優(yōu)化逼近的高斯濾波器對影像去噪,其中二維高斯分布的函數(shù)表達式為:
式中,σ為標準差,用來控制圖像的平滑效果,其值越大平滑越明顯。σ值設定較大,適用于強噪聲干擾,但會導致定位精度降低,邊緣位置偏離;σ值設定較小,檢測精度較高但會造成過渡平滑。傳統(tǒng)Canny算法中σ值固定,無法兼顧去噪效果和保留圖像細節(jié)的要求。
2.1.2 計算梯度的幅值與方向
在高斯平滑后,需要對濾波后的圖像E(i,j)計算梯度信息,在2×2鄰域范圍內(nèi)計算一階偏導的有限差分是傳統(tǒng)Canny算法所使用的計算方法[3]。分別對x、y兩個方向進行梯度運算:
得到梯度幅值M(i,j)與梯度方向θ(i,j):
2.1.3 非極大值抑制
非極大值抑制過程的目的是將模糊的邊緣變得清晰,從而更加精確地定位。它的基本流程是先排除梯度強度為0的點,然后將剩下的每一個像素點的梯度值與相鄰像素點的梯度值比較,保留極大值,保證沿其鄰域內(nèi)的梯度幅值最大,認為其他幅值較小的像素點不作為邊緣點。
2.1.4 雙閾值選擇和邊緣連接
經(jīng)過非極大值抑制之后,圖像仍有很多的噪聲點。傳統(tǒng)Canny算法中應用了一種雙閾值技術(shù),即設定一個閾值上界TH和閾值下界TL,如果圖像中的像素點大于閾值上界則認為該點必然是邊界點,如果像素點小于閾值下界則認為該點必然不是邊界點。而介于閾值上下界的像素點被稱為邊界候選點,需要進一步處理,尋找該點附近鄰域內(nèi)有沒有大于閾值上界的點,如果有,則該點也是邊界點,如果沒有,則該點不是邊界點[4]。
2.1.5 傳統(tǒng)Canny算法中存在的缺陷
與其他經(jīng)典邊緣算法相比,Canny算法具有優(yōu)良的檢測效果,但其中也存在許多缺陷。高斯平滑中設定的標準差σ固定,其值較大時會增大計算量和邊緣信息丟失,反之會產(chǎn)生偽邊緣,對噪聲的抑制差。在梯度計算方法中,沒有考慮更多的方向,造成對噪聲敏感,可能檢測出很多偽邊緣點,致使隨后利用非極大值抑制獲取單像素邊緣也存在一定問題?;谝陨蠁栴},針對性地做出了相應的優(yōu)化改進。
隨著視覺技術(shù)的進步,諸多學者提出了對Can-ny算法的改進方案。黃慧等[5]提出用平滑聚類濾波代替高斯濾波。蘆碧波等[6]提出用雙邊濾波處理圖像。本研究使用NLM代替高斯濾波,同時加入3×3鄰域Sobel算子計算梯度和45°、135°方向進行非極大值抑制,通過試驗得到了較好的效果。
2.2.1 非局部均值濾波
針對均值濾波、中值濾波、高斯濾波在除噪過程中無可避免地使圖像邊緣細節(jié)和紋理信息被濾除,Buades等提出了NLM算法,它使圖像中的冗余信息得到了有效利用,在濾除噪聲的同時最大程度地保留了圖像的細節(jié)特征[7]。NLM利用自然圖像中的每個小塊都存在關聯(lián)性,與均值濾波是對鄰域內(nèi)的所有像素求和再平均的方法不同,它先在整幅圖像中尋找相似的圖像塊,再根據(jù)圖像塊的相似度大小來賦予其不同的權(quán)值,以此來實現(xiàn)圖像去噪。
假定一幅離散的噪聲圖像為g=g{g(i)|i∈Ω},其大小為N×N,Ω代表圖像鄰域,i為像素索引,對噪聲圖像進行NLM處理后可表達為:
這是一個加權(quán)平均的過程。式(6)中分母的存在是為了使其歸一化,Ωi表示中心像素為i、大小為q×q的搜索區(qū)域;ω(i,j)代表賦予噪聲圖像g(i)的權(quán)值,數(shù)學形式為:
式(7,8)中:h代表控制濾波平滑程度的濾波系數(shù);N(i)和N(j)分別代表以像素中心點為i、像素中心點為j的圖像塊,圖像塊的大小都是p×p;d(i,j)表示圖像塊N(i)和N(j)之間的高斯加權(quán)歐式距離,“?”用來表示兩個矩陣之間的點乘;Gα是高斯矩陣。使用高斯加權(quán)歐式距離的好處是:噪聲可能會影響兩個圖像塊之間的相似性計算,采用高斯核函數(shù)卷積類似于先采用高斯濾波來濾除噪聲,這樣后期計算相似度會更準確。
NLM采用的是指數(shù)函數(shù)的減函數(shù),那么濾波系數(shù)h就會對加權(quán)核函數(shù)的衰減作用有著決定性的作用。如果h取值較大,求取的權(quán)值ω(i,j)就會趨于一致使濾波作用等效于均值濾波,去噪的效果由于邊緣細節(jié)丟失會變得比較模糊;若h取值較小,對噪聲的濾除作用不大,圖像中會有大量噪聲存在,去噪效果不好。h與噪聲標準差σ成正比,通常將其取為噪聲的標準方差,即h=σ。
2.2.2 非極大值抑制計算改進
傳統(tǒng)Canny算子只考慮到水平和垂直兩個方向,因此對噪聲干擾十分敏感,容易檢測出偽邊緣,效果不好。李俊山[8]、馮永亮[9]等提出用3×3窗口計算,并加入45°和135°方向,減少了噪聲的干擾,但效率低下,計算相對復雜。結(jié)合張志鵬[10]、范晞[11]等提出的算法,在四個方向上采用Sobel算子計算梯度幅值和方向,對得到的4個方向梯度求和作為新的水平和垂直軸的梯度值,再求得該像素點的梯度幅值與梯度角度。對應公式如下:
改進后的梯度計算考慮了更多方向上對中心點像素的影響,使定位更加準確,丟失現(xiàn)象少了很多。
相比于傳統(tǒng)非極大值抑制方法,本文給出了不同的抑制條件,將中心像素點的邊緣強度與沿其梯度方向的其他兩點邊緣強度對比,如果大于或等于兩點中任一像素點的邊緣強度,就保留為候選邊緣點,否則刪去。這樣進行多方位比對,不但可以排除更多的偽邊緣,還能保留階梯狀邊緣和細化屋脊狀邊緣。
對文中的改進算法做了試驗驗證,對比傳統(tǒng)Canny算法針對電能表圖像處理的試驗效果。分別在自然圖像下檢測了細節(jié)邊緣的豐富程度。試驗環(huán)境采用Python3.8編程,Pycharm編譯器運行,numpy庫等輔助運算實現(xiàn),電能表圖像由湖北宜昌市住宅小區(qū)實際獲取,試驗對比結(jié)果如圖2~6所示。
圖2 原圖像
比較圖3和圖4可知,經(jīng)過濾波處理后,NLM在去噪的過程中保留了更多細節(jié)。對比圖5傳統(tǒng)Canny邊緣檢測,圖6中本研究的檢測算法檢測出更為明顯的邊緣信息,檢測出的數(shù)字形態(tài)更多,主體的輪廓性更加連貫,下部編號的點化細節(jié)更加突出,提高了定位的精度,整體效果有了明顯提升。
圖3 高斯濾波
圖4 非局部均值濾波
圖5 傳統(tǒng)Canny邊緣檢測
圖6 本研究邊緣檢測算法
在基于圖像識別的遠程抄表系統(tǒng)中,針對服務器中圖像處理邊緣檢測算法部分,在傳統(tǒng)Canny算法的基礎上,采用NLM代替高斯濾波進行去噪平滑,以此來保存更多的邊緣細節(jié)和提高定位精度;然后對梯度計算和非極大值抑制部分做了優(yōu)化改進,抑制了偽邊緣的產(chǎn)生。經(jīng)試驗證明,對現(xiàn)場電能表提取出的圖像邊緣更加完整豐富,有效檢測出了圖像的真實邊緣,顯示了更多的電表數(shù)據(jù)信息。