日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【附源码模型】战网验证码识别

發布時間:2024/3/26 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【附源码模型】战网验证码识别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 樣本采集

首先當然是采集圖片了,對接通用模型上懟樣本就是了。

for i in range(100000):sess.headers = {"User-Agent": ua.random}sess.proxies = get_proxy()# print(get_proxy())before_url = "https://www.battlenet.com.cn/login/zh/"before_resp = sess.get(before_url)before_html = Selector(before_resp.text)csrf_token = before_html.xpath('//input[@name="csrftoken"]/@value').extract_first()session_timeout = before_html.xpath('//input[@name="sessionTimeout"]/@value').extract_first()captcha_url = "https://www.battlenet.com.cn/login/captcha.jpg"captcha_resp = sess.get(captcha_url)captcha_bytes = captcha_resp.contentprint(captcha_bytes)captcha_text = requests.post("http://127.0.0.1:19952/captcha/v3", data=captcha_bytes).json()['message']payload = {"accountName": "00000","password": ".","srpEnabled": "true","upgradeVerifier": "","useSrp": "true","publicA": public_a,"clientEvidenceM1": client_evidence_m1,"persistLogin": "on","captchaInput": captcha_text,"csrftoken": csrf_token,"sessionTimeout": session_timeout}resp_submit = sess.post(before_url, data=payload)if "找不到該暴雪游戲通行證" in resp_submit.text:tag = hashlib.md5(captcha_bytes).hexdigest()name = "{}_{}.png".format(captcha_text, tag)print('正確')true_count += 1with open(os.path.join(target_dir, name), "wb") as f:f.write(captcha_bytes)else:print('錯誤')false_count += 1# print(before_resp.text)print(true_count+false_count, captcha_text, true_count / (true_count+false_count))

采集代碼有所省略,如下圖所示,采集到正確標注的樣本。

2. 訓練

打開訓練工具
(地址:https://github.com/kerlomz/captcha_trainer)
具體教程可參考:https://www.jianshu.com/p/80ef04b16efc

  • 首先輸入項目名,按下回車將自動生成如圖后綴
  • 在樣本區域內導入第一步收集到的樣本
  • 網絡部分會根據導入的樣本自動配置,打包樣本即可,如下圖:
  • 打包完成點擊 【開始訓練】即可,如下圖:
  • 如圖所示,已經開始訓練
  • 驗證碼使用

    部署項目:https://github.com/kerlomz/captcha_platform
    編譯版(一鍵部署):https://github.com/kerlomz/captcha_platform/releases
    啟動成功如圖:

    調用如圖:

    如圖可見,單次識別速度在10ms以內,平均8ms,屬業內領先水準。

    對接官網測試結果:

    測了13次全對,識別率想必差不了。

    模型下載

    https://github.com/kerlomz/captcha_platform/releases

    后記

    順便宣傳一波麻瓜OCR識別
    https://pypi.org/project/muggle-ocr/1.0/
    這是一個OCR和驗證碼皆可識別的本地識別模塊,使用簡單,pip安裝,三行代碼即可調用。

    import time# 第一步:導入包 import muggle_ocr# 第二步:初始化;model_type 包含了 ModelType.OCR/ModelType.Captcha 兩種 sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR)# ModelType.Captcha 可識別光學印刷文本 with open(r"test1.png", "rb") as f:b = f.read() for i in range(5):st = time.time()# 第三步: 調用(識別普通OCR)text = sdk.predict(image_bytes=b)print(text, time.time() - st)# ModelType.Captcha 可識別4-6位驗證碼 sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha) with open(r"test2.jpg", "rb") as f:b = f.read() for i in range(5):st = time.time()# 第三步: 調用(識別驗證碼)text = sdk.predict(image_bytes=b)print(text, time.time() - st)

    喜歡的各位可以加QQ群:857149419

    總結

    以上是生活随笔為你收集整理的【附源码模型】战网验证码识别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。