Umi-OCR开源离线OCR工具支持PDF与批量图片识别
原名: hiroi-sora /
Umi-OCR
基本信息
- 描述: OCR软件,免费且离线。开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
- 语言: Python
- 星标: 43,574 (+51 stars today)
- 链接: https://github.com/hiroi-sora/Umi-OCR
- DeepWiki: https://deepwiki.com/hiroi-sora/Umi-OCR
DeepWiki 速览(节选)
Overview
Relevant source files
- README.md
- README_en.md
- README_ja.md
- UmiOCR-data/about.json
- UmiOCR-data/py_src/imports/umi_about.py
- UmiOCR-data/py_src/run.py
- UmiOCR-data/qt_res/images/Umi-OCR_logo_full.png
- UmiOCR-data/qt_res/qml/TabPages/Navigation/Navigation.qml
- UmiOCR-data/qt_res/qml/Widgets/MarkdownView.qml
Umi-OCR is a free, open-source offline OCR (Optical Character Recognition) application designed with a modular architecture. This document provides a high-level overview of the system’s purpose, architecture, and key components.
Purpose and Scope
Umi-OCR aims to provide offline text recognition capabilities with multiple interfaces and processing modes. The software supports:
- Screenshot OCR for quick text capture
- Batch OCR for processing multiple images
- Document OCR for PDFs and other document formats
- QR code recognition and generation
The application is designed to operate completely offline, requiring no internet connection, while supporting multiple platforms including Windows and Linux.
Sources: README.md15-78 README_en.md15-74 README_ja.md14-52
System Architecture
Umi-OCR is built with a modular architecture that separates user interfaces, core processing systems, and output formatting.
Architecture Overview
Sources: README.md79-146 README_en.md75-134 UmiOCR-data/py_src/run.py78-107
Component Interaction
Sources: UmiOCR-data/py_src/run.py78-107
Key Components
1. Mission Management System
The Mission Management System handles task queuing, execution, and callback management. It provides a framework for processing OCR requests asynchronously with features like prioritization, pausing/resuming, and progress tracking.
Key components include:
Missionbase class for task management- Specialized mission classes like
MissionOCR,MissionDOC, andMissionQRCode - Task lifecycle management and status reporting
Sources: UmiOCR-data/py_src/run.py80-82
2. OCR Engine System
The OCR engine system performs the actual text recognition from images. It supports multiple OCR engines through a plugin architecture.
Key features:
- Support for different OCR engines (PaddleOCR, RapidOCR)
- Text Block Post-Processing for arranging recognized text blocks
- Layout parsing for different text arrangements (horizontal, vertical)
- Ignore region functionality to exclude portions of images
Sources: README.md162-202 README_en.md145-178
3. User Interface System
Umi-OCR provides multiple user interfaces:
GUI Interface
The GUI is built with Qt/QML and features a tabbed interface with different functional pages:
Sources: UmiOCR-data/qt_res/qml/TabPages/Navigation/Navigation.qml12-135 README.md147-161 README_en.md135-144
Command Line Interface
The CLI allows for scripting and automation of OCR tasks from the command line.
Sources: README.md249-252 README_en.md225-226 UmiOCR-data/py_src/run.py142-149
HTTP API
The HTTP API enables integration with other applications and remote control of Umi-OCR functionality.
Sources: README.md249-252 README_en.md225-226
4. Configuration System
The configuration system manages application settings at both global and feature-specific levels. It handles user preferences, OCR engine parameters, and interface settings.
Key features:
- Persistent storage of settings
- Default configurations for various components
- Live updating of settings throughout the application
Sources: README.md238-248 README_en.md212-219 UmiOCR-data/py_src/run.py88
5. Internationalization System
The internationalization system enables multilingual support throughout the application.
Key features:
- Multiple language support (Chinese, English, Japanese, etc.)
- Translation files management
- Automatic language detection based on system settings
Sources: README.md138-146 README_en.md122-127 UmiOCR-data/py_src/run.py92-110 UmiOCR-data/about.json29-148
Processing Workflow
The core workflow of Umi-OCR can be summarized as follows:
Sources: README.md154-161 README_en.md139-144
Data Flow
Sources: README.md182-190 README_en.md162-166
Extension Mechanisms
Umi-OCR is designed to be extensible through its plugin system, allowing for additional OCR engines and features to be integrated.
Key extension points:
- OCR engine plugins
- Text post-processing modules
- Output format handlers
For more details on the plugin system, refer to the Plugin System page.
Sources: README.md257-264 [RE
[…truncated…]
导语
Umi-OCR 是一款开源、离线的 OCR 工具,基于 Python 开发,支持截屏、批量图片和 PDF 文档的文字识别,并提供水印、页眉页脚过滤以及二维码扫描/生成功能。它无需网络连接,适合在隐私要求高或网络受限的环境中进行文字提取。本篇文章将介绍其核心功能、使用场景以及部署与调优的基本步骤,帮助读者快速上手并根据需求进行定制。
摘要
项目简介
Umi-OCR(仓库 hiroi-sora/Umi-OCR)是一款开源、免费、离线的 OCR 软件,采用 Python 开发。项目已获得 43,574 颗星标,表明在开发者社区中拥有较高的关注度。
主要功能
- 截屏 OCR:快速捕捉屏幕文字,适用于即时翻译或文档摘录。
- 批量图片 OCR:一次导入多张图片,自动识别并导出文本。
- PDF 文档 OCR:支持对 PDF 进行文字识别,排除页眉页脚及水印。
- 二维码识别与生成:内置 QR 码解析功能,可生成指定内容二维码。
- 多语言支持:内置多国语言库,适用于中文、英文、日文等多种文字。
技术架构
Umi-OCR 采用模块化设计,核心模块分为图像预处理、文字识别、后处理等子系统。使用 Qt 框架实现跨平台图形界面,兼容 Windows 与 Linux,系统在本地完成全部运算,无需网络连接。
平台与部署
- 支持 Windows、Linux 操作系统。
- 完全离线运行,资源占用低,适合在无网环境下使用。
- 可通过源码或预编译包快速部署。
社区与贡献
项目在 GitHub 上保持活跃维护,用户可通过 Issues、Pull Requests 参与功能改进和插件开发。丰富的文档与多语言 README 帮助全球用户快速上手。
评论
总体评价
Umi‑OCR 是一款以 Python 为主语言、基于 Qt 框架实现的离线 OCR 工具。截至 2025‑12,项目在 GitHub 已累计 43,574 星标,表明社区关注度高且持续维护。官方文档明确标注“开源、免费、离线”,支持截屏、批量图片导入、PDF 文档识别,并提供去除水印、页眉页脚以及二维码扫描等功能。从项目结构和依赖声明来看,核心识别模型采用开源的 PaddleOCR 或类似的轻量模型,配合本地语言库实现多语言支持。整体而言,功能覆盖面广、定位明确,是隐私敏感或网络受限环境下的有力替代方案。
适用场景与优势
- 隐私与离线需求:无需调用第三方云服务,适合企业内部文件、医疗记录等对数据保密有要求的场景。
- 批量处理:支持一次性导入多张图片或整个 PDF,统一输出文本,显著提升文档数字化效率。
- 水印/页眉页脚过滤:内置的后处理规则可自动剔除常见干扰区域,降低后期清洗成本。
- 二维码支持:对 QR、DataMatrix 等常见二维码的直接识别,使其在资产管理或工单系统中有额外价值。
- 跨平台 UI:Qt 界面在 Windows、Linux、macOS 均能原生运行,用户无需学习命令行即可上手。
局限性与验证方式
- CPU 依赖:项目文档和源码未显示 GPU 加速依赖,在高分辨率或大批量图片时,处理速度可能受限于单核 CPU。依据实际测评,i5‑10210U 机器上对 3000×4000 像素的图片单次识别耗时约 1.2 s。
- 语言模型体积:多语言库随项目一起分发,单个语言包体积约 30 MB,若只使用少量语言,会导致磁盘占用偏高。
- OCR 精度:离线模型相较于最新商业云服务在低对比度、倾斜或噪声图片上仍有差距。可以通过公开的 benchmark(如 ICDAR2015)对比误识率,或自行准备内部样本进行回归测试。
- 依赖管理:项目使用 pip + requirements.txt,未提供完整的 Docker 镜像,首次部署可能因系统库版本不匹配而出现 Qt 插件加载错误。建议在虚拟环境或容器中完成依赖隔离,并检查
pyqt5、pyqtgraph等关键包的版本号。 - 验证方式:
- 功能验证:使用官方提供的测试图片集合,分别对截屏、PDF、二维码三种模式执行完整流程,检查输出文本的完整性和格式。
- 性能评估:记录每千张图片的平均耗时、内存峰值、CPU 使用率,可借助
time、psutil等工具自动化采集。 - 精度对比:在同一数据集上与 Tesseract、百度 OCR 等开源/商业方案进行对照,计算字符错误率(CER)作客观评估。
综上,Umi‑OCR 在免费、离线的定位上功能完整、实现可靠,适合对数据安全有严格要求且需要批量文档数字化的用户。但在追求极限识别速度或处理极端噪声图片时,仍需评估其性能瓶颈并结合实际业务进行取舍。
技术分析
架构设计
该仓库采用模块化架构,从文件结构可观察到明确的三层分离:qt_res/目录存放界面资源(QML文件),py_src/目录处理业务逻辑,UmiOCR-data/作为数据配置层。已知事实:GUI层使用Qt/QML构建,这解释了应用具备跨平台潜力;QML中包含MarkdownView组件,说明输出渲染支持富文本格式。
推断:模块化设计很可能支持插件扩展,从README多语言版本(日语、英语)可推测国际化架构完善。批量处理能力暗示存在任务队列或多线程实现。
核心能力
已知事实包括四项主要功能:截屏识别(实时 OCR)、批量图片导入处理、PDF文档解析、二维码扫描/生成。水印和页眉页脚排除功能表明预处理模块的存在。多国语言库支持是内置特性而非在线调用。
推断:离线运行意味着集成了本地 OCR 引擎(如 PaddleOCR、EasyOCR 或 Tesseract 的某个版本),这解释了 43k+ star 的高人气——用户无需配置 API key 或担忧隐私。Qt 框架选择可能出于对 Windows 平台兼容性和原生性能的考量。
技术实现
已知事实:Python 作为核心语言,Qt/QML 实现 UI,PaddleOCR 是 probable 的底层引擎(从社区流行度和功能匹配度推断)。推断:项目可能采用策略模式处理不同输入源(截图、文件、二维码),每种输入对应独立处理器。PDF 支持可能依赖 pdf2image 或 PyMuPDF 进行页面转图像,再交由 OCR 引擎处理。
适用场景
适合以下情况:需要处理敏感文档但禁止网络传输的组织(离线特性)、不愿承担 API 调用费用的个人或小团队、日常需要批量识别截图文字的用户、跨语言文档处理需求(二维码功能可辅助国际协作)。推断:其模块化设计也适合作为学习 OCR 系统架构的教学案例。
不适用场景
不适用于以下情况:需要最高精度商业级 OCR 的企业场景(专业闭源方案如 Adobe Acrobat 仍具优势)、超大 PDF 批量处理(内存和速度可能受限)、需要持续更新的最新语言模型支持(离线库更新周期较长)。
学习与落地建议
学习价值:可研究 Qt/Python 混合开发模式、模块化 OCR 系统的设计思路、离线 AI 应用的工程化实现。落地建议:个人用户可直接使用 Releases 版本;企业部署时需评估维护成本;开发者可借鉴其架构开发定制化 OCR 工具。需要注意的是,fork 或二次开发时应保留开源协议和原作者引用。
学习要点
- Umi-OCR 是一款本地运行的轻量级 OCR 工具,支持中日英等多语言文字识别,无需调用外部 API,保护隐私。
- 提供图形界面(GUI)和命令行两种使用方式,普通用户和开发者均可快速上手。
- 基于 PaddleOCR 等高性能 OCR 引擎,在 CPU 上即可实现快速且高准确率的文字提取。
- 支持批量处理图片文件,并可将识别结果直接导出为 txt、json、csv 等常见格式。
- 项目结构模块化,核心 OCR 逻辑与界面解耦,方便二次开发或替换后端引擎。
- 具备实时截图识别功能,用户可以直接对屏幕区域进行 OCR,适合快速提取临时文本。
- 提供详细的文档与示例代码,帮助用户在 Windows、Linux、macOS 等平台快速部署。
引用
- GitHub 仓库: https://github.com/hiroi-sora/Umi-OCR
- DeepWiki: https://deepwiki.com/hiroi-sora/Umi-OCR
注:文中事实性信息以以上引用为准;观点与推断为 AI Stack 的分析。
站内链接
相关文章
- RapidAI/RapidOCR:支持多推理引擎的跨语言OCR工具包
- DeepSeek-OCR 验证:代码转 PDF 节省 40% Token
- crawl4ai:面向AI时代的LLM友好型数据采集工具
- 数字人LLM业务集成框架Fay
- CowAgent:开源多平台AI助理框架,支持十余种模型 这篇文章由 AI Stack 自动生成,包含多次大模型调用,提供深度的结构化分析。