TASL is the real-time AI recognition system for first Tigrinya Sign Language, recognizing 30 letters (ሀ-ፐ) via webcam with instant text + audio feedback. Trained on 20,000+ custom images to empower communication & inclusive education for Tigray's Deaf community. Languages: Python, HTML, CSS, JavaScript Tools: TensorFlow, OpenCV, MediaPipe
# Tigrigna ASL (Fingerspelling) — Data Collection, Training, and Real‑Time Detection
This repo contains a full pipeline for collecting hand-sign images for 30 Tigrigna letters, training a CNN, and running real-time detection via MediaPipe + TensorFlow + Flask.
## What’s included
- `tigrigna_letters.py` — Shared mapping (30 letters → transliteration folder names). Default target per letter: 665 samples (`SAMPLES_PER_LETTER`).
- `asl_data_collector.py` — Camera-based data collection (auto/interactive). Saves JPEGs to `tigrigna_dataset/ /` and keeps `dataset_progress.csv` in sync.
- `asl_model_trainer.py` — Loads the dataset, applies the same preprocessing as inference, trains a CNN, saves `tigrigna_model.h5` + `tigrigna_model.h5.labels.txt`.
- `image_preprocessing.py` — Normalization and augmentation helpers shared by training and inference.
- `real_time_tigrigna_detector.py` — Desktop real-time detector (MediaPipe Hands + model, ROI view).
- `app.py` — Flask web UI that streams camera frames and exposes debug endpoints.
- `evaluate_model.py` — Batch evaluation with confusion matrix and misclassified samples CSV.
- `scripts/verify_progress.py` — Checks `dataset_progress.csv` against files on disk (optional `--fix`).
## Current defaults (keep in sync)
- Image size: 120 (width) x 160 (height), portrait 4:3. `config.py` sets `IMAGE_SIZE` and `MODEL_INPUT_SHAPE`.
- Preprocessing: Gaussian blur + min-max normalization (`normalize_roi`) during training and inference.
- Confidence thresholds: see `config.py` (`CONFIDENCE_THRESHOLD_*`, `CONFIDENCE_MARGIN`).
- Target samples per letter: 665 (`tigrigna_letters.py`). Adjust there if you want a smaller/larger target.
## Quick setup (Windows PowerShell)
# Create and activate virtual environment (recommended)
python -m venv mp-env
# On Windows:
mp-env\Scripts\Activate.ps1
# On Mac/Linux:
source mp-env/bin/activate
# Install all packages
pip install -r requirement.txt
## Data collection
Run the collector:
```powershell
python …