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

  林劍萍1,,廖一鵬2

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

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

  關鍵詞機器視覺圖像處理,;OpenCV,;最小二乘支持向量機

  中圖分類號:TP394.1文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.013

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

0引言

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

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

  1.1圖像的采集

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

  1.2儀表圖像的傾斜校正

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

001.jpg

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

002.jpg

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

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

  膨脹的定義:

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

  腐蝕的定義:

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

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

  1.4圖像的二值化

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

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

  

003.jpg

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

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

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

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

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

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

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

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

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

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

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

  (2)計算連通域的長寬比:連通域的寬/連通域的長,。

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

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

004.jpg

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

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

005.jpg

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

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

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

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

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

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

  式(6)中,,e2i為誤差變量,,d為調整參數(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),得到支持向量機的輸出:

  1IE`~){2H3SKKG0GYDBS40P.png

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

  FZ9RLBXU$3_[6KDWK1_VF~Y.png

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

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

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

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

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

 

006.jpg

  4.2LSSVM與其他算法的比較

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

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

5結論

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

007.jpg

參考文獻

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

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

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

 ?。?] 劉科,侯立新,卞昕.基于機器視覺的儀表示值識別算法研究[J].計量學報,2013,,34(5):425429.

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

  [8] 朱顥東,李紅嬋.基于特征加權模糊模板匹配的字符識別[J].蘭州理工大學學報,,2013,39(1) :68-71.

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

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

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

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

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

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

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

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


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