Umi-OCR 离线 OCR 完全指南:截图、批量图片、扫描版 PDF 识别,从 0 到跑通自动化
2026/9/2 23:20:44 网站建设 项目流程

Umi-OCR 离线 OCR 完全指南:截图、批量图片、扫描版 PDF 识别,从 0 到跑通自动化

【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR

Umi-OCR 是一款免费、开源、完全离线的 OCR 文字识别工具:截图识别、批量图片识别、扫描版 PDF 转可搜索文本、二维码扫码与生成,全部在本机完成。图片不上传、不联网、不注册,识别次数不设上限。

这篇文章按"任务"带你走:先拿到第一个识别结果,再把量扩大到整批图片、整本 PDF,最后把 Umi-OCR 接进你的自动化流程。

能力全景:先看这张地图

能力典型场景在哪里操作
截图 OCR划选屏幕文字、粘贴聊天记录截图直接识别截图OCR 标签页
批量 OCR一次拖入几百张图片,输出 txt / csv / md 等批量OCR 标签页
文档识别扫描版 PDF 转双层可搜索 PDF 或纯文本文档识别 标签页
二维码一图多码扫码,或把文本生成码图片二维码 标签页
命令行 / HTTP 接口写脚本自动截图识别、传图拿 JSON 结果主程序命令行 / 本地 1224 端口
全局设置切换 OCR 引擎、界面语言、主题、开机自启全局设置 标签页

最短路径上手:3 步拿到第一个结果

  1. 拿到发布包:从项目 Release 页下载 v2.1.5 的.7z压缩包(没有解压软件就用.7z.exe自解压包,双击即可解开)。想用源码的话执行:git clone https://gitcode.com/GitHub_Trending/um/Umi-OCR。解压到纯英文路径,例如D:\Tools\Umi-OCR,避免中文和空格。
  2. 启动:Windows 双击Umi-OCR.exe,Linux 运行umi-ocr.sh。无需安装,首次启动会按系统语言自动切换界面。
  3. 识别:打开截图OCR标签页,按页面提示的快捷键唤起截图框,划出文字区域,右侧记录栏立刻出现识别结果。
要点说明
杀毒误报软件内置 OCR 引擎与运行库,部分杀软会误报;启动前把目录加入白名单
锁定标签页右上角锁形按钮可锁定常用标签,防止日常误触关闭
界面语言全局设置 → 语言/Language,支持简中、繁中、英文、日文、俄语、葡萄牙语等

场景实操一:截图 OCR,屏幕上的字直接拿走

你遇到什么:屏幕上一段文字,想复制进文档,但它是图片、网页截图或视频画面,没法选中。

怎么操作

  1. 打开截图OCR 标签页,按快捷键唤起截图框。
  2. 划出文字区域,松开鼠标,结果出现在右侧记录栏。
  3. 在记录栏直接编辑文字,划选多条记录可一次复制。

关键细节:不截图也能识别。在别处复制一张图片(比如聊天窗口里的图),切回 Umi-OCR 直接粘贴,效果相同。记录栏支持编辑,省去"识别完再开编辑器整理"这一步。

一个提醒:识别出的文字默认经过排版解析——引擎吐出的是"散装"文本块(一块块零散的文字),由排版解析器决定谁先谁后,横排、竖排(从右到左)都能按阅读顺序输出。方案怎么选,后面"参数调优"一节细讲。

场景实操二:批量图片识别,一次拖入几百张

你遇到什么:手头有几百张截图、拍照文件要转文字,一张张手动识别不现实。

怎么操作

  1. 切到批量OCR标签页,把图片直接拖进窗口,没有数量上限。
  2. 点开始任务,右侧面板逐张显示耗时、置信度和识别结果。
  3. 跑完按输出格式保存。
项目支持范围
输入格式jpgjpejpegjfifpngwebpbmptiftiff
输出格式txtjsonlmdcsv(csv 可直接用 Excel 打开)
长任务任务完成后自动关机/待机;v2.1.2 起支持暂停任务,不退出软件时待机/休眠后可恢复

关键细节:批量页右栏设置里可打开忽略区域编辑器——按住右键在图片上画多个矩形框,框住水印、LOGO、页脚可能出现的位置,识别时这些区域内的文字会被自动排除。

一个提醒:这里有一个必须记住的机制:只有整个文本块完全落在框内,才会被忽略,按单个字符不算。所以框要画得足够大,把水印所有可能落位都包住;框小一号,结果里就多一行杂音。

场景实操三:文档识别,把扫描版 PDF 变成可搜索 PDF

你遇到什么:一柜扫描版 PDF、EPUB,能看不能搜,想归档或提取文字。

怎么操作

  1. 打开文档识别标签页,拖入文档。支持pdfxpsepubmobifb2cbz六种格式。
  2. 选择提取方式,跑任务。它的逻辑是"先挑现成的,再补缺的":解析器(底层依赖 PyMuPDF)会区分 PDF 里自带的文本层扫描图片层——自带文本的页面直接提取,速度快且零识别误差;只有纯扫描页才交给本地 OCR 引擎。你也可以反向操作:整页强制 OCR,或只提取原文本。
  3. 选择输出成品。
输出特点适合场景
双层可搜索 PDF底层保留原图,上层叠加透明文字层,外观与扫描件一致但可搜索、可复制历史合同归档、论文数字化
单层纯文本 PDF(v2.1.2 起)文件更小、方便后续编辑只要文字、不在乎原版外观

关键细节:文档识别同样支持按页码范围设置忽略区域——把统一位置的页眉页脚一次性排除掉,再配合"任务完成后自动关机/待机",一整柜扫描旧书可以挂夜里跑完。

一个提醒:v2.1.5 修复了提取原文本层时未处理页面旋转的问题。如果你的 PDF 有旋转过方向的页面且识别位置错位,先升级到最新版再下结论。

场景实操四:二维码,扫码和生成一起搞定

你遇到什么:屏幕或图片里有二维码/条形码要读,或者想把一段文本变成码图片。

怎么操作

  1. 打开二维码标签页,用截图、粘贴、拖入图片三种方式之一输入,扫码结果立刻显示;一张图里多个码也能一次读出。
  2. 覆盖 QRCode、EAN13、Code128 等 19 种码制。
  3. 切到生成方向:选码制和纠错等级,把文本直接输出成二维码图片。

关键细节:命令行下还能指定尺寸批量生成(见下文命令),适合"一个链接一个码"的批量打印场景。

一个提醒:扫码用的输入方式和截图OCR 完全一致——复制图片后粘贴进来即可,不用先存盘。

参数调优:四个设置决定识别质量

现象 | 去哪调 | 怎么调

现象去哪调怎么调
长截图/大图识别不完整、缺头少尾页面设置 → 文字识别 → 限制图像边长调高数值(默认 960 会压缩大图)。别靠放大原图解决,过度放大会引入噪声
代码截图缩进全乱了各标签页"文字识别" → 排版解析方案切到"单栏-保留缩进",行首缩进和行中空格原样保留
两栏论文输出顺序混乱排版解析方案用"多栏-按自然段换行"(默认值,覆盖大多数场景)
内存占用偏高插件配置(PaddleOCR)调低线程数。v2.1.4 起 PaddleOCR 默认内存已限制在系统总内存一半以内
截图时屏幕闪烁、界面错位全局设置 → 界面和外观 → 渲染器切换渲染方案或直接关闭硬件加速
识别语言不对各标签页"文字识别" → 识别语言库单独选择或下载对应语言的库

排版解析方案全集:

方案适用场景
多栏-按自然段换行两栏/三栏论文、书籍,按段落断行,不确定就选它
多栏-总是换行 / 无换行每句独立成行 / 强制整段合并成一行
单栏-按自然段换行 / 总是换行 / 无换行与多栏系列对应,但不区分多栏布局
单栏-保留缩进代码截图专用
不做处理引擎原始输出

两个容易混淆的概念:

  • 界面语言 ≠ 识别语言库。前者管菜单按钮显示什么文字(全局设置里改),后者管 OCR 引擎认哪种文字(各标签页单独选)。界面用中文、日常识别日文书籍,这种组合完全成立。
  • OCR 引擎可随时切换。默认内置 Rapid-OCR(兼容性好,遇到报错先换它)和 PaddleOCR(速度稍快)两套引擎,全局设置里切。

接入自动化:命令行与 HTTP 接口

软件运行期间,本地 HTTP 服务默认监听127.0.0.1:1224(仅本地环回,不经过物理网卡,端口可在全局设置中修改)。所有命令行指令都通过这条通道发给后台进程,所以命令行要求 HTTP 服务处于开启状态(默认开启)

命令行

入口就是主程序Umi-OCR.exe(Linux 为umi-ocr)。所有指令支持前缀简写,如--screenshot可写成--sc

# 截屏识别,结果直接进剪贴板 umi-ocr --screenshot --clip # 递归识别整个文件夹(含子目录),结果追加到 all.txt umi-ocr --path "D:\scans" "-->>" all.txt # 生成 256x256 二维码图片,末尾数字可单独指定宽和高 umi-ocr --qrcode_create "https://example.com" "D:\qr.png" 256 # 免鼠标划选:截取第 2 块显示器 (50,100) 起点、300x200 区域并识别 umi-ocr --screenshot screen=1 rect=50,100,300,200 # 查看全部指令 umi-ocr --help

其中"-->>"等价于--output_append(追加写入),"-->"等价于--output(覆盖写入)。范围截图配合快捷键工具,可以做成"按一下 F10 就识别固定屏幕区域"。

完整参数见 docs/README_CLI.md。

HTTP 接口

需要程序化收结果时(比如命令行管道重定向失效的场景),直接用 HTTP:图片识别接口接收 Base64 图片、返回 JSON 结果,文档识别走"上传 → 轮询状态 → 下载"三步流程。

# 最小示例:传一张 Base64 编码的图片,返回 JSON 识别结果 import requests, json r = requests.post("http://127.0.0.1:1224/api/ocr", json={"base64": b64_image, "options": {"data.format": "text"}}) print(json.loads(r.text)["data"]) # 识别出的纯文本

接口文档在 docs/http/api_doc.md,可查的参数还包括排版解析方案、忽略区域坐标等,几十行代码就能封装成"传图 → 返回 JSON"的小服务,接进自己的自动化脚本里。

排错:现象 → 原因 → 解法

命令行指令没有任何反应?两个原因:一是命令行依赖本地 HTTP 服务传递指令,确认全局设置里 HTTP 服务处于开启状态(默认开启);二是入口必须用主程序Umi-OCR.exeRUN_GUI.bat这类备用启动器不支持命令行。

忽略区域画了,水印文字还在?原因是忽略机制按"整个文本块"判定。检查两点:矩形框是否把整个文本块完整包住(只包住一半不算);配置是否已保存。

旋转方向的扫描件,识别出的文字位置错位?早期版本提取原文本层时未处理页面旋转,v2.1.5 已修复。遇到此问题先升级到最新版。

拖入几万个文件的文件夹,界面卡死?v2.1.5 改进了图片/文档的异步加载机制,超大文件夹会显示加载进度。等进度跑完再操作,不要在加载期间连续提交任务。

长图识别结果缺头少尾?原因是"限制图像边长"默认值 960 较低,超大图片被压缩处理。到页面设置里调高该数值即可,不要直接放大原图。

识别报错或结果明显不准?先在全局设置把引擎切到 Rapid-OCR 试试;仍不行再检查识别语言库是否匹配图中文字。

下一步

下载最新版 v2.1.5,完成两件事:先做一次截图识别拿到第一个结果,再把批量页的忽略区域画好。这两步走完,你手头任何带水印的图片或扫描版 PDF,都能直接产出干净的文本。之后如果想让它无人值守地干活,从"接入自动化"一节的--screenshot --clip命令开始试。

【免费下载链接】Umi-OCROCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询