abdollahhh/asl-sign-language-efficientnet-b0
1221
๐ค ASL Sign Language Recognition โ EfficientNet-B0
A fine-tuned EfficientNet-B0 model for recognizing American Sign Language (ASL) alphabet letters from images. Achieves 99.02% accuracy on the evaluation set.
Model Details
Training
Training Results
Data Augmentation
- RandomResizedCrop (scale 0.8-1.0)
- RandomHorizontalFlip (p=0.3)
- RandomRotation (ยฑ15ยฐ)
- ColorJitter (brightness=0.3, contrast=0.3, saturation=0.2, hue=0.1)
Usage
from transformers import pipeline
classifier = pipeline("image-classification", model="abdollahhh/asl-sign-language-efficientnet-b0")
result = classifier("path/to/hand_sign.jpg")
print(result)
# [{'label': 'A', 'score': 0.98}, ...]Manual inference
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import torch
processor = AutoImageProcessor.from_pretrained("abdollahhh/asl-sign-language-efficientnet-b0")
model = AutoModelForImageClassification.from_pretrained("abdollahhh/asl-sign-language-efficientnet-b0")
model.eval()
image = Image.open("hand_sign.jpg")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
predicted_class = logits.argmax(-1).item()
label = model.config.id2label[str(predicted_class)]
print(f"Predicted: {label}")Live Demo
Try the real-time webcam demo: ASL Sign Language Recognition Space
Dataset
Trained on Marxulia/asl_sign_languages_alphabets_v03:
- 10,873 images total (9,242 train / 1,631 eval)
- 26 classes: A through Z
- Stratified 85/15 train/eval split
Limitations
- Trained on controlled studio images โ may have reduced accuracy with varied backgrounds/lighting
- Only recognizes static letter signs (A-Z), not dynamic gestures (J, Z involve motion)
- Works best with a clean hand against a neutral background
