news 2026/9/10 13:09:53

4步把公式截图变成LaTeX代码:pix2tex OCR实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
4步把公式截图变成LaTeX代码:pix2tex OCR实战教程

4步把公式截图变成LaTeX代码:pix2tex OCR实战教程

【免费下载链接】LaTeX-OCRpix2tex: Using a ViT to convert images of equations into LaTeX code.项目地址: https://gitcode.com/GitHub_Trending/la/LaTeX-OCR

pix2tex(仓库名 LaTeX-OCR)是一个基于视觉Transformer的数学公式OCR工具:给它一张公式图片,它返回对应的 LaTeX 源码。如果你经常从 PDF 或论文截图里"搬"公式,却只能对着屏幕逐字敲 LaTeX,这篇文章适合你——从安装到出结果,全程不超过 4 步。

先说场景:公式为什么不好复制

PDF 里的公式是"死"的。想引用某篇论文里的一个公式,文字选中复制往往得到一串乱码,手动重打 LaTeX 又费时还容易抄错符号。

pix2tex 干的事情很简单:把"图片 → LaTeX 代码"这一步自动化。你截一张公式图,它输出一段可以直接粘进文档的 LaTeX 源码,再配合任何渲染器就能还原成公式。

它是怎么做到的

模型由两部分拼接而成 🧠:

  • ViT 编码器(带 ResNet 主干):负责"看图",把公式图片切块后编码成视觉特征
  • Transformer 解码器:负责"写代码",逐 token 生成 LaTeX 序列

官方报告的效果指标为:BLEU 0.88、归一化编辑距离 0.10、token 准确率 0.60。对公式这种短文本来说,这个准确度已经够日常使用。

模型对图片尺寸很敏感,所以 pix2tex 额外训练了一个小的 ResNet(image resizer),自动把输入图缩放到模型最"顺手"的分辨率。源码可以看 pix2tex/models/ 目录,模型定义就在vit.pytransformer.py里。

安装 pix2tex

环境要求只有一个:Python 3.7+(依赖 PyTorch)。

pip install "pix2tex[gui]"

方括号里的标签决定装哪套依赖,按需选择:

  • [gui]:命令行 + 图形界面(新手推荐,本文主线)
  • [api]:额外装 FastAPI,用于起 Web 服务
  • [train]:额外装训练相关依赖
  • [all]:全部装齐

首次运行时会自动下载模型权重文件,不需要手动找 checkpoint。不想装包、直接读源码的话,也可以克隆仓库(git clone https://gitcode.com/GitHub_Trending/la/LaTeX-OCR)后浏览 docs/installation.md 的完整安装说明。

三条路拿到第一个结果

命令行:处理已有图片

最直接的方式是调用pix2tex命令。传一个图片路径:

pix2tex formula.png

不传路径则进入交互模式:提示符下粘贴图片文件路径回车即可预测;在 Windows 和 macOS 上,还能直接把图片拷进剪贴板后按回车。预测结果会同时复制到系统剪贴板,终端里按t=0.1可以随时调节 temperature(采样温度),输入show则用 XeLaTeX 把结果渲染回图片。

图形界面:随手一截就出码

装过[gui]标签后,直接运行:

latexocr

窗口弹出后点Snip(快捷键 Alt+S,macOS 上是 Option+S),框选屏幕上的公式,预测结果会即时渲染出来并写入剪贴板。结果不满意就点Retry重跑一次;也可以在窗口底部的 Temperature 滑块上把值调低,让输出更稳定。

在 Python 里当函数用

写脚本、批量处理时,把LatexOCR当普通对象调用:

from PIL import Image from pix2tex.cli import LatexOCR model = LatexOCR() print(model(Image.open("formula.png")))

想做成团队内部服务也可以:pip install -U "pix2tex[api]"后运行python -m pix2tex.api.run,会在 8502 端口起一个 FastAPI 服务,接口定义见 pix2tex/api/app.py。

结果不准时,调这两处

  • 换分辨率重试:模型偏爱中小分辨率的图。拍得太近、放得太大反而更容易错,退远一点重新截图往往比调参数更管用。
  • 调 temperature:温度低,同一张图反复预测输出一致;温度高,每次可能给不同候选。拿不准就调低温度求稳,结果接近正确时再调高试试别的写法。

另外要记住:OCR 不是 100% 的,交付前务必把生成的 LaTeX 通读一遍再渲染确认。

进阶:用数据微调自己的模型

如果你的公式有大量特殊记号(自定义宏、生僻符号),可以用自己的数据训练。流程分三步:

  1. 生成数据集。把图片路径和 LaTeX 标签的对应关系打包成 pkl:
python -m pix2tex.dataset.dataset --equations math.txt --images imgs/ --out dataset.pkl
  1. 改配置。打开 pix2tex/model/settings/config.yaml,把data(和valdata)指向刚生成的.pkl,再按需调超参数。
  2. 开训:
python -m pix2tex.train --config pix2tex/model/settings/config.yaml

训练用的数据管线(爬取、渲染成 PNG、LaTeX 归一化)都放在 pix2tex/dataset/ 目录里,想自建数据集可以先翻一遍。

常见疑问速答

  • 装完跑不起来?先确认 PyTorch 已正确安装,CPU 环境下加--no-cuda参数。
  • 结果和原图对不上?优先换截图分辨率重试,其次调低 temperature。
  • 想要 Web 演示页?API 服务自带 Streamlit 前端,python -m pix2tex.api.run会同时拉起前后端,浏览器打开 8501 端口即可。
  • 想在线体验?仓库 notebooks/ 目录下有现成的 Colab 笔记本,改几行就能跑。

pix2tex 把"截图里的公式"变成了"能编辑的源码",对写文档、整理文献的人是很顺手的小工具。装好之后建议先拿一张论文截图走一遍命令行流程,感受下输出质量,再决定要不要搭 API 服务或微调模型——代码就在手边,动手比读文档更快。

【免费下载链接】LaTeX-OCRpix2tex: Using a ViT to convert images of equations into LaTeX code.项目地址: https://gitcode.com/GitHub_Trending/la/LaTeX-OCR

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 13:09:26

AI时代数据工程重构:从复杂管道到统一数据底座的实践路径

过去一年,我所在的数据平台团队干了一件大事:把一张盘根错节的管道链路图,逐步收敛成一套统一的数据底座。这不算一次漂亮的技术翻新,而是被 AI 项目逼到墙角后的重构。当时团队同时支撑推荐、搜索增强和大模型应用三块业务&#…

作者头像 李华
网站建设 2026/9/10 13:00:42

谢海涛数学课程适合什么样的孩子?从“基础不牢”这个问题说起

给孩子选数学课时,家长经常会用“基础不好”来描述学习情况。但真正选课之前,还需要往下问一步:孩子到底是哪一部分基础没有建立起来?有的孩子概念记得不准确,有的运算过程容易出错,还有的能够听懂例题&…

作者头像 李华