陳宗雄
摘要:介紹了一種簡(jiǎn)易的LED數(shù)字識(shí)別的算法。與傳統(tǒng)的數(shù)字識(shí)別方法相比較,識(shí)別精度較高。該算法對(duì)采集到的4個(gè)數(shù)字字符二值化后的圖像用最近鄰算法,并對(duì)最近鄰得到的結(jié)果的置信度進(jìn)行評(píng)估實(shí)現(xiàn)數(shù)字的識(shí)別。利用該方法時(shí),通過對(duì)置信度的評(píng)估,只有4個(gè)數(shù)字都具有較高置信度的識(shí)別結(jié)果才能被接受,否則單獨(dú)對(duì)某個(gè)字符重新細(xì)化處理,大大提高了識(shí)別的精度。減少因鏡頭模糊,傾斜,光照等因素而造成采集得到的圖像的中字符發(fā)生的旋轉(zhuǎn),粘連,部分缺失而引起的誤識(shí)。在以此算法為基礎(chǔ)對(duì)256幅圖片,每幅圖片上4個(gè)字符的數(shù)字同時(shí)進(jìn)行識(shí)別測(cè)試,正確識(shí)別率達(dá)到97.66%,誤識(shí)率僅為2.34%。實(shí)驗(yàn)表明,該算法在識(shí)別精度、抗干擾性方面表現(xiàn)良好。
關(guān)鍵詞:數(shù)字識(shí)別;最近鄰算法;外接矩形;置信度
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)23-5496-05
數(shù)字識(shí)別是光學(xué)字符識(shí)別(OCR)的一個(gè)重要分支,在車牌號(hào)碼、身份證號(hào)碼、支票號(hào)碼、郵政編碼以及其他編號(hào)識(shí)別方面具有重要的實(shí)用價(jià)值。傳統(tǒng)OCR過程大都包含二值化、去噪、規(guī)整、細(xì)化、輪廓提取、特征提取、字體字符分類等處理步驟,系統(tǒng)運(yùn)行效率較低。許多數(shù)字字符識(shí)別系統(tǒng)為了提高識(shí)別率采用SIFT提取特征[1],Adaboost級(jí)聯(lián)分類器[2]、BP神經(jīng)網(wǎng)絡(luò)來識(shí)別數(shù)字[3][4]、支持向量機(jī)[5]等方式這樣大大增加了算法的復(fù)雜性。在本文中采集到的數(shù)字是由數(shù)碼管顯示的,這些數(shù)字具有一定的規(guī)律,通過對(duì)數(shù)字圖片的樣本的采集分類,直接采用最近鄰算法[6](KNN)就可以實(shí)現(xiàn)對(duì)數(shù)字的識(shí)別了??紤]到相機(jī)拍攝的過程中可能有遮擋,傾斜,光照等一些外觀因素的影響,造成了對(duì)數(shù)字識(shí)別的干擾,使得直接采用傳統(tǒng)的KNN算法在對(duì)數(shù)字識(shí)別過程中的準(zhǔn)確率相對(duì)比較低。為了提高數(shù)字識(shí)別的準(zhǔn)確率,該文通過對(duì)某個(gè)數(shù)字的“鄰居”的個(gè)數(shù)作為該數(shù)字判斷的置信度,只有置信度滿足某個(gè)閾值,才認(rèn)為該數(shù)字的識(shí)別是正確的。這樣就可以避免地低置信度的識(shí)別進(jìn)入到最后的結(jié)果,大大提高了識(shí)別的準(zhǔn)確率。
1 識(shí)別框架
本系統(tǒng)中奶牛奶量的產(chǎn)量會(huì)在LED顯示屏上顯示4個(gè)數(shù)字。故本文所采集圖像雖然一開始不知道該圖片中是否包含有數(shù)字,但是每幅正確采集得到的圖像中應(yīng)該包含4個(gè)LED數(shù)字。所以在識(shí)別數(shù)字之前要對(duì)圖片中是否有數(shù)字以及數(shù)字的個(gè)數(shù)進(jìn)行判斷。通過對(duì)圖像二值化、輪廓提取,定位外接矩形來判斷圖片中是否包含數(shù)字以及每幅圖像包含數(shù)字的個(gè)數(shù)。最后用最近鄰法判斷測(cè)試樣本,并且對(duì)每個(gè)識(shí)別出來的數(shù)字的置信度進(jìn)行評(píng)估,滿足條件的才能認(rèn)為是準(zhǔn)確識(shí)別的,輸出結(jié)果,否則對(duì)該數(shù)字重新處理。
2 識(shí)別算法設(shè)計(jì)
2.1 圖像二值化
首先對(duì)拍攝到的圖像進(jìn)行二值化,形態(tài)學(xué)操作,達(dá)到消除噪聲的目的,使數(shù)字的識(shí)別更加精確。
大津法[7](OTSU)是一種確定圖像二值化分割閾值的算法,由日本學(xué)者大津于1979年提出。從大津法的原理上來講,該方法又稱作最大類間方差法,因?yàn)榘凑沾蠼蚍ㄇ蟮玫拈撝颠M(jìn)行圖像二值化分割后,前景與背景圖像的類間方差最大。
對(duì)于圖像[I(x,y)],前景(即目標(biāo))和背景的分割閾值記作[T],屬于前景的像素點(diǎn)數(shù)占整幅圖像的比例記為[ω0],其平均灰度[μ0];背景像素點(diǎn)數(shù)占整幅圖像的比例為[ω1],其平均灰度為[μ1]。圖像的總平均灰度記為[μ],類間方差記為[g]。
假設(shè)圖像的背景較暗,并且圖像的大小為[M*N],圖像中像素的灰度值小于閾值[T]的像素個(gè)數(shù)記作[N0],像素灰度大于閾值[T]的像素個(gè)數(shù)記作[N1],則有:
采用遍歷的方法得到使類間方差g最大的閾值T,即為所求。
如下圖所示,經(jīng)過二值化后的圖像是比較清晰的。我們可以很方便的從圖片中截取有數(shù)字的區(qū)域作為感興趣區(qū)(ROI,Region Of Interest),減少之后對(duì)圖片處理的運(yùn)算量。
2.3 輪廓獲取[8]
在拍攝過程中的存在各種干擾,導(dǎo)致在圖像中引入很多噪聲。
1) 數(shù)字模糊問題
如下圖所示,可以看到如下的數(shù)字是“1394”,但是由于外在因素導(dǎo)致“9”,“4”這兩個(gè)數(shù)字有些模糊,直接對(duì)輪廓的提取,得到的外接矩形效果如圖,我們可以看到數(shù)字“4”有部分缺失,導(dǎo)致在輪廓的提取中被分割成了3個(gè)獨(dú)立的部分。這樣會(huì)導(dǎo)致在后續(xù)的處理中將數(shù)字“4”當(dāng)作3個(gè)獨(dú)立的數(shù)字處理。這樣在最后的識(shí)別過程中就會(huì)得不到正確的結(jié)果。
3) 數(shù)字粘連問題
因?yàn)閷?duì)數(shù)字的識(shí)別是一組4個(gè)數(shù)字同時(shí)進(jìn)行識(shí)別,只有四個(gè)數(shù)字完全識(shí)別正確,才認(rèn)為最后的識(shí)別結(jié)果是正確的。所以上述的3個(gè)問題會(huì)直接導(dǎo)致我們?cè)趯?duì)數(shù)字識(shí)別錯(cuò)誤。必須采取一系列的措施對(duì)外接矩形的重新定位。
考慮到本文所采集得到的圖像在縮放方面的影響因素比較小,可以采用事先對(duì)每個(gè)數(shù)字的外接矩形進(jìn)行標(biāo)定,之后通過如下算法對(duì)外接矩形進(jìn)行精確的定位。
1) 通過判斷每個(gè)數(shù)字的外接矩形的橫軸中心位置,可以知道如果兩個(gè)矩形的是同一個(gè)矩形,則滿足
導(dǎo)致在對(duì)有效輪廓的判斷是被忽略掉。
采用上述方法對(duì)輪廓提取、外接矩形定位后使得后續(xù)中對(duì)數(shù)字的識(shí)別的準(zhǔn)確度大大提高。
2.3 改進(jìn)的最近鄰算法
近鄰法是根據(jù)樣本提供的信息,繞開概率的估計(jì)而直接決策的方法,是一種非參數(shù)決策方法。直接使用該方法會(huì)導(dǎo)致對(duì)識(shí)別結(jié)果的置信度不能確定,不能估計(jì)該數(shù)字識(shí)別正確的概率有多大。
改進(jìn)后的最近鄰算法如下:
1) 對(duì)處理過的圖像采用傳統(tǒng)KNN識(shí)別,并對(duì)K(本文中K = 21) 個(gè)“鄰居”中每個(gè)可能的結(jié)果的置信度進(jìn)行計(jì)算。計(jì)算公式如下:
[置信度=該數(shù)出現(xiàn)的頻數(shù)N定義鄰居的個(gè)數(shù)K×100%]
2) 對(duì)得到的置信度進(jìn)行評(píng)估,只有滿足以下條件的置信度大于一定的閾值threshold(本文中取threshold = 80)認(rèn)為該數(shù)字的識(shí)別結(jié)果是正確的,輸出結(jié)果。
3) 如果置信度不滿足要求,將此時(shí)識(shí)別的結(jié)果和該結(jié)果對(duì)應(yīng)的置信度保存在數(shù)組possible_array中。并對(duì)該數(shù)字字符重新細(xì)化處理,可以通過膨脹或腐蝕的方式,使得輪廓變得更加清晰,之后轉(zhuǎn)到步驟1。
4) 經(jīng)過上述的一系列處理之后仍然得不到滿足條件的置信度,此時(shí)我們可以查看possible_array數(shù)組,取置信度最高對(duì)應(yīng)的數(shù)字作為最終識(shí)別的結(jié)果。這樣可以保證該數(shù)字的識(shí)別結(jié)果的置信度最高。
下面舉例說明。如圖13所示:
以下是對(duì)256幅圖像進(jìn)行測(cè)試得到的結(jié)果。
3 總結(jié)
本文基于最近鄰算法,通過其“鄰居”的個(gè)數(shù)作為置信度的方法實(shí)現(xiàn)了對(duì)LED數(shù)字的識(shí)別。該方法思路簡(jiǎn)單清晰。對(duì)從攝像頭采集得到的數(shù)字圖像進(jìn)行了預(yù)處理,能夠得到較高識(shí)別準(zhǔn)確率。使用該方法發(fā)生進(jìn)行識(shí)別數(shù)字時(shí),能夠克服LED數(shù)字字符顯示偏暗而造成的對(duì)比度降低,字符的小角度旋轉(zhuǎn)等一些因素的影響。使用該方法造成的誤判時(shí),錯(cuò)誤的來源是,有些LED數(shù)字字符沒有顯示或僅顯示1段而造成該字符的信息過多。同時(shí)該算法由于多次的重新對(duì)圖像的處理,使得整個(gè)識(shí)別的過程比較慢,實(shí)時(shí)性不強(qiáng)。
參考文獻(xiàn):
[1] 張璐.基于印刷體數(shù)字SIFT特征的目標(biāo)識(shí)別[D].成都:電子科技大學(xué),2013.
[2] 趙萬鵬,古樂野.基于Adaboost算法的數(shù)字識(shí)別技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2005,25(10):2413-2417.
[3] 何松,戚建宇.基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識(shí)別[J].計(jì)算機(jī)科學(xué),2011,38(10A):204-205.
[4] 張彤,肖南峰.基于BP網(wǎng)絡(luò)的數(shù)字識(shí)別方法[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué)版,2010,24(3):43-47.
[5] 宋婉娟.基于支持向量機(jī)的手寫數(shù)字串識(shí)別[J].湖北第二師范學(xué)院學(xué)報(bào),2010,27(2):84-86.
[6] Trevor Hastie, Rolbert Tibshirani. Discriminant Adaptive Nearest Neighbor Classification[J].Pattern Analysis and Machine Intelligence, IEEE Transactions on, VOL. 18, NO. 6, JUNE 1996: 607-616.
[7] N. Otsu, A threshold selection method from gray level histograms[J]. IEEE Trans on SYSTEMS, MAN, AND CYBERNETICS. VOL. SMC-9, NO.1.JAN,1979: 62-66.
[8] Bradski G, Kaehler A. Learning OpenCV: Computer vision with the OpenCV library[M].O'Reilly Media, Inc., 2008.
[9] 基于 OpenCV 的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)[M].北京:科學(xué)出版社, 2008.
[10] 陳兵旗,孫明.Visual C++實(shí)用圖像處理[M].北京:清華大學(xué)出版社,2004.