Umi-OCR 实战教程:从截图文字识别到批量 OCR 与自动化集成的完整路径
【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR
Umi-OCR 是一款免费、开源的离线OCR文字识别工具:解压后的程序无需联网即可运行,识别过程全部在本地完成,可以当作免费离线文字识别工具长期使用。这份教程按"先跑通、再深入"的顺序展开:先带你完成第一次截图文字识别,随后逐个讲清截图识别代码、批量文档OCR、OCR自动化集成三块核心能力的使用方式,最后给出引擎选型、配置调优与排错建议。读完之后,你可以用框选方式提取代码文本,对一个文件夹的图片跑批量OCR,并在自己的脚本里调用 Umi-OCR。
第一次识别:三步完成首张截图文字识别
⚡ Umi-OCR 不需要安装。下载包是 7z 压缩包(或自解压包),解压后双击Umi-OCR.exe(Linux 下运行umi-ocr.sh)即可,不装环境、不联网。
第一次截图识别的完整操作只有三步:
- 打开主窗口的"截图OCR"标签页(软件启动时的默认页)。
- 按下默认截图快捷键Ctrl+Shift+A(可在"全局设置"中自定义),在屏幕上框选目标区域后松手。
- 识别结果出现在右侧"记录"栏:右键即可复制,也可选中多条记录一起复制;左侧图片预览上直接用鼠标划选也能复制。
下图是一个典型场景:一张 Python 代码截图被框选后,右侧立刻出现识别结果,缩进与行序基本保留,可以直接粘回编辑器。
三大核心能力详解:截图识别、批量文档OCR与自动化集成
这三项能力都是主窗口里的标签页,下面按功能模块拆解,方便按需查看。
截图识别:框选即得屏幕文字
框选一下,把屏幕上的文字提出来。
- 进入"截图OCR"页,按快捷键框选区域,等待识别完成。
- 右栏"设置"里按内容类型挑选排版解析方案。
- "记录"栏右键复制,或选中多条记录一起复制;别处复制的图片也能直接粘贴进来识别。
关键参数:排版解析方案对应tbpu.parser,常用取值如下:
| 选项 | 参数值 | 适合的内容 |
|---|---|---|
| 多栏-按自然段换行 | multi_para | 普通文档、多栏排版,默认值 |
| 多栏-总是换行 | multi_line | 结构化内容,每行强制换行 |
| 单栏-保留缩进 | single_code | 代码截图,保留缩进与行中空格 |
| 不做处理 | none | 引擎原始输出 |
选型上,截图识别代码时建议选single_code以保留缩进;普通文档用默认的multi_para通常就很好用。
批量处理:一次跑完批量文档OCR
把一文件夹图片丢进去,拿回一组文本文件。
- 打开"批量OCR"页,拖入图片(支持 jpg/png/webp/bmp/tif 等格式)。
- 右栏选择保存路径与文件类型:txt / jsonl / md / csv(Excel)。
- 图片带水印、页眉页脚时,进入"忽略区域"编辑器按住右键画框;框尽量画大,完全落在框内的文本块才会被丢弃。
- 点击"开始任务",可勾选任务完成后自动关机或待机。
关键参数:输入图片无数量上限;识别超长图、大图时,把右栏设置里的限制图像边长调高即可;对应的 API 参数是tbpu.ignoreArea(矩形坐标)。
选型建议:批量任务先确认输出格式与忽略区域,能减少不少返工;跑大批量时可以直接配合关机选项挂机执行。
自动化集成:HTTP API 与命令行调用
不开图形界面,让脚本完成文字识别,这就是 OCR 自动化集成。
- 确认软件在运行且 HTTP 服务开启(默认开启,仅本地环回,默认端口 1224)。
- 本机快速任务走命令行:
umi-ocr --path "D:/a.png" --clip把结果复制到剪贴板,用--output写文件。 - 程序化集成走
POST /api/ocr:传入 Base64 图片,返回 JSON 结果。接口手册见 docs/http/README.md。
import base64, json, requests with open("sample.png", "rb") as f: img_b64 = base64.b64encode(f.read()).decode("utf-8") resp = requests.post( "http://127.0.0.1:1224/api/ocr", json={ "base64": img_b64, "options": { "data.format": "text", "tbpu.parser": "multi_para", }, }, ) print(json.loads(resp.text))命令行识别会沿用"截图OCR"页的参数设置;HTTP 调用并发支持有限,建议串行发起。完整命令行手册见 docs/README_CLI.md。
引擎选型与配置调优:PaddleOCR 和 RapidOCR 怎么选
Umi-OCR 内置两套离线引擎,识别都不走网络,差别主要在定位与参数丰富度:
| 维度 | PaddleOCR-json | RapidOCR-json |
|---|---|---|
| 定位 | 速度稍快,参数选项丰富(语言模型、边长限制等) | 兼容性好,轻量稳定 |
| 典型用途 | 文档、多语言内容 | 对兼容与稳定要求高的场景 |
| 切换方式 | "全局设置"中切换 OCR 插件(对应UmiOCR-data/plugins下的插件) | 同左 |
按文档类型搭配参数时,可以直接参考这张表:
| 文档类型 | 推荐引擎 | ocr.limit_side_len | 排版解析tbpu.parser | 语言模型 |
|---|---|---|---|---|
| 代码截图 | RapidOCR | 960 | single_code | config_en.txt |
| 中文扫描文档 | PaddleOCR | 960~2880 | multi_para | config_chinese.txt |
| 日/韩文文档 | PaddleOCR | 960~2880 | multi_para | config_japan.txt/config_korean.txt |
| 超长/大图 | PaddleOCR | 2880~4320 | multi_para | 按内容语言选择 |
界面上所有设置最终都保存在./UmiOCR-data/.settings(ini 格式),手动改完文件后执行umi-ocr --reload即可重新加载生效。常见键如下:
ocr.language = models/config_chinese.txt ocr.cls = false ocr.limit_side_len = 960 tbpu.parser = multi_para data.format = text切换识别语言模型用ocr.language(适用于 PaddleOCR 引擎插件;其他引擎请通过GET /api/ocr/get_options查询可用参数),可选值包括:config_chinese.txt(简中)、config_en.txt(英文)、config_chinese_cht(v2).txt(繁中)、config_japan.txt(日文)、config_korean.txt(韩文)、config_cyrillic.txt(俄文)。
界面语言是另一层设置:"全局设置"→"语言/Language"。软件首次启动会跟随系统语言,之后可随时手动切换成英语、日本語等。
排错速查与深度优化:识别不准、速度偏慢怎么办
遇到问题时,建议先查下表,再决定改哪里:
| 现象 | 常见原因 | 解法 |
|---|---|---|
| 识别不准、漏字 | 图片过大被压缩、方向颠倒 | ocr.limit_side_len调高到 2880/4320;开启ocr.cls方向校正(速度略降) |
| 水印/页眉页脚干扰 | 未排除干扰区域 | 批量页右键绘制忽略区域,框画大些;API 端传tbpu.ignoreArea |
| 批量识别慢 | 大图多、边长限制偏高 | 边长限制取 960 兼顾速度;简单文档换 RapidOCR 试试 |
| 界面闪烁、UI 错位 | 显卡加速渲染冲突 | "全局设置"→"界面和外观"里更换渲染器或关闭硬件加速 |
HTTP 调用偶发ECONNREFUSED | 长时间连续调用、后端压力 | 重新发起请求即可;尽量串行调用、避免并发 |
📌 渲染器、主题、字体这些界面项都在"全局设置"里调整,改动即时生效,不需要重启。
两条进阶技巧,点到为止:
- 不改界面也能调参:直接编辑
./UmiOCR-data/.settings,再执行umi-ocr --reload重载。 - 脚本化驱动:命令行本质上等价于向本地
/argv接口发送参数,umi-ocr --screenshot --clip一条命令就能完成"框选→识别→入剪贴板"。
总结与资源导航:从日常使用到二次开发
✅ 回顾一下,Umi-OCR 的要点有四条:免费开源、离线本地运行,数据不出本机;截图 / 批量 / 文档识别 / 二维码几类模块覆盖日常场景;引擎与参数可按文档类型切换;命令行与 HTTP 接口天然支持脚本集成。
一个值得记住的小细节:识别记录积累多了以后,"截图OCR"页可以右键"记录"栏,选择"复制全部""删除选中记录"或"清空全部记录",如下图菜单所示。
进一步学习(均为项目内本地文件,点开即读):
- 命令行手册:docs/README_CLI.md
- HTTP 接口手册:docs/http/README.md
- 图片识别 API:docs/http/api_ocr.md
- 文档(PDF)识别 API:docs/http/api_doc.md
- 二维码 API:docs/http/api_qrcode.md
- 参数总览:docs/http/argv.md
- 项目说明与更新日志:README.md、CHANGE_LOG.md
- Python 源码:
UmiOCR-data/py_src/,二次开发时从这里入手
【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考