雙小川,張 克
(中國礦業大學 計算機科學與技術學院,江蘇 徐州221116)
手寫數字識別是光學字符識別技術領域的重要研究方向,在郵政編碼、財務報表、銀行票據等方面有著廣泛應用。由于手寫數字隨意性大,經常出現連筆、斷筆等現象,識別精度不高。近年來,國內外研究者提出了一些識別方法,大致可分為兩類[1]:基于統計特征和基于幾何結構特征的方法。統計特征通常包括點密度、特征區域等,特點是易于訓練;幾何結構特征通常包括圓、端點、交叉點、輪廓和凹凸性等,特點是可以描述數字的結構。兩種特征各有優劣。幾何結構特征因手寫數字的隨意性而改變,因此需要進行許多細節處理;統計特征可降低書寫隨意性的干擾。
提高手寫數字識別率的重要方法是提取數字的可靠特征和設計對應的識別算法。目前的特征提取方法[2]有逐像素特征提取法[3]、骨架特征提取法[4]和垂直方向數據統計特征提取法[5]等。這些特征提取值因手寫數字的隨意性而產生偏差,需要進行細節處理,往往帶來較大的計算復雜度和識別精確度不高。這些方法適應性不佳[6]。
針對特征提取方法不佳,本文提出了新的特征提取方法,從統計和結構兩方面來提取特征。統計特征包括數字的空間,旋轉和層次特征。其中旋轉特征,改進了以前單一向橫軸或縱軸投影的局限性。可以使手寫數字沿任意直線投影,計算投影在在直線上各區間的像素比例。由于數字的形態不相同,不同數字投影的像素比例不同,從而實現手寫數字的識別。提取手寫數字的結構特征,包括端點、分支點和交叉點。結合統計和結構特征,降低了隨意性的干擾,利用LibSVM算法對提取的數字特征進行訓練識別,達到很高識別率。
手寫數字形變復雜,噪聲多。在提取特征之前,需要對手寫數字進行必要的預處理。本文預處理包括去除圖像噪聲、二值化圖像和提取數字的外界矩形框。
常用的圖像去噪聲方法有鄰域平均法、低通濾波法、中值濾波、小波變換等。小波變換去除噪聲是利用其時頻局部化及小波基選擇靈活性的特點,可以成功地去除信號中局部高頻化的噪聲。本文采用小波變換方法去除噪聲,從而降低了噪聲對特征的干擾。
利用OSTU算法對圖像二值化。OSTU是在判決分析最小二乘法原理的基礎上,推導得出的自動選取閥值的二值化方法。基本思想是將圖像直方圖用某一灰度值分割成兩組,當被分割成的兩組方差最大時,此灰度值就作為圖像二值化處理的閥值。圖像經過二值化后方便計算特征值。
提取數字的外界矩形框。外界矩形框是指包含數字的最小矩形框,如圖1矩形ABCD所示。通過遍歷圖像數組,記錄數字圖像中最左、右、上、下黑點的位置坐標。根據最左和最上黑色像素位置組成矩形框的左上頂點A,最右和最下黑色像素位置組成矩形框的右下頂點C,由此可得外界矩形框ABCD。提取外界矩形框后可以消除手寫數字大小對特征值的影響。

圖1 手寫數字0的外界矩形框
手寫數字特征的選擇是決定識別率的關鍵。當特征值過少時,由于決定性的分類特征太少,使得分類器無法發揮學習分類的功能,造成系統無法辨識。當特征值過多時,除了使系統存儲量變大之外,也會因特征值的某些部分與其他特征值沖突,從而造成系統辨識的誤差。
在大量樣本情況下,每一個手寫數字的統計量都趨于一個常數——概率。width和height分別表示外界矩形框的寬度和高度,M表示投影的區間數,dist表示區間的長度。P(i,j)=1表示數字圖像在位置 (i,j)的像素是黑色,P(i,j)=0表示數字圖像在位置 (i,j)的像素是白色。d為歸一化空間,max(X)和min(X)分別表示特征值xk的最大和最小值。
(1)提取數字圖像的空間特征。將圖像分成m×n塊,統計每塊子圖中的黑色像素數,該步驟產生m×n個特征值。countMN(i,j)表示第 (i,j)塊子圖中的黑色像素總數,max(X,Y),min(X,Y)分別表示countMN(i,j)的最大和最小值。特征值xi,j的計算公式為

(2)提取數字圖像沿橫軸投影的特征。將圖像沿橫軸投影,投影區間M等分,計算落在每等分區間內黑色像素的總數,該步驟產生M個特征值。特征值xk的計算公式為

(3)提取數字圖像沿某一直線投影的特征。橫軸以一定角度θ逆時針旋轉,將圖像沿這條直線投影,投影區間M等分。計算投影在旋轉直線上的每等分區間內黑色像素的總數,該步驟產生 M個特征值。count(k)為第k段投影區間內的黑色像素總數,特征值xk的計算公式為

(4)提取數字圖像沿旋轉直線投影的特征。將步驟3中直線以角度θ繼續逆時針旋轉,圖像沿這條直線投影,投影區間M等分。計算投影在旋轉直線上的每等分區間內黑色像素的總數。重復步驟4直到旋轉次數達到180/θ-1。該步驟產生 (180/θ-1)×M個特征值。特征值xk的計算公式同式 (4)。
(5)提取數字圖像的層次特征。將圖像從中心到邊框分成L層矩形框,即將圖像沿橫軸、縱軸等分成2L段,從圖像最內層開始統計每一層矩形框所包含的黑色像素總數,直到數字的外界矩形框為止。該步驟產生L個特征值。countL(k)為第k層內黑色像素數,特征值xk的計算公式為

(6)提取數字圖像的端點數、分支點數和交叉點數。圖像為二值化的八連接圖像。當連接數為1時,為斷點或邊界點;當連接數為2時,為連接點;當連接數為3時,為分叉點;當連接數為4時,為交叉點。共3個特征值。
通過以上步驟,提取了手寫數字的空間、旋轉、層次和結構四類特征。空間、旋轉、層次和結構特征分別對應于特征提取流程的第1、2-4、5、6步。提取出的特征數有m×n+ (180/θ)×M+L+3個。
圖2(a)將圖像分成2×2塊;2(b)將圖像沿橫軸分成4個投影區間;2(c)是將數字圖像向傾斜角度為θ的直線投影,投影區間分成7段;2(d)將數字圖像分為4層,從內向外分別為第1,2,3,4層。

圖2 數字圖像6的特征提取
手寫數字6(見圖2(a))的統計特征值,設歸一化參數d為20。圖3(a)是手寫數字6在m=4,n=2(4×2=8個特征值)時的特征值曲面圖;圖3(b)是在M=10時向橫軸投影的特征值曲線圖;圖3(c)是在L=4時,矩形框由內向外包含黑色像素的特征值曲線圖。當各參數確定時,手寫數字有相對穩定的特征值曲線和曲面圖。本文是通過這些特征值圖來研究手寫數字的識別。

圖3 手寫數字6對應的統計特征值
目前常用的識別算法有貝葉斯算法[7]、人工神經網絡算法[8]、多分類器組合算法[9]、基于圖論的算法[10]、支持向量機[11]、決策樹和K近鄰算法等。
支持向量機最初于20世紀90年代由VaPnik提出,根據有限的樣本數據在學習能力和模型復雜性間尋求最佳效果,希望獲得最好的應用能力。支持向量機通過非線性映射把樣本空間映射到一個高維甚至無窮維的特征空間中,把樣本空間中非線性可分的問題轉化為在高維特征空間中線性可分的問題。支持向量機主要有升維數和線性化兩步驟。升維數就是把樣本向高維空間映射,向高維空間映射一般會使計算復雜化,SVM應用核函數的展開定理[12]解決了這個問題。線性化是在低維樣本空間中無法線性處理的樣本集,通過線性超平面來實現高維特征空間中的線性劃分。
選擇不同的核函數,可以生成不同的SVM,常用的核函數有以下4種:線性核函數、多項式核函數、徑向基函數、二層神經網絡核函數。本文利用LibSVM對手寫數字分類識別。
手寫數字選自MNIST字體庫,該字體庫包含60 000條訓練數據和10 000條測試數據,圖像像素大小為28×28。實驗選擇其中1500條訓練數據和600條測試數據,部分選取的數據如圖4所示。本文實驗環境:操作系統是Windows XP;CPU是Intel Core 2,主頻是1.66GHz×2;內存是2G。

圖4 部分選取的手寫數字
為驗證組合特征的有效性,提取每類特征后用LibSVM分類算法進行識別。識別率和統計參數的關系如圖5所示。本文為了確定圖像分塊數m×n、區間數M、旋轉角度θ和圖像空間層次L的值,利用LibSVM算法計算三類組合特征的識別率。m,n取值范圍是 [2,8]、旋轉角度是 (0,90]、區間數是 [2,14]、層次數是 [2,8]。LibSVM采用C-SVC分類法并選擇線性核函數、cost=64、eps=0.01、gamma=6.67×10-4。
手寫數字端點數、分支點數和交叉點數不因統計特征而改變,因此沒有識別率與結構特征的關系圖。觀察圖5,當旋轉角度θ=20度、區間數M=7時,僅用旋轉特征和結構特征,其識別率達到極大值98.5%;當分塊數m=5,n=5時,利用旋轉、空間和結構三類組合特征,其識別率達到99.1667%;當層次數L=2時,運用四類特征,其識別率達到99.3333%。計算出組合特征的識別率如表1所示。

圖5 識別率和統計參數的關系

表1 特征組合后利用LibSVM算法的識別率
通過LibSVM計算不同特征的識別率,發現四類組合特征效果明顯,提高了手寫數字識別率。確定組合特征后,由于識別率由圖像分塊數m×n、區間數M、旋轉角度θ和分層數L共同影響。單一增長每個因子的精度時,識別率上升,但到達一定程度后下降。這是因為當特征維數過少,分類算法無法發揮學習分類的功能,當特征維數增加時,識別率上升。當特征數達到一定維數后,特征值之間有冗余和無關屬性。同時特征的維數過高,即手寫數字樣本含有大量的特征時,還會導致:①過多的特征使手寫數字訓練樣本集的數據量過大,分類器構造算法的訓練時間過長。②過多的特征使訓練集的維數過高,經訓練后的分類器數值不穩定,因此分類器的分類準確率會下降。③訓練集特征過多,訓練后的分類器的分類規則復雜,不容易理解。這些使識別率下降。
通過Weka[13]中的分類算法對四類組合特征進行分類識別,由實驗得出各分類算法的識別率和消耗時間如表2所示。表3是國內外學者對MNIST數據庫進行識別的研究成果。

表2 不同分類算法的識別率與消耗時間

表3 現有部分方法對MNIST字體庫的識別率[14]
LibSVM比BP神經網絡的訓練時間、測試時間長。其中BP神經網絡算法的參數hiddenLayers=12,learningRate=0.3,momentum=0.1,trainingTime=10。根據表2可以選取適合需求的分類算法。按最佳參數值提取四類組合特征后,利用LibSVM分類算法得到的識別矩陣如圖6所示。

圖6 LibSVM分類算法的識別矩陣
本文在研究手寫數字識別過程中,提出組合統計和結構特征,參數m、n、M、θ、L取值依次為5、5、7、20、2時識別率達到最大值。LibSVM分類算法的識別率高達99.3333%。
本文介紹了基于統計和結構的手寫數字特征提取理論。統計特征包括空間,旋轉和層次特征;結構特征包括端點、分支點和交叉點特征,提出了旋轉統計特征和綜合了特征提取方法。提取的特征全面表達了數字特點,用以區分不同的手寫數字。通過實驗驗證了特征提取方法的有效性和正確性。然后對組合特征值利用不同的分類算法進行識別,LibSVM算法的識別率最高,超越了以前論文的識別率。以后工作中在如何降低特征的維數和設置算法中最佳的參數值還需要進一步研究。
[1]YANG Zhihua.Novel handwritten numeral recognition based on Radon transform [J].Computer Engineering and Application,2008,44 (30):13-15 (in Chinese).[楊志 華.利用Radon變換實現手寫數字識別的新方法 [J].計算機工程與應用,2008,44 (30):13-15.]
[2]YANG Shuying.Pattern recognition and intelligent computing and Matlab technology [M].Beijing:Electronics Industry Press,2008:29-40 (in Chinese).[楊淑瑩.模式識別與智能計算—Matlab技術實現 [M].北京:電子工業出版社,2008:29-40.]
[3]CHEN Yanping,ZHAO Lei.Minutiae extraction in fingerprint images based on 8neighborhoods region coding pursue pixel[J].Computer Knowledge and Technology,2008,4 (31):932-934(in Chinese).[陳艷平,趙磊.基于8鄰域編碼逐像素跟蹤法的指紋細節特征提取算法 [J].電腦知識與技術,2008,4 (31):932-934.]
[4]LI Zhengguang,WU Liming.Study of skeleton extraction on machine vision recognition of failures for IC wafer [J].Semiconductor Technologys,2007,32 (4):53-56 (in Chinese).[李政廣,吳黎明.骨架提取在IC晶片缺陷機器視覺識別中的研究 [J].半導體技術,2007,32 (4):53-56.]
[5]LIU Chunli,LV Shujing.Bangla handwritten numeral recognition based on blend features [J].Computer Engineering and Applications,2007,43 (20):214-215 (in Chinese).[劉春麗,呂淑靜.基于混合特征的孟加拉手寫體數字識別 [J].計算機工程與應用,2007,43 (20):214-215.]
[6]ZHONG Lehai,HU Wei.A new feature extraction method on handwritten digits recognition system [J].Journal of Sichuan University,2007,44 (5):1000-1004 (in Chinese). [鐘樂海,胡偉.手寫體數字識別系統中一種新的特征提取方法[J].四川大學學報,2007,44(5):1000-1004.]
[7]WEN Shangqing,HAO Zhifeng,LIAO Qin,et al.Intelligent offline handwritten Chinese character recognition based on Bayesian network [J].Computer Aid Edengineering,2006,15 (3):72-89 (in Chinese).[溫尚清,郝志峰,廖芹,等.基于貝葉斯網絡的脫機手寫體漢字智能識別 [J].計算機輔助工程,2006,15 (3):72-89.]
[8]ZHANG Wei,WANG Kejian,QIN Zhen.The research of digital recognition based on artificial neural network [J].Microelectronics &Computer,2006,23 (8):206-208 (in Chinese).[張偉,王克儉,秦臻.基于神經網絡的數字識別的研究 [J].微電子學與計算機,2006,23 (8):206-208.]
[9]GUI Jie,LI Xiaofeng,TANG Lei,et al.Methods of combining multiple classifiers and applications to totally unconstrained handwritten numbers[J].Computer Engineering and Design,2007,28 (11):2633-2636 (in Chinese). [桂杰,李曉風,唐磊,等.多分類器組合及其應用于手寫體數字識別 [J].計算機工程與設計,2007,28 (11):2633-2636.]
[10]HONG Liurong, WANG Yaocai. Handwritten numeral recognition using graph theory and direction information [J].Computer Engineering,2006,32 (3):34-36 (in Chinese).[洪留榮,王耀才.應用圖論和基元方向信息的手寫數字識別[J].計算機工程,2006,32 (3):34-36.]
[11]SHANG Lei,LIU Fengjin.Handwritten number recognition based on support vector machine [J].Ordnance Industry Automation,2007,26 (3):39-41 (in Chinese). [尚磊,劉風進.基于支持向量機的手寫體數字識別 [J].兵工自動化,2007,26 (3):39-41.]
[12]LI Wenqu.Application of SVM in handwritten numeral recognition[J].Journal of Quanzhou Normal University,2010,28 (4):18-21(in Chinese).[李文趨.SVM在手寫數字識別中的應用[J].泉州師范學院學報,2010,28 (4):18-21.]
[13]Witten I H,Frank E.Data mining:Practical machine learning tools and techniques[M].2nd ed.San Francisco:Morgan Kaufmann Publishers,2005.
[14]YANN Lecun.Courant institute NYU [EB/OL].http://yann.lecun.com/exdb/mnist/,2009.