--- language: - ti license: mit tags: - ocr - trocr - tigrinya - ge-ez - low-resource - image-to-text - transfer-learning - transformers - geez - ge'ez base_model: microsoft/trocr-base-handwritten tasks: - image-to-text datasets: - glocr metrics: - cer - wer - accuracy model-index: - name: tigrinya-trocr-handwritten results: - task: type: image-to-text name: Tigrinya OCR dataset: name: GLOCR Tigrinya News Text-Lines type: glocr split: test metrics: - type: cer value: 0.0038 name: Character Error Rate - type: wer value: 0.0115 name: Word Error Rate - type: accuracy value: 0.9686 name: Exact Match Accuracy --- # TrOCR-Handwritten for Tigrinya OCR [![Model on HF](https://img.shields.io/badge/HuggingFace-tigrinya--trocr--handwritten-yellow?logo=huggingface)](https://huggingface.co/Yonatanhaile2026/tigrinya-trocr-handwritten) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Language: Tigrinya](https://img.shields.io/badge/Language-Tigrinya-green)]() [![Script: Ge'ez](https://img.shields.io/badge/Script-Ge%27ez-orange)]() [![Base: TrOCR-base-handwritten](https://img.shields.io/badge/Base-TrOCR--base--handwritten-lightgrey)](https://huggingface.co/microsoft/trocr-base-handwritten) # Tigrinya TrOCR — Handwritten Variant **Adapting TrOCR for Printed Tigrinya Text Recognition: Word-Aware Loss Weighting for Cross-Script Transfer Learning** A fine-tuned [TrOCR](https://huggingface.co/microsoft/trocr-base-handwritten) model for printed Tigrinya line-level text recognition. This is the **handwritten pre-training variant**, fine-tuned from `microsoft/trocr-base-handwritten` using vocabulary extension and **Word-Aware Loss Weighting** to resolve word-boundary failures caused by BPE space-marker conventions. --- ## Model Details | Field | Value | |---|---| | **Model name** | `Yonatanhaile2026/tigrinya-trocr-handwritten` | | **Base model** | `microsoft/trocr-base-handwritten` | | **Task** | Tigrinya OCR (image-to-text) | | **Language** | Tigrinya (`ti`) | | **Script** | Ge'ez | | **Model type** | VisionEncoderDecoderModel | | **Vocabulary** | Extended from 50,265 → 50,495 tokens (230 Ge'ez characters added) | | **Training data** | GLOCR Tigrinya News text-line images (synthetic) | --- ## Performance Evaluated on a held-out test set of 5,000 synthetic Tigrinya text-line images. | Metric | Value | |---|---| | Character Error Rate (CER) | **0.38%** | | Word Error Rate (WER) | **1.15%** | | Exact Match Accuracy | **96.86%** | ### Bootstrap 95% Confidence Intervals (1,000 iterations, TrOCR-Printed) | Metric | Point Estimate | 95% CI | |---|---|---| | CER | 0.20% | [0.17%, 0.24%] | | WER | 0.76% | [0.64%, 0.90%] | | Accuracy | 97.44% | [97.02%, 97.84%] | > Bootstrap intervals were computed on the TrOCR-Printed variant; see the printed model card for details. ### Comparison (same dataset and split) | Model | CER | WER | Accuracy | |---|---|---|---| | **TrOCR-Handwritten (fine-tuned)** | **0.38%** | **1.15%** | **96.86%** | | TrOCR-Printed (fine-tuned) | 0.22% | 0.87% | 97.20% | | CRNN-CTC Baseline | 0.12% | 0.57% | 98.20% | --- ## Training Details | Hyperparameter | Value | |---|---| | Optimizer | AdamW | | Learning rate | `4e-5` | | LR scheduler | Linear decay (no warmup) | | Epochs | 10 | | Per-device batch size | 2 | | Gradient accumulation steps | 4 | | Effective batch size | 8 | | Mixed precision | FP16 | | Boundary loss weight | 2.0 | | Random seed | 42 | | Training duration | ~2h 40m | | Hardware | NVIDIA RTX 5060 Laptop (8 GB GDDR7) | --- ## How to Use ```python from transformers import VisionEncoderDecoderModel, TrOCRProcessor from PIL import Image processor = TrOCRProcessor.from_pretrained("Yonatanhaile2026/tigrinya-trocrhandwritten") model = VisionEncoderDecoderModel.from_pretrained("Yonatanhaile2026/tigrinya-trocrhandwritten") Load your text-line image image = Image.open("your_tigrinya_text_line.png").convert("RGB") pixel_values = processor(images=image, return_tensors="pt").pixel_values generated_ids = model.generate(pixel_values, num_beams=5, max_length=128) prediction = processor.batch_decode(generated_ids, skip_special_tokens=True)[0] print(prediction) ``` --- ## Intended Use **Suitable for:** - Tigrinya OCR research on synthetic or clean text-line images - Baseline comparison against printed-specific and CTC-based OCR models - Research on cross-script transfer learning and BPE tokenizer adaptation **Not suitable for:** - Production OCR without validation on real scanned or handwritten documents - Scenarios where the printed variant would be preferable - Documents with heavy degradation, low resolution, or non-text noise --- ## Limitations - Trained and evaluated exclusively on synthetic printed data from a single domain (newspaper text lines) - Performance on real-world scanned or genuinely handwritten Tigrinya documents is not validated - Underperforms the printed TrOCR variant on this synthetic printed corpus - Results reflect a single training run on one hardware configuration --- ## Related Resources - **Printed variant:** [`Yonatanhaile2026/tigrinya-trocr-printed`](https://huggingface.co/Yonatanhaile2026/tigrinya-trocrprinted) - **Code repository:** [github.com/YoHa2024NKU/Tigrinya_TrOCR_Printed](https://github.com/YoHa2024NKU/Tigrinya_TrOCR_Printed) - **Dataset:** [GLOCR — Harvard Dataverse](https://github.com/fgaim/GLOCR) --- ## Citation If you use this model, please cite the associated paper and repository: ```bibtex @misc{medhanie2026adaptingtrocrprintedtigrinya, title={Adapting TrOCR for Printed Tigrinya Text Recognition: Word-Aware Loss Weighting for Cross-Script Transfer Learning}, author={Yonatan Haile Medhanie and Yuanhua Ni}, year={2026}, eprint={2604.20813}, archivePrefix={arXiv}, primaryClass={cs.CV}, url={https://arxiv.org/abs/2604.20813}, } ``` --- ## License ``` MIT ```