圖像處理與機器學習(驗證碼的識別)


這個東西,從放寒假的前一天,老師叫我做起,已經快2個月了,開學一個星期后,在陳老師的督促下,算是做的差不多了。

這個的應用領域主要是自動化程序,驗證碼可以說是網絡安全的一道防火牆,自動化程序的難點。

但是,對於這個圖像識別這個技術來說,還遠遠不夠,至於應用的角度,更是狹窄,因此這不是一個終點,恰恰是一個起點。

 

機器學習有監督學習和無監督學習兩種;我這里是監督學習,當然就得我手動的寫每一張驗證碼的正確值了。

 

語言:   python

工具:   opencv

 

總體思路:樣本學習,測試;

1、樣本學習:

  •   首先要對樣本去噪,去噪將干擾線刪除,對於一個像素點來說,他的四周的其余的點,有5個,或者較多的像素點是空白,那么將可以判斷他是噪點,而將他刪除掉。
  •   扭曲矯正,我這里的扭曲矯正,是片面的,真正是很難有較好的效果,對於不同的驗證碼,有不同的特點,有一些驗證碼的產生,就有這樣的特點,角落處,有陰影,這使得字符有扭曲,根據這里,來實現不同程度的扭曲矯正。
  •       切割圖像,將每個字符切割下來,這里也是相對的了,粘連較嚴重即將影響字符的正確。
  •       二進制化圖像,是字符的地方是0,沒有的地方是1(這里相反沒有問題)。生成訓練集。
  •       訓練模型制作,字符,二進制的像素點,joblib持久化保存,將模型保存到本地,進行預測,速度更快。
  •       通過隨機森林算法將樣本數據訓練。


2、測試:

  •   測試的步驟和學習的步驟類似。
  •       通過訓練模型得到的分類結果計算正確率。

最后識別率在100%


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM