A7K9
验证码
F3M2
P5Q8
v1.2.0 · 已上架 Edge / Firefox 应用商店

完全离线的_

基于 ONNX Runtime Web DDDDOCR 模型,浏览器内推理 · 零数据外传, 同时提供油猴脚本与浏览器扩展,覆盖图片 / Canvas / SVG / 数学公式等多种验证码场景。

0
MB 模型体积
0
字符识别准确率
0
单次识别耗时
0
后端依赖
向下滑动

为什么选 Mieru-OCR

产品形态完整、识别能力强、隐私优先、社区驱动。一个工具覆盖绝大多数纯文字验证码场景。

完全离线

所有推理在浏览器内完成。模型缓存到 IndexedDB,识别过程不发起任何外部网络请求,验证码图片与识别结果不会离开你的设备。

三种发行形态

油猴脚本 / Chrome / Edge MV3 扩展 / Firefox MV2 扩展。共享一套核心 OCR 逻辑,但能适配每种宿主的最佳实践。

自动智能检测

扫描 DOM 中的图片 / Canvas / SVG / CSS 背景,结合关键词 + 尺寸 + 上下文打分,自动找到验证码与对应输入框,无需手动写选择器。

框架感知回填

兼容 React 内部 valueTracker、Vue v-model、AngularJS ng-model、Element / Ant Design / iView / Vant 等框架,避免「填了但表单读不到」。

多种验证码类型

字符验证码 / 数学公式(自动求值)/ Base64 / SVG / Canvas / CSS 背景图 / 噪点干扰图。也对滑块与点选有几何识别辅助。

订阅规则系统

类 AdGuard 订阅机制。社区可共享站点规则、关键词增量、协议选择器、黑名单。删除订阅自动回滚,干净不残留。

覆盖主流验证码形态

下方均为本页面实时生成的演示样本(不是图片素材)。

Canvas
支持

直接读取 Canvas 像素,对带干扰线和噪点的也能识别。

IMG / Base64
支持
img captcha

img 标签源、data: URL、blob: URL 都能处理。

SVG
支持

序列化 SVG 为位图后送入 OCR 推理。

Math 公式
自动求值

识别 3+5=?,自动算出 8 并回填。

CSS 背景图
支持

通过 background-image 渲染的验证码也能命中。

滑块 / 点选
几何辅助[测试中]

滑块拼图位移检测、点选字符命中区域校验(位置识别),减少「点中了却失败」。

按需选择发行形态

推荐 Chrome / Edge 用户使用扩展形态。油猴脚本更轻量,适合单站长期使用。

Chrome / Edge 扩展

Manifest V3 架构,使用 Chrome Offscreen API 在隐藏文档里跑 ONNX 推理(service worker 不能直接跑 WASM)。功能最完整,包含弹窗、设置页、订阅、模型管理、统计。

  • 完整的设置页面 + 站点白名单
  • 模型自动缓存 IndexedDB
  • 右键菜单识别图片
  • 识别统计 + 站点排行
手动安装(Chrome 开发者模式)
git clone https://github.com/MakotoArai-CN/Mieru-OCR
cd Mieru-OCR
bun install && bun run build:extension
# Chrome 访问 chrome://extensions
# 开启「开发者模式」-> 加载已解压扩展 -> 选择 dist/extension

一切发生在你的浏览器

1

加载模型

首次启动从多个 GitHub 镜像下载 4MB ONNX 模型,缓存到 IndexedDB。后续访问秒级冷启动。

2

扫描验证码

DOM 扫描结合关键词、元素尺寸、上下文打分;同时找到对应输入框(避开搜索 / 邮箱 / 手机号等误触)。

3

推理回填

ONNX Runtime Web 把图片送入推理,得到字符序列后通过 React/Vue/Angular 兼容方式回填到输入框,触发框架感知。

技术栈

用扎实的技术栈做扎实的事

TypeScript ONNX Runtime Web DDDDOCR Model Vite + Bun Manifest V3 WASM SIMD IndexedDB Privacy First TypeScript ONNX Runtime Web DDDDOCR Model Vite + Bun Manifest V3 WASM SIMD IndexedDB Privacy First

四行命令本地构建

~ / Mieru-OCR
# 1. 克隆仓库
git clone https://github.com/MakotoArai-CN/Mieru-OCR
cd Mieru-OCR

# 2. 安装依赖(推荐使用 bun)
bun install

# 3. 构建全部三种发行形态
bun run build:all

# 产物:
# dist/userscript/Mieru-OCR.user.js       (油猴脚本)
# dist/extension/        + Mieru-OCR-v*.zip    (Chrome / Edge)
# dist/firefox/          + Mieru-OCR-firefox-v*.zip       (Firefox)

关于 Mieru-OCR

涵盖产品定位、识别能力、功能边界与项目协作四类高频问题

产品定位真的完全离线吗?
是。模型与字符集首次会从 GitHub(或镜像)下载一次,之后整个识别管线只跑在浏览器内:图片捕获 → 灰度归一化 → ONNX 推理 → 字符序列。 推理本身不会发起任何网络请求。 你可以打开开发者工具 Network 面板验证:识别过程没有任何外联调用。
产品定位会收集任何用户数据吗?
不会。项目 100% 开源,所有数据(设置、识别统计、订阅缓存)都只保存在 chrome.storage.local 或 IndexedDB。我们不运营任何服务端、不打点、不上报、不做任何形式的行为追踪。 导出诊断报告时由你手动操作并自行检查再附加到 Issue。
产品定位商业使用怎么办?
项目采用 MIT 协议,商业使用没有限制,保留原始版权声明即可。 模型源自 DDDDOCR, 请同时遵守其 LICENSE。
识别能力准确率到底有多少?
纯字母数字验证码上模型整体准确率在 90%~98% 之间,取决于字体扭曲、噪点干扰和分辨率。 带强干扰线 + 字符严重粘连的图样会显著下降。我们提供了多种量化模型(fp16 / q8 / q4)与精度变体,可在 设置 → 模型 里切换以在体积 / 速度 / 精度间取舍。
识别能力为什么识别不准确?
识别准确率由模型决定。本项目仅是对上游 DDDDOCR 通用模型的浏览器化封装;如果你的目标网站验证码风格非常特殊(艺术字体、严重扭曲、连体粘连), 建议使用 DDDDOCR 训练项目针对你的样本集训练专属模型,然后在 设置 → 模型 里通过自定义模型上传功能加载(v1.2.0+ 支持)。
识别能力为什么识别速度很慢?
多半是浏览器层面的限制:油猴脚本里 ONNX Runtime 通过 @require 加载,启动有冷启动开销;Chrome 系扩展通过 Offscreen Document 跑 WASM,存在 IPC 延迟。

推荐策略:Chrome / Edge 用户改用浏览器扩展形态;Firefox 因为允许 background page 直跑 WASM,速度通常优于 Chrome。
识别能力能不能识别并计算四则运算验证码?
可以。设置页 → 高级 里开启四则运算自动求值。识别到形如 3+5=? 的内容后会算出 8 再回填,也可以选择回填原始表达式以便页面侧自己计算。
功能边界支持哪些验证码?不支持哪些?
支持:4–6 位英数字符验证码、数学公式(自动求值)、噪点 / 干扰线版本、Canvas / SVG / Base64 / CSS 背景图各种载体。

开发测试中:滑块拼图、单轨滑块、点选字符 —— 这些更偏几何识别,提供位移 / 命中区域辅助判定,不做端到端打码。

不支持:reCAPTCHA / hCaptcha / GeeTest 等行为分析类商业服务。这些是基于行为指纹的反爬,不在 OCR 范畴。
功能边界能否接入 API(云端识别服务)?
暂时没有计划。项目初衷是隐私保护 + 快速识别,接入 API 一来会带来网络延迟,二来无法保证图像数据安全。 如果你确实需要远端识别能力,可以 fork 仓库后在 src/core/ocr-engine.ts 替换推理实现。
功能边界能不能使用我上传的自定义模型?
v1.2.0 起浏览器扩展版本已支持。设置 → 模型 → 点击「上传自定义模型」,选择 .onnx 模型文件及对应 charsets.json。 目前仅支持与 DDDDOCR 输入张量兼容的模型(动态宽度,64px 高,灰度)。
项目协作为什么我提交的 issue 不处理?
本项目为个人维护,精力有限。未按照 issue 模板填写 / 缺少版本号 / 缺少截图 / 描述只有寥寥几句的反馈很难复现,会被搁置。

请尽量附上:
  • 版本号(设置页 → 关于 可查)
  • 浏览器与系统
  • 验证码截图(如果是公网站点)或最小复现页面
  • 导出的诊断报告(设置页 → 高级 → 导出诊断)
项目协作怎么帮项目变得更好?
欢迎 Star ⭐ / Issue / PR。 可以:提交识别失败的样本到 Issue(去标识化)、补充常见网站的站点规则、翻译界面文案、发布社区订阅源、写使用教程。 如果你愿意贡献代码,CLAUDE.md 里有完整的项目架构说明。

告别手动输验证码

装好之后忘掉它就好。下次再遇到验证码,输入框已经替你填好了。