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

2022-01-04 11:06:20 +08:00
 sml2h3

今天 ddddocr 又更新啦!

当前版本为 1.3.0

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

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

那么今天,他来了,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 部分应该已经有很多人做了测试,在这里就放一部分网友的测试图片。

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

第二部分 目标检测部分

在本次 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)

举些例子:

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

安装

环境支持

python <= 3.9

Windows/Linux/Macos..

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

安装命令

pip install ddddocr

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

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

6325 次点击
所在节点    Python
50 条回复
cryboy007
2022-01-04 17:19:45 +08:00
赞,之前想爬一个网站。就困在解析验证码来着,看来可以重启之前得项目了
sml2h3
2022-01-04 17:21:25 +08:00
@cryboy007 可以试试哈
hakaei
2022-01-04 17:22:54 +08:00
dddd
huruwo
2022-01-04 17:34:07 +08:00
楼上这也太谨慎了,如果开源识别库被抓的话。那么说实话人工领域也不要发展算了。
什么 语音 图像 视频开源框架统统都要进去了,顺便把机器学习框架开发者一起抓了。
encro
2022-01-04 17:34:11 +08:00
@sml2h3
要有点素材,算法?
huruwo
2022-01-04 17:37:03 +08:00
@encro 还要论文 模型
sml2h3
2022-01-04 17:53:28 +08:00
@encro 我又不是开源训练框架的
sml2h3
2022-01-04 17:54:34 +08:00
@huruwo 哈哈哈,是的没毛病,咱也不是针对某个产商做的,再说了识别又不是破解
fank99
2022-01-04 17:59:56 +08:00
6666
kile
2022-01-04 18:07:44 +08:00
想了半天,这个项目叫点点点点 ocr...
sml2h3
2022-01-04 19:45:08 +08:00
@kile 哈哈哈,带带弟弟
7gugu
2022-01-04 20:57:18 +08:00
厉害👍👍
yxnwh
2022-01-04 21:18:56 +08:00
必须马克一下,厉害了
ClericPy
2022-01-04 22:08:43 +08:00
还没点进去看, 全程离线吗?

突然心疼上个月莫名其妙引战了的内个水友...
llsquaer
2022-01-04 22:29:54 +08:00
哈哈 用了一段时间..牛啊..不用交钱打码了
sml2h3
2022-01-04 22:51:19 +08:00
@ClericPy 是的呀,哈哈哈哈,引战了啥内容突然好奇
sml2h3
2022-01-04 22:51:43 +08:00
@llsquaer 就硬卷
ClericPy
2022-01-04 23:02:07 +08:00
@sml2h3 我还以为你看到了才卷的... 好像是有个水友吐槽了一句 tesseract 不好使(原生没训练的), 然后吐槽标题里写的是 py 不好使... 帖子找不到了, 总之挺惨的
sml2h3
2022-01-04 23:04:44 +08:00
@ClericPy 哈哈哈,是挺惨的
steveway
2022-01-05 00:39:16 +08:00
坐等支持滑块.jpg 不过滑块似乎就不属于 ocr 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826038

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX