作者f496328mm (123)
看板Python
標題[心得] 分享 台鐵驗證碼辨識/轉文字 package
時間Sun Feb 17 22:35:25 2019
https://github.com/linsamtw/TaiwanTrainVerificationCode2text
分享我開發的 package,台鐵驗證碼( 辨識 )轉文字
可直接 pip3 install TaiwanTrainVerificationCode2text
提供各位開發程式訂票,其中驗證碼破解部分的方法,可直接使用此 package 辨識,不
須再回傳 image 用人工方式辨識。
test data 準確率約為 88%,使用 10 萬張圖進行 training
----------------------------------------------------------
demo :
input
https://imgur.com/aCmz45y.jpg
output
WNBA8S
---------------------------------------------------------
使用方法如下
import os
from TaiwanTrainVerificationCode2text import verification_code2text
from TaiwanTrainVerificationCode2text import work_vcode
from TaiwanTrainVerificationCode2text import download
import TaiwanTrainVerificationCode2text
PATH = TaiwanTrainVerificationCode2text.__path__[0]
import cv2
import matplotlib.pyplot as plt
import random
# 下載我 train 好的 weight,ttf 是驗證碼字形,用於以下生成模擬驗證碼
download.weight()
download.ttf()
# 生成模擬驗證碼
work_vcode.work_vcode_fun(10,'test_data',5)
work_vcode.work_vcode_fun(10,'test_data',6)
file_path = '{}/{}/'.format(PATH,'test_data')
train_image_path = [file_path + i for i in os.listdir(file_path+'/')]
# 隨機取一個當作 demo
image_name = train_image_path[random.sample(range(len(train_image_path)),1)[0]]
# 讀取圖片
image = cv2.imread(image_name)
# 畫圖
plt.imshow(image)
# 辨識,驗證碼轉文字
text = verification_code2text.main(image)
# 印出最後結果
print(text)
ps : 使用 keras 進行建模預測,並將 train 好的 weight 提供下載使用
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.233.85.190
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1550414128.A.575.html
推 vi000246: 感謝佛心大大分享 02/17 23:46
推 alan23273850: 乾 真猛 謝謝大大分享 祝樓主一生平安 02/18 00:35
→ alan23273850: 題外話一下,我兩三年前有嘗試用底層 http protocol 02/18 00:36
→ alan23273850: 自動化流程,可是在那不久之後台鐵就用 javascript 02/18 00:38
→ alan23273850: 混淆器把流程打亂了,現在一直都沒時間修改 02/18 00:38
→ alan23273850: 有大大有這邊 http protocol 的成功經驗嗎 02/18 00:41
程式訂票嗎? 用 requests or selenium 可以實現,selenium 會比較簡單
※ 編輯: f496328mm (118.233.85.190), 02/18/2019 00:52:53
推 nini200: 感謝分享 立馬學習 02/18 00:59
推 alan23273850: 謝謝大大回覆,我原本也想用 selenium,可是那個時 02/18 11:50
→ alan23273850: 候是做成手機App,在Android上好像不適用selenium, 02/18 11:52
→ alan23273850: 不然我再 survey 看看好ㄌ 02/18 11:52
→ alan23273850: 如果把大大 python 的套件應用在 Android 上其實也 02/18 11:53
→ alan23273850: 要花一番功夫。 02/18 11:53
我之前是用 fb chatbot 設計
fb 負責傳遞 訂票需求(keyowrd)、資訊、訂票成功截圖
後端交給 python 處理
基本上手機 app 應該也是,有興趣可以私信討論
※ 編輯: f496328mm (60.248.26.145), 02/18/2019 12:51:43
推 max0616: 感謝分享 02/18 13:03
推 liquidbox: 02/19 20:06
推 uukoQAQ: 謝謝分享 02/20 02:54
噓 XiaoLuu5566: 然後台鐵會在改得更複雜 手動很難嗎 02/20 11:22
推 alan23273850: 坦白說這個要自動重覆訂票才會有用啦 02/20 12:39
→ alan23273850: 對我的project開發很有幫助真的 02/20 12:39