图片公式识别@文档公式识别@表格识别@在线和离线OCR工具
文章目录
- abstract
- 普通文字识别
- 本地软件识别公式
- 扩展插件下载
- 小结
- 在线识别
- 网站/API👺
- Quicker整合(推荐)
- 可视化编辑和识别公式
- 其他
- 多模态大模型识别图片中的公式
- 排版
- 开源模型
abstract
- 本文介绍免费图片文本识别(OCR)工具,包括普通文字识别,公式识别,甚至是手写公式和文字
- 重点在于免费和好用,不失选择的多样性
- 虽然公式识别的难度远大于普通文字的识别难度,但是随着技术的发展,公式识别也会像文本识别那样易用,免费
- 其他重要的AI应用(这里不展开)
- 还有表格识别,尤其是复杂表格的识别
- 逼真(接近真人播音员朗读效果)的文本朗读语言生成
- 本文内容可能会随着时间的逝去而过时,某些东西将来可能不那么好用,也可能变得好用,也可能出现更好的工具
普通文字识别
- 这类软件或平台十分的多,早已普及,比如qq/微信都有文本识别的功能
- 有人把微信里的ocr功能作为后台设计了一个本地OCR,并且接入语音朗读
- 那么主要比较的是识别速度和精度,以及易用程度,比如能否离线识别,连续识别的体验,跨平台如何,费用等方面
- 当然能够识别公式的平台通常也能识别普通文本(但是个别模型为了提高公式识别精度,仅设计为用来识别公式)
本地软件识别公式
- Umi-OCR: Umi-OCR (gitee.com)
- 是一款免费、开源、可批量的离线 OCR 软件,基于 PaddleOCR,适用于 Windows10/11 平台
- 该链接同步github链接,源链接访问比较慢:hiroi-sora/Umi-OCR: OCR software, free and offline. (github.com)
- 软件主体和软件的插件可以用镜像加速下载
扩展插件下载
-
hiroi-sora/Umi-OCR_plugins: Umi-OCR 插件库 (github.com)
-
该软件是多功能OCR软件,可以用于普通图片中文本识别,也可以识别二维码,甚至数学公式
- 识别数学公式需要下载插件中的体积较大的模型
- hiroi-sora/Umi-OCR_plugins: Umi-OCR 插件库 (github.com)
- 插件名为win7开头,表示:平台兼容win7 以上(win10,11都可以用),64 位
-
请仔细阅读仓库介绍和使用说明
小结
- 软件有多个模型供下载使用,识别公式的速度不是很快,模型推理时对于磁盘有一定的读写量
- 在有需要说别的时候,我个人会优先使用在线工具识别
在线识别
网站/API👺
- Document & Formula OCR Service (simpletex.cn)👺
- 目前免费,支持手写符号识别,图片公式识别,文档公式识别
- 并且有灵活的使用方式,包括api方式看起来很不错
- 在线公式编辑器Document Editor (simpletex.net)
- Doc2X
- 精度也是不错的,有一定量的免费额度,次数蛮多的
- 可以识别公式,也可以识别表格,包含公式的表格也不在话下,能够导出到word文件等
- Pix2Text (P2T) - Free Mathpix Alternative (breezedeus.com)
- 模型在成长期
- 有免费额度,有开源版的模型
Quicker整合(推荐)
-
如果经常使用,推荐用Quicker整合,实现截屏识别
-
公式识别3 动作信息 - Quicker (getquicker.net)👺
- 使用Quicker软件(需要常驻后台)及其动作插件动作实现截图识别公式,查看该链接教程进行配置
- 可以选择多种api,教程中给出了推荐,目前用simpletex提供的api来识别很不错
- 经常使用的话十分推荐此方案,如果只是偶尔用用,那么用在线网站就够了
-
Doc2X - by 蓝莓派 - 动作信息 - Quicker (getquicker.net)
可视化编辑和识别公式
- 在线LaTeX公式编辑器-编辑器 (latexlive.com)
- 需要登录,每个账户每天有少量免费次数(可能会调整)
- 这类普通账户有免费次数的机制有的人会注册几个账号,甚至叫亲朋好友帮忙注册,不太优雅,用得多的话可以用其他免费的代替品
其他
- 著名的收费公式识别(具有少量的免费额度
- Mathpix OCR User Guide: Examples of Rendered Math and Text
- 图片转LaTeX公式在线 - LaTeX公式识别 - 照片转换成LaTeX公式 - 白描网页版 (baimiaoapp.com)
多模态大模型识别图片中的公式
-
做以下测试具有时效性,测试时都是免费功能,后续可能会有优化,也可能不再免费
模型 示例 评价(仅先测试时的版本) 通义千问 
效果尚可,需要等一会,复杂公式需要久一些
点击通义回复的右下角复制按钮获得latex代码;但是默认缺乏排班,需要告诉模型追加源代码输出,而不仅仅是渲染后的公式文心一言 
免费模型(3.5)测的,一般般,复杂公式识别不全,期待优化 -
大模型很多,这里就举出两个例子,其他的模型比如智谱清言也可以识别,但是同样的例子出现了错误,将来可能会改进
排版
-
注意到通义模型可以较好的识别公式,个别细节可能需要微调
-
我们也可以继续和模型交谈,让他输出源代码,或者排版,甚至给出改进建议,例如我要求输出公式源代码而非展示markdown渲染结果
开源模型
- Pix2Text/README_cn.md at main · breezedeus/Pix2Text (github.com)
- 当然还有其他的,一般能用在线免费的,就不需要本地部署了
相关文章:
图片公式识别@文档公式识别@表格识别@在线和离线OCR工具
文章目录 abstract普通文字识别本地软件识别公式扩展插件下载小结 在线识别网站/API👺Quicker整合(推荐)可视化编辑和识别公式其他多模态大模型识别图片中的公式排版 开源模型 abstract 本文介绍免费图片文本识别(OCR)工具,包括普通文字识别,公式识别,甚至是手写公…...
Java高阶私房菜:JVM分代收集算法介绍和各垃圾收集器原理分解
目录 什么是分代收集算法 GC的分类和专业术语 什么是垃圾收集器 垃圾收集器的分类及组合 编辑 应关注的核心指标 Serial和ParNew收集器原理 Serial收集器 ParNew收集器 Parallel和CMS收集器原理 Parallel 收集器 CMS收集器 新一代垃圾收集器G1和ZGC G1垃圾收集器…...
为什么IB损失要在100epochs后再用?
在给定的代码中,参数start_ib_epoch用于控制从第几轮开始使用IB(Instance-Balanced)损失函数进行训练。具体来说,如果start_ib_epoch的值大于等于100,那么在训练的前100轮中将使用普通的交叉熵损失函数(CE&…...
《Video Mamba Suite》论文笔记(4)Mamba在时空建模中的作用
原文翻译 4.4 Mamba for Spatial-Temporal Modeling Tasks and datasets.最后,我们评估了 Mamba 的时空建模能力。与之前的小节类似,我们在 Epic-Kitchens-100 数据集 [13] 上评估模型在zero-shot多实例检索中的性能。 Baseline and competitor.ViViT…...
【备战软考(嵌入式系统设计师)】10 - 软件工程基础
这一部分的内容是概念比较多,不要理解,去感受。 涉及的知识点是嵌入式系统开发和维护的部分,也就是和管理相关的,而不是具体如何进行嵌入式系统开发的细节。 系统开发生命周期 按照顺序有下面几个阶段,我们主要要记…...
随手笔记-GNN(朴素图神经网络)
自己看代码随手写的一点备忘录,自己看的,不喜勿喷 GNN (《------ 代码) 刚开始我还在怀疑为什么没有加weigth bias,已经为什么权重才两个,原来是对node_feats进行的network的传播,而且自己内部直接进行了。 下面是一…...
C 语言指针怎么理解?
在今天的学习中,我注意到有位学员似乎对 C 语言指针的理解有些困惑。为了帮助大家更好地理解,我来举个例子。 C 语言指针就好比 Windows 桌面上常见的快捷方式。快捷方式可以指向某个游戏,这就是普通指针;它也可以指向另一个快捷…...
HTTP协议:通信机制、特点及实践应用
目录 前言 1. 运行机制 2. 通信方式 3. 主要特点 4. 统一资源标识符(URL) 5. HTTP报文 6. HTTP请求 7. HTTP响应 8. 实体 9. 持续连接 结语 前言 HTTP(Hypertext Transfer Protocol)是互联网上应用最广泛的一种协议&a…...
Leetcode—289. 生命游戏【中等】
2024每日刷题(126) Leetcode—289. 生命游戏 算法思想 实现代码 class Solution { public:void gameOfLife(vector<vector<int>>& board) {int rows board.size();int cols board[0].size();int neighbors[3] {0, 1, -1};vector<…...
系统运维(虚拟化)
1.VLAN VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。 每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通。这样,广播报…...
Linux域名解析
1.hosts:windows c盘下面 Linux: /etc/hosts 作用:实现名字解析,主要为本地主机名、集群节点提供快速解析。平面式结构,集中式数据库。 缺点:不便于查询更新 2.DNS:域名系统 作用:实现名字解析(分层性,层次性) FQDN:完全合格域名/全称域…...
树形结构和列表的区别
树形结构和列表在数据组织、表示方式以及应用场景等方面存在明显的区别。 首先,树形结构是一种非线性的数据结构,表现为层次的嵌套结构。每个节点可以有多个子节点,这些子节点又可以有自己的子节点,形成一个层次分明的结构。这种一…...
Go中json的解析和反解析
在解析过程中,反向解析不包含其中的部分参数也不会报错,这是需要注意的一点 31 func main() { // E: main redeclared in this block 32 type A…...
SpringBoot+vue实现退出功能
目录 1. 创建点击事件 2. 编写退出逻辑 在Spring Boot 和 Vue.js 应用中实现退出功能,通常涉及到前端的用户界面操作和注销逻辑。 以下是实现退出功能的步骤: 1. 创建点击事件 在header.vue中创建一个点击事件 <span style"text-decoratio…...
Linux操作系统中管理磁盘的另外一种操作方式。即LVM——逻辑卷管理操作
在Linux操作系统中管理磁盘的一种方法名称——LVM,这种管理磁盘的优势。 1.使用LVM去管理磁盘可以在不影响原来数据的前提下去扩容磁盘空间或者是缩减磁盘空间。 在LVM中除了上层逻辑券可以扩容,下层的券组也可以扩容。 2.使用LVM管理的磁盘支持快照功…...
Lua 零基础入门
Lua 1.Lua是什么? 1.1 Lua的历史 Lua是由Roberto Ierusalimschy、Luiz Henrique de Figueiredo和Waldemar Celes于1993年创建的,当时他们是巴西里约热内卢天主教大学计算机图形技术组(Tecgraf)的成员。在开发Lua之前࿰…...
记录DemoApplication.java不变蓝问题
问题 解决方案 一、点击右下角加载 二、右键项目 勾选maven...
22_Scala集合Seq
文章目录 Seq序列1.构建集合2.List集合元素拼接&&集合拼接3.可变Seq&&List3.1 ListBuffer创建3.2 增删改查3.3 相互转化 Appendix1.Scala起别名2.Seq底层3.关于运算符操作: :4.空集合的表示 Seq序列 –Seq表示有序,数据可重复的集合 1.构建集合 …...
机器学习初学者 6 个核心算法!建议收藏,反复观看!
今天再来介绍机器学习算法的基本概念和适用场景! 首先,引用一句英国统计学家George E. P. Box的名言:All models are wrong, but some are useful. 没有哪一种算法能够适用所有情况,只有针对某一种问题更有用的算法。 也就是说&…...
SpringBoot 打包所有依赖
SpringBoot 项目打包的时候可以通过插件 spring-boot-maven-plugin 来 repackage 项目,使得打的包中包含所有依赖,可以直接运行。例如: <plugins><plugin><groupId>org.springframework.boot</groupId><artifact…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
