Downloads · 30 days
4
11% of all-time downloads
zhaospei/Model_15
Model_15 is a machine learning model from zhaospei. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
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…
Downloads · 30 days
4
11% of all-time downloads
All-time downloads
38
Public
Repo size
247 MB
Likes
0
Public
Click a slice to open those files.
.bin246 MB · 99%
From the Hugging Face model README
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.
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ự.
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
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.
pip install torch torchvision transformers pillow
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)
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.
Đượ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.