一、关于 LaTeX
基于深度学习的数学公式图像转LaTeX代码工具,支持命令行、GUI和API三种使用方式。
2、相关资源
- 源码:https://github.com/lukas-blecher/LaTeX-OCR
- 文档:https://pix2tex.readthedocs.io/en/latest/
- PyPI:https://pypi.org/project/pix2tex
- Docker:https://hub.docker.com/r/lukasblecher/pix2tex
- Colab演示:https://colab.research.google.com/github/lukas-blecher/LaTeX-OCR/blob/main/notebooks/LaTeX_OCR_test.ipynb
- Hugging Face:https://huggingface.co/spaces/lukbl/LaTeX-OCR
3、核心特性
1、多平台支持
- 命令行工具、GUI界面和REST API三种交互方式
- 支持Linux/Wayland/KDE等桌面环境截图
2、智能预处理
- 自动优化输入图像分辨率
- 支持温度参数控制输出稳定性
3、高性能模型
- 基于ViT+ResNet的混合编码器
- Transformer解码器架构
- BLEU 0.88,编辑距离0.10
4、技术细节
模型架构
- 编码器:ViT+ResNet混合结构
- 解码器:Transformer架构
- 词汇量:8000 tokens
训练数据
- 来源:Wikipedia / arXiv/ im2latex-100k
- 渲染工具:XeLaTeX , ImageMagick 配合 Ghostscript(用于将PDF转为PNG)
- 支持字体:Latin Modern Math、GFSNeohellenicMath.otf、Asana Math、XITS Math、Cambria Math
二、安装指南
# 基础安装(包含GUI)
pip install "pix2tex[gui]"
# API服务安装
pip install -U "pix2tex[api]"
三、使用方式
1、命令行工具
pix2tex /path/to/image.png
2、图形界面
latexocr
3、API服务
python -m pix2tex.api.run
或使用Docker:
docker run --rm -p 8502:8502 lukasblecher/pix2tex:api
4、Python调用
from PIL import Image
from pix2tex.cli import LatexOCR
model = LatexOCR()
print(model(Image.open('formula.png')))
四、训练自定义模型
1、准备数据集:
python -m pix2tex.dataset.dataset --equations math.txt --images formulae/ --out dataset.pkl
2、修改config.yaml
配置文件
3、启动训练:
python -m pix2tex.train --config path/to/config.yaml
五、其它
待办事项
- 添加更多评估指标
- 创建图形用户界面
- 添加束搜索功能
- 支持手写公式(部分完成,参见训练Colab笔记本)
- 减小模型体积(蒸馏技术)
- 寻找最优超参数
- 调整模型结构
- 修复数据爬取并采集更多数据
- 追踪模型问题(#2)
致谢
代码参考并修改自以下项目:
- lucidrains
- rwightman/pytorch-image-models
- im2markup
- arxiv_leaks
- pkra/MathJax-single-file
- harupy/snipping-tool
参考文献
[1] 一张图像等价于16x16个单词
[2] 注意力机制就是你所需要的一切
伊织 xAI 2025-05-04(日)