免费开源图片转文字识别软件:Umi-OCR

目录

1.介绍

2.项目亮点

3.项目功能(已实现)

4.功能体验

5.项目集成(调用接口)

6.项目地址


1.介绍

        Umi-OCR:免费,开源,可批量的离线OCR软件,目前适用于 Windows7 x64 及以上。

        这个项目基于基于 PaddleOCR,支持截图识别、批量导入识别、个性化识别等功能。

        整个项目由 python 语言编写,win7系统的小伙伴大概率是用不了的。推荐 Win10 x64 及以上版本。

2.项目亮点

免费

本项目所有代码开源,完全免费。

方便

解压即用,离线运行,无需网络。

高效

自带高效率的离线OCR引擎,内置多种语言识别库。

灵活

支持命令行、HTTP接口等外部调用方式。

功能

截图OCR / 批量OCR / PDF识别 / 二维码 / 公式识别(测试中)

3.项目功能(已实现)

  • 标签页框架。

  • OCR API控制器。

  • OCR 任务控制器。

  • 主题管理器,支持切换浅色/深色主题主题。

  • 实现 批量OCR

  • 实现 截图OCR

  • 快捷键机制。

  • 系统托盘菜单。

  • 文本块后处理(排版优化)。

  • 引擎内存清理。

  • 软件界面多国语言。

  • 命令行模式。

  • Win7兼容。

  • Excel(csv)输出格式。

  • Esc中断截图操作

  • 外置主题文件

  • 字体切换

  • 加载动画

  • 忽略区域。

  • 二维码识别。

  • 批量识别页面的图片预览窗口。

  • PDF识别。

  • 调用本地图片浏览器打开图片。 #335

  • 重复上一次截图。 #357

  • 修Bug:文档识别在Windows7系统的兼容性问题。

  • HTTP/命令行接口添加二维码识别/生成功能。(#423)

  • 二维码接口的文档。

4.功能体验

界面语言

直接在releases中选择合适的版本,下载解压即可。

可以看到,项目还配套了英、日、韩等多个国家的语言识别库,方便国外的这些用户使用。

截图识别OCR

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

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

文本后处理

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

  • 多栏-按自然段换行:适合大部分情景,自动识别多栏布局,按自然段规则进行换行。
  • 多栏-总是换行:每段语句都进行换行。
  • 多栏-无换行:强制将所有语句合并到同一行。
  • 单栏-按自然段换行/总是换行/无换行:与上述类似,不过 不区分多栏布局。
  • 单栏-保留缩进:适用于解析代码截图,保留行首缩进和行中空格。
  • 不做处理:OCR引擎的原始输出,默认每段语句都进行换行。

上述方案,均能自动处理横排和竖排(从右到左)的排版。(竖排文字还需要OCR引擎本身支持)

批量OCR

批量OCR:这一页用于批量导入本地图片进行识别。

  • 支持格式:jpg, jpe, jpeg, jfif, png, webp, bmp, tif, tiff
  • 保存识别结果的支持格式:txt, jsonl, md, csv(Excel)
  • 与截图OCR一样,支持文本后处理功能,整理OCR文本的排版和顺序。
  • 没有数量上限,可一次性导入几百张图片进行任务。
  • 支持任务完成后自动关机/待机。
  • 如果要识别像素超大的长图或大图,请调整:页面的设置→文字识别→限制图像边长→【调高数值】
  • 拥有特殊功能 忽略区域 。

文档识别

文档识别

  • 支持格式:pdf, xps, epub, mobi, fb2, cbz
  • 对扫描件进行OCR,或提取原有文本。可输出为 双层可搜索PDF 。
  • 支持设定 忽略区域 ,可用于排除页眉页脚的文字。
  • 可设置任务完成后 自动关机/休眠 。

二维码

扫码

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

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

生成码

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

全局设置

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

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

5.项目集成(调用接口)

基础说明

如上图,必须允许HTTP服务才能使用HTTP接口(默认开启)。如果需要允许被局域网访问,请将主机切换到任何可用地址

在全局设置页中勾选高级才会显示。

1) 图片OCR:Base64 识别接口

传入一个base64编码的图片,返回OCR识别结果。

URL:/api/ocr

例:http://127.0.0.1:1224/api/ocr(实际端口请在全局设置中查看)

2) 图片OCR:参数查询接口

返回当前需要提供哪些options参数。

URL:/api/ocr/get_options

例:http://127.0.0.1:1224/api/ocr/get_options

3) 二维码:Base64 识别接口

传入一个base64编码的图片,返回二维码识别结果。

URL:/api/qrcode

例:http://127.0.0.1:1224/api/qrcode

4) 二维码:从文本生成图片

传入文本,根据文本生成二维码图片,返回图片base64。

URL:/api/qrcode (与二维码识别接口一致,只是参数不同)

例:http://127.0.0.1:1224/api/qrcode

6.项目地址

【github】:https://github.com/hiroi-sora/Umi-OCR

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/344672.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器人和人工智能——自主巡航赛项】进阶篇

文章目录 案例要求创建地图rviz仿真 保存地图坐标点定位识别训练主逻辑理解语音播报模块匹配二维码识别多点导航讲解视频其余篇章 案例要求 创建地图 ./1-gmapping.sh 把多个launch文件融合在sh文件里面 rviz仿真 rviz是rose集成的可视化界面,查看机器人的各项数…

深度学习:如何静悄悄地改变我们的日常生活

深度学习 深度学习:如何静悄悄地改变我们的日常生活一、消费电子产品智能手机与个人助理娱乐与社交媒体 二、医疗健康三、汽车与交通四、公共安全五、总结 深度学习:如何静悄悄地改变我们的日常生活 在近年来,深度学习技术因其强大的数据处理…

Java——数组排序和查找

一、排序介绍 1、排序的概念 排序是将多个数据按照指定的顺序进行排列的过程。 2、排序的种类 排序可以分为两大类:内部排序和外部排序。 3、内部排序和外部排序 1)内部排序 内部排序是指数据在内存中进行排序,适用于数据量较小的情况…

快速入门Linux及使用VSCode远程连接Linux服务器

在当前的技术环境中,Linux操作系统因其强大的功能和灵活性而广受欢迎。无论你是开发人员、系统管理员还是技术爱好者,学习Linux都是提升技术技能的重要一步。本文将介绍如何快速入门Linux,并使用Visual Studio Code(VSCode&#x…

LabVIEW储油罐监控系统

LabVIEW储油罐监控系统 介绍了基于LabVIEW的储油罐监控系统的设计与实施。系统通过集成传感器技术和虚拟仪器技术,实现对储油罐内液位和温度的实时监控,提高了油罐监管的数字化和智能化水平,有效增强了油库安全管理的能力。 项目背景 随着…

【vector模拟实现】附加代码讲解

vector模拟实现 一、看源代码简单实现1. push_backcapacity(容量)sizereserve(扩容)operator[ ] (元素访问) 2. pop_back3. itorator(迭代器)4.insert & erase (头插…

skywalking基础使用

skywalking基础使用 找链路追踪Id将链路追踪Id拿到skywalking-ui中筛选对应链路补充说明例如, sql的打印能让我们了解到代码中对应的sql是否符合预期 找链路追踪Id 在接口响应header中复制x-trace-id 这个接口响应正常了, 异常没有暴露到前端, 且调用链路很长, 但我们借助s…

高质量 HarmonyOS 权限管控流程

高质量 HarmonyOS 权限管控流程 在 HarmonyOS 应用开发过程中,往往会涉及到敏感数据和硬件资源的调动和访问,而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解,才可以在应用开发中提高效率和避免踩坑。 权限管控了…

【安装笔记-20240608-Linux-动态域名更新服务之YDNS】

安装笔记-系列文章目录 安装笔记-20240608-Linux-动态域名更新服务之YDNS 文章目录 安装笔记-系列文章目录安装笔记-20240608-Linux-动态域名更新服务之YDNS 前言一、软件介绍名称:YDNS主页官方介绍 二、安装步骤测试版本:openwrt-23.05.3-x86-64注册填…

c++【入门】求圆环的面积

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 如下图所示的圆环铁片,中间是空心的,已知圆环外圆的半径是r1厘米(如:10cm),内圆半径是r2厘米(如:6cm),请编…

如何使用GPT-4o函数调用构建一个实时应用程序?

本教程介绍了如何使用OpenAI最新的LLM GPT-4o通过函数调用将实时数据引入LLM。 我们在LLM函数调用指南(详见https://thenewstack.io/a-comprehensive-guide-to-function-calling-in-llms/)中讨论了如何将实时数据引入聊天机器人和代理。现在,我们将通过将来自Fligh…

上位机快速开发框架

右上角向下按钮 -> 后台配置 系统菜单 角色管理 分配权限 用户管理 设备配置 通道管理 首页界面设计 设备1配置 带反馈按钮,如:用户按键00105,PLC反馈状态00106 设备2配置 参数说明: TagName_Main:主要信息&#…

Leetcode:整数转罗马数字

题目链接:12. 整数转罗马数字 - 力扣(LeetCode) 普通版本(模拟) 条件分析:罗马数字由 7 个不同的单字母符号组成,每个符号对应一个具体的数值。此外,减法规则还给出了额外的 6 个复…

使用缓存降低数据库并发读写方案探索

文章目录 前言缓存设计思想缓存划分缓存应用时机 客户端缓存浏览器缓存网关或代理服务器缓存CDNPCDN 服务端缓存本地缓存本地缓存实现Java堆缓存memcached/ecachecaffeineORM框架一级/二级缓存 分布式缓存分布式缓存优缺点分布式缓存实现分布式缓存实施过程可能遇到问题分布式缓…

二分【1】二分查找框架 查找指定元素

目录 二分查找 基本思想 几种情况汇总 一。严格递增序列 1.查找本身 2.查找第一个大于等于自己的 3.查找第一个大于自己的 4.严格递减序列 二。有重复元素 1.取其中第一个出现的 2.取其中最后一个出现的 二分查找 基本思想 几种情况汇总 一。严格递增序列 1.查找本身…

3D Gaussian Splatting for Real-Time Radiance Field Rendering

辐射场方法最近在基于多张照片或视频进行新视角合成方面取得了革命性进展。然而,实现高视觉质量仍然需要耗时且计算成本高的神经网络,而最近的快速方法不可避免地在速度和质量之间进行了权衡。对于无界和完整的场景(而不是孤立的物体&#xf…

【讯为Linux驱动开发】5.并发与竞争

并发:一个CPU在一个时间片只能执行一个任务,切换速度很快。 并行:双核CPU,真正的同时执行两个任务 并行就是并发的理想情况,统称并发。 【问】Linux在什么情况下产生并发? 1.中断中修改公共资源 2.抢占…

2024年电子工程与自动化技术国际会议(ICEEAT 2024)

2024 International Conference on Electronic Engineering and Automation Technology 【1】大会信息 会议简称:ICEEAT 2024 大会地点:中国西安 审稿通知:投稿后2-3日内通知 【2】会议简介 2024年电子工程与自动化技术国际会议是聚焦电子…

关于音乐播放器与系统功能联动功能梳理

主要实现功能: 一、通知栏播放显示和控制 二、系统下拉栏中播放模块显示同步 三、与其他播放器状态同步:本应用播放时暂停其他应用播放,进入其他应用播放时,暂停本应用的后台播放 通知栏播放的显示和控制: 通过Not…

操作系统总结

进程和线程的区别 本质区别: 进程是资源调度以及分配的基本单位。线程是 CPU 调度的基本单位。 所属关系:一个线程属于一个进程,一个进程可以拥有多个线程。地址空间: 进程有独立的虚拟地址空间。线程没有独立的虚拟地址空间&…