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

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

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

可是,對於這個圖像識別這個技術來講,還遠遠不夠,至於應用的角度,更是狹窄,所以這不是一個終點,偏偏是一個起點。安全

 

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

 

語言:   python機器學習

工具:   opencv工具

 

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

一、樣本學習:測試

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


二、測試:blog

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

最後識別率在100%

網絡安全

相關文章
相關標籤/搜索