python图片验证码ocr识别包—ddddocr
python验证码ocr识别包—ddddocr
目录
一、背景简介
在做项目中,因为涉及到一些爬虫、自动化方面的内容,但现在网站上多少都有一些验证码识别验证。项目需要通过某种技术去自动识别输入验证码。ocr识别就可以解决这类问题
单单对于验证码来说,验证码以干扰等级也有不同划分,简单的验证码,一般体现在验证码图片上无干扰,只有简洁的验证字符。而复杂的验证码则是有不同颜色的线,横穿验证字符。还有就是验证码中的字符凑在一起的情况,这样在识别时,模型很容易就会认为是一个字符。下面则是博主遇到的两种难搞的验证码。
ddddocr是一个python的包,内置了通过大量验证码训练出来的验证码ocr识别模型,python引入后直接可以调用识别验证码。识别率亲测还是蛮高的。对比paddleocr,因为paddleocr主要不是做验证码识别的,所以对复杂的验证码识别不太准确。但是可以通过自己训练ocr模型去使用,也是可以解决一部分问题的。
二、安装
pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple
三、使用
import ddddocr
from PIL import Image
# 读入图片
img = Image.open('test.png')
# 初始化dddocr并识别
ocr = ddddocr.DdddOcr()
result = ocr.classification(img)
print(result)
四、总结
实验一番下来发现,ddddocr对有干扰线类型的验证码识别率很高。看GitHub介绍文档,这是因为其训练的样本包含这种类型的验证码(还得是训练),所以它内置的ocr模型也可以很好的识别出来。此外,ddddocr还可以识别点选验证码、滑块验证码等等,具体可以去ddddocr GitHub项目地址 查看学习。
也发现了不足的地方,就是对于紧凑型验证码并没有很好的识别出来。当然不能要求太高,这是所有ocr识别很难攻克的点(我觉得)。
因为之前也使用过paddleocr去试着识别验证码,但效率不太好。那么如果使用paddleocr针对验证码去做相关的训练,那这样的模型是不是也可以达到同ddddocr差不多的识别率呢?有大佬知道的可以交流下,当然后续有时间也会去学习验证一下这点。
更多推荐
所有评论(0)