asl-hg-cnn-baseline / README.md
hnam25's picture
Publish reproducible CNN baseline cnn-001
064551d verified
|
Raw
History Blame Contribute Delete
3.25 kB
metadata
language:
  - en
library_name: tensorflow
pipeline_tag: image-classification
tags:
  - asl
  - sign-language
  - cnn
  - reproducible-research

ASL-HG CNN baseline (cnn-001)

A TensorFlow/Keras CNN baseline for 36 static ASL classes (digits 0–9, letters A–Z). This repository contains the trained checkpoint and the full experiment record needed to reproduce or audit the result.

Result

Metric Value
Test accuracy 83.2544%
Macro F1 80.0983%
Macro precision / recall 79.5670% / 83.3056%
Best validation accuracy 72.0964%
Epochs run 15
Recall O / 0 100.0000% / 0.0000%

This is a deliberately simple CNN-from-scratch baseline, not the final proposed model. In particular, digit 0 has zero recall in this run, so later improvements should report this class separately.

Evaluation protocol

  • Dataset: hnam25/asl-hand-gesture-images, revision 8f36ac00ece6dfce94410a980a839d93a912d366.
  • Input: the publisher's ASL_Processed_Images.zip, SHA-256 a8e7a38c4085fd9dc18aa4fa8646ad7d6917e9ff7374a3ffd5f9f3b37a5c045b.
  • Audit source: metadata/colab-audit-2026-08-10; the raw archive fingerprint and audit statistics are preserved in metadata/experiment_config.json.
  • Exact duplicate policy: retain one deterministic canonical image per raw-image SHA-256. The run removes 559 duplicate crops from 36000 usable images.
  • Split: participant-disjoint. Train: P1, P10, P3, P4, P5, P6, P7, P8; validation: P2; test: P9. No participant or exact image hash appears in multiple partitions.
  • Seed: 42. Split files and the deduplication manifest are included under metadata/.

This participant-disjoint protocol is stricter than the publisher's supplied image-level train/test archive split and should not be numerically compared with a random image-level split.

Model

Rescaling(1/255) → 3 × [Conv-BN-ReLU-Conv-BN-ReLU-MaxPool] (32/64/128 filters) → GAP → Dense(256) → Dropout(0.3) → Dense(36, softmax).

Training used Adam (1e-3), image size 128, batch size 64, at most 30 epochs, checkpointing on validation accuracy, early stopping on validation loss, and learning-rate reduction on plateau. Best validation accuracy occurred at epoch 10.

Files

  • models/cnn_001_participant_disjoint.keras: best checkpoint.
  • metrics/: summary, per-class report, confusion matrix.
  • figures/confusion_matrix.png: visual confusion matrix.
  • logs/training_history.csv: full optimization history.
  • metadata/experiment_config.json: pinned data/config provenance.
  • metadata/split_manifest.json, train.csv, validation.csv, test.csv, deduplication_manifest.csv: exact protocol and partitions.
  • reproducibility/08_cnn_baseline_reproducible.ipynb: Colab notebook used for this run.
  • reproducibility/requirements.txt: project requirements snapshot.

Reproduce

Open the included notebook in Google Colab, run it on a T4 GPU, and use the pinned dataset revision already embedded in the notebook. It downloads public data and audit metadata, verifies the processed archive and audit mapping, recreates the exact participant split, trains, and writes the same artifact layout.