7net 驗證碼破解嘗試
目前破解步驟如下,供參考:
1、修正alpha
2、減少色盤
3、二值化影像
4、各別文字拆離
5、嘗試將字體轉正
6、合併回一張新的字圖
7、用現成的 tesseract 破解
8、棄用 tesseract 針對單字改用訓練字體比對,成功率上升到7成左右
心得:
目前成功率大概 75%
6563 OK~
得到 5001 正確~
5055 OK~
9324 突破~
還不錯,在沒訓練的情況下,成效還不錯...
晚上看到 ptt 裡 codejob 版案主丟了 100 個測試檔上來,馬上跑一下 training
嗯…總之把成功率達到 7 成了~
話說把修正的功能也加上來了,越校越準了,很少遇到錯的了...!!!
隨著修正校正的效率大大提升,訓練字變得相當容易~
傍晚、晚上把 php 的程式碼直接翻譯成 java 版本的,寫了 875行總算也是完成了
可以搭配全自動學習功能,超猛!
使用方式也很簡單~~
if (args[0].toLowerCase().equals("-h")) {
log("如果只是單純啟動,就會去7net下載一組驗證碼來跑,並將字母拆成4個字至tmp目錄如 0_r.png~3_r.png");
log("如果加上參數 -h 就會印出目前這些內容");
log("如果執行程式,加上四個數字,如 1234 ,代表上一次的結果 0_r.png ~ 3_r.png 會被定義成訓練檔存到 pics");
log("如果執行程式,加上檔名,如 code.jpg 或 C:\\code.jpg ,會嘗試使用這個影像作辨識");
System.exit(1);
}