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

✍️ Mô hình nhận dạng chữ viết tay hiệu suất cao

📝 Giới thiệu

Mô hình TrOCR Small là một mô hình Vision Transformer encoder + Transformer decoder được Microsoft phát triển, fine‑tuned trên tập dữ liệu IAM chuyên nhận dạng chữ viết tay. Encoder được khởi tạo từ DeiT, còn decoder được khởi tạo từ UniLM, dùng để chuyển đổi hình ảnh chứa chữ viết tay thành văn bản.

📌 Nhiệm vụ

Loại bài toán: OCR – Nhận dạng ký tự từ dòng hình ảnh chữ viết tay

Mô hình được định hướng cho đầu vào là các dòng chữ, mỗi dòng sinh ra tương ứng một chuỗi ký tự.

📥 Đầu vào

Hình ảnh: RGB hoặc chuyển đổi từ ảnh grayscale Xử lý bởi: TrOCRProcessor (sử dụng ViTImageProcessor + RobertaTokenizer) Patch size: Hình ảnh được chia thành patch 16×16, mã hóa vị trí rồi đưa vào encoder

📤 Đầu ra

Mô hình sinh chuỗi token tương ứng ký tự dòng viết tay. Sử dụng processor.batch_decode(..., skip_special_tokens=True) để chuyển các token này thành văn bản đọc được.

🛠 Cài đặt

pip install torch torchvision transformers pillow

🧪 Ví dụ sử dụng

from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
import requests
import torch

# Tải ảnh ví dụ từ IAM
url = 'https://fki.tic.heia-fr.ch/static/img/a01-122-02-00.jpg'
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")

# Load processor và mô hình
processor = TrOCRProcessor.from_pretrained("zhaospei/Model_15")
model = VisionEncoderDecoderModel.from_pretrained("zhaospei/Model_15")
model.eval()

# Tiền xử lý ảnh
pixel_values = processor(images=image, return_tensors="pt").pixel_values

# Dự đoán văn bản từ ảnh
with torch.no_grad():
    generated_ids = model.generate(pixel_values)

# Giải mã các token thành câu
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print("Kết quả OCR:", generated_text)

📊 Hiệu năng & ứng dụng

Mô hình đạt accuracy cao trên bộ dữ liệu IAM (handwritten), vượt trội so với các giải pháp truyền thống dựa trên CNN+RNN. Kích thước nhỏ và dễ deploy cho các ứng dụng OCR di động hoặc offline, nơi tài nguyên bị giới hạn.

⚠️ Hạn chế

Được thiết kế dành riêng nhận dạng một dòng chữ tay, không phù hợp với định dạng văn bản phức tạp (đa dòng, layout phức tạp). Hiệu suất giảm nếu hình ảnh chất lượng kém (mờ, nhiễu) hoặc đối với font/handwriting style khác so với dữ liệu IAM.

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