Control your computer's media playback using hand gestures through your webcam! This project leverages the power of MediaPipe for real-time hand tracking and gesture recognition, wrapped in a user-friendly Flask web interface with real-time feedback via Socket.IO.
- 💻 Web-Based Interface: Access the controls from your browser. No complex desktop installation needed (beyond Python dependencies).
- 📹 Live Video Feed: See yourself and the detected hand landmarks in real-time.
- 📊 Interactive Dashboard: Monitor system status, view recognized gestures per hand, see the last action performed, and access manual controls.
- 👋 Real-time Gesture Recognition: Utilizes Google's MediaPipe Hands for efficient and relatively robust hand tracking. Implemented gestures include:
OK Sign: Activate / Deactivate the control system.Open Palm: Trigger Play/Pause media action.Fist: Trigger Play/Pause media action.Thumbs Up/Thumbs Down: Attempt volume control (See Limitations).
- 🖱️ System Control: Uses
PyAutoGUIto simulate media key presses (Play/Pause, Volume Up/Down). - 🔊 Audio Feedback (Optional): Provides sound cues for activation/deactivation and actions if
playsoundis installed and sound files (.mp3or.wav) are present. - 🔧 Configurable: Adjust camera index, detection confidence, cooldowns, activation gesture, and timeouts via
config.ini. - ♻️ Real-time Updates: Leverages
Flask-SocketIOfor seamless updates to the dashboard without page reloads. - 📱 Responsive Design: Basic adaptability for different screen sizes.
- (Potentially) 🐳 Docker Support: Includes
Dockerfileand.dockerignorefor containerized deployment (Verify setup).
Fig. 1: Screenshot of the Gesture Control Web App interface
- Backend: Python 3.8+, Flask, Flask-SocketIO, Eventlet (for async operations)
- Computer Vision: OpenCV-Python, MediaPipe Hands
- System Interaction: PyAutoGUI
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Real-time Communication: Socket.IO (Client & Server)
- Styling & Icons: Font Awesome
- Configuration: Python
configparser - Audio (Optional): Playsound (
.mp3/.wavsupport depends on backend) - Containerization (Optional): Docker
