YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Indian Sign Language Detection with IoT Integration
A real-time Indian Sign Language (ISL) detection system using TensorFlow, MediaPipe, and ESP32-CAM. This project can recognize hand gestures for alphabets (A-Z) and numbers (0-9) in real-time using either a webcam or ESP32-CAM, with results displayed on an OLED screen.
Features
- Real-time hand gesture recognition
- Support for 36 different signs (A-Z, 0-9)
- Word suggestions based on detected gestures
- IoT integration with ESP32-CAM
- OLED display output
- Support for both single and double-handed gestures
- ~98% accuracy on test data
System Architecture
Image Capture:
- ESP32-CAM captures images
- Sends via HTTP POST to Flask server
Processing Server:
- Flask server receives images
- Processes using MediaPipe for hand landmark detection
- Uses TensorFlow model for gesture recognition
Display:
- Results sent back to ESP32
- Displayed on SSD1306 OLED screen
- Shows gesture and confidence score
Requirements
Software
- Python 3.8 or higher
- Arduino IDE for ESP32
- Required Python packages (see requirements.txt)
Hardware
- ESP32-CAM module
- SSD1306 OLED Display (128x64)
- USB-TTL converter for ESP32 programming
- Connecting wires
- 5V power supply
Installation
- Clone the repository:
git clone https://github.com/ranveerphakade/ISL-sign-lang-detection.git
cd ISL-sign-lang-detection
- Create and activate a virtual environment:
# On Windows
python -m venv venv
venv\Scripts\activate
# On Linux/Mac
python3 -m venv venv
source venv/bin/activate
- Install required packages:
pip install -r requirements.txt
- Configure ESP32:
- Open
esp32_code/esp32_cam_oled.inoin Arduino IDE - Install required libraries:
- ESP32 board support
- Adafruit SSD1306
- Adafruit GFX
- Update WiFi credentials and server IP
- Upload to ESP32-CAM
- Open
Project Structure
ISL-sign-lang-detection/
βββ flask_server/
β βββ app.py # Flask server
β βββ static/ # Static files
β βββ templates/ # HTML templates
β βββ test_client.py # Test script
βββ esp32_code/
β βββ esp32_cam_oled.ino # ESP32 code
βββ dummy_input/ # Test images
βββ gesture_model.h5 # Trained model
βββ train.py # Training script
βββ detect.py # Webcam detection script
βββ process.py # Data processing
βββ README.md
Usage
Server Setup
- Start the Flask server:
cd flask_server
python app.py
Testing Without Hardware
- Add test images to
dummy_input/directory - Run the test client:
cd flask_server
python test_client.py
Hardware Setup
Connect OLED display to ESP32-CAM:
- VCC β 5V
- GND β GND
- SCL β GPIO22
- SDA β GPIO21
Power up the ESP32-CAM
The system will automatically:
- Connect to WiFi
- Start capturing images
- Display results on OLED
Model Architecture
The system uses a deep neural network with:
- Input layer: Hand landmark features
- Hidden layers with dropout and batch normalization
- Output layer: 36 classes (A-Z, 0-9)
Performance
- Training accuracy: ~98%
- Real-time detection with confidence scores
- Gesture stability checking to prevent false detections
Contributing
Feel free to contribute to this project by:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- TensorFlow team for the deep learning framework
- MediaPipe team for the hand landmark detection system
- OpenCV team for the computer vision tools
- ESP32 community for IoT support
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support