Mathematical Formula Recognition: GLM-OCR LaTeX Output Guide
Learn how to use GLM-OCR for high-accuracy mathematical formula recognition with LaTeX output, perfect for academic documents and scientific papers.
Introduction
Mathematical formula recognition is crucial for digitizing academic documents, scientific papers, and educational materials. GLM-OCR achieves state-of-the-art performance in formula recognition, outputting clean LaTeX that can be directly used in documents.
Why GLM-OCR for Formula Recognition?
GLM-OCR excels at formula recognition because:
- SOTA Performance: Achieves best results on formula recognition benchmarks
- LaTeX Output: Produces ready-to-use LaTeX code
- Complex Formulas: Handles multi-line equations, matrices, and special symbols
- Context Awareness: Understands formulas within document context
Usage
Basic Formula Recognition
# Using Ollama
ollama run glm-ocr Formula Recognition: ./equation.pngAPI Call
import requests
response = requests.post(
"https://api.z.ai/api/paas/v4/layout_parsing",
headers={"Authorization": "Bearer your-api-key"},
json={
"model": "glm-ocr",
"file": "https://example.com/formula.png"
}
)
latex_output = response.json()["content"]
print(latex_output)Supported Formula Types
Basic Equations
Input image of: E = mc²
Output:
E = mc^2Fractions and Roots
Input image of complex fraction:
Output:
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}Integrals and Derivatives
\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}Matrices
\begin{pmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{pmatrix}Summations and Products
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}\prod_{i=1}^{n} i = n!Real-World Examples
Physics Equations
Maxwell's Equations:
\nabla \cdot \mathbf{E} = \frac{\rho}{\epsilon_0}\nabla \times \mathbf{B} = \mu_0 \mathbf{J} + \mu_0 \epsilon_0 \frac{\partial \mathbf{E}}{\partial t}Statistical Formulas
Normal Distribution:
f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2}Machine Learning
Softmax Function:
\text{softmax}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{K} e^{x_j}}Integration with Document Workflows
LaTeX Documents
\documentclass{article}
\usepackage{amsmath}
\begin{document}
% Paste GLM-OCR output directly
The quadratic formula is:
\[
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
\]
\end{document}Markdown with MathJax
The quadratic formula is:
$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$Python Processing
import sympy
from sympy.parsing.latex import parse_latex
# Parse GLM-OCR LaTeX output
latex_str = r"\frac{-b + \sqrt{b^2 - 4ac}}{2a}"
expr = parse_latex(latex_str)
# Evaluate numerically
result = expr.subs({'a': 1, 'b': -5, 'c': 6})
print(float(result)) # Output: 3.0Best Practices
Image Quality
- Resolution: 200+ DPI for best results
- Contrast: Black text on white background
- Cropping: Isolate the formula from surrounding text
Complex Formulas
For multi-line equations:
- Capture the entire equation block
- GLM-OCR will preserve alignment
- Output uses appropriate LaTeX environments
Handwritten Formulas
GLM-OCR also handles handwritten formulas:
- Clear handwriting yields better results
- Avoid overlapping symbols
- Use consistent symbol sizes
Performance Tips
Batch Processing
import asyncio
import aiohttp
async def recognize_formula(session, image_url):
async with session.post(
"https://api.z.ai/api/paas/v4/layout_parsing",
headers={"Authorization": "Bearer your-api-key"},
json={"model": "glm-ocr", "file": image_url}
) as response:
return await response.json()
async def batch_recognize(image_urls):
async with aiohttp.ClientSession() as session:
tasks = [recognize_formula(session, url) for url in image_urls]
return await asyncio.gather(*tasks)Comparison with Other Tools
| Feature | GLM-OCR | Mathpix | Traditional OCR |
|---|---|---|---|
| Accuracy | SOTA | High | Low |
| LaTeX Output | Yes | Yes | No |
| Handwriting | Good | Good | Poor |
| Cost | $0.03/M tokens | $0.01/image | Varies |
| Local Deploy | Yes | No | Yes |
Troubleshooting
Common Issues
Issue: Incorrect symbol recognition Solution: Ensure clear image with good contrast
Issue: Missing subscripts/superscripts Solution: Use higher resolution image
Issue: Alignment issues in multi-line equations Solution: Capture the complete equation block
Conclusion
GLM-OCR provides state-of-the-art formula recognition with clean LaTeX output, making it ideal for digitizing academic documents, creating educational materials, and processing scientific papers.
Related Articles
Author
More Posts
Complex Table Recognition: How GLM-OCR Handles Merged Cells
Learn how GLM-OCR excels at recognizing complex tables with merged cells, multi-level headers, and diverse layouts commonly found in business documents.
Structured Information Extraction: GLM-OCR JSON Output for Documents
Learn how to use GLM-OCR for structured information extraction from invoices, ID cards, receipts, and forms with customizable JSON schema output.
GLM-OCR Local Deployment: Ollama vs vLLM vs SGLang
Compare different local deployment options for GLM-OCR including Ollama, vLLM, and SGLang. Learn which option is best for your use case.