李怡軒
(渭南師范學院,渭南 714000)
手寫數字在人口普查、金融票據、郵件分揀等領域有著極其廣泛地應用[1-2],手寫數字識別是當前圖像處理和模式識別領域的一個重要研究分支,由于手寫數字的隨意性大,其識別準確率易受字體大小、筆畫粗細和傾斜角度等因素的影響,因此進行手寫數字識別方法和系統的設計具有重要的理論價值和實際意義。本文將機器學習方法應用于手寫數字系統識別設計,開發出一個小型的基于機器學習的手寫數字識別系統。
基于機器學習的手寫數字識別主要包括圖像預處理模塊、特征提取模塊、分類器設計模塊以及數字識別模塊。圖像預處理主要包括圖像降噪、二值化;特征提取主要根據手寫數字圖像的自身結構特征,計算指定方向直線的交叉點、端點作為數字識別的特征向量;分類器設計最主要采用類中心的歐式距離分類器[3]、馬氏距離分類器[4]和貝葉斯分類器[5]。手寫數字識別系統框架,如圖1所示。
基于機器學習的手寫數字識別的流程如下:

圖1 手寫數字識別系統框架
(1)讀取手寫數字圖像,并將其歸一化和統一尺寸為24×24圖像塊;
(2)圖像降噪、二值化和細化操作;
(3)數字圖像特征提取;
(4)載入模板數據矩陣,進行數字識別。
識別流程,如圖2所示。
預處理二值化和細化的手寫數字圖像,在行寬的5/12、1/2和7/12處生成三條垂直線[6],提取三條垂直線和手寫數字筆劃的交點數并保存。

圖2 手寫數字識別流程
預處理二值化和細化的手寫數字圖像,在列寬的1/3、1/2和2/3處生成三條水平線[7],提取三條水平線和手寫數字筆劃的交點數并保存。
預處理二值化和細化的手寫數字圖像,分別生成兩條對角線,提取兩條對角線和手寫數字筆劃的交點數并保存。
(1)目標定位
二值化和細化之后的手寫數字圖像,針對行從上到下進行順序掃描、針對列從左到右進行順序掃描,定位選擇黑色像素點G作為手寫筆畫目標。
(2)鄰域統計
計算黑色像素點G的8鄰域的像素值之和N;若像素值之和N等于1,則黑色像素點G為端點,并且端點計數器counter=counter+1;反之,則舍棄該黑色像素點G。
(3) 遍歷圖像
遍歷整個手寫數字圖像,反復進行目標定位和鄰域統計,提取手寫數字的端點特征。提取結果,如圖3所示。


根據水平交點、垂直交點和對角交點特征的提取,手寫數字可由特征值Feature表示,其可以表示為:
Feature=[F1,F2,F3,F4,F5,F6,F7,F8,F9]
其中,F1,F2,F3分別表示垂直5/12處、垂直1/2處和7/12處的交點數;F4,F5,F6分別表示水平1/3處、水平1/2處和水平2/3處的交點數;F7,F8,F9分別表示左對角線、右對角線的交點數和端點數。



對24×24樣本的每個格子,計算T=黑色像素總數量/每個格子像素總數量;若T大于閾值0.05,則特征值取1;反之,取0。如公式(1)。

(1)
假設h為猜測的概率,D為實際數據的概率[8],則為公式(2)。
P(h/D)=P(h)P(D/h)
(2)
其中,P(h)為先驗概率,P(D/h)為似然概率。
然后,應用Bayes公式求后驗概率,后驗概率最大值的類別就是手寫數字的所屬類別。
選擇Windows7.0操作系統,Intel core i5處理器、內存8G的Lenovo V310為系統環境,Matlab2015(a)為軟件平臺。選擇Minist手寫數字圖像庫為研究對象[9-10],提取0-9手寫數字圖像特征,每個數字樣本500個,一共5000個樣本,數字特征9個,構成手寫數字模板矩陣5000x9。
系統主界面包括系統介紹模塊、軟件模塊、聯系方式模塊和退出模塊,其主界面如圖4所示。

圖4 系統主界面
系統介紹模塊主要介紹研究背景和研究意義;軟件模塊主要包括樣本庫識別和手寫板識別,如圖5-圖7所示。

圖5 軟件模塊

圖6 樣本庫識別

圖7 手寫板識別
5.3.1 不同訓練集比例針對Minist手寫數字圖像數據集,分別運用20%-40%的5000樣本數量進行訓練,剩余樣本進行測試,貝葉斯手寫數字識別檢測準確率,如圖8所示。

圖8 貝葉斯識別精度
由圖8可知,當所用訓練樣本的比例為40%時,貝葉斯識別檢測準確率高達97.7%,當所用訓練樣本的比例分別為30%和20%時,貝葉斯分類識別的檢測準確率分別為97.1%和95.2%。
5.3.2 不同算法對比
為了說明歐式距離分類、馬氏距離分類和貝葉斯分類[11-12]分別在所用訓練樣本的比例為20%、30%和40%的識別準確率,其識別準確率和,如表1所示。

表1 不同算法識別準確率
通過表1識別結果對比可知,采用不同的機器學習方法,手寫數字識別精度不同,對比發現,貝葉斯分類器進行手寫數字識別的精度高達97.63%,從而證明采用機器學習方法進行手寫數字識別具有一定優越性,效果較好。
5.3.3 不同算法效率對比
不同算法效率,如表2所示。

表2 不同算法效率
由表2可知,本文貝葉斯算法的精度和耗費時間分別為97.63%和5.12s,與神經網絡和SVM相比較,精度分別提高了7.51%、4.16%,耗費時間分別減少了5.23 s和3.30 s,同時本文算法對樣本數量的依賴性較小,算法結果穩定較好,從而進一步證明采用機器學習方法進行手寫數字識別的優越性。
針對傳統算法進行手寫數字識別準確率低的缺點,將歐式距離、貝葉斯分類等機器學習方法引入手寫數字識別,提取數字圖像的水平交點、垂直交點和對角交點作為手寫數字圖像的特征向量,建立手寫數字模板矩陣,通過計算待識別圖像和模板矩陣的歐式距離和后驗概率,從而實現手寫數字識別。研究結果表明,機器學習方法手寫數字識別的精度可以高達97.63%,效果較好,值得推廣應用。