You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

KoshurOCR-CRNN: Optical Character Recognition for Kashmiri Script

KoshurOCR is a two-stage hybrid optical character recognition pipeline designed for reading document images in the Kashmiri language (Perso-Arabic script, ISO 639-3: kas).

Instead of attempting single-pass whole-line recognition—which suffers from severe character drift in Nastaliq script—KoshurOCR combines a YOLOv8 object detector for word segmentation with a ResNet-34 + BiLSTM + CTC neural network for character sequence recognition.


End-to-End Pipeline Architecture

The full page recognition pipeline operates in six sequential stages:

KoshurOCR End-to-End Pipeline Architecture


Model Details

  • Model Identifier: KoshurOCR-CRNN-v1
  • Developer: Faizan Iqbal
  • Pipeline Type: Two-Stage Hybrid (YOLOv8 Bounding Box Detector + CRNN Sequence Recognizer)
  • Word Detector Component: YOLOv8 Object Detector (yolo_word_detector.pt)
  • Word Recognizer Component: ResNet-34 Feature Extractor + 2-Layer Bidirectional LSTM + CTC Head (best_model_ft_linecrops.pth)
  • Parameter Count: 9,656,385 trainable parameters (CRNN Recognizer)
  • Input Specification: Grayscale image crop, height normalized to 32px (padded to 256×64)

Empirical Benchmark Performance

Evaluation metrics across distinct dataset categories and document types:

Evaluation Dataset / Material Category Character Error Rate (CER) ↓ Sequence Accuracy (%) ↑
Clean Synthetic Modern Print Suite 10.00% 98.15%
Digital Naskh Test Benchmark 13.52% 92.40%
Printed Typeset Book Evaluation Set 18.45% 85.20%
Degraded Historical Document Set 49.80% 61.10%

Note: Character Error Rate (CER) is calculated using normalized Levenshtein edit distance on logical Unicode character strings.


Example Model Outputs

Example OCR predictions across printed book pages and document crops. Recognition quality varies with scan quality, typography, and diacritic density.

Example 1: Printed Book Page (Transliterated Names & Classics)

Target text contains transliterated literary names (Shakespeare, Bernard Shaw, Oscar Wilde, Samuel Beckett, T.S. Eliot, Hamlet, Othello, Macbeth, Romeo & Juliet).

Document Image Model Prediction
Kashmiri Printed Book Page 54
سلہ ہان پٕنۍ ہیڈ تی تان پُھ سُ سٗٛگِۍ ٲمٕ یٗنٛ مُلر پمۍ جُرا ہس سھڑنٹ ں ذِژ پہٕ ِس نریس ک
خاح سن ٘ سو سبی بسس قسور بنُہہ سن تُند خیاں پُھ تِھۍ سر یم کنۍ ہَ ہھٕ سن جند تٕش کَِ جِوِنٛ چھِ ک
چُھن لۍ شد یٔمس منز پتچپوٕھ پنہِ ی عم نفہِ لتن گنہہ یتا سٹھ ہ۪ٹیخ تِ ہیٚہِ سِ مُفہٕ یہر ہی ک
کٲٔہ سنۍ پٔڑِس ڈِنی تِ جہمنَن مز بس منز ہیہٕ پِتھ سہٕ بتھ ز اِھ تہٕ چُھِتھ ہَمہِ منی رجَچ ننن ریہس حدس تزٛ پنہٕ
نِن منَس تتھِ رچ تہٕ ضذب س تنٛرس منٗوت ہُس سٔرِھ ھ سسلس منز ہَیہِ پُپس ُرمنچ شال پی ٕ یِتھ
گمیٛی لر ی رہن ہٕ مسلس منز پُھ یٛ ہِ ر۰ ٲئل بَِرمۍ سہِ تُمہٕ سن رہن پچر
سُڈ تِ پغہٕ تہِ شہرج پ أنمر یۍ ببس منز تہِ چھ ہُرٕچ ککھ یٹھ رایذ م جن۔ باہس منز تُ رارنَ کہٕ
تِ چھِ چِمتنف رن منز سٹ پٔڈۍ َرپِ بِدۍ ہٕنز یَمن منز ہیمُ پٗسیر ہر کٚ چر کرسنر ر جرج برنُ شاہن ک
جنسن ہٕ پ۪ بیٹی ۲ سر یل٘ پمل مَڈ نٛ سس ییڈ سمرسڈ سڈ ۲۷ جان گنز ری َٔرٕ سھ ہشہر چھِ
جَٗحسیر ز کیئہ سیٹی چھِ ہمِڈ جھیو کنک یر ہَیھ ریو جلیخ ٛٲر ک
ہندتاس منز تہِ چھٚ رچ سیٹھا پنزٛ رایت یتھ غِ یہٗنٛ ریٚو سٛ کنہہ ٹھ چُھ سنگرظ چھ ہند شعچ ک
کھ پنزٛ زبن سنصرش منز چھ ُزہٕ رٗ پۍ لظ ستل پُد مُۅ پٚمیٗ مڑلہ جنبہٕ ہَرر یِ سفیغ ت ژھ ککھ ک
گڑرٲئل پی سٕ فز پُھ نأمگ پُھ ہم سہٕ ز ہٛسمٕ کھ کھنسرع َمسٕ شلت سرہٕ م ھِ تہٕ پٗنٛ کتاہ چھ ہرع ک
مَنن ٚنٛ نایہ شاسۍ یھ منز مُگ یڈُ رمُٕ کھرھٲیل مورت بہِ پِن چھٚ تدِ عغہ کنۍ پُھ با چرۍ نن تِ سہِ
کزز سژھن جند یہٕ نۍ پٔٗ زنٛگیہ ہٕنہٕ شتڑ ج ژنرئر ہہٕ ٹَرپہ سم غِ یِ پھہِ نہرن گاپکان ہٕنز ملہِ یہٕ بفترٕ کنز
سٔنِھ پُلہِ ہُچھہٕ ٹہِ پَھ نن بِنصرش منز نزہِ تہِ چھِ ُٕ سہِ چہِ ملِعثت غے ہِتھی تسریے غہٕ ہتۍ یم یٗ ہنزٛ فسن سِۍ
رٗن چھِ قہٕ ن چھِ کگ کگ جں فرژھٗن تہٕ نشرن ِش کک کِس نۅہِ شژ بفہٕ اسس ۲ہمتۍ یٚمہِ سنۍ یہِ
کتھ صانگ چھُ سدن زِ ہِراچھُ ننن مٕز کھنگری ہندِتنس منز چھِ ہِروجہِ ریٗو ہٕندۍ آر ین منز رہِ
یِ نن بھم سِ بوٚ ِس رورس منز تہِ پُھ تہٕ سہٕ غِ ہظہ ھسہٕ بہاغ تہٕ شرنٗ تان بز غِ لبز ۲ہٕ ۂگ ہٲٛ بر۔
تھین تائن مُہ تذ ن یَمن منزُ ر۰ ہٗٔر فرسہٕ سہِ ہن
ہند ہندز جھرٕ کۍ یُ پٔٗۍ چھِ ژٚ پڈۍ رشینز س عہٕ ہٕژ یم چھِ کٗ یَی ریت یت ٹِ رہن مُد ر رہٕ ڈہِ جد ید
ر کٗ یَی ررس منز ہ شاتر پنسَرع رہاہن ہُند عرج یَمن منز کہٕ ریشن قین قہٕ شلت ہُر
سَھہٕ یِ کِد غِ چھِ ۲تۍ کئ س پُھ سیٹھ رنرظ ڈر نڑر ٕ نن بَتو پُھ سنٛمہرہٕ رہ۔ مہِ ُر۰ ہۍ
کینٛے مر چھِ پھوۍیس منز عیِ مُند حل ہِ چُھ ین مہِ ہہِ سنٛ پھ پہِ دٕ یِن تسن ییٛہہ غہٕ سیہہُ تلت ۳سہِ چ نٔعیِ

Example 2: Prose Paragraph Crop

Document Image Model Prediction
Kashmiri Paragraph Crop
اندے لبنہٕ یوان چھُ۔ کوٹ چھُ اکھ زند کردار، یُس پنز پچان دوان چھُ، ونان بہٕ گس چھس تہٕ کتیک چھس۔ اتھ اندر مس تہٕ
نمبر مس تضادس منز چھُ اکھ موصوم انسان کاٹھس کھسان۔ یس نہٕ کاَنہہ خطا چھُ مگر سزا تہٕ چھُ سہُ تلان تکیازِ تہمز غلطی چھےٚ بس
یہِ زسہُ بدلیو وینیہِ ہند خاطر، بییہِ ہنزِ خوشی خاطر۔ پنز عادات، پنز روایت مشرن۔ یہِ ڈراما چھُ سانہِ سماجی زندگی ہند ٲنہٕ تہٕ۔
اتھ منز رشتن ہند مچھر تہٕ چھُ تہٕ سہُ سوچ تہِ یُس سانہِ سماجی زندگی ہند لبِ لباب چھُ۔ مختصر لفظن منز ونو زِ یہِ ڈراما چھُ اکھ
المناک طربیہ۔

Pipeline Preprocessing & Load-Bearing Rules

  1. YOLO Word Detection: Bounding boxes are detected using YOLOv8 with Non-Maximum Suppression (IoU threshold = 0.45, Confidence threshold = 0.35).
  2. Horizontal & Vertical Crop Padding: Word crops extracted from YOLO bounding boxes require 30px horizontal and 20px vertical padding prior to spatial resizing. Unpadded crops increase CER from 18.5% to 37.0%.
  3. Right-to-Left (RTL) Box Ordering: Bounding boxes within each line are sorted right-to-left based on their horizontal centroid coordinates to preserve Perso-Arabic reading order.
  4. No Reshaper / BiDi Re-ordering: Avoid using arabic_reshaper or bidi reordering packages, as they strip Kashmiri diacritics (such as kasra U+0650).

Dataset & Training Details

  • Dataset Volume: ~673,000 annotated Kashmiri word and line crops (special thanks to Omarrran/600k_KS_OCR_Word_Segmented_Dataset for the foundational dataset).
  • Typefaces: Multi-font dataset covering Naskh, Nastaliq, and regional fonts (Noto Nastaliq Urdu, Gulmarg Nastaleeq, Afan Koshur Naksh, Narqalam).
  • Augmentations: Geometric rotation, Gaussian blur, contrast jitter, line noise, and character spacing variation.
  • Optimizer: AdamW (Learning Rate = 3e-4, Weight Decay = 1e-5)
  • Hardware: NVIDIA Tesla T4 / RTX 3050 Accelerator Nodes

Usage

pip install torch torchvision ultralytics pillow opencv-python numpy scipy
import torch
import koshur_ocr

# Initialize full pipeline (YOLOv8 Word Detector + KashmiriCRNN Recognizer)
ocr = koshur_ocr.KoshurOCR(
    reader_ckpt="best_model_ft_linecrops.pth",
    detector_ckpt="models/yolo_word_detector.pt"
)

text = ocr.predict_image("document_sample.jpg")
print(text)

Citation

@article{iqbal2026koshurocr,
  title={KoshurOCR: Optical Character Recognition for Kashmiri Perso-Arabic Script},
  author={Iqbal, Faizan},
  year={2026},
  publisher={Hugging Face},
  url={https://huggingface.co/Faizaniqbal/KoshurOCR-CRNN-Baseline}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support