A fine-tuned
Tesseract OCR model for recognizing Tibetan Uchen (དབུ་ཅན་) script, trained on 121K+ line-level image–text pairs from historical Tibetan woodblock prints.
The model was trained on a curated subset of Tibetan OCR line-level images paired with ground-truth text transcriptions, formatted for Tesseract training. The dataset is derived from
openpecha/OCR-Tibetan_line_to_text_benchmark and prepared by the
bo_tessaract_data_prep pipeline.
1# macOS
2brew install tesseract
3
4# Ubuntu/Debian
5sudo apt install tesseract-ocr
1# Find your tessdata path
2tesseract --print-parameters | grep tessdata
3
4# Typical locations:
5# macOS (Homebrew): /opt/homebrew/share/tessdata/
6# Linux: /usr/share/tesseract-ocr/5/tessdata/
1import pytesseract
2from PIL import Image
3
4image = Image.open("tibetan_line.png")
5text = pytesseract.image_to_string(image, lang="bod_uchen", config="--psm 13")
6print(text)
The model was fine-tuned using
tesstrain:
1make training \
2 MODEL_NAME=bod_uchen \
3 START_MODEL=bod \
4 TESSDATA=data \
5 GROUND_TRUTH_DIR=data/bo_tesseract \
6 LANG_TYPE=Indic \
7 PSM=13 \
8 EPOCHS=5 \
9 LEARNING_RATE=0.001 \
10 TARGET_ERROR_RATE=0.005 \
11 WORDLIST_FILE=data/langdata/bod/bod.wordlist \
12 NUMBERS_FILE=data/langdata/bod/bod.numbers \
13 PUNC_FILE=data/langdata/bod/bod.punc \
14 2>&1 | tee -a data/bod_uchen/training.log
1@misc{bod_uchen_tesseract,
2 title = {bod_uchen: Fine-Tuned Tesseract Model for Tibetan Uchen Script},
3 author = {Buddhist Digital Resource Center (BDRC) and Dharmaduta},
4 year = {2025},
5 url = {https://huggingface.co/bdrc/bod_uchen_tesseract},
6 note = {Fine-tuned from tessdata_best/bod.traineddata, funded by the Khyentse Foundation}
7}
This model was developed by
Dharmaduta from specifications provided by the
Buddhist Digital Resource Center (BDRC) for the BDRC Etext Corpus, with funding from the
Khyentse Foundation.