《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 顯示光電 > 設(shè)計(jì)應(yīng)用 > 基于OpenCV和LSSVM的數(shù)字儀表讀數(shù)自動識別
基于OpenCV和LSSVM的數(shù)字儀表讀數(shù)自動識別
2017年微型機(jī)與應(yīng)用第2期
林劍萍1,廖一鵬2
1. 陽光學(xué)院,福建 福州 350015;2. 福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350000
摘要: 為了提高儀表讀數(shù)及記錄的工作效率,減少人工干預(yù)并降低出錯概率,提出了一種基于OpenCV和LSSVM的數(shù)字儀表自動識別方法。首先選取免驅(qū)的USB攝像頭采集儀表圖像,然后采用Canny檢測與Hough變換相結(jié)合的算法對儀表圖像的傾斜角度進(jìn)行校正;利用數(shù)學(xué)形態(tài)學(xué)、Otsu算法以及連通域提取對圖像進(jìn)行預(yù)處理和字符定位分割;最后,進(jìn)行字符特征提取并利用最小二乘支持向量機(jī)算法對儀表讀數(shù)進(jìn)行識別。經(jīng)過大量的實(shí)驗(yàn)驗(yàn)證,與現(xiàn)有的儀表讀數(shù)識別方法相比,該方法具有更好的準(zhǔn)確性,實(shí)現(xiàn)了數(shù)字儀表的自動識別功能。
Abstract:
Key words :

  林劍萍1,廖一鵬2

  (1. 陽光學(xué)院,福建 福州 350015;2. 福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350000)

       摘要:為了提高儀表讀數(shù)及記錄的工作效率,減少人工干預(yù)并降低出錯概率,提出了一種基于OpenCV和LSSVM的數(shù)字儀表自動識別方法。首先選取免驅(qū)的USB攝像頭采集儀表圖像,然后采用Canny檢測與Hough變換相結(jié)合的算法對儀表圖像的傾斜角度進(jìn)行校正;利用數(shù)學(xué)形態(tài)學(xué)、Otsu算法以及連通域提取對圖像進(jìn)行預(yù)處理和字符定位分割;最后,進(jìn)行字符特征提取并利用最小二乘支持向量機(jī)算法對儀表讀數(shù)進(jìn)行識別。經(jīng)過大量的實(shí)驗(yàn)驗(yàn)證,與現(xiàn)有的儀表讀數(shù)識別方法相比,該方法具有更好的準(zhǔn)確性,實(shí)現(xiàn)了數(shù)字儀表的自動識別功能。

  關(guān)鍵詞機(jī)器視覺;圖像處理;OpenCV;最小二乘支持向量機(jī)

  中圖分類號:TP394.1文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.013

  引用格式:林劍萍,廖一鵬.基于OpenCV和LSSVM的數(shù)字儀表讀數(shù)自動識別[J].微型機(jī)與應(yīng)用,2017,36(2):37-40.

0引言

  目前,在很多領(lǐng)域受工作條件限制及經(jīng)濟(jì)性、便捷性的要求,很多用于計(jì)量的儀器儀表都沒有專門的數(shù)據(jù)通信接口,導(dǎo)致無法自動識別讀數(shù),對儀表數(shù)字的讀取還是要靠人工來實(shí)現(xiàn),但是在一些特定場合,例如高溫高壓、化工冶金、高山峭壁、有核輻射等人體不能適應(yīng)的地方,人工抄表存在很大的危險(xiǎn)性及不可行性,而機(jī)器視覺卻可以無視這些不利因素,廣泛地用于長時(shí)間惡劣的工作環(huán)境,這就為儀表讀數(shù)的讀取提供了便利,同時(shí)可以提高工作效率,更好地保障人身安全。儀表讀數(shù)識別也可以說是自動抄表,自動抄表的試點(diǎn)和運(yùn)用始于20世紀(jì)80年代,在20世紀(jì)90年代得到較快的發(fā)展[1]。目前,國內(nèi)外許多科技人員在基于機(jī)器視覺的數(shù)字識別上做了很多深入研究。從圖像預(yù)處理、傾斜校正、字符分割及數(shù)字識別等方面各有側(cè)重點(diǎn)地做了不同方法的研究比較。在儀表數(shù)字識別方面,工業(yè)和信息化部電子第五研究所的申中鴻、蔣春旭等人利用機(jī)器視覺技術(shù),結(jié)合計(jì)算幾何軌跡識別方法與D-S證據(jù)理論實(shí)現(xiàn)數(shù)字顯示儀表的自動讀數(shù);中國計(jì)量科學(xué)研究院的劉科等人采用投影變換的方法對數(shù)字圖像進(jìn)行分割、編碼,進(jìn)而實(shí)現(xiàn)了對該類儀表示值的自動讀??;山東管理學(xué)院的常曉瑋利用光學(xué)字符識別技術(shù)實(shí)現(xiàn)了遠(yuǎn)程識別儀表上顯示的數(shù)字信息[25]。綜合各方研究,實(shí)現(xiàn)基于機(jī)器視覺的數(shù)字儀表讀數(shù)自動識別的方式多樣,不僅在圖像預(yù)處理上可根據(jù)不同環(huán)境不同儀表選擇合適的算法,在數(shù)字的定位識別上也有多種方法可供選擇。本文采用Canny檢測與Hough變換相結(jié)合的算法對攝像頭采集到的儀表圖像的傾斜角度進(jìn)行校正,利用數(shù)學(xué)形態(tài)學(xué)方法、Otsu(大津法或最大類間方差法)算法等技術(shù)對校正后的圖像進(jìn)行預(yù)處理[67],之后對字符進(jìn)行分割,采用最小二乘支持向量機(jī)(LSSVM)算法對儀表讀數(shù)進(jìn)行識別。經(jīng)過大量的實(shí)驗(yàn)驗(yàn)證,該方法具有良好的準(zhǔn)確性,實(shí)現(xiàn)了數(shù)字儀表的自動識別功能。

1數(shù)字儀表圖像的預(yù)處理

  1.1圖像的采集

  圖像采集是基于機(jī)器視覺進(jìn)行圖像處理的第一步,也是很重要的一步。采集到質(zhì)量較高的圖像可以在很大程度上降低處理的難度。本文采用分辨率為480×680的CCD免驅(qū)USB攝像頭對儀表數(shù)據(jù)進(jìn)行采集,該攝像機(jī)可以直接捕捉影像傳輸處理,運(yùn)用更加便捷。

  1.2儀表圖像的傾斜校正

  進(jìn)行數(shù)字儀表圖像采集時(shí),采集到的數(shù)字儀表圖像經(jīng)常會發(fā)生傾斜。為使儀表端正以方便后期處理,需要對傾斜的儀表圖像進(jìn)行校正。本文采用的是Canny邊緣檢測與Hough變換相結(jié)合的傾斜校正方法。用Canny算子對儀表圖像進(jìn)行邊緣檢測,然后利用Hough變換檢測數(shù)字儀表邊框平行線的傾斜角度,再利用旋轉(zhuǎn)函數(shù)進(jìn)行校正,得到端正水平的數(shù)字儀表圖像。

001.jpg

  攝像頭采集到的圖像如圖1所示,Canny邊緣檢測及Hough變換檢測得到最長直線圖如圖2所示,傾斜校正后的圖像如圖3所示。

002.jpg

  1.3圖像的形態(tài)學(xué)處理

  為簡化圖像數(shù)據(jù),并除去不相干的結(jié)構(gòu),本系統(tǒng)對圖像進(jìn)行腐蝕(Erosion)膨脹(Dilation)等數(shù)學(xué)形態(tài)學(xué)運(yùn)算,對圖像進(jìn)行濾波處理,平滑邊界。提高數(shù)字儀表圖像的質(zhì)量,并填充儀表讀數(shù)中的細(xì)小空洞,避免單個(gè)數(shù)字各段碼之間的中斷。

  膨脹的定義:

  D=X⊕B={(x,y)|Bxy∩X≠φ}(1)

  腐蝕的定義:

  E=XB={(x,y)|BxyX}(2)

  式(1)和(2)中,B為結(jié)構(gòu)元素,X為原始圖像。

  1.4圖像的二值化

  為了字符的準(zhǔn)確識別,在字符識別之前對圖像做二值化處理,將圖像分割成背景和目標(biāo)兩部分。本文采用最經(jīng)典的全局閾值的Otsu算法(最大類間方差法)。為了減少對比度和光照不均勻?qū)Χ祷挠绊?,在二值化處理之前先對圖像進(jìn)行頂帽處理,讓二值化達(dá)到更好的效果。Otsu算法是在最小二乘法原理基礎(chǔ)上推導(dǎo)出來的,它的基本原理是:令連通區(qū)域S,其中像素灰度范圍為[0,255],點(diǎn)(x,y)的灰度表示為I(x,y),灰度級x的點(diǎn)的概率為P(x),則Otsu就是求下式達(dá)到最大值的灰度級m:

  PS6~3(_HM}(F0[IKY~@93LD.png

  

003.jpg

  灰度級m即為最佳分割閾值。利用此方法二值化處理后的圖像如圖4所示。

2數(shù)字儀表圖像的特征提取

  經(jīng)過預(yù)處理之后,可以得到質(zhì)量較高的二值化圖像,接下來就需要對數(shù)字儀表的讀數(shù)進(jìn)行定位與分割,為數(shù)字識別做好準(zhǔn)備。定位分割的準(zhǔn)確性,直接影響數(shù)字識別的難易程序及識別率。

  2.1儀表數(shù)字區(qū)域的特征分析

  在數(shù)字儀表讀數(shù)的定位分割過程中,必須根據(jù)數(shù)字區(qū)域與背景儀表的不同特征進(jìn)行提取,才能達(dá)到定位分割的目的。而數(shù)字儀表的特征總體是有跡可循的,可以將數(shù)字區(qū)域與背景分別出來。從視覺角度出發(fā),儀表數(shù)字區(qū)域的特征可以從其形狀、顏色和亮度三個(gè)方面進(jìn)行分析。

  2.2儀表數(shù)字定位分割方法

  儀表數(shù)字定位分割一般有基于連通域和基于投影法的儀表數(shù)字定位與分割。但是不同的光照條件,儀表的影子對水平投影的影響過大,在有影子存在的情況下,僅根據(jù)水平投影不足以將兩行讀數(shù)分割開來,而水平投影結(jié)果不理想導(dǎo)致分割不準(zhǔn)確,也就使得垂直投影不能理想地分割出每行中的每一個(gè)字符。因此本文采用的是基于連通域的方法來進(jìn)行數(shù)字的定位與分割。

  在圖像當(dāng)中用f(x,y)表示位于圖像陣列中第x行、第y列的像素的值,一幅m×n的圖像具有m行n列,f(0,0)表示圖像左上角的像素值,f(m-1,n-1)表示圖像右下角的像素值。遍歷圖像,通過4鄰域連通標(biāo)準(zhǔn)查找出所有符合的連通域,這樣就可以把圖像中每一個(gè)分離的區(qū)域檢測出來。

  在查找出所有連通域之后,按照連通域的面積、讀數(shù)的形狀、長寬比來進(jìn)行篩選,排除不符合條件的區(qū)域,這樣就可以直接定位并分割出數(shù)字儀表的每個(gè)讀數(shù)。算法實(shí)現(xiàn)步驟如下。

 ?。?)計(jì)算連通域面積:連通域A的面積就是像素值為255的點(diǎn)的數(shù)目,即區(qū)域的邊界內(nèi)包含的像素點(diǎn)數(shù)。面積的計(jì)算公式為:

  5YYA`{8EMSQUC$2]OEUP$`L.png

 ?。?)計(jì)算連通域的長寬比:連通域的寬/連通域的長。

 ?。?)遍歷所有連通域,如果連通域面積大于500小于5 000且連通域的長寬比大于1.5小于2.5則提取,如果不滿足以上條件則舍棄。這樣便可篩選出滿足要求的連通域,即數(shù)字儀表每個(gè)讀數(shù)。圖5儀表讀數(shù)分割定位結(jié)果

  數(shù)字儀表讀數(shù)的定位分割結(jié)果如圖5所示。

004.jpg

  2.3儀表數(shù)字特征提取

  數(shù)字的特征主要可以從形狀、顏色、紋理、結(jié)構(gòu)等方面入手來提取,而大部分的數(shù)字儀表的讀數(shù)區(qū)域是基于七段數(shù)碼管來實(shí)現(xiàn)顯示,因此也可以根據(jù)數(shù)碼管的特征來提取。本文用的提取特征的方法就是基于七段數(shù)碼管,根據(jù)每段碼的像素值來判斷識別。將定位好的數(shù)碼管每位進(jìn)行4×4分割,統(tǒng)計(jì)黑點(diǎn)和白點(diǎn)的個(gè)數(shù),每塊的像素用x0~x15表示,提取結(jié)果如圖6所示。

005.jpg

 3儀表讀數(shù)的模式識別

  數(shù)字儀表的讀數(shù)識別是基于機(jī)器視覺的數(shù)字儀表讀數(shù)自動識別的重點(diǎn),只有這一步做好了才能正確識別讀數(shù)并且保證一定的識別率。最常用的數(shù)字字符識別算法主要有模板匹配法、基于人工神經(jīng)網(wǎng)絡(luò)法、穿線法等[810]。本文采用的是最小二乘支持向量機(jī)(LSSVM)算法[1113]。

  設(shè)訓(xùn)練集為(xi,yi)(i=1,2,…,N),N表示訓(xùn)練樣本數(shù),xi∈Rm為樣本輸入,yi為輸出,LSSVM在高維特征空間的線性函數(shù)為:

  f(x)=wTφ(x)+b(5)

  式(5)中,w為權(quán)值向量,b為偏置量,φ(x)為非線性映射函數(shù)。根據(jù)結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則,綜合考慮擬合誤差和算法復(fù)雜度,轉(zhuǎn)換為一個(gè)等式約束的優(yōu)化問題:

  I2~~CF]Y`10}WP)9PY7$IJK.png

  式(6)中,e2i為誤差變量,d為調(diào)整參數(shù)因子。

  為求解上述優(yōu)化問題,引入拉格朗日等式,ai是拉格朗日乘子,把約束優(yōu)化問題變?yōu)闊o約束優(yōu)化問題,如式(7)所示:

  CTYKZLJ)1V4_G)UDA}[050X.png

  根據(jù)非線性最優(yōu)規(guī)劃(KarushKuhnTucker,KKT)條件求得參數(shù)ai,b代入公式(5),得到支持向量機(jī)的輸出:

  1IE`~){2H3SKKG0GYDBS40P.png

  最后,選擇RBF(Radial Basis Function)作為LSSVM的核函數(shù),得到LSSVM的預(yù)測函數(shù):

  FZ9RLBXU$3_[6KDWK1_VF~Y.png

  式中,σ為核寬度,反映數(shù)據(jù)集的特性。

4系統(tǒng)軟件實(shí)現(xiàn)與測試

  4.1系統(tǒng)軟件實(shí)現(xiàn)

  本系統(tǒng)利用OpenCV開源庫[1415]在VS2010環(huán)境中編寫MFC程序,實(shí)現(xiàn)數(shù)字儀表讀數(shù)的實(shí)時(shí)采集、處理及識別輸出。通過點(diǎn)擊界面內(nèi)按鈕即可完成相應(yīng)的處理,最終將數(shù)字儀表原圖及讀數(shù)識別結(jié)果都直觀地顯示在窗口界面上。

  根據(jù)本文系統(tǒng)采取的方法對實(shí)時(shí)采集到的數(shù)字儀表圖像進(jìn)行處理、分割及識別,以采集到的其中一張測試圖為例,系統(tǒng)從實(shí)時(shí)采集、傾斜校正、預(yù)處理(濾波、二值化)、定位分割到識別的每一步效果圖如圖7所示。

 

006.jpg

  4.2LSSVM與其他算法的比較

  本文采用最小二乘支持向量機(jī)算法對數(shù)字儀表的讀數(shù)進(jìn)行識別,為了驗(yàn)證該算法的識別率,總共實(shí)時(shí)采集了200幅儀表圖像近800個(gè)數(shù)字字符,用模板匹配法、基于人工神經(jīng)網(wǎng)絡(luò)法、穿線法、最小二乘支持向量機(jī)分別進(jìn)行了測試,對這800個(gè)數(shù)字字符進(jìn)行分類統(tǒng)計(jì),測試結(jié)果如表1所示。

  統(tǒng)計(jì)分析發(fā)現(xiàn),這幾種算法對每個(gè)數(shù)字的識別率都高于90.0%,LSSVM對每個(gè)數(shù)字的識別率都高于95.0%,對10個(gè)字符的平均識別率達(dá)到98.2%,比其他幾種識別模式的平均識別率有明顯提高,識別效果良好,達(dá)到了預(yù)期的目標(biāo)與要求。

5結(jié)論

  根據(jù)數(shù)字儀表顯示的特征,本文首先采用攝像頭實(shí)時(shí)采集并顯示數(shù)字儀表圖像;然后將Canny邊緣檢測算子與Hough變換相結(jié)合,對儀表圖像進(jìn)行傾斜校正;利用數(shù)學(xué)形態(tài)學(xué)方法對圖像光照不均勻等進(jìn)行處理,通過濾波增強(qiáng)有效信息;根據(jù)數(shù)字儀表讀數(shù)特征,采取查找最小連通域后篩選的方法對儀表讀數(shù)進(jìn)行定位分割;采用和聲搜索法和最小二乘支持向量機(jī)的算法對儀表的數(shù)字讀數(shù)進(jìn)行模式識別;利用OpenCV開源庫在VS2010環(huán)境中編寫MFC程序,實(shí)現(xiàn)數(shù)字儀表讀數(shù)的實(shí)時(shí)采集、處理及識別輸出。本設(shè)計(jì)在實(shí)驗(yàn)室環(huán)境下具有良好的效果,下一步的研究方向是進(jìn)一步改進(jìn)完善,并將其推廣應(yīng)用到實(shí)際環(huán)境中?! ?/p>

007.jpg

參考文獻(xiàn)

 ?。?] 譚志強(qiáng),黃懿.自動抄表技術(shù)的發(fā)展[J].電測與儀表, 2009,46(1):1-5.

 ?。?] 申中鴻,蔣春旭,徐華偉,等.基于機(jī)器視覺的數(shù)字顯示儀表自動讀數(shù)[J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2013,31(A01):110-115.

 ?。?] 申中鴻,劉群興,蔣春旭,等.基于機(jī)器視覺技術(shù)和D—S證據(jù)理論的數(shù)字顯示儀表自動讀數(shù)[J].信息工程期刊(中英文版),2013,3(6):122-129.

  [4] 劉科,侯立新,卞昕.基于機(jī)器視覺的儀表示值識別算法研究[J].計(jì)量學(xué)報(bào),2013,34(5):425429.

  [5] 常曉瑋.基于機(jī)器視覺的數(shù)字化儀表字符識別[J].計(jì)算機(jī)測量與控制,2014,22(9):30713073.[6] 丁文,李勃,陳啟美.Canny色彩邊緣檢測及分類新方法[J].北京郵電大學(xué)學(xué)報(bào),2012,35(1):115119.[7] 黃登山,王曉楠.基于Canny和HillbertHuang變換的改進(jìn)的SIFT算法研究[J].西北工業(yè)大學(xué)學(xué)報(bào),2015(6):962-965.

 ?。?] 朱顥東,李紅嬋.基于特征加權(quán)模糊模板匹配的字符識別[J].蘭州理工大學(xué)學(xué)報(bào),2013,39(1) :68-71.

 ?。?] 劉宗林,田瑩,李雪瀅.一種數(shù)顯儀表字符快速自動識別方

  法[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2015(18):37-40.

  [10] 王明勛.基于神經(jīng)網(wǎng)絡(luò)的液晶數(shù)字識別在船用設(shè)備管理中的應(yīng)用[J].艦船電子工程,2012,32(7):95-97.

  [11] 劉永平,郭小波.基于最小二乘支持向量機(jī)車牌字符特征識別[J].數(shù)字技術(shù)與應(yīng)用,2015(7):119-120.

 ?。?2] 劉靜.基于最小二乘支持向量機(jī)的車牌字符特征分類研究[J].計(jì)算機(jī)與數(shù)字工程,2015(7):1315-1319.

  [13] 喬宗良,張蕾,周建新,等.一種改進(jìn)的CPSOLSSVM軟測量模型及其應(yīng)用[J].儀器儀表學(xué)報(bào),2014,35(1):234-240.

 ?。?4] 王舒憬,杜皎潔.基于OPENCV的數(shù)字萬用表數(shù)字識別方法[J].自動化與儀器儀表, 2014(1):62-63.

 ?。?5]  徐歡,李振璧,姜媛媛,等.基于OpenCV和改進(jìn)Canny算子的路面裂縫檢測[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(12):4254-4258.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。