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