Umi-OCR
免费开源的离线OCR工具,支持截图/批量/文档识别,无需联网完全本地运行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
免费开源的离线OCR工具,支持截图/批量/文档识别,无需联网完全本地运行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
深夜加班,老板甩来一份 87 页的 PDF 扫描件,要求把文字录入系统;研究论文时,需要从截图中提取代码片段,却发现复制出来全是乱码;整理历史资料时,面对成百上千张老报纸照片,手动录入令人崩溃。传统的解决办法是花钱买付费 OCR 服务,或者自己训练模型——但前者需要联网付费,后者门槛高到离谱。
Umi-OCR 正是为解决这些「文字提取」痛点而生的:一款完全免费、无需联网、支持批量处理的离线 OCR 软件,让任何人都能在家用电脑把图片里的文字「抠」出来。
Umi-OCR 由独立开发者 hiroi-sora 创建和维护,目前在 GitHub 拥有超过 4.4 万颗星,位列 Python 语言 OCR 项目中的头部位置。项目采用 MIT 开源许可证,所有代码完全公开,用户可以自由使用、修改和分发。
与商业 OCR 软件(如 ABBYY)动辄数千元的收费不同,Umi-OCR 完全免费;与基于云端 API 的 OCR 服务(如百度 OCR、腾讯 OCR)不同,Umi-OCR 离线运行,不上传任何数据到服务器,隐私安全性极高。这种「免费 + 离线 + 开源」三合一的组合,在同类工具中极为罕见。
项目的技术栈选择也颇有特色:核心基于 Python + Qt/QML 构建桌面 GUI,同时集成了两个强大的 OCR 引擎后端——PaddleOCR-json 和 RapidOCR-json,用户可以根据硬件条件自由切换。
截图 OCR 是最常用的场景:按下快捷键召唤截图工具,框选目标区域,文字瞬间识别完成。支持多区域截图、跨窗口截图,以及直接从剪贴板粘贴图片识别。识别结果支持划选复制、批量导出。内置的「排版解析」功能可以智能还原多栏排版(横排/竖排),让输出文本更符合阅读习惯。
批量 OCR 适合处理大量图片:一次性拖入几百张图片,软件会自动排队识别。可以设置忽略区域(Ignore Region)排除水印、页眉页脚;支持 txt、jsonl、md、csv 等多种输出格式;任务完成后还能自动关机或休眠。实测处理 100 张 A4 扫描件图片,约需 5-10 分钟(取决于硬件)。
文档识别 支持 PDF、XPS、EPUB、MOBI、FB2、CBZ 等格式,可以从扫描件中提取文字,或转换为双层可搜索 PDF(上层图片 + 下层可搜索文字)。对于需要归档大量纸质档案的个人或机构,这是非常实用的功能。
二维码读写 支持 19 种协议(包括 QR Code、Data Matrix、PDF417 等),截图或拖入图片即可识别;也支持反向操作——输入文本生成二维码图片。这项功能虽然不是核心卖点,但集成在同一个工具中,省去了安装额外扫码软件的麻烦。
多语言支持 是 Umi-OCR 的一大亮点:软件界面支持简体中文、繁体中文、英语、日语、葡萄牙语、俄语、泰米尔语等多种语言,通过 Weblate 平台进行社区协作翻译。在首次启动时会自动跟随系统语言切换,也支持在设置中手动选择。

图1:截图识别界面,支持快捷键唤起截图、实时预览识别结果
从代码架构来看,Umi-OCR 采用了一种独特的「插件化 + 运行时分离」设计:
主仓库(本仓库)只包含 Qt/QML 前端界面和 Python 业务逻辑,不包含 OCR 引擎本身。这样做的好处是:发布包体积可控(只打包必要的 UI 组件),用户按需下载对应平台的运行时包。OCR 引擎作为独立插件存在,项目仓库中有一个 plugins 目录用于存放插件配置。
运行时仓库(Umi-OCR_runtime_windows / Umi-OCR_runtime_linux)负责打包 PyStand 定制版运行时环境和 OCR 引擎。用户构建项目时,需要先在本地部署对应平台的运行时环境,再将主仓库的 Python 源码整合进去。
在 OCR 引擎层面,项目同时支持 PaddleOCR 和 RapidOCR 两套引擎。PaddleOCR 来自百度飞桨团队,模型库丰富,支持的语言多;RapidOCR 则主打速度更快、兼容性更好。用户可以通过插件机制自由切换,甚至可以同时安装两套引擎,根据不同场景选择使用。
项目还提供了完整的 HTTP API 接口 和 CLI 命令行接口,方便开发者将 OCR 能力集成到自己的应用中。API 文档位于 docs/http/ 目录,支持 OCR、文档识别、二维码等多种接口调用。

图2:批量识别界面,支持忽略区域排除水印、多格式导出
对于普通用户,Umi-OCR 的上手门槛极低:下载 Windows 发布版(7z 压缩包),解压后双击 Umi-OCR.exe 即可使用。Linux 用户可以通过 Docker 方式部署,官方提供了 hiroi-sora/Umi-OCR_runtime_linux 仓库的 Docker 部署指南。
但如果想深度使用(如自定义 OCR 引擎参数、编写批量处理脚本、部署 HTTP 服务),则需要阅读项目文档。幸好项目提供了详尽的中文文档,包括 README、使用手册、CLI 手册、HTTP 接口文档等,这是很多中文开源项目值得学习的地方。
有一点需要注意:Umi-OCR 本身没有内置 AI 大模型,但它依赖的 OCR 引擎(PaddleOCR/RapidOCR)底层使用了深度学习模型进行文字检测和识别。这些模型文件会随运行时包一起下载,首次运行时需要一定的下载时间。
Umi-OCR 的离线特性既是最大优点也是主要局限。由于不依赖云端 API,识别精度完全取决于本地模型的水平——对于常规印刷字体,识别率可达 95% 以上;但对于手写体、严重破损的老照片、低分辨率截图等复杂场景,效果可能不如云端商业服务。
此外,模型更新依赖手动下载新版本。不同于云端服务可以随时更新模型,用户如果想用最新的 OCR 改进,只能等待作者发布新版本后重新下载整个发布包。这在一定程度上增加了维护成本。
最后,虽然项目支持 Linux 和 Docker 部署,但 GUI 版本在 Linux 上的体验不如 Windows 成熟——CHANGELOG 中也记录了多个 Linux 相关的 UI bug 修复记录。如果你主要在 Linux 环境下工作,需要有一定的折腾心理准备。
Umi-OCR 的出现填补了开源离线 OCR 工具的一个空白:此前,主流的开源 OCR 方案(如 Tesseract CLI)普遍存在配置复杂、GUI 缺失、中文支持差等问题;而国内用户急需的「截图 OCR」「批量处理」「PDF 识别」等场景,很少有成熟的开源方案可用。
Umi-OCR 用一个产品化的方式解决了这个矛盾:提供开箱即用的 GUI、针对中文场景优化、支持主流办公格式,并且完全免费开源。它的 4.4 万星和持续活跃的版本更新(2025年3月刚发布 v2.1.5),证明了市场对这类工具的强烈需求。
从技术角度看,Umi-OCR 也展示了如何将多个开源组件(PaddleOCR、RapidOCR、PyStand、Qt)有机整合成一个用户体验良好的桌面应用——这种「站在开源巨人肩膀上」的产品化思路,对于其他开源项目开发者有很好的参考价值。
项目信息:MIT 开源协议 | Python/Qt/QML | 支持 Windows 7+、Linux (glibc 2.31+) | 无需 GPU | GitHub 仓库

图3:项目作者 hiroi-sora 的 GitHub 头像