You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

412 lines
16 KiB

2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <p align="left">
  2. <span>
  3. <b>中文</b>
  4. </span>
  5. <span></span>
  6. <a href="README_en.md">
  7. English
  8. </a>
  9. <span></span>
  10. <a href="README_ja.md">
  11. 日本語
  12. </a>
  13. </p>
  14. <p align="center">
  15. <a href="https://github.com/hiroi-sora/Umi-OCR">
  16. <img width="200" height="128" src="https://tupian.li/images/2022/10/27/icon---256.png" alt="Umi-OCR">
  17. </a>
  18. </p>
  19. <h1 align="center">Umi-OCR 文字识别工具</h1>
  20. <p align="center">
  21. <a href="https://github.com/hiroi-sora/Umi-OCR/releases/latest">
  22. <img src="https://img.shields.io/github/v/release/hiroi-sora/Umi-OCR?style=flat-square" alt="Umi-OCR">
  23. </a>
  24. <a href="https://github.com/hiroi-sora/Umi-OCR/blob/main/LICENSE">
  25. <img src="https://img.shields.io/github/license/hiroi-sora/Umi-OCR?style=flat-square" alt="LICENSE">
  26. </a>
  27. <a href="#下载发行版">
  28. <img src="https://img.shields.io/github/downloads/hiroi-sora/Umi-OCR/total?style=flat-square" alt="forks">
  29. </a>
  30. <a href="https://star-history.com/#hiroi-sora/Umi-OCR">
  31. <img src="https://img.shields.io/github/stars/hiroi-sora/Umi-OCR?style=flat-square" alt="stars">
  32. </a>
  33. <a href="https://github.com/hiroi-sora/Umi-OCR/forks">
  34. <img src="https://img.shields.io/github/forks/hiroi-sora/Umi-OCR?style=flat-square" alt="forks">
  35. </a>
  36. <a href="https://hosted.weblate.org/engage/umi-ocr/">
  37. <img src="https://hosted.weblate.org/widget/umi-ocr/svg-badge.svg" alt="翻译状态">
  38. </a>
  39. </p>
  40. <div align="center">
  41. <h3>
  42. <a href="#目录">
  43. 使用说明
  44. </a>
  45. <span></span>
  46. <a href="#下载发行版">
  47. 下载地址
  48. </a>
  49. <span></span>
  50. <a href="CHANGE_LOG.md">
  51. 更新日志
  52. </a>
  53. <span></span>
  54. <a href="https://github.com/hiroi-sora/Umi-OCR/issues">
  55. 提交Bug
  56. </a>
  57. </h3>
  58. </div>
  59. <br>
  60. <div align="center">
  61. <strong>免费,开源,可批量的离线OCR软件</strong><br>
  62. <sub>适用于 Windows7 x64 、Linux x64
  63. </div><br>
  64. - **免费**:本项目所有代码开源,完全免费。
  65. - **方便**:解压即用,离线运行,无需网络。
  66. - **高效**:自带高效率的离线OCR引擎,内置多种语言识别库。
  67. - **灵活**:支持命令行、HTTP接口等外部调用方式。
  68. - **功能**:截图OCR / 批量OCR / PDF识别 / 二维码 / 公式识别
  69. <p align="center"><img src="https://tupian.li/images/2023/11/19/65599097ab5f4.png" alt="1-标题-1.png" style="width: 80%;"></p>
  70. ![1-标题-2.png](https://tupian.li/images/2023/11/19/6559909fdeeba.png)
  71. ## 目录
  72. - [截图识别](#截图OCR)
  73. - [排版解析](#文本后处理) - 识别不同排版,按正确顺序输出文字
  74. - [批量识别](#批量OCR)
  75. - [忽略区域](#忽略区域) - 排除截图水印处的文字
  76. - [二维码](#二维码) 支持扫码或生成二维码图片
  77. - [文档识别](#文档识别) 从PDF扫描件中提取文本,或转为双层可搜索PDF
  78. - [全局设置](#全局设置)
  79. - [命令行调用](docs/README_CLI.md)
  80. - [HTTP接口](docs/http/README.md)
  81. - [构建项目(Windows、Linux)](#构建项目)
  82. ## 使用源码
  83. 开发者请务必阅读 [构建项目](#构建项目) 。
  84. ## 下载发行版
  85. 以下发布链接均长期维护,提供稳定版本的下载。
  86. - **蓝奏云** https://hiroi-sora.lanzoul.com/s/umi-ocr (国内推荐,免注册/无限速)
  87. - **GitHub** https://github.com/hiroi-sora/Umi-OCR/releases/latest
  88. - **Source Forge** https://sourceforge.net/projects/umi-ocr
  89. <details>
  90. <summary><b>&nbsp;&nbsp;Scoop Installer</b>(点击展开)</summary>
  91. [Scoop](https://scoop.sh/) 是一款Windows下的命令行安装程序,可方便地管理多个应用。您可以先安装 Scoop ,再使用以下指令安装 `Umi-OCR`
  92. - 添加 `extras` 桶:
  93. ```
  94. scoop bucket add extras
  95. ```
  96. - (可选1)安装 Umi-OCR(自带 `Rapid-OCR` 引擎,兼容性好):
  97. ```
  98. scoop install extras/umi-ocr
  99. ```
  100. - (可选2)安装 Umi-OCR(自带 `Paddle-OCR` 引擎,速度稍快):
  101. ```
  102. scoop install extras/umi-ocr-paddle
  103. ```
  104. - 不要同时安装二者,快捷方式可能会被覆盖。但您可以额外导入 [插件](https://github.com/hiroi-sora/Umi-OCR_plugins) ,随时切换不同OCR引擎。
  105. </details>
  106. </br>
  107. ## 开始使用
  108. 软件发布包下载为 `.7z` 压缩包或 `.7z.exe` 自解压包。自解压包可在没有安装压缩软件的电脑上,解压文件。
  109. 本软件无需安装。解压后,点击 `Umi-OCR.exe` 即可启动程序。
  110. 遇到任何问题,请提 [Issue](https://github.com/hiroi-sora/Umi-OCR/issues) ,我会尽可能帮助你。
  111. ## 界面语言
  112. Umi-OCR 支持的界面多国语言。在第一次打开软件时,将会按照你的电脑的系统设置,自动切换语言。
  113. 如果需要手动切换语言,请参考下图,`全局设置`→`语言/Language` 。
  114. <p align="center"><img src="https://tupian.li/images/2023/11/19/65599c3f9e600.png" alt="1-标题-1.png" style="width: 80%;"></p>
  115. ## 标签页
  116. Umi-OCR v2 由一系列灵活好用的**标签页**组成。您可按照自己的喜好,打开需要的标签页。
  117. 标签栏左上角可以切换**窗口置顶**。右上角能够**锁定标签页**,以防止日常使用中误触关闭标签页。
  118. ### 截图OCR
  119. <p align="center"><img src="https://tupian.li/images/2023/11/19/65599097aba8e.png" alt="2-截图-1.png" style="width: 80%;"></p>
  120. **截图OCR**:打开这一页后,就可以用快捷键唤起截图,识别图中的文字。
  121. - 左侧的图片预览栏,可直接用鼠标划选复制。
  122. - 右侧的识别记录栏,可以编辑文字,允许划选多个记录复制。
  123. - 也支持在别处复制图片,粘贴到Umi-OCR进行识别。
  124. - 关于 [公式识别](https://github.com/hiroi-sora/Umi-OCR/issues/254) 功能
  125. #### 文本后处理
  126. <p align="center"><img src="https://tupian.li/images/2023/11/19/6559909f3e378.png" alt="2-截图-2.png" style="width: 80%;"></p>
  127. 关于 **OCR文本后处理 - 排版解析方案**: 可以整理OCR结果的排版和顺序,使文本更适合阅读和使用。预设方案:
  128. - `多栏-按自然段换行`:适合大部分情景,自动识别多栏布局,按自然段规则进行换行。
  129. - `多栏-总是换行`:每段语句都进行换行。
  130. - `多栏-无换行`:强制将所有语句合并到同一行。
  131. - `单栏-按自然段换行`/`总是换行`/`无换行`:与上述类似,不过 不区分多栏布局。
  132. - `单栏-保留缩进`:适用于解析代码截图,保留行首缩进和行中空格。
  133. - `不做处理`:OCR引擎的原始输出,默认每段语句都进行换行。
  134. 上述方案,均能自动处理横排和竖排(从右到左)的排版。(竖排文字还需要OCR引擎本身支持)
  135. ---
  136. ### 批量OCR
  137. <p align="center"><img src="https://tupian.li/images/2023/11/19/655990a2511e0.png" alt="3-批量-1.png" style="width: 80%;"></p>
  138. **批量OCR**:这一页用于批量导入本地图片进行识别。
  139. - 支持格式:`jpg, jpe, jpeg, jfif, png, webp, bmp, tif, tiff`。
  140. - 保存识别结果的支持格式:`txt, jsonl, md, csv(Excel)`。
  141. - 与截图OCR一样,支持`文本后处理`功能,整理OCR文本的排版和顺序。
  142. - 没有数量上限,可一次性导入几百张图片进行任务。
  143. - 支持任务完成后自动关机/待机。
  144. - 如果要识别像素超大的长图或大图,请调整:**页面的设置→文字识别→限制图像边长→【调高数值】**。
  145. - 拥有特殊功能 `忽略区域`
  146. #### 忽略区域
  147. <p align="center"><img src="https://tupian.li/images/2023/11/19/6559911d28be7.png" alt="3-批量-2.png" style="width: 80%;"></p>
  148. 关于 **OCR文本后处理 - 忽略区域**: 批量OCR中的一种特殊功能,适用于排除图片中的不想要的文字。
  149. - 在批量识别页的右栏设置中可进入忽略区域编辑器。
  150. - 如上方样例,图片顶部和右下角存在多个水印 / LOGO。如果批量识别这类图片,水印会对识别结果造成干扰。
  151. - 按住右键,绘制多个矩形框。这些区域内的文字将在任务中被忽略。
  152. - 请尽量将矩形框画得大一些,完全包裹住水印所有可能出现的位置。
  153. - 注意,只有处于忽略区域框内部的整个文本块(而不是单个字符)会被忽略。如下图所示,黄色边框的深色矩形是一个忽略区域。那么只有`key_mouse`才会被忽略。`pubsub_connector.py`、`pubsub_service.py` 这两个文本块得以保留。
  154. <p align="center"><img src="https://tupian.li/images/2024/05/30/66587bf03ae15.png" alt="忽略区域范围示例.png" style="width: 80%;"></p>
  155. ---
  156. ### 文档识别
  157. <p align="center"><img src="https://github.com/hiroi-sora/Umi-OCR/assets/56373419/fc2266ee-b9b7-4079-8b10-6610e6da6cf5" alt="" style="width: 80%;"></p>
  158. **文档识别**:
  159. - 支持格式:`pdf, xps, epub, mobi, fb2, cbz`。
  160. - 对扫描件进行OCR,或提取原有文本。可输出为 **双层可搜索PDF**
  161. - 支持设定 **忽略区域** ,可用于排除页眉页脚的文字。
  162. - 可设置任务完成后 **自动关机/休眠**
  163. ---
  164. ### 二维码
  165. <p align="center"><img src="https://tupian.li/images/2023/11/19/655991268d6b1.png" alt="4-二维码-1.png" style="width: 80%;"></p>
  166. **扫码**:
  167. - 截图/粘贴/拖入本地图片,读取其中的二维码、条形码。
  168. - 支持一图多码。
  169. - 支持19种协议,如下:
  170. `Aztec`,`Codabar`,`Code128`,`Code39`,`Code93`,`DataBar`,`DataBarExpanded`,`DataMatrix`,`EAN13`,`EAN8`,`ITF`,`LinearCodes`,`MatrixCodes`,`MaxiCode`,`MicroQRCode`,`PDF417`,`QRCode`,`UPCA`,`UPCE`
  171. <p align="center"><img src="https://tupian.li/images/2023/11/19/6559911cda737.png" alt="4-二维码-2.png" style="width: 80%;"></p>
  172. **生成码**:
  173. - 输入文本,生成二维码图片。
  174. - 支持19种协议和**纠错等级**等参数。
  175. ---
  176. ### 全局设置
  177. <p align="center"><img src="https://tupian.li/images/2023/11/19/655991252e780.png" alt="5-全局设置-1.png" style="width: 80%;"></p>
  178. **全局设置**:在这里可以调整软件的全局参数。常用功能如下:
  179. - 一键添加快捷方式或设置开机自启。
  180. - 更改界面**语言**。Umi支持繁中、英语、日语等语言。
  181. - 切换界面**主题**。Umi拥有多个亮/暗主题。
  182. - 调整界面**文字的大小**和**字体**。
  183. - 切换OCR插件。
  184. - **渲染器**:软件界面默认支持显卡加速渲染。如果在你的机器上出现截屏闪烁、UI错位的情况,请调整`界面和外观` → `渲染器` ,尝试切换到不同渲染方案,或关闭硬件加速。
  185. ## 调用接口:
  186. - [命令行手册](docs/README_CLI.md)
  187. - [HTTP接口手册](docs/http/README.md)
  188. ---
  189. ## 软件本地化翻译:
  190. 感谢以下译者,为 Umi-OCR 贡献了本地化翻译工作:(排名不分先后)
  191. | 译者 | 贡献语言 |
  192. | --------------------------------------------------------------- | ------------------------- |
  193. | [bob](https://hosted.weblate.org/user/q021) | English, 繁體中文, 日本語 |
  194. | [Qingzheng Gao](https://github.com/QZGao) | English, 繁體中文 |
  195. | [Weng, Chia-Ling](https://hosted.weblate.org/user/ChiaLingWeng) | English, 繁體中文 |
  196. | [linzow](https://hosted.weblate.org/user/linzow) | English, 繁體中文 |
  197. | [Eric Guo](https://hosted.weblate.org/user/qwedc001) | English |
  198. | [steven0081](https://hosted.weblate.org/user/steven0081) | English |
  199. | [Marcos i](https://hosted.weblate.org/user/ultramarkorj9) | English |
  200. | [plum7x](https://hosted.weblate.org/user/plum7x) | 繁體中文 |
  201. | [hugoalh](https://hosted.weblate.org/user/hugoalh) | 繁體中文 |
  202. | [ドコモ光](https://hosted.weblate.org/user/umren190402) | 日本語 |
  203. | [杨鹏](https://hosted.weblate.org/user/ypf) | Português |
  204. 如果有信息错误或人员缺漏,请在 [这个讨论](https://github.com/hiroi-sora/Umi-OCR/discussions/449) 中回复。
  205. 本项目使用在线平台 [Weblate: Umi-OCR](https://hosted.weblate.org/engage/umi-ocr/) 进行本地化翻译协作。我们欢迎任何用户参与翻译工作,您可校对、补充现有语言,或添加新语言。
  206. ---
  207. ## 关于项目结构
  208. ### 各仓库:
  209. - [主仓库](https://github.com/hiroi-sora/Umi-OCR) 👈
  210. - [插件库](https://github.com/hiroi-sora/Umi-OCR_plugins)
  211. - [Windows 运行库](https://github.com/hiroi-sora/Umi-OCR_runtime_windows)
  212. - [Linux 运行库](https://github.com/hiroi-sora/Umi-OCR_runtime_linux)
  213. ### 工程结构:
  214. `**` 后缀表示本仓库(`主仓库`)包含的内容。
  215. ```
  216. Umi-OCR
  217. ├─ Umi-OCR.exe
  218. ├─ umi-ocr.sh
  219. └─ UmiOCR-data
  220. ├─ main.py **
  221. ├─ version.py **
  222. ├─ qt_res **
  223. │ └─ 项目qt资源,包括图标和qml源码
  224. ├─ py_src **
  225. │ └─ 项目python源码
  226. ├─ plugins
  227. │ └─ 插件
  228. └─ i18n **
  229. └─ 翻译文件
  230. ```
  231. 支持的离线OCR引擎:
  232. - [PaddleOCR-json](https://github.com/hiroi-sora/PaddleOCR-json)
  233. - [RapidOCR-json](https://github.com/hiroi-sora/RapidOCR-json)
  234. 运行环境框架:
  235. - [PyStand](https://github.com/skywind3000/PyStand) 定制版
  236. ## 构建项目
  237. ### 第零步:(可选)fork本项目
  238. ### 第一步:下载代码
  239. 请参考 [更新日志](CHANGE_LOG.md) 开头的说明。
  240. ### 后续步骤:
  241. 请跳转下述仓库,完成对应平台的开发/运行环境部署。
  242. - [Windows](https://github.com/hiroi-sora/Umi-OCR_runtime_windows)
  243. - [Linux](https://github.com/hiroi-sora/Umi-OCR_runtime_linux)
  244. ---
  245. ## 赞助
  246. Umi-OCR 项目主要由作者 [hiroi-sora](https://github.com/hiroi-sora) 用业余时间在开发和维护。如果您喜欢这款软件,欢迎赞助。
  247. - 国内用户可通过 [爱发电](https://afdian.com/a/hiroi-sora) 赞助作者。
  248. ## Star History
  249. [![Star History Chart](https://api.star-history.com/svg?repos=hiroi-sora/Umi-OCR&type=Date)](https://star-history.com/#hiroi-sora/Umi-OCR&Date)
  250. ## [更新日志](CHANGE_LOG.md)
  251. ## 开发计划
  252. <details>
  253. <summary>已完成的工作</summary>
  254. - 标签页框架。
  255. - OCR API控制器。
  256. - OCR 任务控制器。
  257. - 主题管理器,支持切换浅色/深色主题主题。
  258. - 实现 **批量OCR**
  259. - 实现 **截图OCR**
  260. - 快捷键机制。
  261. - 系统托盘菜单。
  262. - 文本块后处理(排版优化)。
  263. - 引擎内存清理。
  264. - 软件界面多国语言。
  265. - 命令行模式。
  266. - Win7兼容。
  267. - Excel(csv)输出格式。
  268. - `Esc`中断截图操作
  269. - 外置主题文件
  270. - 字体切换
  271. - 加载动画
  272. - 忽略区域。
  273. - 二维码识别。
  274. - 批量识别页面的图片预览窗口。
  275. - PDF识别。
  276. - 调用本地图片浏览器打开图片。 [#335](https://github.com/hiroi-sora/Umi-OCR/issues/335)
  277. - 重复上一次截图。 [#357](https://github.com/hiroi-sora/Umi-OCR/issues/357)
  278. - 修Bug:文档识别在Windows7系统的兼容性问题。
  279. - HTTP/命令行接口添加二维码识别/生成功能。 (#423)
  280. - 二维码接口的文档。
  281. - Linux 平台移植。
  282. - HTTP 文档识别接口。
  283. </details>
  284. <!-- ##### 正在进行的工作 -->
  285. ##### 远期计划
  286. <details>
  287. <summary>展开</summary>
  288. 这些是预想中的功能,在开发初期已预留好接口,将在远期慢慢实现。
  289. 但开发途中受限于实际情况,可能更改功能设计、新增及取消功能。
  290. - [ ] 重构底层插件机制。
  291. - [ ] 在线 OCR API 插件。
  292. - [ ] 独立的数学公式识别插件。
  293. - [ ] “数学公式”标签页,提供独立的数学公式识别/Latex渲染。
  294. - [ ] 检查更新机制。
  295. - [ ] 排版解析之外的文本后处理模块(如保留数字、半全角字符转换、文本纠错)。
  296. - [ ] 关键接口函数添加事件触发方式。
  297. - 基于GPU的离线OCR。
  298. - 图片翻译
  299. - 离线翻译。
  300. - 固定区域识别。
  301. - 识别表格图片,输出为Excel。
  302. - 历史记录系统。
  303. - 兼容 MacOS / Ubuntu 等平台。
  304. </details>