1.计算工具 科研论文写作之 pix2tex:将数学公式转化为 LaTeX 代码
2.天若OCR如何进行数学公式识别
3.Nougat:学术文件的文源OCR
4.Nougat学习小结
5.[论文] Donut: OCR-free Document Understanding Transformer
计算工具 科研论文写作之 pix2tex:将数学公式转化为 LaTeX 代码
在整理本周阅读的文献并准备将其中的公式整理到PPT中进行组会汇报时,我遇到了难题:截图的源码方式虽然简便,但让我心里不舒坦;而一个一个手动敲打公式到PPT上,文源又耗时过多。源码幸运的文源是,我发现了pix2tex这个项目,源码addview 源码它可以将数学公式以极高的文源精度转换为相应的LaTeX代码,极大地解决了我的源码烦恼。
感谢@HelloGitHub在年年度热门开源项目中分享了pix2tex,文源让我有机会发现这个解放生产力的源码开源工具。该项目的文源GitHub地址为lukas-blecher/LaTeX-OCR: pix2tex: Using a ViT to convert images of equations into LaTeX code. (github.com),在GitHub上拥有.2k的源码star和k的下载量(截止到年3月1日)。这是文源一个用Python编写的项目,您也可以在Python第三方库索引网站PyPI里找到相关的源码安装和使用说明:pix2tex · PyPI。
1. pix2tex的文源安装
安装pix2tex需要Python 3.7+以及pip程序包管理工具。满足安装环境要求后,您可以在Windows PowerShell或PyCharm左下角的Terminal中使用以下命令安装pix2tex:
安装所需时长因网络状况不同而异。需要注意的是,如果您计算机上同时有pip2和pip3,由于pix2tex只支持Python 3.7+,安装时请使用:
2. pix2tex的精选股票源码使用
打开Windows PowerShell,输入“pix2tex”并回车。第一次使用可能需要一些响应时间,同时程序会自动下载“Model checkpoints”。之后会弹出提示,表明工具已进入可用状态。按下“h”键可以看到帮助文档,其中比较有用的是按下“x”可以退出程序,按下“Ctrl+C”可以中断转换进程。
这时,我打开文献中想要转为LaTeX代码的公式,以我自己这篇《体光伏效应:含五边形链状结构的二维热释电材料CuXX'Y》中的公式(2)和公式(3)为例。截图后,带公式的自动进入剪切板。这时回到打开着pix2tex的Windows PowerShell,依次按下回车,可以看到pix2tex成功将转换成了LaTeX代码的形式。
这里同时分享一个可以实时显示LaTeX代码效果的网站Online LaTeX Equation Editor - create, integrate and download (codecogs.com);在这个网站中验证pix2tex的转换结果,发现几乎没有错误。之所以说“几乎”,是廖雪峰java源码因为pix2tex没有把波矢加粗(哈哈);但这个问题我可以后期调整。相比起对着文献公式一个一个从头敲,我的生产力已经大大得到解放了,不愧是GitHub上k star的明星项目。
总结:pix2tex这个工具对一些数学系、理论物理方向的同学准备组会或做笔记时比较友好。除此之外,本文还有一些值得一提的地方。官网提到可以将公式保存在本地后,使用如下Python code转换为相应的LaTeX代码:
不过我个人更偏爱文中介绍的方法,因为保存、修改程序路径的工作要繁琐一些。最后再次感谢LaTeX-OCR: pix2tex的开发者们以及@HelloGitHub的分享。
天若OCR如何进行数学公式识别
天若OCR可以有效识别数学公式为Latex代码,大大加快课件、论文的制作速度。方法如下
方法/步骤1打开天若OCR文字识别.exe
2在任务栏的右侧,左键单击天若OCR的图标,再点击“显示”
3在弹出窗口的空白处,左键单击,选择“接口”,如何复制开源码点击“公式”
4找到所要识别的数学公式,双击任务栏中的天若OCR图标(或者按F4)开始识别
5稍等几秒,得到Latex数学代码(如果识别失败,先确定电脑是否联网)
6把latex代码粘贴到Mathtype内,即可变为公式
Nougat:学术文件的OCR
Nougat是一个专注于学术文档的神经光学理解模型,由Lukas Blecher等来自MetaAI的研究者开发。他们提出了一种视觉transformer模型,旨在解决PDF格式中丢失的语义信息,尤其是数学表达式的识别问题。模型的目标是将科学文档从难以阅读的PDF转换为机器可读的标记语言,以提升科学知识的可访问性。
在科学文献中,大量信息隐藏在PDF格式中,而PDF2HTML等技术并不能完全捕捉数学公式的意义。Nougat通过结合视觉编码器(如Swin transformer)和transformer解码器,实现了端到端的训练,不需要依赖外部的OCR引擎。其核心是利用transformer的自注意力和交叉注意力机制,处理文档页面的图像,生成标准化的高级开发源码标记文本。
在数据集构建上,研究人员从arXiv和Industry Documents 6 Library创建了一个配对数据集,通过LaTeXML预处理源代码,并将其转换为轻量级标记语言,确保数学表达式的精确表示。模型训练中,他们进行了数据增强以增强模型的泛化能力,并通过模糊匹配和词袋模型来优化文档的分页处理。
评估模型的性能时,他们关注编辑距离、BLEU、METEOR和F-measure等指标,结果显示Nougat在处理纯文本和表格方面表现良好,但在数学表达式识别上仍有改进空间。尽管存在重复生成的问题,通过引入反重复增强策略,模型在处理复杂文档时显示出了潜力。Nougat在将扫描教科书和论文转换为标记语言方面显示出广阔的应用前景,尽管在扫描文档质量较低时表现稍逊,但仍能提供可读的文本输出。
Nougat学习小结
项目地址: github.com/facebookrese...
论文地址: Nougat: Neural Optical Understanding for Academic Documents
背景
近期,MetaAI推出了一项新的技术突破,提出了一种全新的端到端的OCR模型。该模型采用自回归方法,能够在给定后输出相应的Markdown标记。该模型不仅能够实现版面分析、文本检测、文本识别、公式识别等功能,而且整体架构采用了“编码器-解码器”(encoder-decoder)模式。以下,本文将从论文、源码、测试三个方面对Nougat进行深度学习与理解,共同探讨Nougat的实现过程。
方法大意
1.1 模型架构
该模型采用了常规的“编码器-解码器”(encoder-decoder)架构,具体如下:
编码器(Encoder):
解码器(Decoder):
从上述描述中可以看出,Nougat的encoder与decoder都采用了较大的transformer架构,整体pipeline的参数量达到了M。
1.2 数据工程
Nougat将OCR问题定义为:[公式]
其核心关键在于如何以低成本的方式构造(,对应的markdown)pair。对于我而言,这是这篇文章最有价值、最值得借鉴学习的地方。
1.2.1 数据源
目前,并没有大规模的pdf与对应markdown标记pair的数据集。Nougat从arXiv、PMC (PubMed Central)、IDL(Industry Documents Library)三个来源构建数据集。其中,PMC与IDL的数据由于语义信息不充足,仅用于预训练阶段,以使模型具备基础的ocr能力。而arXiv数据有tex源码,能获取所有需要的语义信息,用于预训练和微调阶段。
1.2.2 图文对构建pipeline
1.2.2.1 思路介绍
图文对构造的整体pipeline如上图所示。从arXiv拿到的Tex源码出发,获取全篇文章的markdown标记,与pdf每页的与文本进行对应。
1.2.2.2 markdown 划分
代码位置:nougat/nougat/dataset/split_md_to_pages/split_markdown
1.2.2.2.1 预处理
预处理1:去除PDF中的表格
由于表格在PDF的位置和tex源码的位置可能有所差异,作者采取的办法是先用pdffigures2工具将PDF的和表格移除。当划分完markdown后再在markdown的末尾加入移除的信息。
1.2.2.2.2 markdown page 划分
叙述核心逻辑,详细细节见源码
2 小结
Nougat描绘了一个愿景,即以端到端的方式实现过去繁琐的数据加工pipeline。然而,从目前尝试来看,该方法并不适用于实际场景。单纯从架构来看,主要有以下几点缺陷:
或许在未来,以上问题将不再是问题。
Reference
[1] Ali Furkan Biten, Rubén Tito, Lluis Gomez, Ernest Valveny, and Dimosthenis Karatzas. OCR-IDL: OCR Annotations for Industry Document Library Dataset, February .
[2] Liu, Ze, et al. "Swin transformer: Hierarchical vision transformer using shifted windows." Proceedings of the IEEE/CVF international conference on computer vision. .
[3] Liu, Yinhan, et al. "Multilingual denoising pre-training for neural machine translation." Transactions of the Association for Computational Linguistics 8 (): -.
[论文] Donut: OCR-free Document Understanding Transformer
本文介绍了一款OCR-free VDU模型——Donut,旨在解决传统方法中存在的计算成本高、对语言和文档类型不灵活、OCR错误对后续任务影响等问题。Donut模型不依赖OCR引擎,直接映射原始输入图像至输出,显著提升了速度和准确率。
Donut模型的训练通过结合图像和先前的文本上下文预测下一个单词,进行预训练。利用预训练目标阅读文本与合成数据的直接实现,可以适应不同语言和领域。模型架构包括基于Transformer的视觉编码器与文本解码器,整体过程在图中清晰展示。通过简单的设置,该模型取得了与复杂方法相媲美的性能,甚至在某些测试集上超越前人成果。
Donut的训练流程包含预训练和微调两个阶段。预训练阶段,模型学习如何阅读文本,并通过跨领域合成数据进行语言与领域灵活性的预训练。微调阶段,针对特定下游任务调整模型参数。模型在多个VDU任务和数据集上得到广泛测试,证实其强大的文档理解能力。
此外,文章详细阐述了Donut模型的组成部分及每部分的作用:图像编码器与文本解码器的设计。图像编码器将输入文档图像转换为嵌入,通过选择性使用不同类型的基础模型,如Swin Transformer,以优化文档解析效果。文本解码器生成子词序列,并使用经过预训练的BART模型初始化参数。通过与下游任务的提示结合,解码器能够灵活生成所需格式的序列输出。
实验结果显示,Donut在各类下游任务中表现出优异的性能,特别是在文档分类、信息抽取与文档VQA任务上。通过分析不同预训练策略、主干网络架构、输入分辨率和文本定位的影响,研究发现,合成数据的预训练有效增强了模型的适应能力,基于Transformer的架构在多个任务上展现出高表现力与可扩展性。