介绍
DdddOcr,其由Sml2h3与 kerlomz 共同合作完成,通过大批量生成随机数据后进行深度网络训练而得,我们可以使用她提供的api,对登录校验码进行识别,能够解决在自动化测试过程中登录需要获取验证码的场景。备注:对于简单的数字和字母组合的校验码识别率还是非常好的,大家可以查看文章中的测试结果。
项目底层支持
本项目基于dddd_trainer 训练所得,训练底层框架位pytorch,ddddocr推理底层抵赖于onnxruntime,故本项目的最大兼容性与python版本支持主要取决于onnxruntime。
环境支持
安装
命令
pip install ddddocr
安装目录说明
ddddocr
├── MANIFEST.in
├── LICENSE
├── README.md
├── /ddddocr/
│ │── __init__.py 主代码库文件
│ │── common.onnx 新ocr模型
│ │── common_det.onnx 目标检测模型
│ │── common_old.onnx 老ocr模型
│ │── logo.png
│ │── README.md
│ │── requirements.txt
├── logo.png
└── setup.py
代码中使用
import ddddocr
ocr = ddddocr.DdddOcr()
with open("识别的图片路径", 'rb') as f:
img_bytes = f.read()
res = ocr.classification(img_bytes)
print('ocr:' + res)
关于ddddocr与playwright结合实现web登录的代码实现,可以参考文章:
playwright+DdddOcr实现带校验码的web登录(附源码)_playwright +ddddocr 滑块验证码-优快云博客
测试结果
针对不同的验证码进行了测试,测试结果如下,给大家提供一下参考(当然验证码设计的易用性和安全性是很难平衡的,这个需要各位同学自行决策)
150张样本图片,识别出149张,可以说完全破解
测试字母(统一进行字母小写处理)+数字组合的验证码,150张样本图片,识别出130张
测试字母(统一进行字母小写处理)+数字组合+阴影和背景色变化的验证码,150张样本图片,识别出102张
测试字母(统一进行字母小写处理)+数字组合+阴影和背景色变化和干扰线的验证码,150张样本图片,识别出65张
测试数字+干扰线的验证码,150张样本图片,识别出99张
测试字母(统一进行字母小写处理)+数字组合+鱼眼的验证码,70张样本图片,识别出0张,但是这种验证码人也很难分辨
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!