最新国产好看的视频,伊人天堂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)的圖片,識別起來就輕松多了

收集樣本及整理字符集

  • 我這里就直接說結果了,字符集有:數(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)

訓練與識別

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

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

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

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

相關文章

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

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

    在不同格式的文檔之間進行數(shù)據(jù)傳輸是非常重要的操作,例如將CSV和Excel表格數(shù)據(jù)導入到Word文檔中,不僅可以實現(xiàn)數(shù)據(jù)的有效整合與展示,還能極大地提升工作效率和文檔的專業(yè)性,本文將介紹如何使用Python將CSV和Excel表格數(shù)據(jù)導入到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)換文檔結構,主要為了體現(xiàn)一個思路,需要的朋友可以參考下
    2016-03-03
  • SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解

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

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

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

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

    Python 和 JS 有哪些相同之處

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

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

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

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

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

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

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

    python?playwrigh框架入門安裝使用

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

最新評論

喀喇沁旗| 鄂伦春自治旗| 岳阳市| 永泰县| 若尔盖县| 香港| 祁门县| 乐亭县| 简阳市| 天长市| 乌拉特前旗| 尖扎县| 华池县| 台南市| 宜州市| 石楼县| 山东省| 民乐县| 仲巴县| 增城市| 澳门| 门源| 满城县| 黔江区| 汉源县| 山西省| 南安市| 治县。| 安徽省| 禹城市| 铁岭市| 安图县| 乌拉特后旗| 安国市| 柳州市| 常山县| 玉门市| 九寨沟县| 宜君县| 怀柔区| 宜良县|