Uganda Sign Language Instructor
An end-to-end machine learning project for Uganda Sign Language (USL) recognition, focused on disease-related signs, model training, deployment, and interactive demo delivery.
This repository combines:
- dataset analysis and feature engineering,
- supervised model training and selection,
- FastAPI deployment for inference,
- Docker and PowerShell operational workflows,
- Streamlit interface for practical usage.
Project Scope
The project is organized around two complementary goals:
1. Disease-sign classification pipeline (Dataset 1 style workflow)
- Build tabular features from sign language videos.
- Train and compare multiple classifiers.
- Export the best model artifact for deployment.
- Serve predictions through a production-ready API.
2. Interactive USL demonstration workflow (Streamlit)
- Support image, video, and webcam-style input paths.
- Run lightweight feature extraction for inference.
- Provide top-k predictions and confidence outputs.
System Architecture
```mermaid
flowchart TD
A[SIGN LANGUAGE DISEASES FINISHED videos] --> B[Feature Engineering\nprepare_csv_features.py]
B --> C[dataset1_disease_features.csv]
B --> D[dataset1_disease_splits.csv]
C --> E[Train RF + Logistic\ntrain_rf_logreg_disease.py]
C --> F[Train SVM + HGB\ntrain_svm_hgb_disease.py]
D --> E
D --> F
E --> G[model_metrics.json]
F --> H[model_metrics_svm_hgb.json]
G --> I[Best Model Selection\nexport_best_model.py]
H --> I
I --> J[best_model.joblib]
J --> K[FastAPI Inference\nmodels_dataset1/deployment/api.py]
J --> L[Streamlit App\nstreamlit_app/app.py]
K --> M[REST Clients]
L --> N[End Users]
```
Model Benchmarks
Benchmarks below are sourced from the repository artifacts:
- `models_dataset1/csv_models/artifacts/model_metrics.json`
- `models_dataset1/csv_models/artifacts/model_metrics_svm_hgb.json`
| Model | Validation Accuracy | Validation Macro-F1 | Test Accuracy | Test Macro-F1 |
| -------------------- | ---------- …