DDDD OCR WEB - 验证码自动识别

Created at 3 months ago
Updated at 3 hours ago
自动检测并识别页面验证码,自动填充到输入框。首次使用需设置白名单,会自动下载约50MB模型文件以及20MB左右的ONNX推理运行时文件。
Total Installs
1,535
Today's New
+0
User Rating
- / 5.0 (0)
Current Version
1.1.3-2026/2/9 02:21:17
Script Details
Applicable Sites
LicenseMIT
logo

DDDDOCR WEBJS

typescript

onnxruntime-web
ddddocr

使用 ddddocr 模型开发的浏览器验证码识别助手,使用 ONNX Runtime Web 在浏览器中识别验证码,支持油猴脚本,浏览器扩展。完全离线,不需要任何云服务以及后端服务的验证码识别,保护您的隐私安全。

由于浏览器的限制以及扩展的限制,模型文件和字符集全部存储与浏览器IndexedDB中,考虑到会占用大量存储,不建议关闭站点白名单使用。如果有需要,建议使用浏览器扩展版本。

脚本建议使用场景:单个站点频繁输入验证码/单个站点频繁测试

截止2026-01-28,浏览器扩展版本已经通过edge浏览器应用商店的审核,现在已经可以通过应用商店安装:https://microsoftedge.microsoft.com/addons/detail/lbdjhikpmfggijmddllmekoepdkhfanl
Chrome应用商店由于注册账号需要支付5美刀,本项目也是非盈利项目,所以没有上架,Chrome浏览器只能通过开发者模式安装浏览器扩展。

截止2026年2月9日,正式支持火狐浏览器,火狐浏览器支持v140+版本

✨ 特性

  • 🚀 浏览器内运行,无需后端
  • 💾 自动缓存模型到 IndexedDB
  • 🌐 支持多个 GitHub 镜像站
  • 📦 支持离线模式
  • 🎨 支持油猴,脚本猫等浏览器扩展
  • 🎯 支持浏览器扩展

📦 安装

怎么选安装方式

Chrome系的浏览器直接使用扩展。

类型 安装方式 传送门 描述
浏览器扩展 Edge应用商店 Edge Edge浏览器浏览器扩展
浏览器扩展 FireFox应用商店 FireFox FireFox/WaterFox/Zen浏览器浏览器扩展(内核大于140都可以安装使用)
油猴脚本 Chrome/Edge/Firefox ScriptCat 支持油猴/脚本猫等浏览器扩展,只要支持浏览器扩展就能用
浏览器扩展 仓库安装 Github 直接下载压缩包文件,解压后安装浏览器扩展

在线安装

Userscript

  1. 安装 TampermonkeyViolentmonkey或者ScriptCat 等油猴插件
  2. 安装脚本: 在Greasy Fork脚本市场、ScriptCat脚本市场中搜索 "DDDD OCR WEBJS" 安装
  3. 等待脚本加载完毕,打开设置页设置白名单(必须)
  4. 浏览器扩展版本目前还没有上架,请等待后续更新

EXTENSION

  1. Edge Browser 用户打开链接: https://microsoftedge.microsoft.com/addons/detail/lbdjhikpmfggijmddllmekoepdkhfanl
  2. 点击安装按钮,等待安装完成
  3. 安装完毕回打开扩展设置页,根据需要对扩展进行设置

Google Chrome / Firefox 用户暂时不支持在线安装,请自行下载扩展包安装

编译安装

Userscript

  1. 下载模型文件:
  2. 放到你能找到的目录,后续导 入到脚本中(需要开启扩展的 允许访问文件URL
  3. git clone https://github.com/MakotoArai-CN/ddddocr-webjs.git && cd ddddocr-webjs,构建: bun run install && bun run build
  4. 安装 dist\userscript\ddddocr-web.user.js,浏览器扩展开启开发者模式后,选择目录dist\extension即可安装
  5. 等待脚本加载完毕,打开设置页设置白名单(必须)

1.1.3版本开始添加量化模型,模型体积减少约48%,可以在最新版本的Release中下载

EXTENSION

  1. 拉取仓库源代码编译
  git clone https://github.com/MakotoArai-CN/ddddocr-webjs.git
  cd ddddocr-webjs

  bun run install
  bun run build
  1. 打开浏览器扩展页面,开启开发者模式,选择目录dist\extension(FireFox选择dist\firefox),等待安装完成
  2. 安装完毕回打开扩展设置页,根据需要对扩展进行设置

🛠️ 开发

# 安装依赖
bun install

# 开发模式
bun run dev

# 构建脚本
bun run build

# 构建全部
bun run build:all

📖 使用

Userscript

  1. 访问任意网页
  2. 右上角出现 "DDDD OCR" 面板
  3. 点击扩展,找到 "DDDD OCR" 面板的打开设置,配置脚本白名单
  4. 等待模型加载完毕(首次加载需要下载模型,可能需要几分钟)

EXTENSION

  1. 访问任意网页的的登录页
  2. 如果扩展没有识别到验证码和验证码输入框,请扩展窗口
  3. 点击选择验证码或者验证码输入框,根据提示进行选择,选择完毕会自动识别

注意事项

  • 默认使用白名单模式,在线下载模型,模型下载可能比较慢,请耐心等待
  • 目前项目没有经过充分测试,不保证兼容性
  • 项目使用AI辅助开发(其实都是AI干了🤐)部分功能可能无效或者没做,也不保证其安全性,有能力的可以自行检查,重新编译。
  • 项目对vue/react/angular等前端框架的支持还没有经过严谨测试(因为我也找不到测试环境),请等待后续新版本更新支持
  • 考虑到编译含有三方库,因此编译后的脚本默认清理了注释,并开启优化,压缩等,如需调试,请注释terser后编译

量化模型跑分

该成绩来自 https://github.com/MakotoArai-CN/ddddocr-webjs/tree/main/benchmark.ts

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  🏆 TOP 10 MODELS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Rank Model                               Score  CharAcc  ExactAcc   AvgMs   P95Ms    Load    Size
  ─────────────────────────────────────────────────────────────────────────────────────────────────
  #1 common_q8_static_full_entropy...     94.4    88.9%     76.0%     6.3     7.2   109ms   25.0M
  #2 common_q8_qoperator.onnx             93.6    88.0%     75.0%     7.1     7.8    98ms   27.6M
  #3 common_q8_conservative.onnx          93.4    87.9%     74.5%     7.4     8.4    96ms   27.6M
  #4 common_q8_static_percentile.onnx     92.9    88.3%     75.0%     7.1     7.8   109ms   27.6M
  #5 common_q4_nbits_asym.onnx            92.7    90.4%     77.5%    11.5    12.5    93ms   24.5M
  #6 common_q8_pertensor.onnx             92.1    86.9%     73.5%     7.0     7.9   105ms   27.5M
  #7 common_q8_balanced.onnx              92.0    88.0%     75.0%     7.3     8.5   108ms   27.6M
  #8 common_q8_mixed_precision.onnx       90.9    87.9%     74.5%     7.2     8.5   104ms   27.6M
  #9 common_q4_nbits.onnx                 90.8    90.4%     77.5%    11.8    12.8    90ms   24.5M
  #10common_q4_nbits_b128.onnx            90.7    86.5%     74.0%    11.7    13.1    88ms   23.8M
  ─────────────────────────────────────────────────────────────────────────────────────────────────

Todolist

  • 新增浏览器扩展
  • 添加更多设置选项
  • 适配vue/react等前端框架
  • 修正脚本执行顺序,实现模块化
  • 适配动态生成的弹窗中的验证码
  • 适配火狐浏览器扩展
  • 对DDDDOCR模型进行量化,减少模型体积
  • 排查修复潜在的安全漏洞
  • 新增支持自定义排除元素关键字
  • 优化浏览器扩展UI设计

📝 许可

本项目沿用原项目 ddddocr 的许可证MIT License

更新日志

  • V1.1.4

  • 添加量化模型,模型体积减少约48%,量化项目还有待优化,暂时不开源

  • 针对浏览器扩展版本新增网站黑名单,不需要识别的网站不会再触发识别

  • 新增规则自定义(高级功能),除非你知道你在干什么,否则内置的规则够用了

  • 修复任意网站非验证码触发识别的bug

  • V1.1.3

    • 修复验证码存在连续字符时会被过滤的bug
    • 优化验证码元素组件识别逻辑
    • 优化浏览器扩展UI,美化样式
    • 优化移动端浏览器扩展UI
  • V1.1.2

    • 修复部分站点登录弹窗无法识别验证码的bug
    • 修复部分站点验证码输入框错误识别的bug
    • 修复调试模式没有日志的bug
    • 新增元素猜测功能,选择验证码元素后,程序会尝试猜测验证码输入框元素,反之亦然
    • 新增用户协议自动勾选用户协议/隐私协议功能
    • 新增识别统计功能
    • 完善保存的网站规则,支持单个域名多个路由规则
    • 优化油猴脚本UI布局,删除emoji
    • 优化输入框识别逻辑,增强识别率
  • V1.1.1

    • 修复单页面多个验证码只能识别一个的bug
    • 新增四则运算验证码识别后自动计算结果的支持
    • 新增打字机效果开启/关闭支持
    • 新增浏览器通知开关(后续版本可能简化或删除)
    • 尝试修复vue/react等前端框架的兼容性问题(beta)
  • V1.1.0

    • 重构部分核心,使项目兼容浏览器扩展
    • 优化自定义选择器,(可能)支持更多的的验证码场景识别
    • 新增浏览器扩展版本,目前只对Chrome系列支持,火狐家族暂时不支持
  • V1.0.2-beta

    • 修复首次加载没有等待验证码加载完毕就开始识别的bug
    • 修改wasm CDN为cdnjs.cloudflare.com,提高兼容性
    • 优化代码逻辑,提高可读性
  • V1.0.1

    • 修复在任何站点都加载模型的bug
    • 修复程序逻辑,优先加载操作菜单
    • 新增离线上传模型功能
    • 新增更多类别验证码识别支持
  • V1.0.0

    • 初版发布
    • 支持ONNX Runtime Web在浏览器中识别验证码

📄 鸣谢

常见问题

Q:为什么识别不准确?

A:识别准确率是由模型决定的,如需定制,请自行使用DDDDOCR模型训练项目训练专属模型

Q:为什么识别速度很慢?

A:这很有可能是浏览器的问题,Chrome系浏览器建议使用浏览器扩展,火狐系浏览器不会存在这个问题

Q:这样的验证码可以识别吗?

A:详见第一条QA

Q:能不能识别并计算四则运算验证码?

A:可以的,但是需要设置

Q:是否支持拖拽,点选验证码?

A:本项目目前只支持纯文字验证码识别,拖拽,点选后期可能会考虑支持,但是我由于上班,维护项目的时间并不多,所有可能遥遥无期。

小声喵喵

使用AI开发很好,很快,但是实际上,提示词写了又写,代码写了又回滚写了又回滚。基本上要写很久才会有让我满意的代码产出,毕竟AI的代码产出不是很稳定,可能这一次很好,下一次就不好。反正肯定是要跟AI斗智斗勇,如果直接使用,那么项目基本上会乱七八糟的。

我是干运维的,我也比较懒,这个项目是出于方便运维使用而开发的小玩具,最早的版本其实是油猴脚本都是自己在用。后来发现还是有很多人需要就改造了,最开始没考虑啥安全性什么的,但是用的人多了,这方面后续会跟进。大家有啥意见或者建议可以在项目中提交issue或者PR,我看到会处理。

如果觉得这个项目不错,可以给我点个star,鼓励一下,你的star就是我更新的动力🤗

Star History

Star History Chart