ddddocr:强大的开源OCR库(2.0版本)

ddddocr(使用指南new)

ddddocr是一个开源的通用验证码识别工具,旨在通过最简依赖实现高效的验证码识别。以下是ddddocr的使用指南:

1. 环境支持

ddddocr支持多种操作系统和Python版本:

系统CPUGPU最大支持Python版本备注
Windows 64位3.12部分版本Windows需要安装VC运行库
Windows 32位××
Linux 64 / ARM643.12
Linux 32××
macOS X643.12M1/M2/M3芯片参考Issue #67

2. 安装方法

您可以通过以下两种方式安装ddddocr:

从PyPI安装:

pip install ddddocr

从源码安装:

git clone https://github.com/sml2h3/ddddocr.git
cd ddddocr
python setup.py install

注意:请勿直接在ddddocr项目的根目录内使用import ddddocr,确保您的开发项目目录名称不为ddddocr。

3. 基础OCR识别

ddddocr主要用于识别单行文字,如常见的英数字符验证码等。

示例代码:

import ddddocr

ocr = ddddocr.DdddOcr()
with open("example.jpg", "rb") as f:
    image = f.read()
result = ocr.classification(image)
print(result)

切换OCR模型:

ddddocr内置两套OCR模型,默认情况下不会自动切换。您可以在初始化时通过参数进行切换:

import ddddocr

ocr = ddddocr.DdddOcr(beta=True)  # 切换为第二套OCR模型
with open("example.jpg", "rb") as f:
    image = f.read()
result = ocr.classification(image)
print(result)

处理透明背景的PNG图片:

对于部分透明黑色PNG格式图片的识别,使用png_fix参数:

result = ocr.classification(image, png_fix=True)

注意:请避免在每次OCR识别时重新初始化ddddocr,即每次都执行ocr = ddddocr.DdddOcr()。通常来说,只需初始化一次即可,因为每次初始化和初始化后的第一次识别速度都较慢。

4. 目标检测功能

ddddocr还提供目标检测功能,用于快速检测图像中的目标主体位置。

示例代码:

import ddddocr
import cv2

det = ddddocr.DdddOcr(det=True)
with open("test.jpg", "rb") as f:
    image = f.read()
bboxes = det.detection(image)
print(bboxes)

im = cv2.imread("test.jpg")
for bbox in bboxes:
    x1, y1, x2, y2 = bbox
    im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)
cv2.imwrite("result.jpg", im)

5. 滑块验证码检测

ddddocr提供滑块验证码检测功能,适用于不同类型的滑块验证码。

算法1:通过滑块图像的边缘在背景图中计算找到相对应的坑位。

import ddddocr

det = ddddocr.DdddOcr(det=False, ocr=False)
with open('target.png', 'rb') as f:
    target_bytes = f.read()
with open('background.png', 'rb') as f:
    background_bytes = f.read()
res = det.slide_match(target_bytes, background_bytes)
print(res)

算法2:通过比较两张图的不同之处判断滑块目标坑位的位置。

import ddddocr

slide = ddddocr.DdddOcr(det=False, ocr=False)
with open('bg.jpg', 'rb') as f:
    target_bytes = f.read()
with open('fullpage.jpg', 'rb') as f:
    background_bytes = f.read()
res = slide.slide_comparison(target_bytes, background_bytes)
print(res)

6. 自定义OCR模型导入

ddddocr支持导入自定义训练的OCR模型。

示例代码:

import ddddocr

ocr = ddddocr.DdddOcr(
    det=False,
    ocr=False,
    import_onnx_path="myproject.onnx",
    charsets_path="charsets.json"
)
with open('test.jpg', 'rb') as f:
    image_bytes = f.read()
res = ocr.classification(image_bytes)
print(res)

7. 版本控制

该项目使用Git进行版本管理。您可以在GitHub仓库查看当前可用版本。

8. 相关资源

ddddocr GitHub仓库:ddddocr项目的官方仓库,包含最新的代码、文档及问题追踪。
dddd_trainer GitHub仓库:自定义训练模型的工具库,用于扩展ddddocr的功能。

总结
ddddocr 是一个高效且易于使用的验证码识别和目标检测工具,适合多种场景的快速集成和使用。通过丰富的接口和简化的操作流程,开发者可以在多种环境下灵活部署该工具。同时,提供的滑块验证功能和自定义模型支持使得ddddocr具备更高的扩展性。如果您需要高性能的验证码识别解决方案,ddddocr是一个值得尝试的选择。

推荐使用场景:

通用的字符验证码识别。
图片目标检测和框选。
滑块验证码的快速定位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值