數位影像中手寫阿拉伯數位識別技術概覽

來源:互聯網
上載者:User

 

數位影像中手寫阿拉伯數位識別技術概覽

撰文 周翔   

摘要:
映像中手寫阿拉伯數位識別和其他模式的識別所採用的方法是多種多樣的。本文論述了映像中手寫阿拉伯數位識別過程,並對手寫數字識別的三種方法(基於規則的方法、基於統計的方法和基於神經網路的方法)進行了簡要介紹和分析,並通過執行個體重點對基於規則的方法進行了描述。最後是對這些方法的簡要評價。

1. 手寫數位影像識別簡介

手寫阿拉伯數字識別是映像內容識別中較為簡單的一個應用領域,原因有被識別的模式數較少(只有0到9,10個阿拉伯數字)、阿拉伯數字筆畫少並且簡單等。手寫阿拉伯數位識別採用的方法相對於Face Service、漢字識別等應用領域來說可以採用更為靈活的方法,例如基於規則的方法、基於有限狀態自動機的方法、基於統計的方法和基於神經網路的方法等。目前比較流行的方法是基於神經網路的方法和基於統計的方法,但無論使用哪種方法,也需要通過基本的影像處理技術來對映像進行預先處理,才能獲得這些方法的輸入資訊。所以,本文的開始部分先對手寫阿拉伯數字識別的整個處理流程進行論述,而這個流程也可以用於映像中其他模式的識別。當然這個處理流程也不是唯一的,可以根據不同的模式識別應用情境進行與之不同的預先處理流程。

2. 手寫數位影像識別的主要流程

在本文中,筆者在對映像進行分析前,先對映像進行了以下處理操作。

第一步:對源映像進行黑白二值化處理,1。

       
圖1:源映像(左)和處理後的映像(右)

第二步:對第一步處理後的映像進行形態學影像處理中的開運算,然後再進行閉運算(2),先進行開運算的目的是去除映像中的離散黑色像素點,再進行閉運算可以填補手寫數字中的裂縫。為了突出變換前後的區別,圖2中將源映像中的一部分放大顯示,可以看出,經過處理,數字7上面橫線中的空虛白色像素被黑色像素填實。

          
圖2:進行閉操作前的二值映像(左)和經過閉操作後的二值映像(右)

第三步:為了提取出映像中的每一個數字,可用泛洪(FloodFill)演算法,從數字上的某個像素開始對數字進行填充,也可以按從左至右、從上到下的順序掃描映像,找到一個黑色的像素開始填充,當填充結束時,所得到的填充地區就是圖中某個手寫阿拉伯數位映像地區,這時,得到這個阿拉伯數位影像地區中像素座標點對的集合,3所示。

   
圖3:對第二步處理後的映像中的某個像素進行泛洪填充提取出的數字5的映像

第四步:通過第三步得到的某個數位像素座標點對的集合,通過骨架提取演算法(見參考文獻3)提取出手寫數位骨架,再將其骨架影像地圖到某個8×8的0/1矩陣,矩陣中值為1的點表示手寫數字骨架經過的矩陣中的點,0表示數位背景,要求數位影像的每一行或每一列都至少有一個值為1,4所示。

        
圖4:數字5的骨架(左)和映射到8×8矩陣中的情況(圖中灰色表示1,白色表示0)

可以想象出,矩陣的行列數越大,表示的骨架越精確,但對於手寫阿拉伯數位識別來說,取8×8的矩陣就足夠了。如果要進行漢字手寫體的識別,一般需要用64×64的矩陣或者128×128的矩陣。

第五步:對8×8的0/1矩陣進行內容分析。其中分析的方法主要有基於規則的方法、基於統計的方法和基於神經網路的方法,這三種方法將在本文的第3、4、5部分進行介紹。通過這些方法可以識別8×8的0/1矩陣中的數字,然後輸出結果,轉向第三步對映像中的其他數字進行識別。

3. 基於規則的方法

基於規則的方法主要是根據0/1矩陣的特徵對矩陣所描述的圖形表示的內容進行描述。在這裡,我採用的是對矩陣的一行為一步進行特徵判斷。可以事先規定阿拉伯數字在矩陣中靠左上方顯示,則有這樣的規則:如果矩陣第一行中有兩個值為1,而且這兩個1之間有大於1個的0,則這個矩陣所表示的數字為4。用規則的方法進行識別時,可以採用規則樹的結構進行判斷,樹的每一層對應矩陣某一行的規則,比如,對於n行矩陣,樹的第k層對應矩陣的第k行的規則(1<=k<=n),5所示,樹中的節點是“規則{滿足規則的數位集合}”的形式。
 


圖5:規則樹

在運行該演算法時,程式會從根節點(開始節點)開始根據規則沿著某條分支到達分葉節點,這時候演算法結束,輸出節點集合中的元素。往往這樣的集合中的元素個數為1個,也有時候是多個,比如手寫體的數字1和7很像,當演算法結束時,有可能會輸出兩個結果。

這個演算法的時間複雜度正比於矩陣的行數,在本例中,因為矩陣有8行,則最多需要進行8步判斷可以得出識別結果。可見,演算法的複雜度與規則樹的分叉數無關。而規則分的越細,分叉數越多,對象的區分度越好,搜尋過程中對樹的遍曆深度越少,識別的正確率就越高。可見,定義一系列精密的規則是採用本方法進行模式識別的關鍵。

當然,也可以每一步按每列的規則進行判斷,方法與上面的敘述類似。

4. 基於統計的方法

基於統計的模式識別方法是根據系統已有的統計資訊,在當前的執行個體情況下,取機率最大的一個模式。這裡的模式是阿拉伯數字。如果設當前的執行個體為E,阿拉伯數字為N,則我們要求的是對所有的E,條件機率值P(N|E)最大的一個N。即:

 

對上式的右端進行分母歸一化處理並假設所有阿拉伯數字出現的機率是相等的,則上式可簡化為:

 

也就是要求對於數字N,它的映像是E的機率為最大的那個數字N。當然,對整個映像求機率得到的結果是非常小的,而且求解過程比較困難,我們可以對整個映像進列區域劃分,進行粒度計算得出在每個地區中對應的數字出現的機率,並將這些機率值進行平滑處理或放大處理,然後把這些機率值相乘,最後取條件機率最大的一個數字,就是阿拉伯數位識別結果。

同時,還可以採用隱馬爾可夫模型(HMM)的思想(見參考文獻2),如果按照在本文第2節中的預先處理流程得到的結果,設觀察序列是8×8矩陣中的0/1值,狀態是阿拉伯數字,可以通過樣本進行參數訓練,得出HMM的參數,然後通過Viterbi演算法得出在已知狀態序列(8×8矩陣中的0/1值)的情況下,求出機率最大的狀態(即阿拉伯數字,也就是識別結果)。

5. 基於神經網路的方法

神經網路的方法是採用人類大腦神經中學習反饋的思想,通過使用者訓練得出正確的識別結果。您可以通過網頁http://www.vckbase.net/document/viewdoc/?id=1187來查看這種方法的具體實現過程和原始碼。

6. 分析與總結

通過上面的分析,我們可以看出,基於規則的方法,相對較為簡單,比如手寫阿拉伯數字識別等識別對象較少的情況,有比較少的時間複雜度和比較高的識別正確率,這種方法的關鍵在於規則的定義對模式是否有較高的區分度;這種方法對於比較複雜的情況,則需要一個規則庫來儲存這些規則,但這時,規則的設計也會變的複雜而且困難。

基於統計的方法需要維護一個具有一定規模的樣本庫,而且在使用HMM進行數字識別時計算量較大。樣本庫的規模越大,樣本的分布越接近於實際情況,數字識別的正確率越高。在使用基於統計的方法的時候還需要資料平滑的技術來擴大小機率的值。

基於神經網路的方法是當今應用的最廣泛的方法,其特點在於樣本數可以比較少,神經節點的激勵函數的運算與HMM中的機率計算相比較為簡單,因此有比較好的運行效率,實現比較簡單。但識別的過程需要人的參與(訓練),識別的正確率受使用者主觀因素的影響。

基於有限狀態自動機的方法也可以看做是基於規則的方法,單獨將這種方法作為數字識別的系統比較少,因為對於複雜的應用,形成的有限狀態自動機的拓撲結構往往比較複雜。在比較簡單的情況下,如7段碼數字識別,將會有較其他基於規則的方法更快的識別效率和更高的準確率。

參考文獻:
[1]  MICHAEL SIPSER著,張立昂等譯,《計算理論導引》,機械工業出版社,2000。
[2] 王曉龍,關毅等編,《電腦自然語言處理》,清華大學出版社,2005。
[3] R.C.Gonzales等著,阮秋崎等譯,《數位影像處理》,電子工業出版社,2002。
[4] 王文傑等編,《人工智慧原理》,人民郵電出版社,2003。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.