推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
sml2h3
V2EX  ›  Python

卷一卷, Python 通用验证码识别库开源

  •  3
     
  •   sml2h3 · Jan 4, 2022 · 8744 views
    This topic created in 1766 days ago, the information mentioned may be changed or developed.

    今天 ddddocr 又更新啦!

    当前版本为 1.3.0

    想必很多做验证码的新手,一定头疼碰到点选类型的图像,做样本费时费力,神经网络不会写,训练设备太昂贵,模型效果又不好。

    市场上常见的点选类验证码图片如下图所示

    Test

    Test

    Test

    Test

    那么今天,他来了,ddddocr 带着重磅更新大摇大摆的走来了。

    简介

    ddddocr 是由 sml2h3 开发的专为验证码厂商进行对自家新版本验证码难易强度进行验证的一个 python 库,其由作者与 kerlomz 共同合作完成,通过大批量生成随机数据后进行深度网络训练,本身并非针对任何一家验证码厂商而制作,本库使用效果完全靠玄学,可能可以识别,可能不能识别。

    ddddocr 奉行着开箱即用、最简依赖的理念,尽量减少用户的配置和使用成本,希望给每一位测试者带来舒适的体验

    项目地址: 点我传送

    更新说明

    本次更新其实分为两部分,其中有一部分是在 1.2.0 版本就已经更新了,但是在这里还是有必要提一下的。

    第一部分 OCR 识别部分

    在 1.2.0 开始,ddddocr 的识别部分进行了一次 beta 更新,主要更新在于网络结构主体的升级,其训练数据并没有发生过多的改变,所以理论上在识别结果上,原先可能识别效果的很好的图形在 1.2.0 上有一小部分概率会有一定程度的下降,也有可能原本识别不好的图形在 1.2.0 之后效果却变得特别好。 测试代码:

    import ddddocr
    
    ocr = ddddocr.DdddOcr()
    
    with open("test.jpg", 'rb') as f:
        image = f.read()
    
    res = ocr.classification(image)
    print(res)
    

    OCR 部分应该已经有很多人做了测试,在这里就放一部分网友的测试图片。

    Test Test Test Test Test Test Test Test Test Test Test Test 等等更多图片等你测试哟~

    第二部分 目标检测部分

    在本次 1.3.0 的更新中,目标检测部分隆重登场! 目标检测部分同样也是由大量随机合成数据训练而成,对于现在已有的点选验证码图片或者未知的验证码图片都有可能具备一定的识别能力,适用于文字点选和图标点选。 简单来说,对于点选类的验证码,可以快速的检测出图片上的文字或者图标。

    import ddddocr
    import cv2
    
    det = ddddocr.DdddOcr(det=True)
    
    with open("test.jpg", 'rb') as f:
        image = f.read()
    
    poses = det.detection(image)
    print(poses)
    
    im = cv2.imread("test.jpg")
    
    for box in poses:
        x1, y1, x2, y2 = box
        im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)
    
    cv2.imwrite("result.jpg", im)
    
    

    举些例子:

    Test Test Test Test Test Test Test

    以上只是目前我能找到的点选验证码图片,做了一个简单的测试。

    安装

    环境支持

    python <= 3.9

    Windows/Linux/Macos..

    暂时不支持 Macbook M1(X),M1(X)用户需要自己编译 onnxruntime 才可以使用

    安装命令

    pip install ddddocr

    以上命令将自动安装符合自己电脑环境的最新 ddddocr

    交流群 (加我好友拉你进群)

    Test

    50 replies  •  2022-01-08 16:28:21 +08:00
    anxn
    anxn
    Jan 4, 2022
    1
    用过 识别效果很不错 支持 lz
    linupy
    linupy
    Jan 4, 2022
    2
    dddd ,yyds
    triangle111
    triangle111
    Jan 4, 2022
    3
    dddd
    dangyuluo
    dangyuluo
    Jan 4, 2022
    4
    赞
    FightPig
    FightPig
    Jan 4, 2022❤️1
    5
    优秀
    Souukou
    Souukou
    Jan 4, 2022 via Android
    6
    厉害。楼主人在国内么,小心被抓啊
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    7
    @Souukou 不做破解呀,数据都是随机合成的,所以识别效果都是玄学随缘
    ppllss
    ppllss
    Jan 4, 2022
    8
    牛皮
    ctro15547
    ctro15547
    Jan 4, 2022
    9
    强啊👍🏻
    wangyu17455
    wangyu17455
    Jan 4, 2022
    10
    6666666
    0o0O0o0O0o
    0o0O0o0O0o
    Jan 4, 2022 via iPhone
    11
    @sml2h3 #7 效果示例图片里有它们家的 logo
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    12
    @0o0O0o0O0o 毕竟识别纯靠玄学,图片里的图标和文字都有可能被检测出来
    streamrx
    streamrx
    Jan 4, 2022 via iPhone
    13
    赞👍
    NBY
    NBY
    Jan 4, 2022
    14
    2022-01-04 13:50:14.024762 [W:onnxruntime:, execution_frame.cc:770 VerifyOutputSizes] Expected shape from model of {1,19} does not match actual shape of {1,27} for output output
    请问怎么把这种报错屏蔽掉
    bbbb
    bbbb
    Jan 4, 2022
    15
    太厉害了
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    16
    @NBY 最新版 1.3.x 应该已经没有问题了
    encro
    encro
    Jan 4, 2022
    17
    一个.onnx 文件叫开源?
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    18
    @encro 要不然呢?
    c1273082756
    c1273082756
    Jan 4, 2022
    19
    牛逼
    lianjin
    lianjin
    Jan 4, 2022
    20
    必须支持下
    cryboy007
    cryboy007
    Jan 4, 2022
    21
    赞,之前想爬一个网站。就困在解析验证码来着,看来可以重启之前得项目了
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    22
    @cryboy007 可以试试哈
    hakaei
    hakaei
    Jan 4, 2022 via iPhone
    23
    dddd
    huruwo
    huruwo
    Jan 4, 2022
    24
    楼上这也太谨慎了,如果开源识别库被抓的话。那么说实话人工领域也不要发展算了。
    什么 语音 图像 视频开源框架统统都要进去了,顺便把机器学习框架开发者一起抓了。
    encro
    encro
    Jan 4, 2022
    25
    @sml2h3
    要有点素材,算法?
    huruwo
    huruwo
    Jan 4, 2022
    26
    @encro 还要论文 模型
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    27
    @encro 我又不是开源训练框架的
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    28
    @huruwo 哈哈哈,是的没毛病,咱也不是针对某个产商做的,再说了识别又不是破解
    fank99
    fank99
    Jan 4, 2022
    29
    6666
    kile
    kile
    Jan 4, 2022
    30
    想了半天,这个项目叫点点点点 ocr...
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    31
    @kile 哈哈哈,带带弟弟
    7gugu
    7gugu
    Jan 4, 2022
    32
    厉害👍👍
    yxnwh
    yxnwh
    Jan 4, 2022
    33
    必须马克一下,厉害了
    ClericPy
    ClericPy
    Jan 4, 2022
    34
    还没点进去看, 全程离线吗?

    突然心疼上个月莫名其妙引战了的内个水友...
    llsquaer
    llsquaer
    Jan 4, 2022
    35
    哈哈 用了一段时间..牛啊..不用交钱打码了
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    36
    @ClericPy 是的呀,哈哈哈哈,引战了啥内容突然好奇
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    37
    @llsquaer 就硬卷
    ClericPy
    ClericPy
    Jan 4, 2022
    38
    @sml2h3 我还以为你看到了才卷的... 好像是有个水友吐槽了一句 tesseract 不好使(原生没训练的), 然后吐槽标题里写的是 py 不好使... 帖子找不到了, 总之挺惨的
    sml2h3
    sml2h3
    OP
    Jan 4, 2022
    39
    @ClericPy 哈哈哈,是挺惨的
    steveway
    steveway
    Jan 5, 2022 via iPhone
    40
    坐等支持滑块.jpg 不过滑块似乎就不属于 ocr 了
    qyzxgl
    qyzxgl
    Jan 5, 2022
    41
    牛哇牛哇,今天开始用了,识别效果不错
    qyzxgl
    qyzxgl
    Jan 5, 2022
    42
    谢谢楼主,上山给你拜拜^_^
    sml2h3
    sml2h3
    OP
    Jan 5, 2022
    43
    @qyzxgl 这就用上了?哈哈哈
    qyzxgl
    qyzxgl
    Jan 5, 2022
    44
    @sml2h3 是啊,好用啊
    janxin
    janxin
    Jan 5, 2022
    45
    dddd ,这个是真的好用
    manyfish
    manyfish
    Jan 5, 2022
    46
    可以,比某麻瓜好用
    sml2h3
    sml2h3
    OP
    Jan 5, 2022
    47
    @manyfish 毕竟新一些,麻瓜开源那会大家都用 tensorflow 比较多,我跟麻瓜作者也好几年朋友啦,ddddocr 的出现麻瓜作者也帮了很多忙
    css3
    css3
    Jan 6, 2022
    48
    sml2h3
    sml2h3
    OP
    Jan 6, 2022
    49
    @css3 貌似不太行,下个版本把这个特征做进去
    css3
    css3
    Jan 8, 2022 via iPhone
    50
    @sml2h3 坐等支持了😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4928 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 96ms · UTC 01:23 · PVG 09:23 · LAX 17:23 · JFK 20:23
    ♥ Do have faith in what you're doing.