--- language: - ee license: other library_name: tesseract pipeline_tag: image-to-text tags: - ocr - tesseract - ewe - synthetic-data - low-resource-language model-index: - name: Ewe Tesseract OCR v0.1 results: - task: type: image-to-text name: Optical Character Recognition dataset: name: Held-out synthetic Ewe line images type: custom split: internal-evaluation metrics: - type: cer name: Character error rate (percent) value: 1.119 - type: wer name: Word error rate (percent) value: 3.009 --- # Ewe Tesseract OCR `ewe.traineddata` is an experimental Tesseract 5 recognition model for Ewe (`ee` / ISO 639-3 `ewe`). It was fine-tuned from the official high-accuracy `Latin.traineddata` model using deterministic, synthetically rendered Ewe text lines. This is a **v0.1 research preview**. Its reported error rates measure recognition of held-out synthetic line images. They do not measure end-to-end performance on real scanned pages, page segmentation, layout analysis, reading order, tables, or handwriting. ## Evaluation The 40,000-line training collection was deterministically divided by the official `tesstrain` workflow into 36,000 optimization lines and 4,000 internal evaluation lines. The final model was re-evaluated with Tesseract 5.5.2 `lstmeval`: ```text BCER eval=1.119, BWER eval=3.009 ``` | Measurement | Lines | BCER | BWER | |---|---:|---:|---:| | Final training estimate | 36,000 | 1.146% | 3.175% | | Held-out synthetic evaluation | 4,000 | 1.119% | 3.009% | BCER is Tesseract's character error rate and BWER is its word error rate. Lower is better. These values must not be presented as accuracy on real PDFs. Reproduction command for the internal evaluation: ```bash lstmeval \ --verbosity=0 \ --model ewe.traineddata \ --eval_listfile list.eval ``` The `list.eval` file and line-image training data are not distributed in this model repository pending a source-data rights review. The exact result and environment are recorded in `metrics/evaluation.json`; the complete original console output is in `metrics/training.log`. ![Training error curve](metrics/training-curve.png) ## Training - Tesseract/lstmtraining: 5.5.2 - Official tesstrain commit: `405346a3a67d8e4e049341d1da6a4b752e0b8351` - Starting model: `tessdata_best/script/Latin.traineddata` - Starting-model SHA-256: `cf7216998bf7f363f18e3def04cc6b28ae954d2a5a3bdad09f743c9d3538ef35` - Iterations: 10,000 - Deterministic seed: `20260806` - Internal train/evaluation ratio: 90/10 - Synthetic training lines: 40,000 - Separate project validation lines: 5,000, not yet scored - Separate project test lines: 5,000, not yet scored - Normalization: Unicode NFC - Required Ewe character coverage: `ɛ ɔ ŋ ɖ ƒ ʋ Ɛ Ɔ Ŋ Ɖ Ƒ Ʋ` The synthetic renderer used only fonts verified to contain every required Ewe character. Configurable degradation covered blur, skew, contrast, noise, JPEG compression, and faded print. See `config/pipeline.json` and `config/tesstrain.mk`. Training command: ```bash PATH="$(pwd)/.venv/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin" \ gmake -f tesstrain.mk train ALLOW_LONG_TRAINING=YES \ MAX_ITERATIONS=10000 RANDOM_SEED=20260806 JOBS=10 ``` ## Installation Download `ewe.traineddata` and place it in a dedicated tessdata directory: ```bash mkdir -p ./tessdata curl -L \ https://huggingface.co/NissiKlaus/ewe-tesseract-ocr/resolve/main/ewe.traineddata \ -o ./tessdata/ewe.traineddata ``` Recognize a single line image: ```bash tesseract line.png stdout --tessdata-dir ./tessdata -l ewe --psm 13 ``` Recognize a page whose layout is approximately one uniform block of text: ```bash tesseract page.png stdout --tessdata-dir ./tessdata -l ewe --psm 6 ``` For PDFs, render each page to PNG or TIFF first. Page segmentation mode must be selected for the document layout; `--psm 3` is automatic page segmentation, `--psm 6` assumes one text block, and `--psm 13` treats the image as one line. ## Intended uses - Research on printed Ewe OCR - Recognition of already-segmented Ewe text lines - Prototyping searchable text extraction from printed Ewe documents - Fine-tuning and evaluation by low-resource-language researchers ## Limitations - No manually transcribed real-scan CER/WER benchmark has been completed. - The model was trained on synthetic line images, so its reported metrics are optimistic for real documents. - Page segmentation and reading order were not trained or measured by the line recognizer. - OCR output should be reviewed by an Ewe reader before use in consequential settings. - Tesseract confidence values are not accuracy percentages. ## Files - `ewe.traineddata`: deployable Tesseract model - `checkpoints/ewe_checkpoint`: final continuation checkpoint - `metrics/training.log`: complete tesstrain log - `metrics/training-curve.png`: training-error curve - `metrics/evaluation.json`: machine-readable evaluation record - `config/`: deterministic preprocessing and training configuration - `SHA256SUMS`: artifact integrity checks ## License and data notice The starting Tesseract/tessdata model is distributed under Apache-2.0. The source corpus, PDFs, extracted text, and rendered training images are not included here. The license for this fine-tuned research-preview artifact is currently marked `other` pending a documented review of all training-corpus rights. See `LICENSE.md` before redistribution or commercial use. ## Citation A paper citation is not yet available. Until then, cite this repository, model version `v0.1.0`, and its immutable Hugging Face commit hash.