Computer vision · Streamlit
Signs in, words out, in real time.
A full pipeline for recognising Indian Sign Language static signs: collect images from a webcam, extract hand landmarks with MediaPipe, train a classifier, and recognise signs live in a Streamlit app. It handles both one-hand and two-hand gestures.
WebGL · move your cursor
0%
Inference accuracy
0
Images per sign (default)
0
Landmarks per hand
1 + 2 hands
Gesture types
// highlights
Whatmakesittick
Landmarks, not pixels
MediaPipe hand landmarks are extracted and engineered into features, so the model learns hand shape instead of background noise.
Classical ML that works
SVM and Random Forest models trained on the landmark features reach 99% inference accuracy.
Live and offline
The Streamlit app recognises from an uploaded image or a live webcam, with smoothing and frame-skipping options.
Your own dataset
A webcam collector captures 1000 images per sign by default, and new signs can be added without touching the rest of the code.
One or two hands
Landmark vectors are padded or truncated to a fixed length so both one-hand and two-hand signs share one model.
Measured, not guessed
Training outputs a confusion matrix, a classification report and cross-validation scores.
// architecture
Howit'sbuilt
- 01Streamlit appWebcam · image upload · smoothing
- 02ClassifierRandom Forest / SVM on landmarks
- 03MediaPipeHand landmark extraction
step 01
Collect
Capture sign images from the webcam into one folder per sign.
step 02
Extract
Run MediaPipe over each image and save landmark vectors, logging any image where no hand is found.
step 03
Train
Fit the classifier and save the model together with its scaler.
step 04
Recognise
Predict live from the webcam or from an uploaded image.
Things to know
- ◆The pipeline targets static signs only, not motion-based ones.
- ◆Lighting and background contrast affect detection quality.
- ◆Performance depends heavily on dataset size and quality.
// stack
Builtwith
- Python
- OpenCV
- MediaPipe
- scikit-learn
- Streamlit
- NumPy
- Matplotlib