YAML Metadata Warning: empty or missing yaml metadata in repo card (https://huggingface.co/docs/hub/model-cards#model-card-metadata)

🧮 Pix2Text‑MFR: Nhận dạng Công Thức Toán Học Viết Tay

Mô hình breezedeus/pix2text-mfr sử dụng kiến trúc TrOCR (vision-encoder-decoder) và đã được huấn luyện lại chuyên biệt trên ảnh công thức toán học để chuyển đổi ảnh thành biểu diễn LaTeX.


📌 Mục Đích

Chuyển đổi hình ảnh chứa công thức toán học (in hoặc viết tay) thành chuỗi LaTeX.


✅ Tính năng

  • Nhận dạng công thức in và viết tay (handwritten).
  • Ra kết quả dưới dạng chuỗi LaTeX có thể biên dịch.
  • Sử dụng kiến trúc TrOCR nhỏ gọn, có thể chạy trên CPU hoặc GPU.
  • Kết quả đạt Character Error Rate thấp (CER ≈ 2.1%) trên tập thử nghiệm 485 ảnh thật :contentReference[oaicite:1]{index=1}.

⚠️ Hạn chế

  • Chỉ hiệu quả với ảnh công thức toán học, không áp dụng cho ảnh khác.
  • Độ chính xác phụ thuộc vào chất lượng ảnh (nhiễu, mờ).
  • Không hiệu quả nếu ảnh chứa chữ thường, ký tự lẫn trong văn bản phức tạp.

🛠 Cài đặt

pip install transformers pillow optimum[onnxruntime]

Ngoài ra nếu cần xử lý văn bản và hình đa dạng, có thể cài thêm Pix2Text toolkit để hỗ trợ xử lý layout và văn bản chung:

pip install pix2text>=1.1

🧪 Cách sử dụng

⭐ Phương pháp 1: Sử dụng mô hình trực tiếp (chỉ công thức)

from PIL import Image
from transformers import TrOCRProcessor
from optimum.onnxruntime import ORTModelForVision2Seq

processor = TrOCRProcessor.from_pretrained("breezedeus/pix2text-mfr")
model = ORTModelForVision2Seq.from_pretrained("breezedeus/pix2text-mfr", use_cache=False)

images = [Image.open(fp).convert("RGB") for fp in ['formula1.png', 'formula2.jpg']]
pixel_values = processor(images=images, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
latex_texts = processor.batch_decode(generated_ids, skip_special_tokens=True)
print(latex_texts)

🛠 Phương pháp 2: Sử dụng cùng với Pix2Text

Dùng Pix2Text để nhận diện vùng công thức và văn bản hỗn hợp:

from pix2text import Pix2Text

p2t = Pix2Text.from_config()
# Avatar images containing mixed text + formula
outs = p2t.recognize("mixed_sample.png", file_type='text_formula', return_text=True)
print(outs)

📈 Hiệu Năng

Tập thử nghiệm: 485 ảnh lấy từ người dùng Pix2Text Online

CER (Character Error Rate):

Pix2Text-MFR (open-source): 2.1%

Texify: 5.5%, Latex-OCR: 6.2%

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support