李慧瑩,胡西川
(上海海事大學信息工程學院,上海201306)
在模式識別領域中,印刷體字符識別已經取得了令人滿意的效果,但是對于手寫體字符的識別效果仍然不是很理想。由于手寫體字符的樣本由不同人所寫時,筆跡往往存在巨大差異,造成樣本類別繁多,特征提取困難,導致識別效果無法令人滿意。
脫機識別相較于聯機識別,由于存在噪聲與字符分割的問題,并且無法獲知筆劃順序,會導致識別率大幅降低。對于數字字符識別而言,雖然只有10個類別,但是阿拉伯數字具有世界通用性,不同國家和地域的人在書寫數字時存在很大筆跡上的差異,并且脫機手寫體數字識別多數應用在銀行票據、郵政編碼等準確率要求非常高的領域[1],所以對于脫機手寫體數字識別仍然需要不斷加快識別速度和提高識別準確率。
近年來,脫機手寫體數字識別領域提出了多種不同的分類方法,其中卷積神經網絡在圖像識別上取得了巨大的進步。另外還有部分學者提出的不同改進方法,有陳軍勝提出的基于組合結構特征的方法[2]、任美麗等提出的基于原型生成技術的方法[3]、方向等提出的基于概率測度支持向量機的方法[4]等。
本文重點闡述手寫體數字識別領域中,應用于結構特征提取階段的一種改進方法,利用脫機手寫體數字識別的識別率作為評價指標,與傳統結構特征提取方法進行數據上的對比,來衡量改進程度。
MNIST數據庫是一個公認的手寫數字數據庫[5],由來自柯朗研究所的Yann LeCun、谷歌實驗室的Corin?na Cortes以及微軟研究所的Christopher J.C.Burges共同建立。其中包含60000個訓練樣本和10000個測試樣本,由大約250名作家書寫,并且保證訓練集和測試集是來自不同的作家。MNIST手寫數據庫被公認的一個原因是該數據庫中的數字形態復雜多樣,有些甚至連人眼也很難識別,因此,該數據庫幾乎可以涵蓋每一種手寫情況,使訓練和測試更為可信。該數據庫中每個數字的維度為28×28像素,部分訓練樣本和測試樣本如圖1所示。
本文采用的對比對象是由宋昌統等所發表的《基于概率神經網絡的手寫體數字識別[6]》論文中提出的結構特征提取算法。由于MNIST數據庫中的數字已經完成了字符分割等前期預處理工作,所以本文只從二值化開始討論。本文在對MNIST數據庫中的樣本進行二值化時,選取的閾值統一為0.4×255。在二值化結束之后,MNIST數據庫中的數字字符并沒有對齊邊緣,上下左右皆留有黑色空余位置,所以在二值化之后必須要進行字符的填充放大,使字符上下或者左右對齊邊緣。《基于概率神經網絡的手寫體數字識別》[6]中給出的方案是使字符在保持縱橫比的前提下,進行字符放大,使上下或者左右對齊邊緣,如圖2所示。

圖1 部分訓練樣本和測試樣本數字

圖2 字符放大示意
該論文的特征值由8個結構特征值和6個統計特征值組成。8個結構特征分別由3個縱向特征、3個橫向特征和2個對角線特征組成,其中3個縱向特征值分別選取豎直1/4處、1/2處和3/4處白像素個數總和,3個橫向特征值分別選取水平1/3處、1/2處和2/3處白像素個數總和,2個對角線特征值分別為主對角線和次對角線白像素個數總和,位置示意如圖3所示。

圖3 結構特征取值位置示意
6個統計特征選取區域分別是4個14×14像素區域、1個9×28像素區域和1個28×9像素區域,4個14×14像素區域分別位于左上、右上、左下和右下四個角,9×28像素區域位于水平方向1/3到2/3的位置,28×9像素區域位于垂直方向1/3到2/3的位置,分別統計這些區域內白像素個數之和的0.1倍作為特征值,統計特征選取位置示意如圖4所示。

圖4 統計特征位置選取示意
本文對結構特征的提取方法進行了改進,并相應地對字符放大過程進行了調整,先介紹調整后的字符放大方法。
傳統的字符放大方式如1.2節中所描述,其前提在于保持縱橫比不變,將字符統一到一致的尺寸上。顯然,這種方法對于“高瘦”的字符,會將上下邊緣對齊,如圖2所示;而對于“矮胖”的字符,會將左右邊緣對齊,如圖5所示。

圖5 “矮胖”字符放大示意
本文所提出的字符放大方法的區別在于始終保持字符的寬度不變,單方向地對字符進行縱向拉伸,不論寬度是怎樣的字符都一律只使上下邊緣進行對齊,左右方向不做調整。這種調整方式一方面是配合了改進的結構特征提取方法,另一方面又可在一定程度上抵消字符由于“高矮”所產生的差異。調整過后的方法對于“矮胖”字符處理示意圖如圖6所示,算法的MAT?LAB代碼描述如下:
[x,y]=find(data==1)
data=data(min(x):max(x),:)
data=imresize(data,[28 28])

圖6 調整過后的“矮胖”字符放大示意
在結構特征提取階段,本文將傳統的統計白像素個數總量的方法調整為統計在這一列或這一行中白線條出現的次數,即不區分白線條的粗細,在傳統方法中如果白線條在一列或一行中由多個像素構成時,會累加這每一個像素的值,而改進的方法不論線條的粗細,每出現1次都是視為1,從而規避了線條粗細的影響。如圖7所示,使用改進后的方法提取圖中線條所在列的特征值為4,而傳統的方法提取的特征值為7。

圖7 改進的結構特征取值示意
由于二值化圖像邊緣有時會出現“凹口”,在使用改進的提取方法時會出現不必要的計算值,為了避免這種情況,在計算時,如果出現白線條被一個黑像素阻斷的情況,處理方法是特征值不進行加1,而是繼續保持原值,示意圖如圖8所示,圖中線條所在列的特征值記為3,而不是4。本文提出的結構特征提取方法不進行對角線的特征提取,經部分測試,提取了對角線特征之后,識別率反而降低。改進的結構特征提取方法的MATLAB代碼描述如下:

圖8 被阻斷的線條處理方式示意圖
number=14
f(1:number)=0

MNIST數據庫包含60000個訓練樣本和10000個測試樣本,數據量龐大,為了加快測試速度,分別只選取其中1/10的樣本量做測試,所得識別率僅作測試階段的對比使用,而在最后的數據對比中使用的是全樣本數據。
在字符放大方法中分為“保持縱橫比放大法”和“單方面縱向拉伸法”,結構特征提取方法分為“傳統特征提取法”和“改進特征提取法”[8],經排列組合,共有4種不同的提取方案。在保持其他條件均相同的情況下,對比這4種不同的提取方案。在識別階段使用概率神經網絡[7]作為分類方法,分別對每一種方案尋找各自最佳的擴散速度,記錄4種不同方案的識別率,對比得出最佳方案。實驗數據如表1所示。

表1 4種提取方案識別率對比
由表1數據可以看出,在使用“傳統特征提取法”時,改變字符放大方法不能顯著使識別率得到提升;對于“改進特征提取法”,無論使用哪種字符放大方法,其識別率都比“傳統特征提取法”有較明顯提升;另外還可看出,在使用“改進特征提取法”時,配合單方面縱向拉伸的字符放大法,可以使識別率得到較明顯的提升。
在使用“單方面縱向拉伸法”和“改進特征提取法”的方案中,為了進一步測試得到更優的特征值數量和選取位置,本節使用MNIST數據庫中1/10的樣本數量,不斷調整結構特征和統計特征的數量和選取位置,另外再將統計特征從計算區域內白像素個數之和的0.1倍調整為0.05倍,分別計算出每種不同選取方案下的最佳擴散速度和識別率,本節實驗數據如表2所示。

表2 不同特征值數量和位置選取識別率對比
由表2數據可知,針對于MNIST數據庫的前1/10樣本,橫向結構特征位置選取[4 7 10 13 16 19 22 25]行較佳,縱向結構特征位置選取[5 8 11 14 17 20 23]列較佳,共15個結構特征值。第一類統計特征選取4*4個,每個大小為7×7像素,依次鋪滿整個28×28像素區域,每個7×7的小區域都不重疊。第二類統計特征選取3+3個,前3個大小為9×28像素,平均分布在第4到25行中,后三個大小為28×9像素,平均分布在第5到23列中,此6個統計特征選取位置互相有重疊。以上選取位置的示意圖如圖9所示。
由于上述所有實驗均是使用MNIST數據庫的1/10樣本,對于概率神經網絡的訓練并沒有達到最佳效果,為了得到更為可靠的識別率,本節使用MNIST數據庫中的全部樣本來做訓練與測試,并記錄總體識別率和針對于每個數字的識別率[9]。共進行3次實驗,分別是使用“保持縱橫比放大法”和“傳統特征提取法”,提取8個結構特征值和6個統計特征值,記為“方法一”;使用“單方面縱向拉伸法”和“改進特征提取法”,提取6個結構特征值和6個統計特征值,記為“方法二”;使用“單方面縱向拉伸法”和“改進特征提取法”,并且采用2.2節中得到的特征值數量和選取位置,提取15個結構特征值和22個統計特征值,記為“方法三”。分別計算出三種方法的最佳擴散速度,比較三種方法的識別率,如表3所示。

圖9 特征選取位置示意

表3 全樣本識別率對比
由于“方法三”的識別率在三種方法中最高,故只詳細記錄“方法三”的單個數字識別率,并標出MNIST數據庫中該字符在測試集中的數量,如表4所示。
由表4數據可以看出,對于字符“5”和字符“3”的識別率較低,原因之一是在MNIST數據庫中這兩個字符由不同人所書寫時差異很大,有些甚至連人眼也無法識別,而由于字符“1”的結構特征較明顯,所以對該字符的識別率最高。

表4 單個字符識別率
本文所提出的結構特征改進算法,相較于傳統算法可以使識別率得到提升,而單方向縱向拉伸的字符放大法僅在搭配本文提供的改進方法時才可起到明顯作用。該算法思想還可推廣使用到英文字母等其他字符識別的結構特征提取環節中,相較于傳統結構特征提取方法來說具有一定優勢。
對該提取方案分別添加椒鹽噪聲和高斯噪聲進行噪聲測試[10],經實驗,得出數據,表明不論添加哪種噪聲,都會使識別率有所降低,說明該方法對噪聲的規避能力稍有不足。所以如果圖像有噪聲干擾,需在預處理階段提前對噪聲進行有效清除,才能更好地利用該特征提取方案。
[1]王亞威.手寫體數字識別系統的設計與實現[D].河北科技大學,2015.
[2]陳軍勝.組合結構特征的自由手寫體數字識別算法研究[J].計算機工程與應用,2013,49(5):179-184.
[3]任美麗,孟亮.基于原型生成技術的手寫體數字識別[J].計算機工程與設計,2015(8):2211-2216.
[4]方向,陳思佳,賈穎.基于概率測度支持向量機的靜態手寫數字識別方法[J].微電子學與計算機,2015(4):107-110.
[5]陳明.MATLAB神經網絡原理與實例精解[M].北京:清華大學出版社,2013.
[6]宋昌統,黃力明,王輝.基于概率神經網絡的手寫體數字識別[J].微型電腦應用,2016,32(10):14-15.
[7]Parberry I.Probabilistic Neural Networks[J].Neural Networks,1994,3(1):109-118.
[8]C Dan,U Meier.Multi-Column Deep Neural Networks for Offline Handwritten Chinese Character Classification[J].International Joint Conference on Neural Networks,2015:1-6.
[9]XY Zhang,Y Bengio,CL Liu.Online and Offline Handwritten Chinese Character Recognition:A Comprehensive Study and New Benchmark[J].Pattern Recognition,2016,61(61):348-360.
[10]Wang Liang,Leckie C,KotagiriR,eta1.Approximate Pair-wise Clustering for Large Data Sets Via Sampling Plus Extension[J].Pattern Recognition,2011,44(2):222-235 .