欢迎来到 UniMERNet 的官方仓库,这是一个将数学表达式图像转换为 LaTeX 的解决方案,适用于各种真实世界场景。
2024.09.06 🎉🎉 UniMERNet 版本更新,训练代码开源,新版本模型更小,速度更快。具体见最新版本论文UniMERNet。
2024.09.06 🎉🎉 提出公式识别新指标CDM,相比于BLEU/EditDistance,CDM评测得分更加直观,准确,可以公平对比不同模型性能,不受公式多样性表达影响。
2024.07.21 🎉🎉 基于 PDF-Extract-Kit MFD 模型,添加了数学公式检测 (MFD) 教程。
2024.06.06 🎉🎉 开源了 UniMER 数据集的评估代码。
2024.05.06 🎉🎉 开源了 UniMER 数据集,包括用于模型训练的 UniMER-1M 和用于 MER 评估的 UniMER-Test。
2024.05.06 🎉🎉 添加了 Streamlit 公式识别演示,并提供了本地部署应用程序。
2024.04.24 🎉🎉 论文现在可以在 ArXiv 上查看。
2024.04.24 🎉🎉 发布了推理代码和检查点。
DirectRecognition.mp4
MunualSelection.mp4
git clone https://github.com/opendatalab/UniMERNet.git
cd UniMERNet/models
# 单独下载模型和分词器或使用 git-lfs
git lfs install
git clone https://huggingface.co/wanderkid/unimernet_base # 1.3GB
git clone https://huggingface.co/wanderkid/unimernet_small # 773MB
git clone https://huggingface.co/wanderkid/unimernet_tiny # 441MB
# 你也可以从 ModelScope 下载模型
git clone https://www.modelscope.cn/wanderkid/unimernet_base.git
git clone https://www.modelscope.cn/wanderkid/unimernet_small.git
git clone https://www.modelscope.cn/wanderkid/unimernet_tiny.git
新建一个干净的conda环境
conda create -n unimernet python=3.10
conda activate unimernet
安装方式1:直接 pip install安装,适合一般用户
pip install --upgrade unimernet
pip install "unimernet[full]"
安装方式2:本地安装,适合开发者
pip install -e ."[full]"
-
Streamlit 应用程序:使用我们的基于 Streamlit 的 GUI 进行交互和用户友好的体验。此应用程序允许实时公式识别和渲染。
unimernet_gui
确保你已安装最新版本的 UniMERNet (
pip install --upgrade unimernet & pip install "unimernet[full]"
) 以使用 Streamlit GUI 应用程序。 -
命令行演示:从图像中预测 LaTeX 代码。
python demo.py
-
Jupyter Notebook 演示:从图像中识别和渲染公式。
jupyter-lab ./demo.ipynb
UniMERNet 在识别真实世界数学表达式方面显著优于主流模型,在简单打印表达式(SPE)、复杂打印表达式(CPE)、屏幕截图表达式(SCE)和手写表达式(HWE)方面表现出色,如 BLEU 分数评估所示。
由于公式存在表达的多样性,使用BLEU指标对于不同模型对比不具备公平性,为此我们在专门针对公式识别设计的CDM上进行评估,我们的方法远超开源模型,与商业软件Mathpix效果相当,CDM@ExpRate是指完全预测正确公式占比,具体参考CDM论文。
UniMERNet 在挑战性样本的视觉识别方面表现出色,优于其他方法。
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 下载数据集。
下载 UniMER-1M 数据集并将其解压到以下目录:
./data/UniMER-1M
下载 UniMER-Test 数据集并将其解压到以下目录:
./data/UniMER-Test
要训练 UniMERNet 模型,请按照以下步骤操作:
-
指定训练数据集路径:打开
configs/train
文件夹并设置你的训练数据集路径。 -
运行训练脚本:执行以下命令以开始训练过程。
bash script/train.sh
- 确保
configs/train
文件夹中指定的数据集路径是正确且可访问的。 - 监控训练过程中的任何错误或问题。
要测试 UniMERNet 模型,请按照以下步骤操作:
-
指定测试数据集路径:打开
configs/val
文件夹并设置你的测试数据集路径。 -
运行测试脚本:执行以下命令以开始测试过程。
bash script/test.sh
- 确保
configs/val
文件夹中指定的数据集路径是正确且可访问的。 test.py
脚本将使用指定的测试数据集进行评估。记得将test.py
中的测试集路径更改为你的实际路径。- 查看测试结果以获取性能指标和潜在问题。
公式识别的前提是检测 PDF 或网页截图中公式所在的区域。PDF-Extract-Kit 包含了一个强大的公式检测模型。如果你希望自行进行公式检测和识别,可以参考 公式检测教程 以获取有关部署和使用公式检测模型的指南。
[✅] 发布 UniMERNet 的推理代码和模型。
[✅] 发布 UniMER-1M 和 UniMER-Test。
[✅] 开源 Streamlit 公式识别 GUI 应用程序。
[✅] 发布 UniMERNet 的训练代码。
如果你在研究中发现我们的模型/代码/论文有用,欢迎给我们项目点个 ⭐ 并引用我们的工作 📝,谢谢 :)
@misc{wang2024unimernetuniversalnetworkrealworld,
title={UniMERNet: A Universal Network for Real-World Mathematical Expression Recognition},
author={Bin Wang and Zhuangcheng Gu and Guang Liang and Chao Xu and Bo Zhang and Botian Shi and Conghui He},
year={2024},
eprint={2404.15254},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2404.15254},
}
@misc{wang2024cdmreliablemetricfair,
title={CDM: A Reliable Metric for Fair and Accurate Formula Recognition Evaluation},
author={Bin Wang and Fan Wu and Linke Ouyang and Zhuangcheng Gu and Rui Zhang and Renqiu Xia and Bo Zhang and Conghui He},
year={2024},
eprint={2409.03643},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2409.03643},
}
- VIGC。模型框架依赖于 VIGC。
- Texify。一个主流的 MER 算法,UniMERNet 的数据处理参考了 Texify。
- Latex-OCR。另一个主流的 MER 算法。
- Donut。UniMERNet 的 Transformer 编码器-解码器参考了 Donut。
- Nougat。分词器使用了 Nougat。
如果你有任何问题、意见或建议,请随时通过 [email protected] 联系我们。