# UniMERNet ## 论文 [UniMERNet](https://arxiv.org/abs/2404.15254) ## 模型简介 UniMERNet 是一个深度学习模型,专注于数学公式的识别。它可以从手写或打印的数学公式图像中提取出精确的数学表达式,并将其转换为 LaTeX 代码。LaTeX 是广泛应用于数学、科学和技术领域的排版系统,因此,能够将数学公式转换为 LaTeX 代码对于公式的展示和编辑至关重要。 **主要特点:** **高精度识别:** 支持手写和打印数学公式的高精度识别。 **实时渲染:** 通过 Streamlit 和 LaTeX 渲染,您可以实时查看公式识别结果。 **多平台支持:** UniMERNet 可以在 Windows、Linux 和 macOS 等操作系统上运行。 ## 环境依赖 | 软件 | 版本 | | :------: | :------: | | DTK | 25.04.2 | | python | 3.10.12 | | transformers | 4.57.1 | | vllm | 0.11.0+das.opt1.alpha.8e22ded.dtk25042 | | torch | 2.5.1+das.opt1.dtk25042 | | triton | 3.1+das.opt1.3c5d12d.dtk25041 | | flash_attn | 2.6.1+das.opt1.dtk2504 | | flash_mla | 1.0.0+das.opt1.dtk25042 | 当前仅支持镜像: - 挂载地址`-v`根据实际模型情况修改 ```bash docker run -it --shm-size 60g --network=host --name minimax_m2 --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mkfd --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /opt/hyhal/:/opt/hyhal/:ro -v /path/your_code_path/:/path/your_code_path/ image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.5.1-ubuntu22.04-dtk25.04.2-py3.10 bash ``` 更多镜像可前往[光源](https://sourcefind.cn/#/service-list)下载使用。 关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。 ## 数据集 ### 介绍 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](https://opendatalab.com/OpenDataLab/UniMER-Dataset)(推荐中国用户)或 [HuggingFace](https://huggingface.co/datasets/wanderkid/UniMER_Dataset) 下载数据集。 ## 训练 要训练 UniMERNet 模型,请按照以下步骤操作: 1. **指定训练数据集路径**:打开 `configs/train` 文件夹并设置你的训练数据集路径。 2. **运行训练脚本**:执行以下命令以开始训练过程。 ```bash bash script/train.sh ``` ### 注意: - 确保 `configs/train` 文件夹中指定的数据集路径是正确且可访问的。 - 监控训练过程中的任何错误或问题。 ## 推理 模型权重 ```bash git clone https://github.com/opendatalab/UniMERNet.git ``` ```bash 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 ``` . **Streamlit 应用程序**:使用我们的基于 Streamlit 的 GUI 进行交互和用户友好的体验。此应用程序允许实时公式识别和渲染。 ```bash unimernet_gui ``` 确保你已安装最新版本的 UniMERNet (`pip install --upgrade unimernet & pip install "unimernet[full]"`) 以使用 Streamlit GUI 应用程序。 2. **命令行演示**:从图像中预测 LaTeX 代码。 ```bash python demo.py ``` 3. **Jupyter Notebook 演示**:从图像中识别和渲染公式。 ```bash jupyter-lab ./demo.ipynb ``` ## 效果展示 暂无 ### 精度 DCU与GPU精度一致,推理框架:vllm。 ## 预训练权重 | 模型名称 | 权重大小 | DCU型号 | 最低卡数需求 |下载地址| |:-----:|:----------:|:----------:|:---------------------:|:----------:| | unimernet_base | 1.3GB | K100AI | 1 | [下载地址](https://huggingface.co/wanderkid/unimernet_base) | | unimernet_small | 1.3GB | K100AI | 1 | [下载地址](https://huggingface.co/wanderkid/unimernet_small) | | unimernet_tiny | 1.3GB | K100AI | 1 | [下载地址](https://huggingface.co/wanderkid/unimernet_tiny ) | ## 源码仓库及问题反馈 - https://developer.sourcefind.cn/codes/modelzoo/unimernet_transformers ## 参考资料 - https://github.com/opendatalab/UniMERNet