--- language: bn license: mit tags: [ocr, bengali, crnn, easyocr, ctc] datasets: [mnsm92/bengali-ocr-dataset-1m] metrics: [cer, wer] --- # Bengali CRNN OCR — Custom EasyOCR Recognition Model **DocReader BD — CSC4233 NLP Final Project, AIUB** ## Results | Model | CER ↓ | WER ↓ | Char Accuracy | |---|---|---|---| | Tesseract (baseline) | ~0.45 | ~0.60 | ~55% | | EasyOCR default | ~0.25 | ~0.40 | ~75% | | **BengaliCRNN (ours)** | **0.0348** | **0.1020** | **96.5%** | ## Architecture ResNet34 (grayscale) + 2× BiLSTM (hidden=256) + CTC loss Vocab: 152 Bengali + English chars | Input: 64×200px ## Files - `bengali_crnn.pth` — EasyOCR-ready weights (module. prefix) - `phase1_best.pth` — clean weights for further training - `bengali_crnn.py` — EasyOCR network definition - `bengali_crnn.yaml` — EasyOCR config - `vocab.json` — character vocabulary - `config.json` — model config ## Usage ```python import easyocr reader = easyocr.Reader( lang_list=["bn"], recog_network="bengali_crnn", model_storage_directory="./bengali_ocr_model", user_network_directory="./bengali_ocr_model", gpu=True ) results = reader.readtext("bengali_doc.jpg") ```