PDF公式转Latex

文章目录

  • 摘要
  • 数据集 UniMER
    • 介绍
      • 下载链接
  • LaTeX-OCR
  • UniMERNet
    • 安装
    • UniMER 用的数据集
      • 介绍
      • 下载链接
  • PDF-Extract-Kit
    • 整体介绍
    • 效果展示
    • 评测指标
      • 布局检测
      • 公式检测
      • 公式识别
    • 使用教程
      • 环境安装
      • 参考[模型下载](models/README.md)下载所需模型权重
    • 在Windows上运行
    • 在macOS上运行
    • 运行提取脚本

摘要

记录一下,找到两个PDF公式转Latex的开源项目和一个数据集

数据集 UniMER

介绍

UniMER数据集是一个专为推动数学表达式识别(MER)领域进步而精心策划的专业集合。它包括全面的UniMER-1M训练集,该训练集包含超过一百万个实例,代表了一系列多样且复杂的数学表达式,以及精心设计的UniMER测试集,用于在现实世界场景下对MER模型进行基准测试。数据集的详细信息如下:

UniMER-1M训练集

  • 总样本数:1,061,791个LaTeX-图像对
  • 组成:简洁与复杂、扩展公式表达式的均衡混合
  • 目标:训练出稳健、高精度的MER模型,提高识别精度和泛化能力

UniMER测试集

  • 总样本数:23,757个,分为四种类型的表达式:
    • 简单打印表达式(SPE):6,762个样本
    • 复杂打印表达式(CPE):5,921个样本
    • 屏幕截图表达式(SCE):4,742个样本
    • 手写表达式(HWE):6,332个样本
  • 目的:在各种现实世界条件下对MER模型进行全面评估

下载链接

您可以从OpenDataLab(推荐中国用户使用)或HuggingFace下载该数据集。

找到一个非常不错的公式转化开源项目。将论文中的公式转为Latex。

LaTeX-OCR

github链接:

https://github.com/lukas-blecher/LaTeX-OCR

包含训练测试等,

安装简单非常,

安装 pix2tex:

pip install "pix2tex[gui]"

然后,下载权重到安装位置。
在这里插入图片描述
权重链接:

https://github.com/lukas-blecher/LaTeX-OCR/releases

在这里插入图片描述
注意:Weight release,别选错了。
然后,运行命令:

latexocr

就可以运行了。

demo

UniMERNet

github链接:

https://github.com/opendatalab/UniMERNet。

没有训练,只有测试。

安装

建议创建虚拟环境,我在base环境上安装没有成功,安装了python3.10的虚拟环境后才没有问题。

conda create -n unimernet python=3.10conda activate unimernetpip install --upgrade unimernet

下载项目和模型命令如下:

git clone https://github.com/opendatalab/UniMERNet.git
cd UniMERNet/models
# Download the model and tokenizer individually or use git-lfs
git lfs install
git clone https://huggingface.co/wanderkid/unimernet

如果没有git,也可以手动去huggingface上下载模型,将模型下载到本地的models下,路径要正确!
在这里插入图片描述

运行demo.py,

python demo.py

运行UI界面,执行命令
bash unimernet_gui

UniMERNet

UniMER 用的数据集

介绍

UniMER数据集是一个专为推动数学表达式识别(MER)领域进步而精心策划的专业集合。它包括全面的UniMER-1M训练集,该训练集包含超过一百万个实例,代表了一系列多样且复杂的数学表达式,以及精心设计的UniMER测试集,用于在现实世界场景下对MER模型进行基准测试。数据集的详细信息如下:

UniMER-1M训练集

  • 总样本数:1,061,791个LaTeX-图像对
  • 组成:简洁与复杂、扩展公式表达式的均衡混合
  • 目标:训练出稳健、高精度的MER模型,提高识别精度和泛化能力

UniMER测试集

  • 总样本数:23,757个,分为四种类型的表达式:
    • 简单打印表达式(SPE):6,762个样本
    • 复杂打印表达式(CPE):5,921个样本
    • 屏幕截图表达式(SCE):4,742个样本
    • 手写表达式(HWE):6,332个样本
  • 目的:在各种现实世界条件下对MER模型进行全面评估

下载链接

您可以从OpenDataLab(推荐中国用户使用)或HuggingFace下载该数据集。

PDF-Extract-Kit

这个还没有调通。
github链接:

https://github.com/opendatalab/PDF-Extract-Kit

一个完整的工作流,支持PDF的分析,将PDF的论文内容识别出来。

整体介绍

PDF文档中包含大量知识信息,然而提取高质量的PDF内容并非易事。为此,我们将PDF内容提取工作进行拆解:

  • 布局检测:使用LayoutLMv3模型进行区域检测,如图像表格,标题,文本等;
  • 公式检测:使用YOLOv8进行公式检测,包含行内公式行间公式
  • 公式识别:使用UniMERNet进行公式识别;
  • 光学字符识别:使用PaddleOCR进行文本识别;

注意: 由于文档类型的多样性,现有开源的布局检测和公式检测很难处理多样性的PDF文档,为此我们内容采集多样性数据进行标注和训练,使得在各类文档上取得精准的检测效果,细节参考布局检测和公式检测部分。对于公式识别,UniMERNet方法可以媲美商业软件,在各种类型公式识别上均匀很高的质量。对于OCR,我们采用PaddleOCR,对中英文OCR效果不错。

PDF内容提取框架如下图所示

请添加图片描述

PDF-Extract-Kit输出格式
{"layout_dets": [    # 页中的元素{"category_id": 0, # 类别编号, 0~9,13~15"poly": [136.0, # 坐标为图片坐标,需要转换回pdf坐标, 顺序是 左上-右上-右下-左下的x,y坐标781.0,340.0,781.0,340.0,806.0,136.0,806.0],"score": 0.69,   # 置信度"latex": ''      # 公式识别的结果,只有13,14有内容,其他为空,另外15是ocr的结果,这个key会换成text},...],"page_info": {         # 页信息:提取bbox时的分辨率大小,如果有缩放可以基于该信息进行对齐"page_no": 0,      # 页数"height": 1684,    # 页高"width": 1200      # 页宽}
}

其中category_id包含的类型如下:

{0: 'title',              # 标题1: 'plain text',         # 文本2: 'abandon',            # 包括页眉页脚页码和页面注释3: 'figure',             # 图片4: 'figure_caption',     # 图片描述5: 'table',              # 表格6: 'table_caption',      # 表格描述7: 'table_footnote',     # 表格注释8: 'isolate_formula',    # 行间公式(这个是layout的行间公式,优先级低于14)9: 'formula_caption',    # 行间公式的标号13: 'inline_formula',    # 行内公式14: 'isolated_formula',  # 行间公式15: 'ocr_text'}              # ocr识别结果

效果展示

结合多样性PDF文档标注,我们训练了鲁棒的布局检测公式检测模型。在论文、教材、研报、财报等多样性的PDF文档上,我们的pipeline都能得到准确的提取结果,对于扫描模糊、水印等情况也有较高鲁棒性。

在这里插入图片描述

评测指标

现有开源模型多基于Arxiv论文类型数据进行训练,面对多样性的PDF文档,提前质量远不能达到实用需求。相比之下,我们的模型经过多样化数据训练,可以适应各种类型文档提取。

布局检测

我们与现有的开源Layout检测模型做了对比,包括DocXchain、Surya、360LayoutAnalysis的两个模型。而LayoutLMv3-SFT指的是我们在LayoutLMv3-base-chinese预训练权重的基础上进一步做了SFT训练后的模型。论文验证集由402张论文页面构成,教材验证集由587张不同来源的教材页面构成。

模型论文验证集教材验证集
mAPAP50AR50mAPAP50AR50
DocXchain52.869.577.334.950.163.5
Surya24.239.466.113.923.349.9
360LayoutAnalysis-Paper37.753.659.820.731.343.6
360LayoutAnalysis-Report35.146.955.925.433.745.1
LayoutLMv3-SFT77.693.395.567.982.787.9

公式检测

我们与开源的模型Pix2Text-MFD做了对比。另外,YOLOv8-Trained是我们在YOLOv8l模型的基础上训练后的权重。论文验证集由255张论文页面构成,多源验证集由789张不同来源的页面构成,包括教材、书籍等。

模型论文验证集多源验证集
AP50AR50AP50AR50
Pix2Text-MFD60.164.658.962.8
YOLOv8-Trained87.789.982.487.3

公式识别

公式识别我们使用的是Unimernet的权重,没有进一步的SFT训练,其精度验证结果可以在其GitHub页面获取。

使用教程

环境安装

conda create -n pipeline python=3.10pip install -r requirements.txtpip install --extra-index-url https://miropsota.github.io/torch_packages_builder detectron2==0.6+pt2.3.1cu121

安装完环境后,可能会遇到一些版本冲突导致版本变更,如果遇到了版本相关的报错,可以尝试下面的命令重新安装指定版本的库。

pip install pillow==8.4.0

除了版本冲突外,可能还会遇到torch无法调用的错误,可以先把下面的库卸载,然后重新安装cuda12和cudnn。

pip uninstall nvidia-cusparse-cu12

参考模型下载下载所需模型权重

在Windows上运行

如需要在Windows上运行本项目,请参考在Windows环境下使用PDF-Extract-Kit。

在macOS上运行

如需要在macOS上运行本项目,请参考在macOS系统使用PDF-Extract-Kit。

运行提取脚本

python pdf_extract.py --pdf data/pdfs/ocr_1.pdf

相关参数解释:

  • --pdf 待处理的pdf文件,如果传入一个文件夹,则会处理文件夹下的所有pdf文件。
  • --output 处理结果保存的路径,默认是"output"
  • --vis 是否对结果可视化,是则会把检测的结果可视化出来,主要是检测框和类别
  • --render 是否把识别得的结果渲染出来,包括公式的latex代码,以及普通文本,都会渲染出来放在检测框中。注意:此过程非常耗时,另外也需要提前安装xelateximagemagic

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

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

相关文章

ESP-IDF升级到V5.2.x碰到的问题,lvgl移动v9.x。

近日在学习IDF,将原有IDF代码,升级到IDF 5以上时。发现一些API的变化,具体如下(今后碰到再继续补充): 一、官网上找到部分。截图如下 二、网上找到部分 The fixes I attempted which got the file to compile: replace gpio_pad_select_gpio() with gpio_pin_reset()re…

Ubuntu 安装搜狗输入法

搜狗输入法已支持Ubuntu1604、1804、1910、2004、2010 各系统安装步骤可能略有不同 1、添加中文语言支持 打开 系统设置——区域和语言——管理已安装的语言——在“语言”tab下——点击“添加或删除语言” 弹出“已安装语言”窗口,勾选中文(简体&…

Linux vim文本编辑器

Vim(Vi IMproved)是一个高度可配置的文本编辑器,它是Vi编辑器的增强版本,广泛用于程序开发和系统管理。Vim不仅保留了Vi的所有功能,还增加了许多新特性,使其更加强大和灵活。 Vim操作模式 普通模式&#xf…

机器学习——L1 L2 范数 —>L1 L2正则化

1、L1范数和L2范数是机器学习和数据分析中经常使用的两种范数,它们之间存在多个方面的区别。 以下是关于L1范数和L2范数区别的详细解释: 一、定义差异 L1范数:也被称为曼哈顿范数,是向量元素的绝对值之和。对于一个n维向量x&am…

【密码学】实现消息认证或数字签名的几种方式

消息认证的目的是验证消息的完整性和确认消息的来源。数字签名的目的是不仅验证消息的完整性和来源,还提供了不可否认性。此外,数字签名还可以验证消息的创建时间,防止重放攻击。那么具体有哪些实现的方式呢? 一、仅提供消息认证…

YOLOv10改进 | 损失函数篇 | SlideLoss、FocalLoss、VFLoss分类损失函数助力细节涨点(全网最全)

一、本文介绍 本文给大家带来的是分类损失 SlideLoss、VFLoss、FocalLoss损失函数,我们之前看那的那些IoU都是边界框回归损失,和本文的修改内容并不冲突,所以大家可以知道损失函数分为两种一种是分类损失另一种是边界框回归损失,…

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围 在这篇博客中&#xff0c;我将介绍如何使用HTML和JavaScript读取文件夹中的所有图片&#xff0c;并显示这些图片以及它们的RGB范围。这个项目使用现代浏览器提供的<input type"file" webkitdirecto…

k8s字段选择器

文章目录 一、概述二、基本语法三、支持的字段1、错误示例2、支持的字段列表 四、支持的操作符1、示例 五、跨多种资源类型使用字段选择器 一、概述 在Kubernetes中&#xff0c;字段选择器&#xff08;Field Selectors&#xff09;和标签选择器&#xff08;Label Selectors&am…

【目标检测】使用自己的数据集训练并预测yolov8模型

1、下载yolov8的官方代码 地址&#xff1a; GitHub - ultralytics/ultralytics: NEW - YOLOv8 &#x1f680; in PyTorch > ONNX > OpenVINO > CoreML > TFLite 2、下载目标检测的训练权重 yolov8n.pt 将 yolov8n.pt 放在ultralytics文件夹下 3、数据集分布 注…

如何在Linux上如何配置虚拟主机

在Linux上配置虚拟主机可以通过使用Apache HTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件&#xff0c;可以在多种操作系统上运行并支持虚拟主机的配置。 以下是在Linux上配置虚拟主机的步骤&#xff1a; 安装Apache HTTP服务器 在终端中运行以下命令来安装Apache…

科普文:深入理解Mybatis

概叙 (1) JDBC JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 优点…

怎么用PPT录制微课?详细步骤解析!

随着信息技术的不断发展&#xff0c;微课作为一种新型的教学形式&#xff0c;因其短小精悍、针对性强等特点&#xff0c;在教育领域得到了广泛的应用。而PPT作为一款常用的演示工具&#xff0c;不仅可以用来制作课件&#xff0c;还可以利用其内置的录屏功能或结合专业的录屏软件…

C++:类与对象(上)

目录 一、类的定义 1.1类的定义格式 1.2访问限定符 1.3类域 二、实例化 2.1实体化的概念 2.2类对象的大小 三、this指针 前言&#xff1a; 这篇文章是对类和对象的初步介绍&#xff0c;我将用三篇文章描述类和对象&#xff0c;希望对大家有所帮助 一、类的定义 什么是…

jenkins打包java项目报错Error: Unable to access jarfile tlm-admin.jar

jenkins打包boot项目 自动重启脚本失败 查看了一下项目日志报错&#xff1a; Error: Unable to access jarfile tlm-admin.jar我检查了一下这个配置&#xff0c;感觉没有问题&#xff0c;包可以正常打&#xff0c; cd 到项目目录下面&#xff0c;手动执行这个sh脚本也是能正常…

这可能是最详细的 Dagger2 使用教程 二(限定注解 @Named、@Qulifier 和 范围注解 @Singleton、@Scope)

通过上一篇文章我们知道了 Dagger2 的基本使用&#xff0c;在这篇文章中&#xff0c;我们将讲解 Dagger 中的两个重要概念以及相关注解。 这可能是最详细的 Dagger2 使用教程 一&#xff08;基本使用&#xff09; 类型上再加限定&#xff1a;Named 和 Qulifier 注解的使用 通…

罗技K380无线键盘及鼠标:智慧互联,一触即通

目录 1. 背景2. K380无线键盘连接电脑2.1 键盘准备工作2.2 电脑配置键盘的连接 3. 无线鼠标的连接3.1 鼠标准备工作3.2 电脑配置鼠标的连接 1. 背景 有一阵子经常使用 ipad&#xff0c;但是对于我这个习惯于键盘打字的人来说&#xff0c;慢慢在 ipad 上打字&#xff0c;实在是…

北摩高科应邀参加空客供应商大会

民航市场一直以来都是北摩高科重要的战略发展方向&#xff0c;进入国际航空巨头供应链体系也是公司的长期愿景。7月9日至10日&#xff0c;北摩高科公司应邀参与空客集团在天津举办的供应商大会及晚宴。 图1&#xff1a;空客集团采购总监Juergen Westermeier与北摩高科领导 会上…

基于Java+SpringMvc+Vue技术的药品进销存仓库管理系统设计与实现系统(源码+LW+部署讲解)

注&#xff1a;每个学校每个老师对论文的格式要求不一样&#xff0c;故本论文只供参考&#xff0c;本论文页数达到60页以上&#xff0c;字数在6000及以上。 基于JavaSpringMvcVue技术的在线学习交流平台设计与实现 目录 第一章 绪论 1.1 研究背景 1.2 研究现状 1.3 研究内容…

Linux权限相关

目录 Linux中的用户 Linux权限管理 Linux的文件访问者分类 Linux的文件类型和访问权限 文件类型 文件权限 文件权限的修改 文件所有者修改 文件所有者所在组修改 目录权限 粘滞位 文件掩码 在Linux中&#xff0c;权限包括用户的权限和文件的权限 Linux中的用户 在…

jenkins系列-06.harbor

https://github.com/goharbor/harbor/releases?page2 https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz harbor官网&#xff1a;https://goharbor.io/ 点击 Download now 链接&#xff0c;会自动跳转到上述github页面&am…