http://blog.csdn.net/conmajia/article/details/7649551
光學圖像識別(OCR)是非常有用的技術。在驗證碼識別、車牌號識別、文字識別方面,基於字符的識別技術算是比較容易上手的了(相比圖文識別)。
閒來看到有朋友研究驗證碼識別,一時手癢,野比自己動手來做做驗證碼識別。當然,肯定只是簡單的驗證碼。
名為驗證碼,實際上並不限於,還可以識別車牌號、身份證號、門牌號等各種亂七八糟的內容。
識別的流程很明確:
1、預處理圖像
2、做y軸的投影
3、分析直方圖分區
4、根據分區拆分圖像為多個字符(很關鍵,拆得越好,後續識別率越高)
5、丟棄空白或無效字符
6、自動旋轉字符(如果有傾斜),識別字符
如果樣本中個圖像有粘連,則可能造成分區不准確。這種情況下,需要進行旋轉,但是怎樣自動旋轉,是個難題。
目前已可拆分出字符,下一步准備研究如何識別。(如果單個字符比較規范,可以利用現成的OCR控件)
這裡有一些例子。
普通的驗證碼(毫無難度)

帶干擾的驗證碼

較高強度干擾(目前使用的分區算法不能解決,需要更好的算法,比如動態閾值)

CSDN的驗證碼(毫無壓力)

身份證號碼

車牌號

補充個QQ驗證碼,用單一閾值方法,識別很困難,需要結合字符寬度進行判斷
這是單一閾值分區的結果(沒有限制寬度),可以看到效果很差。

繼續研究如何優化分區算法,如何識別單個文字(可以考慮多重識別+樣本訓練)。
© 野比 2012
本文介紹了OCR技術的基本流程,包括圖像預處理、字符分區和識別等步驟,並通過具體案例展示了如何進行驗證碼識別。此外,還討論了在不同干擾條件下識別技術的挑戰及改進方法。
7944

被折叠的 条评论
为什么被折叠?



