/Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/粘贴/批量导入图片,段落排版/排除水印,扫描/生成二维码。内置多国语言库。

Primary LanguageQMLMIT LicenseMIT

中文 English

Umi-OCR

Umi-OCR 文字识别工具

Umi-OCR LICENSE forks stars forks


免费,开源,可批量的离线OCR软件
适用于 Windows7 x64 及以上

  • 免费:本项目所有代码开源,完全免费。
  • 方便:解压即用,离线运行,无需网络。
  • 高效:自带高效率离线OCR引擎。只要电脑性能足够,可以比在线OCR服务更快。
  • 灵活:支持命令行、HTTP接口等多种调用方式。
  • 功能:截图OCR / 批量OCR / 二维码 / 数学公式识别(测试中

1-标题-1.png

1-标题-2.png

目录

使用源码

开发者请务必阅读 构建项目

下载发行版

可选择以下方式下载:

开始使用

软件发布包下载为 .7z 压缩包或 .7z.exe 自解压包。自解压包可在没有安装压缩软件的电脑上,解压文件。

本软件无需安装。解压后,点击 Umi-OCR.exe 即可启动程序。

遇到任何问题,请提 Issue ,我会尽可能帮助你。

界面语言

Umi-OCR 支持的界面多国语言。在第一次打开软件时,将会按照你的电脑的系统设置,自动切换语言。

如果需要手动切换语言,请参考下图,全局设置语言/Language

1-标题-1.png

标签页

Umi-OCR v2 由一系列灵活好用的标签页组成。您可按照自己的喜好,打开需要的标签页。

标签栏左上角可以切换窗口置顶。右上角能够锁定标签页,以防止日常使用中误触关闭标签页。

截图OCR

2-截图-1.png

截图OCR:打开这一页后,就可以用快捷键唤起截图,识别图中的文字。

  • 左侧的图片预览栏,可直接用鼠标划选复制。
  • 右侧的识别记录栏,可以编辑文字,允许划选多个记录复制。
  • 也支持在别处复制图片,粘贴到Umi-OCR进行识别。

段落合并

2-截图-2.png

关于 OCR文本后处理 - 段落合并: 可以整理OCR结果的排版和顺序,使文本更适合阅读和使用。预设方案:

  • 单行:合并同一行的文字,适合绝大部分情景。
  • 多行-自然段:智能识别、合并属于同一段落的文字,适合绝大部分情景,如上图所示。
  • 多行-代码段:尽可能还原原始排版的缩进与空格。适合识别代码片段,或需要保留空格的场景。
  • 竖排:适合竖排排版。需要与同样支持竖排识别的模型库配合使用。

批量OCR

3-批量-1.png

批量OCR:这一页支持批量导入本地图片并识别。

  • 识别内容可以保存为 txt / jsonl / md / csv(Excel) 等多种格式。
  • 支持文本后处理技术,能识别属于同一自然段的文字,并将其合并。还支持代码段、竖排文本等多种处理方案。
  • 没有数量上限,可一次性导入几百张图片进行任务。
  • 支持任务完成后自动关机/待机。

忽略区域

3-批量-2.png

关于 OCR文本后处理 - 忽略区域: 批量OCR中的一种特殊功能,适用于排除图片中的不想要的文字。

  • 在批量识别页的右栏设置中可进入忽略区域编辑器。
  • 如上方样例,图片顶部和右下角存在多个水印 / LOGO。如果批量识别这类图片,水印会对识别结果造成干扰。
  • 按住右键,绘制多个矩形框。这些区域内的文字将在任务中被忽略。
  • 请尽量将矩形框画得大一些,完全包裹住水印所有可能出现的位置。

二维码

4-二维码-1.png

扫码

  • 可截图/粘贴/拖入本地图片,读取其中的二维码、条形码。
  • 支持一图多码。
  • 支持19种协议,如下:

Aztec,Codabar,Code128,Code39,Code93,DataBar,DataBarExpanded,DataMatrix,EAN13,EAN8,ITF,LinearCodes,MatrixCodes,MaxiCode,MicroQRCode,PDF417,QRCode,UPCA,UPCE,

4-二维码-2.png

生成码

  • 输入文本,生成二维码图片。
  • 支持19种协议和纠错等级等参数。

全局设置

5-全局设置-1.png

全局设置:在这里可以调整软件的全局参数。常用功能如下:

  • 一键添加快捷方式或设置开机自启。
  • 更改界面语言。Umi支持繁中、英 语、日语等语言。
  • 切换界面主题。Umi拥有多个亮/暗主题。
  • 调整界面文字的大小字体
  • 切换OCR插件。
  • 渲染器:软件界面默认支持显卡加速渲染。如果在你的机器上出现截屏闪烁、UI错位的情况,请调整界面和外观渲染器 ,尝试切换到不同渲染方案,或关闭硬件加速。

调用接口:

协助软件界面翻译

参见 dev-tools/i18n

开发计划

已完成的工作
  • 标签页框架。
  • OCR API控制器。
  • OCR 任务控制器。
  • 主题管理器,支持切换浅色/深色主题主题。
  • 实现 批量OCR
  • 实现 截图OCR
  • 快捷键机制。
  • 系统托盘菜单。
  • 文本块后处理(排版优化)。
  • 引擎内存清理。
  • 软件界面多国语言。
  • 命令行模式。
  • Win7兼容。
  • Excel(csv)输出格式。
  • Esc中断截图操作
  • 外置主题文件
  • 字体切换
  • 加载动画
  • 忽略区域。
  • 二维码识别。
  • 批量识别页面的图片预览窗口。
近期开发计划

近期准备进行的工作,将会在 v2 头几个版本内逐步上线。

  • PDF识别
  • 图片翻译
远期计划
展开

这些是预想中的功能,在开发初期已预留好接口,将在远期慢慢实现。

但开发途中受限于实际情况,可能更改功能设计、新增及取消功能。

  • 基于GPU的离线OCR。
  • 离线翻译。
  • 插件系统。
  • 固定区域识别。
  • 识别表格图片,输出为Excel。
  • 根据系统的深/浅模式,自动切换主题。
  • 历史记录系统。
  • 兼容 MacOS / Ubuntu 等平台。

关于项目结构

各仓库:

工程结构:

** 后缀表示本仓库(主仓库)包含的内容。

Umi-OCR
├─ Umi-OCR.exe
└─ UmiOCR-data
   ├─ main.py **
   ├─ version.py **
   ├─ site-packages
   │  └─ python包
   ├─ runtime
   │  └─ python解释器
   ├─ qt_res **
   │  └─ 项目qt资源,包括图标和qml源码
   ├─ py_src **
   │  └─ 项目python源码
   ├─ plugins
   │  └─ 插件
   └─ i18n **
      └─ 翻译文件

支持的离线OCR引擎:

运行环境框架:

构建项目

第零步:(可选)fork本项目

第一步:下载代码

请参考 更新日志 开头的说明。

后续步骤:

对于不同平台(虽然现在只有Windows),需要不同的运行环境。

  • Windows
  • 跨平台的支持筹备中

请跳转上述仓库,完成对应平台的开发/运行环境部署。

本项目也拥有非常简易的一键打包脚本,在以上仓库中查看。