Skip to page content
SAVRN
Search Plan a project

Open-weight model · Image to text

tesseract-kaa-cyrl

by Kaa ML kaa-ml/tesseract-kaa-cyrl

tesseract-kaa-cyrl is an open-weight model for image to text from Kaa ML, released under Apache License 2.0. Its published files total 3.7 MB.

Tesseract 5 LSTM model for printed Karakalpak in the Cyrillic alphabet, including the letters Ә Ғ Қ Ң Ө Ү Ў Ҳ. Fine-tuned from Tesseract's Kazakh kaz (tessdatabest). For Latin-script Karakalpak use kaa-ml/tesseract-kaa-latn (CER 4.7%).

Parameters—
Context—
Weights3.7 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Kaa ML, published under apache-2.0, revision 13cb4f017c1e.

Tesseract 5 LSTM model for printed Karakalpak in the Cyrillic alphabet, including the letters Ә Ғ Қ Ң Ө Ү Ў Ҳ. Fine-tuned from Tesseract's Kazakh kaz (tessdatabest). For Latin-script Karakalpak use kaa-ml/tesseract-kaa-latn (CER 4.7%). Before this model, the usual choice for Karakalpak Cyrillic was the Kazakh model. It has no ў and ҳ, so it silently writes у and х instead — the text looks right but is misspelled. The Russian model loses all eight Karakalpak letters. 10 scanned pages of an old printed Karakalpak book (never used in training), --psm 4. CER = character error rate (lower is better). Letter recall = share of ә ғ қ ң ө ү ў ҳ in the reference that the model output contains. \ on…

Read Kaa ML's full model card

Tesseract model for Karakalpak (Cyrillic) — v0.1

Tesseract 5 LSTM model for printed Karakalpak in the Cyrillic alphabet, including the letters Ә Ғ Қ Ң Ө Ү Ў Ҳ. Fine-tuned from Tesseract's Kazakh kaz (tessdata_best). For Latin-script Karakalpak use kaa-ml/tesseract-kaa-latn (CER 4.7%).

Before this model, the usual choice for Karakalpak Cyrillic was the Kazakh model. It has no ў and ҳ, so it silently writes у and х instead — the text looks right but is misspelled. The Russian model loses all eight Karakalpak letters.

Benchmark

10 scanned pages of an old printed Karakalpak book (never used in training), --psm 4. CER = character error rate (lower is better). Letter recall = share of ә ғ қ ң ө ү ў ҳ in the reference that the model output contains.

Model CER Karakalpak letter recall Speed (page)
this model, best/ 12.87% 92.3% 0.73 s
this model, fast/ 13.64% 90.7% 0.62 s
Tesseract kaz (tessdata_best) 12.64% 88.8% —
Tesseract kaz (tessdata_fast) 13.37% 87.6% —
Tesseract rus 17.1%* 0% —

* on all 15 annotated pages.

Honest summary: this version fixes the Karakalpak letters (92% vs 89%), but its overall CER on old book scans is still on par with the Kazakh model (+0.2 points). Most remaining errors are layout and punctuation on degraded pages. v0.2 will add more real scanned lines, which gave the largest gains so far; heavier synthetic scan simulation did not help.

Usage

Download best/kaa_cyrl.traineddata into a folder and point Tesseract at it:

tesseract page.png out -l kaa_cyrl --tessdata-dir ./tessdata --psm 4

Mixed Karakalpak/Russian documents: -l kaa_cyrl+rus.

import pytesseract
from huggingface_hub import hf_hub_download
from PIL import Image

path = hf_hub_download("kaa-ml/tesseract-kaa-cyrl", "best/kaa_cyrl.traineddata")
text = pytesseract.image_to_string(
    Image.open("page.png"),
    lang="kaa_cyrl",
    config=f"--tessdata-dir {path.rsplit('/', 1)[0]} --psm 4",
)

Scan at 300 DPI for best results.

Training

  • Start model: kaz from tessdata_best (Apache-2.0).
  • Data: 8,000 synthetic lines with natural letter distribution (kaa-ml/kaa-cyrl-ocr-synthetic, synthetic_natural; Karakalpak news text from kknews.uz, CC-BY-4.0) + 182 real scanned lines from an old printed book (×30 augmented copies).
  • tesstrain, 20,000 iterations, learning rate 1e-4, on a MacBook CPU.
  • Things that did not help and are not in this model: 50% oversampling of lines with rare letters (the model started hallucinating ў), a Karakalpak word dictionary built from news text (CER 13.10%), Augraphy scan simulation with old-style serif fonts (13.08%).

Versions

  • v0.1 — this release.

License

Apache-2.0 (same as Tesseract's traineddata). Synthetic training text comes from kknews.uz under CC-BY-4.0.

Identity and Version

Repository
kaa-ml/tesseract-kaa-cyrl
Publisher
Kaa ML
Task
Image to text
Modality
Image and text
Library
tesseract
Parameters
Not stated by the source
Languages
kaa
Revision
13cb4f017c1e149d80801f24492feb2277144886
First published
2026-09-28
Last updated
2026-09-28

Files and Weights

4 files, 3.7 MB in total.

Documentation1 file · 3.2 KB
Other2 files · 3.7 MB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
README.mdDocumentation3.2 KB —
best/kaa_cyrl.traineddataOther3.2 MB a0cedf59d404
fast/kaa_cyrl.traineddataOther430.5 KB 03219cb1398d
.gitattributesRepository1.6 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download from Kaa ML

Released by Kaa ML through its official repository on Hugging Face. Read the license.

Built From

  • Trained on (disclosed) kaa-ml/kaa-cyrl-ocr-synthetic

Questions About tesseract-kaa-cyrl

Can I use tesseract-kaa-cyrl commercially?

Yes. tesseract-kaa-cyrl is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

captioning pretrained on COCO dataset - base architecture (with ViT base backbone). Authors from the paper write in the abstract: Vision-Language Pre-training (VLP) has advanced the performance for many vision-language tasks. However, most existing pre-trained models only excel in either understanding-based tasks or generation-based tasks. Furthermore, performance improvement has been largely achieved by scaling up the dataset with noisy image-text pairs collected from the web, which is a suboptimal source of supervision. In this paper, we propose BLIP, a new VLP framework which transfers flexibly to both vision-language understanding and generation tasks. BLIP effectively utilizes the…

Open weights bsd-3-clause 512 tokens transformers

Model · Image to text

manga-ocr-base

Maciej Budyś

Optical character recognition for Japanese text, with the main focus being Japanese manga. It uses Vision Encoder Decoder framework. Manga OCR can be used as a general purpose printed Japanese OCR, but its main goal was to provide a high quality text recognition, robust against various scenarios specific to manga: - both vertical and horizontal text - text with furigana - text overlaid on images - wide variety of fonts and font styles - low quality images Code is available here.

Open weights apache-2.0 transformers

Model · Image to text

PP-OCRv5_server_det

PaddlePaddle

PP-OCRv5serverdet is one of the PP-OCRv5det series, the latest generation of text detection models developed by the PaddleOCR team. Designed for high-performance applications, it supports the detection of text in diverse scenarios—including handwriting, vertical, rotated, and curved text—across multiple languages such as Simplified Chinese, Traditional Chinese, English, and Japanese. Key features include robust handling of complex layouts, varying text sizes, and challenging backgrounds, making it suitable for practical applications like document analysis, license plate recognition, and scene text detection. The key accuracy metrics are as follow: Please refer to the following commands to…

Open weights apache-2.0 PaddleOCR

Model · Image to text

UVDoc

PaddlePaddle

The main purpose of text image correction is to carry out geometric transformation on the image to correct the document distortion, inclination, perspective deformation and other problems in the image, so that the subsequent text recognition can be more accurate. Please refer to the following commands to install PaddlePaddle using pip: For details about PaddlePaddle installation, please refer to the PaddlePaddle official website. Install the latest version of the PaddleOCR inference package from PyPI: You can quickly experience the functionality with a single command: You can also integrate the model inference of the TextImageUnwarping module into your project. Before running the following…

Open weights apache-2.0 PaddleOCR

Model · Image to text

en_PP-OCRv5_mobile_rec

PaddlePaddle

enPP-OCRv5mobilerec is one of the PP-OCRv5rec that are the latest generation text line recognition models developed by PaddleOCR team. It aims to efficiently and accurately support the recognition of English. The key accuracy metrics are as follow: Note: If any character (including punctuation) in a line was incorrect, the entire line was marked as wrong. This ensures higher accuracy in practical applications. Please refer to the following commands to install PaddlePaddle using pip: For details about PaddlePaddle installation, please refer to the PaddlePaddle official website. Install the latest version of the PaddleOCR inference package from PyPI: You can quickly experience the…

Open weights apache-2.0 PaddleOCR

Model · Image to text

PP-LCNet_x1_0_doc_ori

PaddlePaddle

The Document Image Orientation Classification Module is primarily designed to distinguish the orientation of document images and correct them through post-processing. During processes such as document scanning or ID photo capturing, the device might be rotated to achieve clearer images, resulting in images with various orientations. Standard OCR pipelines may not handle these images effectively. By leveraging image classification techniques, the orientation of documents or IDs containing text regions can be pre-determined and adjusted, thereby improving the accuracy of OCR processing. The key accuracy metrics are as follow: Please refer to the following commands to install PaddlePaddle…

Open weights apache-2.0 PaddleOCR