Real-time American Sign Language (ASL) recognition using MediaPipe, OpenCV, and Machine Learning.
SignBridge is a desktop application that recognizes American Sign Language gestures in real time using a webcam. The system combines MediaPipe hand tracking with a Random Forest classifier to identify ASL alphabet gestures and converts them into readable text through a live sentence builder.
Built with a modular architecture, SignBridge demonstrates the complete machine learning workflow—from data collection and preprocessing to model training and real-time inference.
- Real-time ASL alphabet recognition
- MediaPipe-based 3D hand landmark detection
- Landmark normalization for improved accuracy
- Random Forest gesture classification
- Confidence-based prediction visualization
- Live sentence generation
- Modern OpenCV desktop interface
- Modular and extensible project structure
- Dataset recording utility
- Model training pipeline
- Easy support for adding new gestures
Webcam
│
▼
MediaPipe Hand Detection
│
▼
21 Hand Landmarks
│
▼
Landmark Normalization
│
▼
Random Forest Classifier
│
▼
Prediction + Confidence Score
│
▼
Sentence Builder
│
▼
OpenCV Interface
SignBridge
│
├── src/
│ ├── camera/
│ ├── config/
│ ├── detector/
│ ├── inference/
│ ├── sentence/
│ ├── training/
│ ├── ui/
│ ├── utils/
│ ├──config.py
│ └── main.py
│
├── docs/
│ ├── screenshots/
│ └── demo/
│
│
├── dataset/
├── models/
├── README.md
├── requirements.txt
└── .gitignore
Clone the repository.
git clone https://github.com/NaV456727/SignBridge.git
cd SignBridgeCreate a virtual environment.
python -m venv venvActivate it.
venv\Scripts\activatesource venv/bin/activateInstall dependencies.
pip install -r requirements.txtThe repository does not include the dataset or trained model.
Download the ASL Alphabet dataset from Kaggle:
https://www.kaggle.com/datasets/grassknoted/asl-alphabet
Extract the dataset into:
dataset/
Convert the dataset into landmarks.
python -m src.training.dataset_converterTrain the Random Forest classifier.
python -m src.training.train_modelThis generates:
models/
└── gesture_model.joblib
python -m src.mainOnce launched:
- Position one hand inside the camera frame.
- Hold an ASL gesture steadily.
- Wait for the prediction to stabilize.
- The detected characters are automatically appended to the sentence builder.
The classifier uses:
- MediaPipe Hands
- 21 three-dimensional landmarks
- Landmark normalization
- Random Forest Classification
Feature preprocessing:
- Wrist-centered translation
- Scale normalization using the wrist-to-index MCP distance
- Consistent preprocessing during both training and inference
- Python
- OpenCV
- MediaPipe
- Scikit-learn
- NumPy
- Pandas
- Joblib
- Dynamic gesture recognition
- Word-level prediction
- Transformer-based sequence models
- Language model integration
- Speech synthesis
- Left-hand optimization
- Mobile deployment
- TensorFlow Lite inference
- Multi-language sign support
Contributions, feature requests, and bug reports are welcome.
Feel free to fork the repository and submit a pull request.
Abhinav Dahake
LinkedIn: https://www.linkedin.com/in/abhinav-dahake-8096282ab/


