CoolFace
Datasetpublic

tehnik-tehnolog/bilingual-ocr-ru-en-synthetic

Bilingual OCR RU-EN Synthetic Dataset This synthetic dataset is designed for bilingual text recognition (OCR) and script classification tasks (cyrillic / latin) at the word and short-line level. Why are numbers, mathematical symbols, and the Greek alphabet included in the generation? When creating synthetic OCR datasets, including an expanded set of characters (digits, mathematical signs, and Greek letters) is a deliberate step aimed at two main goals:… See the full description on the dataset page: https://huggingface.co/datasets/tehnik-tehnolog/bilingual-ocr-ru-en-synthetic.

sourceHugging Facemitupdated 4d agoView on Hugging Face
1likes240downloads
Dataset Card

Bilingual OCR RU-EN Synthetic Dataset

This synthetic dataset is designed for bilingual text recognition (OCR) and script classification tasks (cyrillic / latin) at the word and short-line level.

Why are numbers, mathematical symbols, and the Greek alphabet included in the generation?

When creating synthetic OCR datasets, including an expanded set of characters (digits, mathematical signs, and Greek letters) is a deliberate step aimed at two main goals:

1. Domain Adaptation (Real-World Alignment)

In real life, Russian and English texts rarely consist exclusively of pure alphabet letters. Scientific articles, technical manuals, financial reports, and textbooks are full of:

  • —Numbers (0-9);
  • —Punctuation marks (.,!?-""''());
  • —Mathematical operators (integrals, sums, plus-minus, approximately);
  • —Greek characters (alpha, lambda, pi, mu), which are widely used in formulas and technical terms in both Russian and English literature.

2. Improving Model Robustness

If you train a model exclusively on ideal alphabetical text, it will start to fail or output artifacts when encountering formulas or numbers. Synthetic generation allows the neural network to learn to ignore neutral noise and focus on font structure.

Important Nuances and Developer Warnings

Despite its usefulness for general OCR, the presence of such examples creates challenges for strict script classification (for example, when you need to cleanly separate Cyrillic and Latin):

  1. 1.Neutrality of digits and signs: Digits and punctuation belong to neither Cyrillic nor Latin. If they fall into the dataset randomly, the model can get confused.
  2. 2.Character overlap: Greek letters and mathematical signs frequently coexist with Cyrillic in Russian texts. However, if your task requires a clean script separation, such examples may cause false positives.

Quick Start (Loading the Dataset)

python
from datasets import load_dataset

dataset = load_dataset("tehnik-tehnolog/bilingual-ocr-ru-en-synthetic")
print(dataset["train"][0])