/ Модель

Характеристики

Лицензия
Apache 2.0
Архитектура
parseq · dense
Опубликована
4 окт 2026

TinyOCRkhmer

Описание изображенийИзображение → текст

Компактная PARSeq-модель распознаёт кхмерские текстовые строки и математические формулы LaTeX на изображениях учебников.

60скачиваний за 30 дней0лайковвеса обновлены10 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

TinyOCRkhmer — компактная модель OCR от krotreaksmey для распознавания отдельных строк на изображениях с кхмерским текстом и математическими формулами LaTeX, включая смешанные строки из учебников Камбоджи. Она основана на архитектуре PARSeq: визуальный трансформер кодирует изображение, а авторегрессионный декодер преобразует его в последовательность символов.

Модель содержит около 6,1 млн параметров, использует входной размер 48 × 192 и словарь из 185 символов, включающий кхмерский алфавит, цифры, латиницу и математические обозначения. По карточке, она обучалась 30 эпох и рассчитана на распознавание строк с диакритикой, нижними и верхними индексами, дробями, корнями и другими формулами; для детальных фрагментов изображений авторы рекомендуют высокое разрешение входа. Вес модели опубликован под лицензией Apache-2.0.

Сценарии применения

  • распознавание кхмерского текста в строках учебников
  • транскрибирование строк со смешанным кхмерским текстом и формулами
  • распознавание дробей, корней и алгебраических выражений на изображениях
  • извлечение математических формул из сканов учебников Камбоджи

Ограничения

Предназначена для распознавания отдельных строк и требует предварительного выделения строк из страницы. Описание не приводит независимых метрик точности; область применения сосредоточена на кхмерском тексте и математических формулах учебников.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

TinyOCRkhmer: Khmer & LaTeX Math Text-Line Recognition (PARSeq)

Hugging Face Model Dataset YOLO Line Detector Interactive Space

TinyOCRkhmer is an ultra-lightweight (~23.3 MB) Vision Transformer (ViT) and Autoregressive Sequence model based on the PARSeq (Permutation Autoregressive Sequence) architecture. It is purpose-built to recognize single-line crops containing mixed Khmer Unicode text and complex LaTeX mathematical formulas from Cambodian national textbooks.


🌟 Key Features

  • Mixed Khmer & LaTeX Math: Accurately transcribes Khmer sentences with inline and display math formulas ($f(x) = 4x^3 + 9x^2 - 30x + 1$, fractions $\frac{a}{b}$, square roots $\sqrt{x}$, limits $\lim$, and algebraic expressions).
  • High-Resolution Input (48 x 192): Specially scaled to capture delicate Khmer subscript consonants (ជើងអក្សរ), diacritics, and sub/superscripts without losing fine details.
  • Ultra Lightweight & Fast: Only ~23.3 MB model weights. Fits easily on edge devices, CPU-only servers, and mobile runtimes.
  • 185-Token Character Vocabulary: Comprehensive character set covering Khmer alphabet, numerals, Latin characters, and all standard LaTeX mathematical operators.
  • Full Reproducibility: Includes the complete Google Colab training notebook (Train_PARSeq_Khmer_Math_OCR_Colab_30epoch.ipynb) used to train the model for 30 epochs on GPU.

📊 Model Architecture & Specifications

ParameterValue
Model TypePARSeq (Vision Transformer Encoder + Autoregressive Decoder)
Total Parameters6,101,369 (~6.10M Parameters)
Encoder Parameters5,412,672 (~5.41M, ViT-12 Blocks)
Decoder Parameters688,697 (~0.69M, Autoregressive Multi-Head Attention)
Image Resolution48 x 192 pixels (RGB, 288 patches)
Patch Size4 x 8
Embedding Dimension192
Attention Heads3 heads (Encoder) / 6 heads (Decoder)
Vocabulary Size185 unique characters + special tokens
Weights File Size~23.3 MB (.pt)
Training Epochs30 Epochs on GPU (OneCycleLR schedule)
Training Datasetkrotreaksmey/khmer-math-textbook (41,935 Samples)

📈 Model Performance & Training Dynamics

1. Key Performance Benchmarks

MetricMeasurement / ResultContext
Initial Train / Val Loss3.0856 / 2.4204Baseline at Epoch 1
Final Train Loss (Epoch 30)0.4284Smooth convergence across 1,114 batches/epoch
Final Validation Loss (Epoch 30)0.3718-84.6% Error Reduction compared to initial checkpoint
Character Error Rate (CER)~34.8%Evaluated on complex out-of-domain textbook lines with dense equations
Inference Latency (CPU)~312 ms / lineStandard Intel/Apple M-series CPU
Inference Latency (GPU/MPS)~35 ms / lineHigh-speed batch inference on CUDA / Apple Silicon MPS
Throughput~30 lines/secParallelized batch evaluation

2. Epoch-by-Epoch Convergence Table (30 Epochs)

The model converged smoothly throughout the 30-epoch training schedule on GPU:

MilestoneTrain LossValidation LossLearning RateStatus
Epoch 13.08562.42044.0e-5Warmup Phase
Epoch 51.55371.35112.1e-4Rapid Representation Learning
Epoch 100.95290.74374.0e-4Peak LR, Sub-1.0 Loss achieved
Epoch 150.64030.50693.2e-4Stabilizing Khmer vowel-subscript alignment
Epoch 200.51100.41841.8e-4Learning complex LaTeX math structures
Epoch 250.44810.38076.5e-5Fine-tuning mathematical operators
Epoch 30 (Best) ⭐0.42840.37181.2e-6Optimal Checkpoint Saved (best_khmer_parseq_model_30epoch.pt)

3. Training Hyperparameters

  • Training Corpus: 35,648 training line crops (1,114 batches with batch size 32)
  • Validation Corpus: 6,287 validation line crops (197 batches with batch size 32)
  • Optimizer: AdamW ($\beta_1 = 0.9$, $\beta_2 = 0.999$, weight decay = $0.01$)
  • Learning Rate Schedule: OneCycleLR (max LR = $4.0 \times 10^{-4}$, 3-phase cosine annealing)
  • Data Augmentations:
    • RandomAffine: Rotation $\pm 3^\circ$, translation $\pm 4%$, scale $0.95 - 1.05\times$, shear $\pm 2^\circ$
    • ColorJitter: Brightness $\pm 0.2$, Contrast $\pm 0.2$
  • Loss Function: Label-smoothed Cross Entropy with <pad> token ignored.

🛠️ Quickstart Python Usage

1. Installation

pip install torch torchvision timm pillow huggingface_hub

2. Run Inference on Any Text Line Image

from huggingface_hub import hf_hub_download
import sys

# 1. Download model definition and weights from this repository
model_file = hf_hub_download("krotreaksmey/TinyOCRkhmer", "model.py")
weights_file = hf_hub_download("krotreaksmey/TinyOCRkhmer", "best_khmer_parseq_model_30epoch.pt")

# Import the model architecture
import importlib.util
spec = importlib.util.spec_from_file_location("model", model_file)
model_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(model_module)

# 2. Load the trained model
model = model_module.load_model(weights_file)

# 3. Predict on a line crop image
predicted_text = model.predict_image("path/to/math_line_crop.png")
print("Recognized Text & LaTeX:")
print(predicted_text)

🧪 Sample Predictions

Input Image: [Line crop from Grade 12 Math Textbook]
🎯 Prediction: 3. អនុគមន៍ $f(x) = 4x^3 + 9x^2 - 30x + 1$ មានក្រាប $C$។
📖 Reference:  3. អនុគមន៍ $f(x) = 4x^3 + 9x^2 - 30x + 1$ មានក្រាប $C$។

Input Image: [Line crop from Grade 11 Math Textbook]
🎯 Prediction: ពហុគុណរួមតូចបំផុតនៃ $(6, 8)$
📖 Reference:  ពហុគុណរួមតូចបំផុតនៃ $(6 ; 8)$

📁 Repository Contents

krotreaksmey/TinyOCRkhmer/
├── best_khmer_parseq_model_30epoch.pt   # PyTorch model weights (30 Epochs, ~23.3 MB)
├── model.pt                            # Mirror of the best weights for easy loading
├── Train_PARSeq_Khmer_Math_OCR_Colab_30epoch.ipynb # Training notebook (Google Colab GPU)
├── model.py                            # Standalone PyTorch PARSeq & Tokenizer definition
├── inference.py                        # Ready-to-use CLI inference script
├── config.json                         # Model hyperparameters & architecture configuration
├── tokenizer.json                      # 185-character vocabulary mapping
└── README.md                           # Documentation & Model Card

🔗 Related Projects & Models


✍️ Citation

@misc{tinyocr_khmer_2026,
  title={TinyOCRkhmer: Khmer & LaTeX Math Text-Line Recognition Model (PARSeq)},
  author={krotreaksmey},
  year={2026},
  publisher={Hugging Face},
  url={https://huggingface.co/krotreaksmey/TinyOCRkhmer}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Архитектура parseq неизвестна transformers в образе рантайма.

Ревизия весов
ba2407a

0 моделей