最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)動態(tài)GIF英數(shù)驗證碼識別示例

 更新時間:2024年01月26日 14:15:46   作者:爬蟲45度  
這篇文章主要為大家介紹了python實現(xiàn)動態(tài)GIF英數(shù)驗證碼識別示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

有哪些特征

  • 由數(shù)字和大寫的英文字母隨機組成

  • 圖片大小100*35

  • 驗證碼的內(nèi)容會上下浮動偶爾會超出上下邊界線,干擾項(也是數(shù)字或字母)從左至右翻滾經(jīng)過驗證碼本身,這兩項會造成干擾

  • 分幀的起始是亂序的,因此想通過切出固定第幾幀來避免干擾不太現(xiàn)實

識別思路

分幀

隨便挑幾張下載下來的gif樣本,來判斷下有多少幀

from io import BytesIO
from PIL import Image
def get_frame_number(binary):
    img = Image.open(BytesIO(binary))
    _num = 0
    while True:
        try:
            a = img.tell()
            _num += 1
            img.seek(a + 1)
        except EOFError:
            break
    print(f'當前gif有{_num}幀')
    return _num
with open('../error_images/08e3e54f0febfe40f314b6f4a07de6b8.gif', 'rb') as f:
    binary = f.read()
get_frame_number(binary)

       經(jīng)過測試,該類型gif圖有25幀,也就是說,可以拆分成25張圖片,對于靜態(tài)的圖片,識別起來就輕松多了

收集樣本及整理字符集

  • 我這里就直接說結(jié)果了,字符集有:數(shù)字2-9,大寫英文:A-Z,其中英文中的大寫I, O 這兩個是沒有的,因為這兩個容易和數(shù)字 0, 1 產(chǎn)生混淆。從這點上來說,開發(fā)者是動了腦子的,減少了折磨,必須點個贊。

  • 建議標注完數(shù)據(jù)集后,對所有標簽過濾下這四個字符

  • 最后是采集了2.2w+的gif圖,然后每張圖切25幀,最后有55w+的靜態(tài)圖,下面是分幀代碼示例:

from io import BytesIO
from PIL import Image
def seek_img(img_name):
    img = Image.open(r'F:\code\hg_gifs\' + img_name)  # F:\code\hg_imgs1\ 是gif圖的路徑
    for i in range(25):
        try:
            b = BytesIO()
            img.save(b, format='png')
            _bytes = b.getvalue()
            img = cv2.imdecode(np.array(bytearray(_bytes), dtype='uint8'), cv2.IMREAD_UNCHANGED)
            png_name = img_name.split('_')[0] + '_' + str(i) + '.png'
            cv2.imwrite(r'F:\code\hg_pngs\{}'.format(png_name), img)  # F:\code\hg_pngs\ 是靜態(tài)圖保存路徑
            img.seek(img.tell() + 1)
        except EOFError:
            pass
rows = os.listdir(r'F:\code\hg_gifs')  # F:\code\hg_imgs1\ 是gif圖的路徑
for row in rows:
    seek_img(row)

訓(xùn)練與識別

訓(xùn)練過程就是把上面切下來的靜態(tài)圖,直接無腦dddd_trainer 訓(xùn)練即可

這里提一句,如果數(shù)據(jù)集質(zhì)量還可以的話,識別的時候?qū)嶋H上沒有必要一張gif圖去識別25次,這里我是step為3一共識別了9次,感覺已經(jīng)夠了

訓(xùn)練完之后小測1000次,成功967次,其中18次是代理超時,967/982≈98.47%,正確率在98%上下,夠用了

以上就是python實現(xiàn)動態(tài)GIF英數(shù)驗證碼識別示例的詳細內(nèi)容,更多關(guān)于python識別GIF驗證碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用python將CSV和Excel表格數(shù)據(jù)導(dǎo)入到Word表格

    使用python將CSV和Excel表格數(shù)據(jù)導(dǎo)入到Word表格

    在不同格式的文檔之間進行數(shù)據(jù)傳輸是非常重要的操作,例如將CSV和Excel表格數(shù)據(jù)導(dǎo)入到Word文檔中,不僅可以實現(xiàn)數(shù)據(jù)的有效整合與展示,還能極大地提升工作效率和文檔的專業(yè)性,本文將介紹如何使用Python將CSV和Excel表格數(shù)據(jù)導(dǎo)入到Word文檔中并創(chuàng)建表格
    2024-09-09
  • tornado+celery的簡單使用詳解

    tornado+celery的簡單使用詳解

    今天小編就為大家分享一篇tornado+celery的簡單使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 使用Python來開發(fā)Markdown腳本擴展的實例分享

    使用Python來開發(fā)Markdown腳本擴展的實例分享

    這篇文章主要介紹了使用Python來開發(fā)Markdown腳本擴展的實例分享,文中的示例是用來簡單地轉(zhuǎn)換文檔結(jié)構(gòu),主要為了體現(xiàn)一個思路,需要的朋友可以參考下
    2016-03-03
  • SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解

    SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解

    這篇文章主要介紹了SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解,Spring是分層的JavaSE/EE應(yīng)用輕量級開源框架,以IoC和AOP為內(nèi)核,提供了展現(xiàn)層 Spring MVC和持久層Spring JDBC以及業(yè)務(wù)層事務(wù)管理等眾多的企業(yè)級應(yīng)用技術(shù),需要的朋友可以參考下
    2023-07-07
  • Python?NumPy隨機抽模塊介紹及方法

    Python?NumPy隨機抽模塊介紹及方法

    這篇文章主要介紹了Python?NumPy隨機抽模塊介紹及方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • Python 和 JS 有哪些相同之處

    Python 和 JS 有哪些相同之處

    Python 是一門運用很廣泛的語言,自動化腳本、爬蟲,甚至在深度學(xué)習(xí)領(lǐng)域也都有 Python 的身影。下面通過本文給大家介紹Python 和 JS 有哪些相同之處,需要的朋友參考下吧
    2017-11-11
  • Python使用multiprocessing創(chuàng)建進程的方法

    Python使用multiprocessing創(chuàng)建進程的方法

    這篇文章主要介紹了Python使用multiprocessing創(chuàng)建進程的方法,實例分析了multiprocessing模塊操作進程的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 淺談pytorch、cuda、python的版本對齊問題

    淺談pytorch、cuda、python的版本對齊問題

    今天小編就為大家分享一篇淺談pytorch、cuda、python的版本對齊問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 解決matplotlib畫圖彈出窗口,但是未響應(yīng)的問題及分析

    解決matplotlib畫圖彈出窗口,但是未響應(yīng)的問題及分析

    matplotlib彈出窗口未響應(yīng)或不出圖,可能因后端配置問題、GUI庫沖突(如Tkinter、PyQt5)或Jupyter環(huán)境兼容性引發(fā),解決方法:更換后端至Agg、使用%matplotlib inline、檢查依賴沖突并更新庫版本
    2025-09-09
  • python?playwrigh框架入門安裝使用

    python?playwrigh框架入門安裝使用

    這篇文章主要為大家介紹了python?playwrigh框架入門的安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

乌审旗| 河曲县| 南岸区| 荆门市| 廉江市| 黄梅县| 那坡县| 西畴县| 马关县| 佛坪县| 贵德县| 新闻| 广德县| 巴彦县| 福鼎市| 瓮安县| 怀柔区| 镇康县| 宁阳县| 黎平县| 荥阳市| 施甸县| 子洲县| 高清| 临桂县| 盖州市| 清水县| 贵州省| 海丰县| 大荔县| 二连浩特市| 长宁县| 响水县| 加查县| 铜梁县| 桂林市| 开原市| 周宁县| 长子县| 名山县| 南京市|