Downloads · 30 days
0
mightguy106/CRNN_Telugu_HWR
CRNN_Telugu_HWR is a machine learning model from mightguy106. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
This repository contains an end-to-end system for Telugu handwritten word recognition with confidence calibration. The system supports multiple model architectures (CRNN and PARSeq) and various confidence estimation t…
Downloads · 30 days
0
Access
Public
Updated Apr 25, 2025
Repo size
170 MB
Likes
1
Public
Click a slice to open those files.
.pth126 MB · 99%
From the Hugging Face model README
This repository contains an end-to-end system for Telugu handwritten word recognition with confidence calibration. The system supports multiple model architectures (CRNN and PARSeq) and various confidence estimation techniques.
telugu-hwr/
├── data/ # Data handling and preprocessing
│ ├── dataset.py # Dataset class
│ ├── transforms.py # Image transformations
│ └── analysis.py # Data analysis and visualization
│
├── models/ # Model architectures
│ ├── components/ # Model building blocks
│ │ ├── rnn.py # RNN modules
│ │ └── ... # Other components
│ ├── crnn.py # CRNN model
│ ├── mc_dropout_crnn.py # CRNN with Monte Carlo dropout
│ └── parseq.py # PARSeq model
│
├── confidence_v2/ # Enhanced confidence estimation methods
│ ├── base.py # Base confidence estimator
│ ├── mc_dropout.py # Monte Carlo dropout
│ ├── step_dependent_temperature_scaling.py # Position-specific calibration
│ ├── temperature_scaling.py # Temperature scaling
│ ├── uncalibrated.py # Uncalibrated confidence
│ └── visualization.py # Calibration visualization utilities
│
├── utils/ # Utility functions
│ ├── ctc_decoder.py # CTC decoder
│ ├── metrics.py # Evaluation metrics
│ ├── tokenizer.py # Tokenizer for PARSeq model
│ └── visualization.py # Result visualization utilities
│
├── trainers/ # Model trainers
│ ├── base_trainer.py # Base trainer
│ ├── crnn_trainer.py # CRNN model trainer
│ └── parseq_trainer.py # PARSeq model trainer
│
├── scripts/ # Training and evaluation scripts
│ ├── train_crnn.py # Train CRNN model
│ ├── train_parseq.py # Train PARSeq model
│ ├── evaluate.py # Evaluate models
│ ├── evaluate_confidence_v2.py # Enhanced confidence evaluation
│ └── test_structure.py # Test code structure functionality
│
└── requirements.txt # Project dependencies
Multiple Model Architectures:
Advanced Confidence Calibration:
Comprehensive Evaluation:
git clone https://github.com/yourusername/telugu-hwr.git
cd telugu-hwr
pip install -r requirements.txt
The system expects data in the following format:
image_path labeldata_rootpython scripts/train_crnn.py \
--data_root "/home/pankaj/Desktop/698r project/my implementations/telugu-hwr/datasets/telugu datset" \
--train_file train.txt \
--val_file val.txt \
--vocab_file output/vocabulary.txt \
--output_dir output2/crnn \
--img_height 64 \
--img_width 256 \
--batch_size 32 \
--epochs 20 \
--learning_rate 0.001 \
--cuda
python scripts/evaluate.py \
--data_root "/home/pankaj/Desktop/698r project/my implementations/telugu-hwr/datasets/telugu datset" \
--test_file test.txt \
--vocab_file output/vocabulary.txt \
--model_path output/crnn/best_cer_model.pth \
--model_type crnn \
--output_dir output/evaluation/crnn \
--cuda
python scripts/evaluate_confidence.py \
--data_root "/home/pankaj/Desktop/698r project/my implementations/telugu-hwr/datasets/telugu datset" \
--val_file val.txt \
--test_file test.txt \
--vocab_file output/vocabulary.txt \
--model_path output/crnn/best_cer_model.pth \
--output_dir output/confidence_evaluation_final \
--batch_size 16 \
--num_samples 30 \
--mc_dropout \
--agg_method min \
--cuda
After running the evaluation scripts, you can find various visualizations in the specified output directory:
If you don't have a vocabulary file, you can generate one from your dataset using the data analysis tools:
python -c "
from data.dataset import TeluguHWRDataset
from data.analysis import analyze_dataset
import os
data_root = '/path/to/dataset'
train_dataset = TeluguHWRDataset(
data_file=os.path.join(data_root, 'train.txt'),
root_dir=data_root,
transform=None
)
vocab = analyze_dataset(train_dataset, save_dir='output')
print(f'Created vocabulary with {len(vocab)} characters')
"
## Temporary
```bash
python scripts/train_crnn.py \
--data_root "/home/GNN-NIDS/pankaj/telugu-hwr/datasets/telugu datset" \
--train_file train.txt \
--val_file val.txt \
--vocab_file output/vocabulary.txt \
--output_dir output/crnn \
--img_height 64 \
--img_width 256 \
--batch_size 32 \
--epochs 20 \
--learning_rate 0.001 \
--cuda
python scripts/train_trocr.py \
--data_root "/home/GNN-NIDS/pankaj/telugu-hwr/datasets/telugu datset" \
--train_file train.txt \
--val_file val.txt \
--output_dir output/trocr \
--pretrained_model "microsoft/trocr-base-handwritten" \
--img_height 384 \
--img_width 384 \
--batch_size 32 \
--max_samples 1000 \
--val_samples 200 \
--epochs 10 \
--learning_rate 5e-5 \
--cuda
python scripts/evaluate.py \
--data_root "/home/GNN-NIDS/pankaj/telugu-hwr/datasets/telugu datset" \
--test_file test.txt \
--vocab_file output/vocabulary.txt \
--model_path output/crnn/best_cer_model.pth \
--model_type crnn \
--output_dir output/evaluation/crnn \
--cuda
python scripts/evaluate_confidence.py \
--data_root "/home/GNN-NIDS/pankaj/telugu-hwr/datasets/telugu datset" \
--val_file val.txt \
--test_file test.txt \
--vocab_file output/vocabulary.txt \
--model_path output/crnn/best_cer_model.pth \
--output_dir output/confidence_evaluation_min \
--batch_size 32 \
--test_samples 1000 \
--val_samples 1000 \
--num_samples 30 \
--agg_method min \
--cuda