last update: 29 jun, 2012
注意:目前只是做了簡單的字元拆分。其餘研究已中斷。
光學影象識別(ocr)是非常有用的技術。在驗證碼識別、車牌號識別、文字識別方面,基於字元的識別技術算是比較容易上手的了(相比**識別)。
閒來看到有朋友研究驗證碼識別,一時手癢,野比自己動手來做做驗證碼識別。當然,肯定只是簡單的驗證碼。
名為驗證碼,實際上並不限於,還可以識別車牌號、身份證號、門牌號等各種亂七八糟的內容。
識別的流程很明確:
1、預處理影象
2、做y軸的投影
3、分析直方圖分割槽
4、根據分割槽拆分影象為多個字元(很關鍵,拆得越好,後續識別率越高)
5、丟棄空白或無效字元
6、自動旋轉字元(如果有傾斜),識別字元
如果樣本中個影象有粘連,則可能造成分割槽不準確。這種情況下,需要進行旋轉,但是怎樣自動旋轉,是個難題。
目前已可拆分出字元,下一步準備研究如何識別。(如果單個字元比較規範,可以利用現成的ocr控制項)
這裡有一些例子。
普通的驗證碼(毫無難度)
帶干擾的驗證碼
較高強度干擾(目前使用的分割槽演算法不能解決,需要更好的演算法,比如動態閾值)
csdn的驗證碼(毫無壓力)
身份證號碼
車牌號
補充個qq驗證碼,用單一閾值方法,識別很困難,需要結合字元寬度進行判斷
這是單一閾值分割槽的結果(沒有限制寬度),可以看到效果很差。
繼續研究如何優化分割槽演算法,如何識別單個文字(可以考慮多重識別+樣本訓練)。
驗證碼 簡單驗證碼識別
這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 興之所至之所以說簡單,我覺得是這樣的 抽了五張驗證碼扔進ps,50 透明度,長這樣 只有數字為內容 每張圖的數字都在固定位置 沒有太大的干擾因素 數字字型,形態完...
驗證碼識別
驗證碼識別過程好比人大腦的乙個識別過程 首先,我們的眼睛接收,並將這張的資訊輸送給大腦 然後,我們的大腦接收到這個資訊以後,對這個資訊作出處理 最後,將中的有效資訊提取出來再將其和大腦中儲存的資訊進行對應對比,確定對比結果。模擬驗證碼識別,大腦接受的處理過程就相當於電腦對的預處理,大腦對進行對比和確...
驗證碼識別
import tensorflow as tf 定義乙個初始化權重的函式 def weight variables shape w tf.variable tf.random normal shape shape,mean 0.0,stddev 1.0 return w 定義乙個初始化偏置的函式 d...