Mieru-OCR - 验证码自动识别
使用 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
- 安装 Tampermonkey、Violentmonkey或者ScriptCat 等油猴插件
- 安装脚本: 在Greasy Fork脚本市场、ScriptCat脚本市场中搜索 "Mieru-OCR" 安装
- 等待脚本加载完毕,打开设置页设置白名单(必须)
- 浏览器扩展版本目前还没有上架,请等待后续更新
EXTENSION
- Edge Browser 用户打开链接: https://microsoftedge.microsoft.com/addons/detail/lbdjhikpmfggijmddllmekoepdkhfanl
- 点击安装按钮,等待安装完成
- 安装完毕回打开扩展设置页,根据需要对扩展进行设置
Google Chrome / Firefox 用户暂时不支持在线安装,请自行下载扩展包安装
编译安装
Userscript
- 下载模型文件:
- 放到你能找到的目录,后续导 入到脚本中(需要开启扩展的 允许访问文件URL )
git clone https://github.com/MakotoArai-CN/Mieru-OCR.git && cd Mieru-OCR,构建:bun run install && bun run build- 安装
dist\userscript\Mieru-OCR.user.js,浏览器扩展开启开发者模式后,选择目录dist\extension即可安装 - 等待脚本加载完毕,打开设置页设置白名单(必须)
1.1.3版本开始添加量化模型,模型体积减少约48%,可以在最新版本的Release中下载
EXTENSION
- 拉取仓库源代码编译
git clone https://github.com/MakotoArai-CN/Mieru-OCR.git
cd Mieru-OCR
bun run install
bun run build
- 打开浏览器扩展页面,开启开发者模式,选择目录
dist\extension(FireFox选择dist\firefox),等待安装完成 - 安装完毕回打开扩展设置页,根据需要对扩展进行设置
🛠️ 开发
# 安装依赖
bun install
# 开发模式
bun run dev
# 构建脚本
bun run build
# 构建全部
bun run build:all
📖 使用
Userscript
- 访问任意网页
- 右上角出现 "Mieru-OCR" 面板
- 点击扩展,找到 "Mieru-OCR" 面板的打开设置,配置脚本白名单
- 等待模型加载完毕(首次加载需要下载模型,可能需要几分钟)
EXTENSION
- 访问任意网页的的登录页
- 如果扩展没有识别到验证码和验证码输入框,请扩展窗口
- 点击选择验证码或者验证码输入框,根据提示进行选择,选择完毕会自动识别
注意事项
- 默认使用白名单模式,在线下载模型,模型下载可能比较慢,请耐心等待
- 目前项目没有经过充分测试,不保证兼容性
- 项目使用AI辅助开发(其实都是AI干了🤐)部分功能可能无效或者没做,也不保证其安全性,有能力的可以自行检查,重新编译。
- 项目对vue/react/angular等前端框架的支持还没有经过严谨测试(因为我也找不到测试环境),请等待后续新版本更新支持
- 考虑到编译含有三方库,因此编译后的脚本默认清理了注释,并开启优化,压缩等,如需调试,请注释terser后编译
Todolist
- 模块化开发
- 支持滑块验证码,点选验证码
- 新增浏览器扩展
- 添加更多设置选项
- 适配vue/react等前端框架
- 修正脚本执行顺序,实现模块化
- 适配动态生成的弹窗中的验证码
- 适配火狐浏览器扩展
- 对DDDDOCR模型进行量化,减少模型体积
- 排查修复潜在的安全漏洞
- 新增支持自定义排除元素关键字
- 优化浏览器扩展UI设计
📝 许可
本项目沿用原项目 ddddocr 的许可证MIT License
更新日志
1.2.0
- 浏览器扩展新增模型自定义上传,目前仅支持 ddddocr 模型
- 新增输入框输入焦点开关,不在抢焦
- 新增规则订阅功能,识别规则直接云端共享
- 新增诊断报告导出功能[注:该功能目前为测试性功能]
- 新增右键功能,右键可进行识别(仅扩展有该功能)
- 优化模型兼容性,模型训练,优化项目很快会推出。
1.1.6
- benchmark 新增稳定数据集导出能力(
--dataset-dir/captchas.json) - 默认配置补齐高级关键词与交互式能力相关字段
- 设置页高级规则改为 chips 交互
- 内置关键词支持删除,并可一键重置
- 设置页主题切换改为自动 / 浅色 / 深色三态按钮
- 配置导入 / 导出补齐完整 settings / siteRules / recognitionStats
- Firefox 设置页与 Chrome 设置页保持对齐
- 持续优化验证码检测与输入框误识别场景
- 模型改用量化的模型
- 新增 i18n 支持 , 目前支持中日英三语
- 油猴脚本版本功能跟进浏览器扩展版本
- benchmark 新增稳定数据集导出能力(
V1.1.5
- 修复复选框全部勾选的bug
- 新增协议元素自定义功能
V1.1.4
- 添加量化模型,模型体积减少约48%,量化项目还有待优化,暂时不开源,模型可以在models文件夹中下载
- 针对浏览器扩展版本新增网站黑名单,不需要识别的网站不会再触发识别
- 新增规则自定义(高级功能),除非你知道你在干什么,否则内置的规则够用了
- 修复任意网站非验证码触发识别的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在浏览器中识别验证码
📄 鸣谢
- ddddocr - 原项目
- ddddocr-js - JavaScript移植原版项目
- onnxruntime-web - 模型推理
- ICON-ICONS - 项目图标出处
- Linux.do - 强大的开源交流社区。
常见问题
1 识别相关
1.1 为什么识别不准确?
A:识别准确率是由模型决定的,如需定制,请自行使用 DDDDOCR 模型训练项目训练专属模型
1.2 为什么识别速度很慢?
A:这很有可能是浏览器的问题,Chrome系浏览器建议使用浏览器扩展,火狐系浏览器不会存在这个问题
1.3 这样的验证码可以识别吗?
A:详见第一条QA
1.4 能不能识别并计算四则运算验证码?
A:可以的,但是需要设置
2 功能相关
2.1 是否支持拖拽,点选验证码?
A:本项目目前只支持纯文字验证码识别,拖拽,点选后期可能会考虑支持,但是我由于上班,维护项目的时间并不多,所以可能遥遥无期。
2.2 能否接入API?
A:项目的初衷就是本着隐私保护,以及快速识别的目标去的,接入API后可能会影响识别速度,隐私也可能得不到保证。项目暂时没有接入的计划
2.3 为什么我提交的 issue 不处理?
A:不按照模板提交或者提供的信息不全的 issue ,都不会帮你处理,个人开发精力很有限。
2.4 能不能使用我上传的模型?
A:V1.1.6版本及以前的版本只有油猴版本支持,目前V1.2.0已经支持自定义模型上传
小声喵喵
使用AI开发很好,很快,但是实际上,提示词写了又写,代码写了又回滚写了又回滚。基本上要写很久才会有让我满意的代码产出,毕竟AI的代码产出不是很稳定,可能这一次很好,下一次就不好。反正肯定是要跟AI斗智斗勇,如果直接使用,那么项目基本上会乱七八糟的。
我是干运维的,我也比较懒,这个项目是出于方便运维使用而开发的小玩具,最早的版本其实是油猴脚本都是自己在用。后来发现还是有很多人需要就改造了,最开始没考虑啥安全性什么的,但是用的人多了,这方面后续会跟进。大家有啥意见或者建议可以在项目中提交issue或者PR,我看到会处理。
如果觉得这个项目不错,可以给我点个star,鼓励一下,你的star就是我更新的动力🤗
碎碎念
- 如果有什么改进意见,bug反馈,欢迎提交 issue ,但是请按照模板来填写提交,个人开发精力很有限,很难在Github仓库确认项目实际使用中遇到的bug,以及触发条件。未按照模板填写的 issue ,以及描述提交的 issue 只有寥寥几句,没有任何版本号,截图等必要信息的将不会被处理。
- 新功能相关的提交会经过综合评估后才会决定是否添加,比如接入API什么的,这类插件已经非常多了,本项目暂时不会接入。