Views
No views yet
1ASL Citizen processed keypoints-200
2 ↓
3Small Transformer isolated sign recognition model
4 ↓
5Comparison with BiGRU + Attention baseline
6 ↓
7Select stronger encoder for future How2Sign CTC stageSharoonArshad/asl-citizen-processed-200(N, 200, 450)1200 = fixed sequence length
2450 = 225 position features + 225 velocity features
3225 = 75 landmarks × 3 coordinates
475 landmarks = 33 pose + 21 left hand + 21 right hand1Input: (B, 200, 450)
2Input LayerNorm: 450
3Linear Projection: 450 → 256
4CLS Token: prepended to the sequence
5Positional Encoding: sinusoidal
6Transformer Encoder: 3 layers
7Attention Heads: 4
8Feedforward Dimension: 768
9Pooling: CLS token
10Classifier Head: 200 ASL classes1Batch size: 32
2Max epochs: 60
3Best epoch: 52
4Early stopping patience: 10
5Learning rate: 0.0002
6Weight decay: 0.0001
7Dropout: 0.3
8Label smoothing: 0.1
9Gradient clipping: 1.0
10Scheduler: cosine
11Optimizer: AdamW
12Mixed precision: enabled on GPU1Best epoch: 52
2Best validation Top-1 accuracy: 78.13%
3Test loss: 1.3240
4Test correct: 3238/3552
5Test Top-1 accuracy: 91.16%
6Test Top-5 accuracy: 99.13%
7Test Macro F1: 0.9118
8Test Micro F1: 0.9119
9Test Weighted F1: 0.9104
10Mean per-class accuracy: 0.9144
11Training time: 06m 40s1Metric BiGRU + Attention Small Transformer
2Validation Top-1 85.47% 78.13%
3Test Top-1 98.48% 91.16%
4Test Top-5 99.58% 99.13%
5Test Macro F1 0.9850 0.9118
6Test Weighted F1 0.9848 0.9104
7Training Time 26m 25s 06m 40s1BiGRU + Attention: 85.47%
2Small Transformer: 78.13%1asl_isolated_small_transformer.zip
2checkpoints/best_small_transformer_model.pt
3checkpoints/best_transformer_encoder_only.pt
4checkpoints/last_small_transformer_model.pt
5reports/final_metrics.json
6reports/training_history.csv
7reports/test_classification_report.csv
8reports/test_classification_report.json
9reports/test_confusion_matrix.npy
10reports/test_per_class_accuracy.csv
11metadata/label_to_id.json
12metadata/id_to_label.json
13training_config.jsoncheckpoints/best_small_transformer_model.ptcheckpoints/best_transformer_encoder_only.ptasl_isolated_small_transformer.zip1from huggingface_hub import hf_hub_download
2
3repo_id = "SharoonArshad/asl-citizen-small-transformer-encoder-200"
4
5model_path = hf_hub_download(
6 repo_id=repo_id,
7 repo_type="model",
8 filename="checkpoints/best_small_transformer_model.pt"
9)
10
11encoder_path = hf_hub_download(
12 repo_id=repo_id,
13 repo_type="model",
14 filename="checkpoints/best_transformer_encoder_only.pt"
15)
16
17print(model_path)
18print(encoder_path)1from huggingface_hub import hf_hub_download
2import zipfile
3from pathlib import Path
4
5repo_id = "SharoonArshad/asl-citizen-small-transformer-encoder-200"
6
7zip_path = hf_hub_download(
8 repo_id=repo_id,
9 repo_type="model",
10 filename="asl_isolated_small_transformer.zip"
11)
12
13extract_dir = Path("/kaggle/working/asl_isolated_small_transformer_loaded")
14extract_dir.mkdir(parents=True, exist_ok=True)
15
16with zipfile.ZipFile(zip_path, "r") as zip_ref:
17 zip_ref.extractall(extract_dir)
18
19print("Extracted to:", extract_dir)A Small Transformer Encoder was trained on the processed ASL Citizen keypoints-200 dataset for 200 isolated ASL classes. The model achieved 78.13% validation Top-1 accuracy and 91.16% test Top-1 accuracy. Although it trained faster than the BiGRU + Attention model, it achieved lower validation and test performance. Therefore, the BiGRU + Attention encoder was selected as the primary isolated sign encoder for future CTC-based continuous sign recognition.