The model was trained on
thekamilya/kazakh-printed-dataset, which was synthetically generated using text from the
ISSAI KazPARC corpus.
To overcome the scarcity of labeled Kazakh OCR data, I developed a robust synthetic generation engine:
1
2import torch
3from PIL import Image
4from transformers import TrOCRProcessor, VisionEncoderDecoderModel
5
6processor = TrOCRProcessor.from_pretrained("thekamilya/kazakh-trocr-fine-tuned")
7model = VisionEncoderDecoderModel.from_pretrained("thekamilya/kazakh-trocr-fine-tuned")
8
9
10# Move model to GPU
11device = "cuda" if torch.cuda.is_available() else "cpu"
12model = model.to(device)
13
14# Load image
15image = Image.open("zheke.jpg").convert("RGB")
16
17# Prepare input and move to GPU
18pixel_values = processor(
19 images=image,
20 return_tensors="pt"
21).pixel_values.to(device)
22
23# Inference on GPU
24with torch.no_grad():
25 generated_ids = model.generate(pixel_values)
26
27# Decode text
28generated_text = processor.batch_decode(
29 generated_ids,
30 skip_special_tokens=True
31)[0]
32
33print(f"Recognized Text: {generated_text}")