字元識別練習(驗證碼 車牌號 身份證號等)

2021-06-07 01:24:10 字數 1278 閱讀 5174

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...