ASL alphabet classification project with split workflows:
- Training and data processing in
apps/training(target Python 3.13) - Live inference with webcam in
apps/live(Python 3.11)
The project uses uv for Python version and dependency management.
apps/training/src/processing: data split + model conversionapps/training/src/train: training entrypointsapps/training/src/eval: evaluation utilities (confusion matrix)apps/training/src/diagnostics: GPU diagnosticsapps/live/src/run: live webcam inferenceapps/live/src/test: single-image inference smoke testapps/live/src/config: label mappingmodels: shared exported modelsdata: shared datasets
The dataset is GPLv2 licensed:
https://www.kaggle.com/datasets/grassknoted/asl-alphabet?resource=download
Run all commands from repository root unless noted.
cd apps/training
uv python install 3.13
uv syncIf dependency resolution fails on Python 3.13 (for example TensorFlow wheel availability), use the highest compatible version instead:
uv python install 3.12
uv sync --python 3.12cd apps/live
uv python install 3.11
uv synccd apps/training
uv run python src/processing/split_data.pycd apps/training
uv run python src/diagnostics/test_cuda.pycd apps/training
uv run python src/train/training_freezed.py
uv run python src/train/training_unfreezed.pycd apps/training
uv run python src/processing/convert_model.pycd apps/training
uv run python src/eval/confusion_matrix.pycd apps/live
uv run python src/run/real_time_with_text.pycd apps/live
uv run python src/test/test_single_image.py