数学公式OCR库

53

我需要一个开源OCR库,能够扫描复杂的印刷数学公式(例如通过LaTeX生成的某些公式)。我想要得到一些类似于LaTeX的输出(或者只是一些类似于AST的数据)。

目前是否已经存在这样的东西?还是当前的OCR技术只能解析面向行的文本?

(请注意,我还在Metaoptimize上发布了这个问题,因为那里的一些人可能具有额外的知识。)

OpenAI也将该问题描述为im2latex


你的公式是手写还是打印的? - Jasper
现在对我来说,打印出来就好了。否则可能太难了 :) 我猜想能够处理手写公式的引擎也能够处理打印的公式。 - Albert
1
你找到解决方案了吗? - yibotg
@tan9p:很遗憾,没有。我看过几个研究项目,但没有一个有一个好的工作最终工具。答案中列出的解决方案都是闭源的。 - Albert
1
您可以使用Mathpix API:https://mathpix.github.io/docs/,该API支持手写/打印的数学公式,并且每月免费使用2000张图片。 - nicodjimenez
10个回答

28

SESHAT是一个用C ++编写的开源系统,用于识别手写的数学表达式。SESHAT是在Valencia大学的PRHLT研究中心的博士论文的一部分而开发的.

在线演示: http://cat.prhlt.upv.es/mer/

源代码: https://github.com/falvaro/seshat

Seshat是一个开源系统,用于识别手写的数学表达式。给定以笔画序列表示的样本,解析器能够将其转换为LaTeX或其他格式,如InkML或MathML。


乍一看,这正是我在寻找的。 - Albert
也许我问得有点晚了,但是你知道这个能用于移动应用程序吗? - Eugenio Anselmino

6
InftyReader是我所知道的唯一一个。它不是免费软件(据我所知,钱款进入了非盈利组织)。

http://www.sciaccess.net/en/InftyReader/

我不知道为什么PDF不能在LaTeX中具有元数据?就像:将LaTeX方程式放入其中!这很难吗?(我对PDF语法一无所知,但我想这是可以做到的)。
LaTeX语法是数学符号的唯一可靠标准。看起来非常愚蠢,那些生产MathML和其他东西的人没有考虑这一点。InftyReader生成MathML或LaTeX语法。
如果我想要HTML(纯粹的),我就使用TTH来读取LaTeX语法。它完美运作。
ABBYY FineReader(一个很棒的OCR程序)声称你可以为数学训练软件,但这非常低效(谁有时间呢?)
Unicode有很多数学符号。今天的OCR阅读器不能理解它们,这显示了软件的糟糕状态和这一活动中的脑力缺陷。
至于“每次只能输入一个符号”,TeX显然有规则来确定它将放置符号的位置。他们不能编写知道这些规则的软件吗?TeX甚至是公共领域!他们可以在商业产品中“使用它”。

6

4
InftyProject OCR(现位于http://www.inftyreader.org/?p=29,我相信)不是很好:( http://img402.imageshack.us/img402/7875/testinftyproject.png - Franck Dernoncourt

6

请查看 "Web Equation"。它可以将手写的方程式转换为LaTeX、MathML或SymbolTree格式。但我不确定这个引擎是否是开源的。


2

是的,这就是我对大多数引擎的了解。虽然我希望在这方面能有一些进展。不管怎样,哇,谢谢你提供的链接,非常有趣和有用! :) 这将帮助我识别一些我不知道它们叫什么以及它们代表什么的符号,这样我至少可以得到一些文本进行谷歌搜索! - Albert

2

下载链接似乎有问题。另外,这是开源的吗?它必须是跨平台的,并以我可以使用的库的形式提供。 - Albert
链接对我有效。我通过谷歌搜索“infty”找到了它。这个软件不是开源的,而且“大部分”是商业化的。也就是说,它是商业化的,但是由一所大学的一个团队开发和维护,他们有时愿意与非营利组织达成交易。在我们评估的所有软件包中,只有这个软件在数学公式方面表现得超过合格水平。如果你找到更好的,请告诉我。 - Yaroslav Bulatov
+1) 链接对我也有效,确实很有趣。你测试过如何将手写的数学(在纸上)扫描到LaTeX中吗? - AD - Stop Putin -
我没有这样做,但我的直觉告诉我,准确性会太差,无法用于手写数学。 - Yaroslav Bulatov

1
由于复杂公式的数学OCR输出可能会有错误 -- 即使对人类来说也很困难 -- 因此您将需要校对结果,至少如果它们很重要的话。然后(人类)校对者将需要更正结果,这意味着您需要一个数学公式编辑器。考虑到人类需要付出的努力以及复杂公式的可能有限的语料库,您可能会发现将任务分配给人类更容易。
作为研究问题,通过OCR阅读数学是有趣的 -- 您需要一个二维文法的形式化以及一个符号识别器。除了这里已经提到的参考资料,为什么不在Google上搜一下呢?在Caltech、Rochester、U. Waterloo和UC Berkeley都做过相关工作。多少可以直接使用?不太清楚。

1
截至2019年8月,根据您的需求有几个选择: 将打印的数学方程/公式转换为LaTex,Mathpix绝对是最好的选择。它是免费的。 将手写的数学转换为LaTex或打印的数学,MyScript是最佳选择,尽管其应用程序需要花费几美元。

0
你知道吗,在Win7中有一个专门的应用程序可以做到这一点:数学输入面板。它甚至可以处理手写输入(实际上就是为此而设计的)。如果你使用Win7,不妨试试它,而且它是免费的!

我没有Windows。而且我需要一个开源的解决方案。但它看起来非常有趣! - Albert
确实,那看起来很有前途! - Stefan Schmidt

-1

有一个很棒的短视频:http://www.youtube.com/watch?v=LAJm3J36tLQ,讲解如何训练 Fine Reader 识别数学公式。如果你已经在使用 Fine Reader,最好还是坚持使用一个工具。当然这并不是免费软件 :(


这并不是我所询问的内容。我的意思是复杂的公式 - 不是基于行的文本。这就是问题的重点和棘手之处,这使它与FineReader等传统OCR不同。 - Albert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接