『ddddocr』——通用验证码离线本地识别 SDK

2026/06/08 sec ocr · captcha · python · pytorch · validation-bypass 1332 字 · 约 4 分钟 阅读
ddddocr(带带弟弟 OCR)是通用验证码离线本地识别 SDK,支持数字/字母/中文验证码、滑块验证码、目标检测,完全离线免费,基于 PyTorch/ONNX。

项目简介

ddddocr(带带弟弟 OCR)是由 sml2h3 开发的一款开源通用验证码离线本地识别 SDK。它专注于解决验证码识别场景,支持包括数字、字母、中文在内的大多数常见验证码类型,以及滑块验证码的目标检测与边缘匹配。项目完全离线运行,无需调用任何第三方在线 API,在爬虫、自动化测试和安全渗透领域有着广泛的应用。

GitHub 数据

  • 仓库地址: sml2h3/ddddocr
  • Stars: 14,265Forks: 2,283
  • License: MIT
  • 主要语言: Python
  • 最后更新: 2024 年(活跃维护中)
  • 定位: 通用验证码离线本地识别 SDK,支持多种验证码 OCR 识别

核心功能

  1. 基础 OCR 识别:支持数字+字母混合验证码、纯中文验证码识别,开箱即用
  2. OCR 概率输出:可输出识别结果的置信度概率,便于做二次校验
  3. 自定义字符范围:限制识别字符集(如仅数字),提高特定场景准确率
  4. 目标检测:基于目标检测模型定位验证码中的特定元素(如点击式验证码的图标)
  5. 滑块验证码:支持边缘匹配和图像差异比较两种滑块验证码破解方式
  6. 自定义模型导入:允许用户训练和导入自己的 OCR 模型
  7. 多线程批处理:支持批量识别和多线程并行处理,提升吞吐量

技术栈

  • Python:主开发语言,提供 Pythonic 的 API
  • PyTorch / ONNX:深度学习推理框架,ONNX 导出保证跨平台兼容
  • OpenCV:图像预处理(灰度化、二值化、降噪等)
  • Docker:提供容器化部署方案

安装与使用

pip install ddddocr

基础使用:

import ddddocr

ocr = ddddocr.DdddOcr()
with open('captcha.png', 'rb') as f:
    image = f.read()
result = ocr.classification(image)
print(result)  # 输出验证码文本

滑块验证码识别:

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)  # 输出滑块偏移坐标

适用场景

  • 爬虫工程:批量数据采集时自动处理验证码拦截
  • Web 自动化测试:Selenium/Playwright 集成,自动填写验证码
  • 安全渗透测试:验证码绕过能力验证与自动化攻击测试
  • 数据采集系统:配合代理池实现大规模无间断采集

竞品对比

对比项ddddocr超级鹰/YesCaptchaTesserOCRPaddleOCR
运行方式离线本地在线 API离线离线
费用免费按次收费免费免费
验证码优化深度优化支持未优化通用场景
中文支持最佳一般一般优秀
部署体积轻量N/A中等较大

参考资料

文档信息

加载评论…