一種基于SVM的數(shù)字儀表顯示值識(shí)別方法
數(shù)字儀表結(jié)構(gòu)簡(jiǎn)單,使用方便,已廣泛應(yīng)用于科學(xué)實(shí)驗(yàn)和生產(chǎn)中。為了提高檢定效率、檢定精度,實(shí)現(xiàn)自動(dòng)化檢定是十分必要的。由于數(shù)字儀表的檢定是一項(xiàng)大批量、重復(fù)性的檢測(cè)過(guò)程,其操作過(guò)程簡(jiǎn)單、規(guī)范,外界環(huán)境要求不高,這為其實(shí)現(xiàn)檢定自動(dòng)化提供了有利條件。近年來(lái)計(jì)算機(jī)視覺(jué)技術(shù)和數(shù)字圖像處理技術(shù)的不斷發(fā)展,為滿(mǎn)足上述要求提供了可能。利用攝像機(jī)完成表盤(pán)及背景圖像的采集,并將其轉(zhuǎn)換成數(shù)字信號(hào),然后利用數(shù)字圖像處理技術(shù)實(shí)現(xiàn)關(guān)鍵操作,實(shí)現(xiàn)數(shù)字儀表的自動(dòng)檢定,提高了檢定精度、生產(chǎn)效率、降低了生產(chǎn)成本。本文開(kāi)發(fā)的儀表顯示值自動(dòng)實(shí)時(shí)識(shí)別系統(tǒng)主要包括:圖像預(yù)處理、特征提取和數(shù)字識(shí)別3部分。其中數(shù)字識(shí)別是關(guān)鍵一環(huán),主要采用了學(xué)習(xí)理論中的支持向量機(jī)方法。學(xué)習(xí)理論是一種研究有限樣本情況下機(jī)器學(xué)習(xí)性質(zhì)和規(guī)律的理論。在這一理論下發(fā)展出的一種通用的模式分類(lèi)器——支持向量機(jī),由于與傳統(tǒng)的模式識(shí)別方法相比,具有推廣能力強(qiáng),能保證全局最優(yōu)等優(yōu)點(diǎn),這使得支持向量機(jī)技術(shù)在數(shù)字識(shí)別系統(tǒng)中有很好的應(yīng)用前景,因而引起了國(guó)內(nèi)外學(xué)者的極大興趣。支持向量機(jī)通過(guò)結(jié)構(gòu)風(fēng)險(xiǎn)最小化準(zhǔn)則和核函數(shù)方法,較好地解決了模式分類(lèi)器復(fù)雜性與推廣性之間的矛盾,因而也引起了模式識(shí)別領(lǐng)域?qū)W者的極大關(guān)注。
1 儀表示值自動(dòng)識(shí)別原理
儀表顯示值自動(dòng)實(shí)時(shí)識(shí)別系統(tǒng)的流程:首先,由攝像頭獲取儀表顯示的視頻幀;然后,將視頻幀進(jìn)行灰度變換,二值化得到二值圖像;再通過(guò)邊緣檢測(cè),操作微分直方圖,計(jì)算表盤(pán)水平和垂直投影,進(jìn)行峰谷分析定位出數(shù)字區(qū)域,并切分出單個(gè)數(shù)字的二值圖像;對(duì)單個(gè)數(shù)字的圖像進(jìn)行特征提取,得到一組特征;最后,將特征送入識(shí)別器進(jìn)行識(shí)別。
1.1 預(yù)處理
數(shù)字儀表在檢定過(guò)程中,首先要定位表盤(pán)區(qū)域,然后確定數(shù)字位置。攝像頭提取圖像后,經(jīng)過(guò)灰度變換(見(jiàn)圖1)和二值化(見(jiàn)圖2),其效果將對(duì)后續(xù)的數(shù)字切分和特征提取產(chǎn)生直接的影響,其中二值化是圖像預(yù)處理的關(guān)鍵環(huán)節(jié),在實(shí)際應(yīng)用中受室內(nèi)燈光及儀表屏幕自身亮度等因素影響,圖像中往往存在灰度分布不均和灰度突變的情況。本文采用了OTSU算法,根據(jù)最大方差二值化獲得良好的二值圖像,這里主要為了提取表盤(pán)區(qū)域。通過(guò)標(biāo)識(shí)連通區(qū)域,連通區(qū)域的外接矩形,然后根據(jù)外接矩形的長(zhǎng)與寬定位數(shù)字儀表的顯示區(qū)域。本文采用了一個(gè)8連通區(qū)域提取算法。首先按照一定的標(biāo)號(hào)規(guī)則掃描圖像,得到一定數(shù)量的連通區(qū)域;然后針對(duì)同一區(qū)域內(nèi)標(biāo)號(hào)不一致的情況進(jìn)行處理,即得到最終處理結(jié)果。
1.2 數(shù)字分割
表盤(pán)區(qū)域分割之后,繼續(xù)分割數(shù)字區(qū)域。在實(shí)際應(yīng)用中,攝像頭是固定的,數(shù)字的顯示區(qū)域在圖像中的位置、大小等是基本相似的。本文根據(jù)數(shù)字儀表顯示屏幕的特點(diǎn),采用投影法找到顯示屏的邊框。圖像中數(shù)字區(qū)域的準(zhǔn)確定位分割是實(shí)現(xiàn)儀表顯示值識(shí)別的重要前提。在表盤(pán)的二值圖內(nèi),先通過(guò)邊緣檢測(cè),利用微分直方圖進(jìn)行數(shù)字分割,圖3為水平投影后的直方圖。
經(jīng)過(guò)水平投影將圖像分割成上、中、下3部分。對(duì)中部數(shù)字區(qū)域的二值圖像從上到下逐行掃描;獲取到圖像的水平投影圖。利用行間間隔形成的水平投影間隙,即可將各數(shù)字行分割開(kāi)來(lái),如圖4所示,然后提取中部截圖,再對(duì)中部數(shù)字區(qū)域做垂直投影,如圖5所示,計(jì)算峰谷可以將單個(gè)數(shù)字分割出來(lái)。字切割是從行切分后,得到的圖像中將每一個(gè)數(shù)字分割出來(lái),利用每行字符的垂直投影中字符之間的間隙即可將各個(gè)數(shù)字分割出來(lái)。
1.3 特征提取
由于數(shù)字具有明顯的局部結(jié)構(gòu)特征,因此本文采用一種非對(duì)稱(chēng)分塊統(tǒng)計(jì)特征,作為表征數(shù)字的特征向量。方法如下:
(1)應(yīng)用otsu方法將分割出的數(shù)字圖像二值化,然后將圖像歸一化為70×50大小;
(2)將圖片等分為35塊,每塊子圖為10×10大小,按式(1)計(jì)算每一塊中背景點(diǎn)的分布特征;
式中:p(m,n)為10×10子圖中m行n列像素灰度值,前景點(diǎn)為255,背景點(diǎn)為0。
(3)將每一塊子圖的背景點(diǎn)統(tǒng)計(jì)特征作為一維特征向量,構(gòu)造35維向量[a1 a2 … a34 a35]作為支持向量機(jī)的輸入特征向量。
1.4 數(shù)字識(shí)別
基于支持向量機(jī)的數(shù)字識(shí)別支持向量機(jī)(Support Vector Machines,SVM)基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化準(zhǔn)則工作,能在訓(xùn)練誤差和分類(lèi)器容量間達(dá)到較好平衡,因而具有更好的性能,在模式識(shí)別領(lǐng)域有著廣泛的應(yīng)用。對(duì)于兩類(lèi)模式識(shí)別問(wèn)題,假設(shè)給定n個(gè)樣本作為訓(xùn)練集:
這里yi=+1或-1,要找到一個(gè)最優(yōu)超平面,使訓(xùn)練集中的點(diǎn)距離分類(lèi)面盡可能的遠(yuǎn),也就是使M=2/‖ω‖最大的分類(lèi)面就是最優(yōu)分類(lèi)面。對(duì)于線(xiàn)性可分的情況,要找到最優(yōu)超平面:
即求解下面的二次規(guī)劃問(wèn)題:
此二次規(guī)劃問(wèn)題,可用Lagrange乘子法把式(5)化成其對(duì)偶形式:
設(shè)[a1 a2 … a3]為二次優(yōu)化問(wèn)題的解,可以證明解中只有小部分ai不為0,稱(chēng)對(duì)應(yīng)的xi為支持向量,ai是對(duì)應(yīng)的Lagrange系數(shù),b是常數(shù)(閾值)。于是最優(yōu)超平面方程為:
最優(yōu)超平面的分類(lèi)規(guī)則為:
對(duì)于線(xiàn)性不可分情,在條件式(5)中引入非負(fù)松弛變量ξi,原約束條件改為:
相應(yīng)的目標(biāo)函數(shù)改為:
最優(yōu)分類(lèi)面的對(duì)偶問(wèn)題改為:
若ai>0,稱(chēng)相應(yīng)的xi為支持向量(Support Vector)。更進(jìn)一步,若O<ai<C,稱(chēng)xi為邊緣(Margin)支持向量;若ai=C,稱(chēng)xi為偏差(Bias)支持向量。非線(xiàn)性支持向量機(jī)的工作原理是通過(guò)非線(xiàn)性變換φ(x),將輸入空間變換到一個(gè)高維空間,在這個(gè)新空間中求取最優(yōu)線(xiàn)性分類(lèi)面,并引入核函數(shù)(如RBF核函數(shù))計(jì)算內(nèi)積。在可分的情況下求解:
找出的支持向量充分描述了整個(gè)訓(xùn)練數(shù)據(jù)集的特征,使得對(duì)SV集的線(xiàn)性分類(lèi)等價(jià)于對(duì)整個(gè)數(shù)據(jù)集的分類(lèi),檢測(cè)流程圖如圖6。所示。
1.5 實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)中選取了3組典型的樣本,每組樣本數(shù)200個(gè),在PC機(jī)上進(jìn)行了試驗(yàn),結(jié)果如表1所示。每個(gè)樣本有6或5個(gè)數(shù)字,其中3或4個(gè)是表示小時(shí)和分鐘,2個(gè)表示秒鐘。
從表1可以看出,在二值化較好,數(shù)字清晰的情況下,識(shí)別率達(dá)到了100%,對(duì)有輕微點(diǎn)狀噪聲和輕微斷痕的樣本,識(shí)別率也很高,但對(duì)存在數(shù)字殘缺的樣本,識(shí)別率有所下降。就識(shí)別時(shí)間而言,整屏數(shù)字(6或5個(gè)數(shù)字)的識(shí)跗時(shí)間小于200 ms,明顯低于儀表數(shù)字的最快變化時(shí)間1 000 ms。
2 結(jié)語(yǔ)
主要研究了數(shù)字式儀表的自動(dòng)判讀方法,為儀表盤(pán)上的儀表實(shí)現(xiàn)自動(dòng)識(shí)別打下基礎(chǔ)。首先對(duì)采集到的數(shù)字式儀表進(jìn)行預(yù)處理,主要包括圖像灰度化、二值化、噪聲消除等。參考現(xiàn)有的數(shù)字識(shí)別算法,本文主要采用垂直投影法來(lái)分割各個(gè)字符,然后對(duì)分割后的每個(gè)字符提取分塊統(tǒng)計(jì)特征。最后用SVM訓(xùn)練樣本實(shí)現(xiàn)相應(yīng)數(shù)字字符識(shí)別,最終判讀出數(shù)字儀表的讀數(shù)。該方法算法簡(jiǎn)單,實(shí)時(shí)性高,可靠性好,是一種比較理想且具有一定應(yīng)用價(jià)值的識(shí)別算法。