聲明:沃貝簽到網(wǎng)站已經(jīng)在10月初歸西糠睡, 但技術(shù)是不過時(shí)的哦。
前言叨B叨
上篇給大家嘮了驗(yàn)證碼識(shí)別的前半部分, 關(guān)注的人還挺多, 我來再多抽點(diǎn)時(shí)間趕緊把后半部分給放出.
終于整理好了第二部分:機(jī)器識(shí)別。GitHub上的代碼不知道大家看了沒析珊,寫的可能沒那么規(guī)范,但是能用敢会。處女座先將就下吧≌庀回頭我有空了重構(gòu)一下鸥昏,再加入些其他的簽到。
言歸正傳姐帚,下面開始介紹圖像識(shí)別部分: 即 !紅框標(biāo)注部分
安裝工具包
安裝Scikit-learn需要先準(zhǔn)備以下包:
Python (>= 2.7 or >= 3.3),
NumPy (>= 1.8.2),
SciPy (>= 0.13.3).
執(zhí)行以下命令安裝必備工具包:
sudo pip install numpysudo pip install scipysudo pip install -U scikit-learn
提取字符特征
讓安裝包飛一會(huì), 我們這會(huì)來先把字符特征提取出來.
大概說一下以下代碼: dirs 是我們前面分好類的圖片路徑, 每個(gè)子文件夾是從0-9, 分別存放了n多處理過的單個(gè)數(shù)字圖片. 這段代碼就是把所有的二值化后的數(shù)字圖片全部讀取出來, 寫入一個(gè)文本文件 train_data.txt, 就是些1和0. 打開文件,調(diào)整下編輯器寬度,可以看到喜人的畫面:
好, 特征文件生成完畢, 接下來開始進(jìn)入關(guān)鍵步驟.
樣本訓(xùn)練
將上一步生成的特征值加載,
這里SVM的模型分類是用scikit-learn來實(shí)現(xiàn)的, 這里SVM的參數(shù)選擇的是線性核"linear", 關(guān)于SVM和scikit-learn, 我還沒有去研究, 這里只是參考別人的方法實(shí)現(xiàn)我識(shí)別驗(yàn)證碼的目的. 如有這方面的高手路過, 還望不吝賜教.
運(yùn)行train()之后, 會(huì)生出captach.pkl訓(xùn)練后的文件, 有了這玩意, 后面就可以直拿來識(shí)別驗(yàn)證碼了.
識(shí)別
下面我們隨便找一張驗(yàn)證碼圖片試試水
看,識(shí)別率杠杠滴
結(jié)語
噠噠~~~驗(yàn)證碼識(shí)別部分就講到這了, 大家有興趣研究可以去GitHub下代碼, 這里我再貼一下:
https://github.com/shark526/WowSign
后面我會(huì)再整理一下其他簽到相關(guān)內(nèi)容,比如說:
解決沃貝簽到那個(gè)坑爹網(wǎng)站不能用密碼登錄.
怎么使用requests去登錄網(wǎng)站簽到.
定時(shí)啟動(dòng)腳本進(jìn)行簽到.
歡迎關(guān)注,歡迎交流.
參考鏈接: