摘 要:隨著科技的不斷發展,在財務、經濟等一系列領域對于使計算機自動識別數字的應用越來越廣泛,同時也不斷推動著更加精確的識別算法的深入研究。本文提出了一種針對手寫數字進行識別的方法,其基本思路是:將opencv開源庫函數與CodeBlocks編譯環境相結合,圖像預處理后再使用SVM(支持向量機)算法與較權威的MNIST數據集結合識別手寫數字。實驗結果表明,相比于參考文獻中的典型常用算法,該方法大大降低了識別錯誤率,在統計量樣本數比較小的情況下也能獲得較為準確的統計規律,該算法可行且有效。
關鍵詞:機器學習;圖像處理;手寫數字識別;SVM分類算法
圖像是人們日常生活和工作中隨時都會碰到的一種客觀的靜態描述,對數字圖像的深入透徹研究大大方便了我們的生活。目前的對于數字識別的算法主要有K鄰近分類算法[1-3]、BP神經網絡算法[4]。K近鄰分類算法本身簡單有效,不需要分類器進行訓練,但其計算量較大,可理解性差;傳統的BP神經網絡收斂速度慢,網絡和學習記憶不穩定。本文使用SVM分類算法結合MNIST數據集進行數字的識別,SVM(support vector machine)即支持向量機是一種分類算法[5],其優點是在統計量樣本數比較小的情況下也能獲得較為準確的統計規律。本文著手于研究機器識別手寫數字,此手寫數字識別實驗主要分為三個部分:圖像采集、圖像預處理、數字識別。
1 圖像預處理
對于攝取到的圖片進行數字預處理是實驗中重要的步驟之一是實驗得出準確結果的前提。采集信號時,周圍環境以及攝取設備對采集后的圖片影響很大,若不進行圖片預處理,往往很難得出正確結果。步驟如下:
1.1 中值濾波
一幅圖像中,噪聲的出現會使噪聲點處的像素值比其周圍的像素值相差非常多。可把圖像中某一塊的數據中所有像素值按大小順序排列,如此和其他像素值相差很大的噪聲點處的像素就會被排到最前或者最末端,再將排在中間的像素值代替模塊中的中間的目標像素值,便可有效去除噪聲。
1.2 直方圖均衡化
直方圖均衡化著重于圖像灰度級的變換,目的是將圖像灰度增強,它在實際工程中使用比較廣泛。利用直方圖均衡化可以將處理后的圖像實際亮度集中的分布在亮度范圍的中間區域。
1.3 圖像分割
對提取到的圖片進行圖片分割,可將想要得到的數字更清晰的呈現出來。對于最佳閾值的選取,可以采用遍歷像素值[1~254]。
(1)首先人工設置初始閾值Th=Th0將原圖分為兩類;分別計算兩類的類內方差:
(4)
(5)
(6)
(7)
(2)計算兩個區域各自的分布概率
(8)
(9)
(3)像素遍歷選擇選擇最佳閾值,根據以下公式判定
(10)
1.4 形態學濾波
最基本的形態學濾波是腐蝕和膨脹,考慮到手寫數字筆畫可能會很粗不易于后期識別,所以采用膨脹的算法思路。一般膨脹是對二值圖像進行處理,將此放在預處理最后一步。
2 數字識別
得到攝像頭采集并經過處理后的數字圖片后,下一步便是識別。識別數字的方式有很多,本文我們使用支持向量機SVM分類算法來實現手寫數字識別。深度學習一般的解決思路便是將大量實例用于訓練學習,學習后的機器會產生自己的一套識別體系,利用訓練好的系統去識別未知的數字。其中SVM分類算法就是這樣一個基礎的機器學習的思想,在獲得大量樣本進行大量學習形成學習系統之后,機器形成一套自己用來識別手寫數字的規則。隨著樣本數量的增加,算法會學的更加精確,不斷提升自身的準確性。通常對于分類問題,可以將數據集分成三部分:訓練集、測試集、交叉驗證集。用訓練集訓練系統從而生成對數字的學習模型,用后者進行準確性驗證(優化參數)。在ubuntu上,大約運行十分鐘便可以完成訓練和預測測試集的結果。
采用MNIST數據集下載訓練數據和測試文件。要注意,攝像機采集之后,為了增強識別效果,對采集到的數字圖片進行預處理以達到手寫數字圖片庫的數字模式使識別可以更加準確。MNIST數據庫是一個手寫數據庫,它有60000個訓練樣本集,10000個測試樣本集。它是NIST數據庫的一個子集。下載后的文件并不是標準的圖像格式,圖像都保存在二進制文件中,每個樣本圖像的寬高為28*28。在進行編寫匹配程序之前要把其轉換為普通jpg格式的文件。
3 結論
本文從識別手寫數字字符識別入手,通過查閱大量資料得出一套完整的手寫數字識別的方法體系,并且在Windows平臺下,利用計算機視覺庫OpenCv和CodeBlocks環境相結合進行實驗,得出結果準確度高。采用的SVM分類算法與和典型的K鄰近分類算法、BP神經網絡算法相比,識別精度高。但是,在攝取圖片背景復雜、圖片曝光過度或不足、分辨率低的情況下,各算法還需要進一步完善。
參考文獻
[1] 陳振洲,李磊,姚正安. 基于SVM的特征加權KNN算法[J]. 中山大學學報(自然科學版). 2005(01)
[2] 錢曉東,王正歐. 基于改進KNN的文本分類方法[J]. 情報科學. 2005(04)
[3] Yufei Tao,Dimitris Papadias,Nikos Mamoulis,Jun Zhang.An efficient cost model for K-NN search technical report. HKUST . 2001
[4] 王建梅,覃文忠. 基于L-M算法的BP神經網絡分類器[J]. 武漢大學學報(信息科學版). 2005(10)
[5] 奉國和,朱思銘. 基于聚類的大樣本支持向量機研究[J]. 計算機科學. 2006(04)
作者簡介
梁培哲(1997-),女,漢族,鄭州大學物理工程學院電子信息科學與技術專業2014級學生。