冼學(xué)輝 郭少坤
摘要:通過Matlab編程,實現(xiàn)了一個可以識別掃描到計算機里圖片上的英文字母及阿拉伯?dāng)?shù)字的字符識別系統(tǒng),以最小距離法為判決規(guī)則,系統(tǒng)的識別對象為不規(guī)整的印刷體。系統(tǒng)識別通過對樣本進行處理和訓(xùn)練,對識別對象的識別率可達(dá)到近百分之九十。
關(guān)鍵詞:Matlab編程;字符識別;最小距離法;圖像預(yù)處理;特征提取
中圖分類號:TP181 文獻標(biāo)識碼:A 文章編號:1009-3044(2015)13-0184-03
Abstract: Through Matlab programming, the paper show the design of character recognition system, which can recognize the Letters and Arabic numbers from the scaned image that save into computer. The system sets Minimum Distance method as tis decision rule, and the object recognition of the system is printed and irregular. The ratio of identification can reach nearly eighty percent, when the object recognition trained and handled by the system.
Key words: Matlab programming; character recognition; minimum distance method; image preprocessing; feature extraction
模式識別(Pattern Recognition)是人類進行社會活動的一項基本智能。在日常生活中,人們經(jīng)常通過視覺器官和聽覺器官來進行“模式識別”。隨著20世紀(jì)40年代計算機的出現(xiàn)以及50年代人工智能的興起,人們理所當(dāng)然地希望使用計算機來代替人類進行部分腦力勞動。模式識別在20世紀(jì)60年代初得到迅速發(fā)展,并成為了一門相對獨立的新學(xué)科,并廣泛應(yīng)用于生物學(xué)、天文學(xué)、經(jīng)濟學(xué)、醫(yī)學(xué)、工程、軍事、安全等重要領(lǐng)域。
圖像識別(Image Recognition),是模式識別的一個分支,利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標(biāo)和對像的技術(shù)。圖像識別一般以圖像的主要特征為基礎(chǔ),通過對圖像進行處理,排除輸入的多余信息,抽出關(guān)鍵的信息,用圖像識別模型將獲得的信息整理成一個完整的計算機映象。
字符識別研究的對象是如何利用計算機自動辨識存儲在計算機系統(tǒng)中圖片上的阿拉伯?dāng)?shù)字和英文字母。字符識別前景廣闊,能應(yīng)用于汽車牌照的自動識別、文本字符的識別錄入等實際應(yīng)用,涉及到交通、教育和郵政等多個領(lǐng)域。實現(xiàn)字符的自動識別將會給人們在生活和工作上提供極大的便利,推動社會智能化的發(fā)展。
1系統(tǒng)實現(xiàn)概述
1.1基本思路
字符識別系統(tǒng)先對圖像預(yù)處理,然后進行特征的提取與選擇,最后通過分類器的判別進行識別出字符。其中,預(yù)處理包括將模擬圖像進行二值化、去噪、歸一化等過程;特征提取將預(yù)處理好的圖片進行等大小分塊,統(tǒng)計每小塊里“1”的個數(shù),以此作為特征值;分類器以最小距離法作為判決規(guī)則。三個步驟緊密相連,與系統(tǒng)的識別率都息息相關(guān)。
1.2系統(tǒng)模塊介紹
根據(jù)字符識別的過程,字符識別系統(tǒng)可以劃分成三個模塊:圖像預(yù)處理模塊、特征提取模塊和分類模塊。其中,圖像預(yù)處理模塊是在對圖像進行了一系列變換后,把經(jīng)過處理提取到的字符提交給特征提取模塊,由特征提取模塊進行特征的提取與計算,最后由分類模塊對特征值進行識別并給出分類的結(jié)果。
本系統(tǒng)總流程如下圖所示:
2圖像預(yù)處理
為了得到更好的識別效果,需要先對采集得到圖像進行預(yù)處理,圖像預(yù)處理流程如圖2所示:
2.1圖像輸入
本系統(tǒng)訓(xùn)練識別的具體對象為“0”到“9”十個阿拉伯?dāng)?shù)字和“A”、“C”、“D”、“E”、“R”五個大寫英文字母,一共15個類。每一類共有40個36×20像素的jpg格式的圖片,選取每一類的前30個圖片作為訓(xùn)練樣本。使用Matlab提供的imread(file)函數(shù)對15×30個圖片進行讀入操作。
2.2圖像二值化
圖像二值化就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是講整個圖像呈現(xiàn)出明顯的黑白效果。圖像中的每個像素點都會有一個灰度值,灰度值決定了像素的明暗程度。為了對將來能更好地對圖像進行特征值抽取,這里需要對已經(jīng)得到的灰度圖像進行一次二值化處理。圖像二值化很很多成熟的算法,如自適應(yīng)閾值法、給定閾值法等。本文采用的是給定閾值的方法,使用Matlab提供的im2bw(img,r)函數(shù),給定參數(shù)值對圖像進行二值化處理。
2.3去除孤立像點
二值化后的圖像中,圖像的邊角區(qū)域所出現(xiàn)的像點與字符信息無關(guān),應(yīng)予統(tǒng)一去除。另外,字符主體以外的孤立像點、一些小枝條也應(yīng)該先進行處理,以提高后續(xù)圖像處理步驟的效果。在Matlab編程中,先把圖像的四個小塊邊角區(qū)域置0,然后使用bwmorph(img,'clean')去掉其余孤立像點,最后使用bwmorph(img,'spur',Inf)去掉小短枝像點。
2.4中值濾波
圖像在轉(zhuǎn)換或傳輸?shù)倪^程中可能回夾雜了噪聲,去噪聲是圖像處理中常用的手段。本系統(tǒng)采用中值濾波法進行去噪聲。中值濾波法是一種非線性平滑技術(shù),它將每一像素點的灰度值設(shè)置為該點某鄰近域窗口內(nèi)的所有像素點灰度值的中值。本文使用Matlab中的medfilt2(img,[3 3])進行中值濾波的操作。
2.5歸一化調(diào)整
圖像標(biāo)準(zhǔn)化就是要把原來各不相同的字符圖像統(tǒng)一到同一尺寸。因為通過掃描得到的圖像中字符大小會存在較大差異,需要對圖像大尺寸大小進行歸一化處理,使用統(tǒng)一尺寸的字符圖像進識別,標(biāo)準(zhǔn)性更強、識別率自然也就更高。本系統(tǒng)中,在去噪后的圖像中把字符主體以外的空值的行、列給去掉,根據(jù)統(tǒng)一的大小進行放大,然后再做一次去除孤立像點和中值濾波,實行二次去噪。Matlab使用imresize(img,[36,20],method)進行圖像的放大與縮小。其中,參數(shù)method有幾種可選值:'nearest'(默認(rèn)值)最近鄰插值,bilinear'雙線性插值,'bicubic'(本系統(tǒng)使用)雙三次插值。
2.6腐蝕與膨脹
進行腐蝕操作是為了去除圖像中離散的像點,而膨脹操作與腐蝕操作正好相反,是為了填補圖像中的裂縫。本系統(tǒng)采取先腐蝕后膨脹的方法對圖像進行處理。Matlab中腐蝕函數(shù)和膨脹函數(shù)分別為bwmorph(img,'erode')、bwmorph(img,'dilate')。
2.7圖像細(xì)化
圖像細(xì)化是指把具有一定寬度的線條狀的黑區(qū)域消減到一個象素點的寬度每個象素點8近鄰性。細(xì)化在模式識別的前期處理中起著重要的作用,它能從圖象中抽取出字符的特征信息,保存字符的基本結(jié)構(gòu)和特征。本系統(tǒng)使用骨架化函數(shù)對圖像進行細(xì)化。Matlab中骨架化的函數(shù)為bwmorph(img,'skel',Inf)。
3特征值提取
特征值提取是一項極為重要的工作。所選擇的特征合適與否,直接決定著最終識別結(jié)果的好壞。
3.1特征提取分類
1) 模板匹配法
模板匹配法工作原理:對每一個字符圖像指定一個模板,逐一和待識別的字符的點陣圖像距離進行比較,距離最小的模板所對應(yīng)的字符就判定為待識別的字符。模板匹配法的重點在于如何對模板進行設(shè)計。這種方法的優(yōu)點是可以將分割和識別一起完成,缺點對每一個模型反復(fù)變形的過程進行的計算復(fù)雜、檢測的速度慢。
2) 統(tǒng)計特征
基于原始點陣,直接求出能夠反映圖像點陣分布的特征,統(tǒng)計總體情況。字符統(tǒng)計特征主要有兩種:
(1) 基于像素數(shù)量特征;(2) 基于筆畫方向的特征。
(3) 結(jié)構(gòu)特征
結(jié)構(gòu)特征能精確地反映字符的組成結(jié)構(gòu),該方法充分利用字符的結(jié)構(gòu)信息和組成規(guī)律,減少了字符形態(tài)變化與字符筆畫來帶的影響。因此,結(jié)構(gòu)法在分辨相似字這種情況下能力較強。
(1) 基于骨架的結(jié)構(gòu)特征:這種方法對噪聲比較敏感,尤其是當(dāng)字符發(fā)生粘連或斷筆的情況下,效果很差;
(2) 基于輪廓的結(jié)構(gòu)特征:與基于骨架的結(jié)構(gòu)特征不同,這種結(jié)構(gòu)特征的提取不需要經(jīng)過對字符的細(xì)化,而是直接在字符輪廓的上提取字符基元結(jié)構(gòu)特征。
(4) 變換特征
變換特征可以分為一維的變換特征和二維的變換特征。一維變換特征是將字符圖像向X軸方向和Y軸方向進行投影,將二維點陣變成一維數(shù)據(jù),然后再作變換。二維變換特征是在二維圖像的基礎(chǔ)上進行相應(yīng)的變換,再提取變換特征。
3.2 特征提取
本系統(tǒng)使用模板匹配法中的粗網(wǎng)格方法進行特征的提取。在圖像預(yù)處理完畢以后,字符圖片已經(jīng)都被歸一化成36×20的矩陣,需要將矩陣等分為固定數(shù)量的小網(wǎng)格,然后依次統(tǒng)計每一個網(wǎng)格內(nèi)“1” (即黑像素點)的個數(shù),作為這一組網(wǎng)格特征,最后對其進行歸一化處理。
本系統(tǒng)將采用多組劃分方式進行特征提取,并觀察在一定大小的圖像中特征數(shù)(即等分的數(shù)量)的不同對識別率產(chǎn)生的影響。四種等分劃分方式:3×2(共6個特征)、4×4(共16個特征)、9×5(共45個特征)、12×10(共120個特征)。
4分類器
本系統(tǒng)采用的是基于聚類中心的最小距離法。一般情況下,要先通過聚類的方法來確定各個識別類別的代表點(一般取中心點為代表點),然后計算這個代表點與各待測樣本域各代表點距離,并把它歸入與它距離最近的點所屬的類別中。這里的距離一般取馬氏距離、明氏距離或歐式距離等,這種分類器方法簡單而且直觀的特點。如果將各個類別中的全部樣本都作為“代表點”,最小距離法則變成了近鄰法。如果取與待測樣本點最近的一個點作為分類的依據(jù),則為最近鄰法。最近鄰法的優(yōu)點是不用對樣本進行訓(xùn)練,因為要比較待識別樣本點與每個已知樣本點的距離,計算量偏大,當(dāng)樣本總數(shù)較多的時候,識別速度低。
系統(tǒng)實際實現(xiàn)中,我們采用類中心分類器,通過對每個文件夾中前30張圖片的英文字母、數(shù)字樣本的學(xué)習(xí),得到代表各類英文字母、數(shù)字的平均特征向量。進行識別時,先計算待識別字符與各類字符的平均特征向量之間的距離,然后根據(jù)計算出來的距離值來決定待識別點屬于哪一類。
5實驗結(jié)果及分析
實驗樣本集為0~15,共十個數(shù)字和五個英文字母,在MATLAB中編寫字符識別程序,訓(xùn)練樣本為450個,測試樣本為150個。
5.1 特征數(shù)實驗
對矩陣的四種等分劃分方式,3×2(共6個特征)、4×4(共16個特征)、9×5(共45個特征)、12×10(共120個特征),分別訓(xùn)練,然后進行識別,并計算識別正確率。
圖像矩陣劃分的特征數(shù)并不是越多也好。不但不能提高正確率,而且還會減低。在一定大小的圖像里,特征數(shù)越多,每個特征里能包含“1”的容量就越小,此時也就不再具備特征的作用。因此,在實際操作中應(yīng)根據(jù)圖像的實際情況對圖像進行處理。
5.2 圖像預(yù)處理實驗
選取5.1中4×4(共16個特征)和9×5(共45個特征)兩種矩陣劃分方式,測試這兩種方式進行圖像預(yù)處理無不進行圖像預(yù)處理的識別正確率。這里所指的圖像預(yù)處理包括歸一化調(diào)整、腐蝕與膨脹和圖像細(xì)化三部分。
實驗結(jié)果出乎預(yù)料,不經(jīng)過歸一化調(diào)整、腐蝕與膨脹和圖像細(xì)化的正確率,竟然比執(zhí)行這三個操作的正確率要高。這說明了本系統(tǒng)在圖像預(yù)處理這一模塊上還存在著缺陷,圖像預(yù)處理沒有達(dá)到既定的目的,往后本系統(tǒng)應(yīng)該對分類器進行優(yōu)化。
6結(jié)論
本文在前人研究成果的基礎(chǔ)上,在Matlab上實現(xiàn)了基于最小距離法的字符識別系統(tǒng),并進行了兩個對比實驗。實驗結(jié)果表明,本系統(tǒng)對字符的識別能達(dá)到預(yù)期的效果,識別成功率能達(dá)到90%,經(jīng)過改進以后能應(yīng)用于實際。當(dāng)然,本系統(tǒng)存在一些缺點和不足,對圖像預(yù)處理存在缺陷,沒有達(dá)到提高系統(tǒng)的識別率的目的。另外,分類器所采用的判決方法也比較簡單,只使用了直觀的最小距離法??梢圆捎枚喾N方法實現(xiàn)分類器,如神經(jīng)網(wǎng)絡(luò)等??傊?,字符識別算法的性能關(guān)鍵在于分類器上,如何實現(xiàn)零誤識率和低拒識率的高速識別算法是今后的研究目標(biāo),這樣才能使符識別系統(tǒng)在各行業(yè)領(lǐng)域得到進一步的發(fā)展和應(yīng)用。
參考文獻:
[1] 岡薩雷斯.數(shù)字圖像處理[M]. 北京:電子工業(yè)出版社,2006.
[2] 鐘珞,潘昊等.模式識別[M]. 武漢:武漢大學(xué)出版社,2006.
[3] 喬寶明,張曉莉,高志才.基于MATLAB識別0-9數(shù)字圖像的新方法[J].技術(shù)應(yīng)用與研究,2009,30(2):229-233.
[4] 桂林, 周林, 張家祥. Matlab小波分析高級技術(shù) [M].西安:西安電子科技大學(xué)出版社,2006.
[5] 柳回春,馬樹元,吳平東,等.手寫體數(shù)字識別技術(shù)的研究[J].計算機工程.2003,29(4):24-61.
[6] 壬新成,高級圖像處理技術(shù)[M].北京:中國科學(xué)技術(shù)出版社,2001.