尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Umi-OCR:免费开源离线OCR工具,截图PDF批量识别,保护隐私

Umi-OCR:免费开源离线OCR工具,截图PDF批量识别,保护隐私 当业务需要从图片、截图、PDF 里快速提取文字时很多人的第一反应是打开在线 OCR 网站或者用微信/钉钉自带的“提取文字”。这类工具虽然方便但往往有文件数量限制、图片尺寸压缩、网络不稳定、隐私泄露等隐患。尤其是公司内部合同、学习笔记、临时验证码这类敏感内容放在第三方服务器上总让人不太放心。本文要介绍的 Umi-OCR就是一款免费、开源、离线的本地文字识别软件。它支持截图识别、批量图片识别、PDF 批量识别、二维码识别没有广告也没有次数限制。文章会从核心概念讲起带大家完成下载安装、环境准备、日常操作并补充常见问题和最佳实践。不管你是想替代在线 OCR 的普通用户还是想在自己的工具链中接入本地 OCR 的开发者这篇都能给你一套可落地的思路。1. Umi-OCR 是什么为什么会需要它1.1 在线 OCR 的几个痛点先看一个高频场景你在网页上看到一段无法复制的文字或者收到一张带文字的图片需要转成可编辑文本。使用在线 OCR流程通常是“上传图片 → 等待处理 → 复制结果”。问题也集中在三个地方隐私风险图片内容会经过第三方服务器合同、证件、内部资料都有泄露风险。次数和大小限制很多免费在线工具限制单张图片 1MB、每天只能识别几次超过就要付费或等待。网络依赖网络不稳定时识别服务经常连接超时影响效率。如果你经常处理截图、扫描件、PDF 文稿这类问题会被放大很多倍。1.2 Umi-OCR 的定位Umi-OCR 是一个运行在本地电脑上的 OCR 工具。它的识别过程不依赖外部网络图片和 PDF 都在本地处理所以隐私性有保障识别引擎采用开源方案没有内置广告也不限制使用次数。从技术实现上看Umi-OCR 可以理解为“一个图形化外壳 多种开源 OCR 引擎的组合体”。它把复杂的模型下载、参数调优、结果排版封装成简单的图形界面用户选中图片、点击识别就能得到文本。1.3 适合哪些人使用经常做笔记、整理资料的人截图识别后直接变成文字配合 Markdown 记录很顺手。文员、运营、法务等职业用户处理 PDF 合同、扫描文件时无需逐字手打。轻度开发人员和自动化爱好者希望通过命令行、HTTP 接口的方式将 OCR 能力集成到自己的脚本工具中。注重隐私的用户所有识别过程都在本地完成不需要把文件上传给任何平台。2. 核心功能详解2.1 截图识别按下预设的全局热键默认通常是 F4具体以当前版本设置为准屏幕会出现一个选区框像截图软件一样框选需要识别的区域。松开鼠标后Umi-OCR 会自动识别选区内的文字并把结果展示在窗口中。这个功能特别适合处理网页上的不可复制文字、代码报错信息、视频字幕、软件界面文字等场景。识别结果可以直接复制也可以发送到主窗口进行编辑。2.2 批量图片识别支持一次导入多张图片例如png、jpg、bmp、webp等常见格式。软件会按顺序识别并在完成后汇总所有结果。你可以选择每张图片单独输出也可以把识别结果合并成一个大文本块方便统一处理。批量识别时最好保证图片清晰、文字方向正确。对于倾斜的图片可以在参数设置里开启“自动旋转”或“方向分类”能力减少手动预处理的工作量。2.3 PDF 批量识别PDF 扫描件中的文字本质上是一张张图片无法直接复制。Umi-OCR 会把 PDF 的每一页转成图像再逐页识别最终输出完整文本。如果你处理的 PDF 本身就是文字版即“原生 PDF”并不需要 OCR直接用阅读器复制即可。只有当 PDF 是扫描件或图片型 PDF 时才需要走 OCR 流程。2.4 二维码识别除了普通文字识别Umi-OCR 还支持二维码和条形码的读取与生成。你可以在设置中找到二维码工具通过截图或上传图片的方式快速解析二维码中的文本内容也可以反向将一段文字生成二维码。2.5 离线识别与多语言支持因为识别模型存放在本地断网环境下也能正常使用。软件支持简体中文、繁体中文和英文的识别具体语言支持范围取决于你安装的 OCR 模型。这里需要特别强调离线识别不是把“联网能力”去掉了而是从根源上避免图片内容经过外部服务器。对于敏感数据离线方案更安心。3. 环境准备与下载安装3.1 运行环境说明Umi-OCR 主要面向 Windows 用户官方发布时会提供免安装的压缩包解压后直接运行可执行文件即可。Linux 和 macOS 用户也可以尝试通过源码运行但需要自己准备 Python 环境、PyQt 等依赖过程会复杂一些。版本方面Umi-OCR 的迭代速度较快不同版本的下载方式、界面布局和功能入口可能略有差异。本文以常见的 Windows 免安装版为例进行讲解大家在实操时以官方仓库的 README 和 Release 页说明为准。3.2 从 GitHub 获取安装包Umi-OCR 是开源项目源码托管在 GitHub项目名字是hiroi-sora/Umi-OCR。如果网络条件允许最直接的方式是打开 GitHub Releases 页面选择最新的Umi-OCR-xxx.7z或Umi-OCR-xxx.zip压缩包下载。国内用户访问 GitHub 时偶尔会遇到页面打开慢、下载中断等问题可以尝试以下两种方式使用第三方 GitHub 加速服务例如“ghproxy”这类代理下载链接。搜索“项目名 下载加速”就能找到相关服务把原始 Release 下载地址拼到代理前缀后面即可加速下载。关注项目在 Gitee 或其他开源镜像站的同步仓库部分热门项目会在国内代码托管平台发布同步版本。无论从哪个渠道下载建议在运行前对压缩包进行校验避免文件损坏或被恶意篡改。校验方式以官方发布时提供的 SHA256 哈希为准。3.3 解压与启动下载完成后将压缩包解压到本地目录。免安装版通常不需要执行安装程序目录结构类似下面这样Umi-OCR/ ├─ Umi-OCR.exe ├─ config/ ├─ engines/ ├─ data/ ├─ ...启动方式非常简单双击Umi-OCR.exe即可。如果你的 Windows 安全中心或杀毒软件弹出提示可以检查一下文件签名和哈希值是否正常。开源软件经常被误报但也不要直接关闭杀毒软件建议从官方渠道下载并手动添加到信任列表。若源码方式运行在项目根目录打开终端执行python main.py前提是你已经按照requirements.txt安装好依赖并且本地具备对应版本的 Python 环境。源码方式一般用于二次开发或排查问题日常使用免安装版更方便。3.4 首次启动模型下载与引擎切换第一次启动时软件可能会提示你下载 OCR 识别模型。这是因为本地 OCR 引擎需要模型文件才能工作模型文件会从开源模型仓库下载到本机。如果你在模型下载阶段遇到速度慢或失败可以检查网络连接或者手动从模型托管地址下载后放到指定目录。不同版本的模型存放路径可能不同建议优先参考官方文档。Umi-OCR 支持多套 OCR 引擎例如 PaddleOCR、RapidOCR。它们各有特点PaddleOCR 系列百度开源支持中文效果好模型体积相对较大但识别精度较高。RapidOCR 系列基于 PaddleOCR 模型转换而来依赖更少部署更轻量。可以在软件的“OCR 引擎管理”或“设置”页面切换默认引擎。如果你只是普通使用保持默认即可。4. OCR 引擎原理与技术拆解4.1 OCR 到底是怎么工作的OCROptical Character Recognition光学字符识别的核心任务是把图片中的文字区域检测出来并转换成计算机可编辑的文本。一个典型的 OCR 流程可以分为四步图像预处理灰度化、二值化、降噪、倾斜校正让文字区域更清晰。文字检测找到图片中所有可能包含文字的区域也就是“文本框”。文字识别对每个文本框内的字符进行逐一识别。后处理把识别出的字符按顺序组合成行、段落并输出带位置信息的结果。Umi-OCR 之所以能支持“截图识别”“批量图片”“PDF 识别”本质上是围绕上面四个环节做了图形界面和工程化封装。4.2 本地离线识别的工作流当你在 Umi-OCR 中点击“识别”时软件会把图片交给本机运行的 OCR 引擎模型推理完成后再返回识别结果。整个过程不经过任何外部服务器所以断网也可以使用。用一张简化的流程表示输入图片/截图/PDF页面 ↓ 图像预处理 ↓ 文字检测目标框 ↓ 文字识别模型推理 ↓ 输出文本与位置信息 ↓ 在界面中展示或写入文件由于推理过程消耗的是本机 CPU 资源识别速度取决于电脑性能和图片分辨率。一般来说普通办公电脑处理一张截图只需要一两秒如果图片很大可能需要等待更长时间。4.3 给开发者的参考Python 调用 PaddleOCR如果你不想通过图形界面而是想在自己的 Python 脚本里实现类似能力可以尝试直接使用 PaddleOCR。下面是一个最小可运行的示例# -*- coding: utf-8 -*- from paddleocr import PaddleOCR # 创建识别器使用中文模型关闭方向分类以提高速度 ocr PaddleOCR(use_angle_clsFalse, langch, show_logFalse) result ocr.ocr(sample.png, clsFalse) # 遍历识别结果 for line in result: if not line: continue for item in line: text item[1][0] confidence item[1][1] print(f文本{text}置信度{confidence:.2f})运行前需要先安装 PaddlePaddle 和 PaddleOCRpip install paddlepaddle paddleocr这段代码可以帮大家理解 OCR 引擎的调用方式。在实际项目里你需要在识别前对图片做预处理例如调整分辨率、去除背景干扰才能获得更好的识别效果。Umi-OCR 已经把类似流程封装成了开箱即用的产品普通用户不需要关心这些细节。5. 实操从零开始使用 Umi-OCR5.1 界面布局启动 Umi-OCR 后会看到一个主窗口。常见模块包括左侧工具栏切换不同功能例如截图识别、批量识别、PDF 识别、二维码工具。中间区域图片预览和识别结果展示。右侧或底部识别参数、输出设置。不同版本的界面细节存在差异但基本交互逻辑是选择图片 → 点击识别 → 查看结果 → 复制或保存。5.2 截图识别操作步骤打开 Umi-OCR确保程序常驻运行。按下全局截图快捷键可在设置中自定义例如F4。屏幕上出现选区遮罩后用鼠标框选要识别的区域。松开鼠标软件自动识别。识别结果出现在主窗口或临时悬浮窗中点击“复制”即可。粘贴到需要的地方。如果你发现快捷键没有反应可能是被其他软件占用了或者 Umi-OCR 没有在前台运行。可以在设置里换一个快捷键试试。5.3 批量识别图片当有多张图片需要转换时进入“批量识别”功能把图片文件直接拖入列表点击开始任务。任务完成后每一张图片的识别结果会以独立文档或合并文档的形式呈现。如果识别质量不理想可以先对图片做以下处理将图片转正避免文字倾斜。提高图片分辨率确保文字边缘清晰。去除复杂背景只保留文字区域。尽量使用截图而不是拍照。批量识别适合处理带有大量图表的文档扫描件但要注意如果图片中夹杂表格、公式、手写文字普通 OCR 引擎的效果可能不如专业工具。5.4 PDF 识别与导出在 PDF 识别功能中选择需要识别的 PDF 文件软件会先转换页面为图像再执行 OCR。完成后可以导出为 TXT、Markdown 或其他格式方便后续编辑。需要提醒的是如果 PDF 文件页数很多识别时间会比较长。建议先用几页测试效果再决定是否整本处理。5.5 二维码识别打开二维码工具选择“识别图片中的二维码”上传包含二维码的图片即可得到解析结果。反向操作时输入文字生成二维码可以保存为图片方便在电脑和手机之间快速传送文本。6. 进阶把本地 OCR 能力接入自己的工作流6.1 使用命令行和 HTTP API 的思路Umi-OCR 在部分版本中提供命令行参数或本地 HTTP 服务能力允许开发者通过脚本发送图片然后接收识别结果。具体的启动命令、端口、接口路径随着版本更新变化较快建议以当前版本的官方文档或源码中的示例为准。下面给出一种通用的调用思路仅供参考。假设软件开启了本地 HTTP 识别服务你可以用 Python 的requests库把图片 POST 到服务端口然后解析返回的 JSON。关键代码框架如下import requests import json # 接口地址请以实际版本文档为准 url http://127.0.0.1:8080/api/ocr with open(demo.png, rb) as f: files {file: (demo.png, f, image/png)} resp requests.post(url, filesfiles) data resp.json() print(json.dumps(data, ensure_asciiFalse, indent2))注意这只是一个抽象示例不代表 Umi-OCR 真实接口。实际开发时你要先看源码中api相关模块或官方文档的网络接口说明再调整协议和参数。6.2 在自动化脚本中调用其他本地 OCR 引擎如果你的自动化项目不便依赖图形界面又想获得类似的离线 OCR 能力可以直接用 Python 调用 PaddleOCR、RapidOCR 等库。这在处理“定时识别”“批处理文件”等场景时非常灵活。示例批量识别文件夹下所有图片并输出为同名 txt 文件。# -*- coding: utf-8 -*- import os from paddleocr import PaddleOCR ocr PaddleOCR(use_angle_clsFalse, langch, show_logFalse) def recognize_image(img_path: str) - str: result ocr.ocr(img_path, clsFalse) text_lines [] if result: for line in result: if line: for item in line: text_lines.append(item[1][0]) return \n.join(text_lines) if __name__ __main__: image_dir ./imgs for filename in os.listdir(image_dir): if filename.lower().endswith((.png, .jpg, .jpeg, .bmp, .webp)): full_path os.path.join(image_dir, filename) text recognize_image(full_path) output_path os.path.splitext(full_path)[0] .txt with open(output_path, w, encodingutf-8) as f: f.write(text) print(f已完成{filename})这类脚本能帮你把 OCR 能力嵌入到文件下载、问卷填写、发票信息提取等真实业务中但要注意异常处理和并发控制。大批量识别时建议加上线程池或任务队列避免内存占用过高。6.3 与 RPA、效率工具配合Umi-OCR 可以作为 RPA机器人流程自动化的一环截取屏幕 → 识别文字 → 根据文本内容执行下一步操作。例如自动读取网页上的验证码、读取软件界面里的错误信息、将扫描件内容录入业务系统等。如果你没有 RPA 平台也可以用一个 Python 脚本同时完成“调用 Umi-OCR 的截图功能”和“读取识别结果”两个步骤。更简单的做法是直接用 PyAutoGUI 模拟截图再用 PaddleOCR 识别然后把结果传给自动化流程。7. 常见问题与排查思路7.1 问题对照表问题现象常见原因解决思路全局快捷键无反应快捷键被其他软件占用或 Umi-OCR 未在后台运行打开设置更换一个不冲突的快捷键首次启动一直卡在模型下载网络无法访问模型源或模型源速度慢尝试切换网络环境或手动下载模型文件并放到指定目录也可以切换 RapidOCR 等更轻的引擎识别准确率低图片模糊、文字倾斜、背景复杂预处理图片提高对比度保持文字正向必要时使用更大的模型批量识别很慢图片分辨率过高CPU 性能不足批量任务前先压缩图片文件多时建议拆分任务PDF 识别结果为空PDF 是文字版而非扫描版或页面为纯图片确认 PDF 类型若是扫描版检查页面是否清晰软件提示缺少 DLL 或运行库Windows 缺少 VC 运行库安装 Visual C Redistributable重启软件杀毒软件拦截未签名程序被误报从官方渠道下载校验哈希后添加到信任列表7.2 识别效果不理想时的调优顺序检查图片质量分辨率要足够文字不能太小。检查文字方向图片旋转到正常阅读方向。检查引擎语言包确认当前使用的是中文模型还是英文模型。更换引擎如果 PaddleOCR 效果不理想可以试 RapidOCR。后处理识别后人工校对数字、字母混淆的常见情况例如0与o、1与l。7.3 GitHub 下载相关的常见问题页面打不开或下载中断GitHub 在国内访问不稳定是常见问题可以换时间段重试或使用第三方加速服务。项目更新较快旧版本存在 Bug优先选择最新 Release或查看 Issues 里别人提的问题是否和你一样。不知道选择哪个安装包Windows 用户选择名称中包含win的压缩包如果想尝试源码就下载 Source code。8. 最佳实践与工程建议8.1 普通用户的最佳实践定期备份 Umi-OCR 的配置文件。软件的自定义设置通常保存在config目录下重装系统前可以先备份。不要在识别结果里直接保存含敏感信息的原始截图。如果图片涉及密码、密钥识别完成后及时清理临时文件。善用 “粘贴图片到窗口” 的快捷操作。很多时候你可以直接截图后按CtrlV把图片粘进去识别比鼠标拖拽更快。把常用功能配置好快捷键。截图识别、二维码解析这几类高频操作用快捷键能明显提升效率。8.2 开发者接入 OCR 的工程建议版本锁定在项目中使用 OCR 依赖时锁定具体版本号避免升级带来的模型格式不兼容。模型下沉到本地生产环境中把 OCR 模型文件打包到应用目录避免运行时下载模型导致超时。异常处理与重试OCR 可能因为图片损坏、内存不足等原因失败脚本中要捕获异常并记录日志。并发控制多线程调用 OCR 时注意显存或内存是否充足设置任务队列限制并发数。安全边界如果 OCR 服务通过 HTTP API 对外暴露必须限制访问 IP不要默认绑定 0.0.0.0 且不加认证。数据脱敏即使 OCR 在本地运行如果生成的结果很长也要注意避免在日志中打印全部识别文本。8.3 大型文档处理建议对于几百页 PDF 或上千张图片的批量识别不要一次性全部加载到内存。建议按批次处理第一批测试 10 页确认效果和耗时。根据耗时估算整体任务时长。分批执行并在任务之间加入短延迟避免电脑过热或内存不足。每批任务完成后立即写盘保存中间结果。校验输出文件非空且内容合理再继续下一批。9. 总结与后续学习路线通过本文我们认识了 Umi-OCR 这款离线 OCR 工具了解了它的核心功能、安装方式、界面操作方法也梳理了从截图识别到批量 PDF 识别的完整流程。最关键的是它所有的识别都在本地完成不需要把敏感图片上传到任何平台这对隐私敏感的用户来说是很大的加分项。如果你是一名普通用户下一步可以把截图识别快捷键设置好并在日常工作中尝试用它替代在线 OCR体验一下本地识别的效率。同时注意定期更新软件和模型以获得更好的识别准确率。如果你是一名开发者建议去 GitHub 阅读 Umi-OCR 的源码和官方文档重点关注它的引擎管理和配置结构。你还可以把它封装成更贴合自己业务的工具比如编写一个定时脚本自动识别某个文件夹下的新截图并生成文字记录。技术工具的最终价值是帮我们把重复劳动交给机器。希望 Umi-OCR 能在你的工作和学习中真正成为一款“用了就回不去”的效率工具。若你手头有更好的 OCR 使用经验也欢迎在评论区分享你的参数配置或自动化方案一起让本地 OCR 发挥更大价值。
返回列表