FormulaNet上手教程:用Transformers在Python中调用公式识别模型的完整步骤 【免费下载链接】FormulaNet项目地址https://ai.gitcode.com/hf_mirrors/alephpi/FormulaNet点击查看免费下载FormulaNet 是一个开源的公式识别模型LaTeX OCR即把公式图片转成 LaTeX 代码基于 HuggingFaceTransformers的 vision-encoder-decoder 架构输入一张公式图片输出对应的 LaTeX 文本。本教程带你走完完整流程克隆仓库、准备环境、加载模型、调用推理并在最后介绍 PyTorch 与 ONNX 两套模型文件的区别。先认识一下这个模型FormulaNet 在架构上由两部分组成组件说明Encoder视觉编码器HGNetV2 图像特征提取网络hidden_size为 2048Decoder解码器2 层 mBART 结构vocab_size仅 687 个 token基础模型为 PaddlePaddle 的 PP-FormulaNet-S本项目将其转换为 PyTorch 版本并在 UniMER-Train 数据集上微调因此模型文件为vision-encoder-decoder结构见 config.json 中model_type: vision-encoder-decoder。训练数据来自 UniMER-Train、UniMER-Test 等数据集评估指标包括 BLEU 与编辑距离详见 README.md。解码器词表只有 687 个 tokenLaTeX 符号、字母、数字等比通用语言模型小得多这也是它识别公式速度快的原因之一。第一步克隆 FormulaNet 模型仓库打开终端执行以下命令克隆仓库git clone https://gitcode.com/hf_mirrors/alephpi/FormulaNet.git克隆完成后仓库目录结构如下FormulaNet/ ├── config.json # 模型架构与参数配置 ├── generation_config.json # 生成参数起止 token、最大长度 ├── model.safetensors # PyTorch 权重safetensors 格式 ├── tokenizer.json # LaTeX 分词器词表共 687 个 token ├── tokenizer_config.json # 分词器配置 ├── checkpoints/ # 多个 PyTorch 预训练权重.pt 文件 └── onnx/ # ONNX 导出的 encoder/decoder 模型其中根目录的 model.safetensors 与 config.json 是 Transformers 可直接加载的标准格式模型checkpoints/ 目录下存放了不同阶段的训练权重用途说明见 checkpoints/readme.md权重文件说明formulanet.ptPP-FormulaNet-S 的 PyTorch 原版权重formulanet_distill.pt词表蒸馏版未微调formulanet_distill_best.pt在 UniMER-1M 上微调后的版本formulanet_distill_best_transfer.pt在上一版基础上做词表迁移的版本第二步准备 Python 环境FormulaNet 基于 Transformers 4.40.0 转换见 config.json 中transformers_version字段建议使用 Python 3.9 并安装以下依赖pip install torch transformers pillow说明transformers用于加载模型配置、权重与分词器torch是 PyTorch 推理后端pillow用于读取公式图片。⚙️第三步用 Transformers 加载 FormulaNet 模型核心思路分三步加载分词器 → 加载模型 → 送入图片推理。import torch from PIL import Image from transformers import AutoTokenizer, AutoConfig # 1. 加载 LaTeX 分词器687 个 token tokenizer AutoTokenizer.from_pretrained(./FormulaNet) # 2. 加载模型vision-encoder-decoder 结构 config AutoConfig.from_pretrained(./FormulaNet) model AutoModelForVision2Seq.from_pretrained( ./FormulaNet, torch_dtypetorch.float32, # config.json 中 torch_dtype 为 float32 ) model.eval()两个关键点分词器配置为PreTrainedTokenizerFastWordLevel 词表特殊 token 为s、pad、/s、unk见 tokenizer_config.json生成参数由 generation_config.json 定义decoder_start_token_id0、eos_token_id2、max_length1024模型会自动使用这些参数进行解码。第四步输入公式图片得到 LaTeX 代码把一张公式图片送入模型即可from transformers import AutoModelForVision2Seq # 3. 读取公式图片模型要求 3 通道 RGB 图像 image Image.open(formula.png).convert(RGB) pixel_values transform(image) # 预处理为模型输入张量 # 4. 生成 LaTeX 代码 outputs model.generate(pixel_values) latex tokenizer.decode(outputs[0], skip_special_tokensTrue) print(latex) # 例如E mc^2调用generate()后解码器会逐个生成 token直到遇到结束符/sid2输出的就是一段 LaTeX 代码。 提示该模型的完整推理封装图像预处理尺寸、generate调用方式在其配套推理库 Texo 的FormulaNet类中本仓库提供的是模型权重与配置。按上文加载模型 → generate → 解码三步手动调用即可实现同样的公式识别效果。第五步进阶使用 ONNX 导出模型如果你追求更高的推理速度仓库的 onnx/ 目录已提供了用transformers导出的 ONNX 模型文件作用encoder_model.onnx视觉编码器图像特征提取decoder_model.onnx解码器生成 LaTeX tokendecoder_with_past_model.onnx带 past key value 的解码器逐 token 推理更快decoder_model_merged.onnx合并版解码器ONNX 模型配套了独立的 onnx/config.json、onnx/generation_config.json 和分词器文件。部署时用onnxruntime加载即可流程与 PyTorch 版一致先跑 encoder 提取图像特征再循环调用 decoder 生成 token。⚠️常见问题FAQ加载时报架构不识别该模型的model_type是vision-encoder-decoderencoder 为自定义 HGNetV2 网络纯 Transformers 标准类加载自定义 encoder 时需要配合配套库Texo注册的模型类。本仓库的权重文件checkpoints/可直接配合该库使用。GPU 推理加载权重后调用model.to(cuda)并把pixel_values一并移到 CUDA 即可。识别效果不好确认图片是清晰的单行公式、白底黑字模型基于公式数据集训练手写体或严重模糊的图片效果会下降。想换不同的权重见 checkpoints/readme.md 中各.pt文件的说明formulanet_distill_best_transfer.pt是词表迁移后的版本通常用于追求更高准确率的场景。小结用 Transformers 在 Python 中调用 FormulaNet 公式识别模型只需要四步git clone克隆模型仓库pip install torch transformers pillow准备环境用AutoTokenizerfrom_pretrained加载分词器与模型送入公式图片调用generate()解码出 LaTeX 代码。FormulaNet 词表小687 token、架构轻encoder2 层 decoder在 CPU 上也能流畅运行非常适合做公式图片 → LaTeX的自动化转换、论文 OCR、作业数字化等场景。动手试试吧赞分享【免费下载链接】FormulaNet项目地址https://ai.gitcode.com/hf_mirrors/alephpi/FormulaNet点击查看免费下载相关推荐PDF公式秒变LaTeXMinerU公式识别模型PP-FormulaNet plus-M完全指南PDF公式秒变LaTeXMinerU公式识别模型PP FormulaNet plus M完全指南 MinerU 公式识别模型 PP FormulaNet pl去除 Vibe Coding 网站的 AI 味儿7 类约束让 AI 生成页面更专业的完整实战指南去除 Vibe Coding 网站的 AI 味儿7 类约束让 AI 生成页面更专业的完整实战指南 用 Cursor、Claude Code 做网站的初学者几人工智能教程知识库文档手把手教你用Lora微调Qwen3-VL模型实现LaTeX公式OCR识别手把手教你用Lora微调Qwen3 VL模型实现LaTeX公式OCR识别 还在为复杂的数学公式识别而烦恼吗今天我们就一起来探索如何通过Lora微调技术让Qw人工智能大模型本地部署微调教程上一篇终极指南如何构建多语言支持的HTML解析器编码处理策略下一篇10个技巧高效管理Android专有文件blobs_downloader.sh使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考