图片公式识别@文档公式识别@表格识别@在线和离线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…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...