Gesture Controlled Virtual Mouse makes human computer interaction simple by making use of Hand Gestures and Voice Commands. The computer requires almost no direct contact. All i/o operations can be virtually controlled by using static and dynamic hand gestures along with a voice assistant. This project makes use of the state-of-art Machine Learning and Computer Vision algorithms to recognize hand gestures and voice commands, which works smoothly without any additional hardware requirements. It leverages models such as CNN implemented by MediaPipe running on top of pybind11. It consists of two modules: One which works direct on hands by making use of MediaPipe Hand detection, and other which makes use of Gloves of any uniform color. Currently it works on Windows platform.
Move Cursor
![Move Cursor](https://github.com/xenon-19/Gesture_Controller/raw/e20edfb1f368ffa600d96bd91031942ec97cb2ab/demo_media/move%20mouse.gif)
Cursor is assigned to the midpoint of index and middle fingertips. This gesture moves the cursor to the desired location. Speed of the cursor movement is proportional to the speed of hand.
Scrolling
![Scrolling](https://github.com/xenon-19/Gesture_Controller/raw/9be82cfc75aa4c04fff0e12dd4de853f9d83a101/demo_media/Scrolling.gif)
Dynamic Gestures for horizontal and vertical scroll. The speed of scroll is proportional to the distance moved by pinch gesture from start point. Vertical and Horizontal scrolls are controlled by vertical and horizontal pinch movements respectively.
Drag and Drop
![Drag and Drop](https://github.com/xenon-19/Gesture_Controller/raw/9be82cfc75aa4c04fff0e12dd4de853f9d83a101/demo_media/drag%20and%20drop.gif)
Gesture for drag and drop functionality. Can be used to move/tranfer files from one directory to other.
Volume Control
![Volume Control](https://github.com/xenon-19/Gesture_Controller/raw/9be82cfc75aa4c04fff0e12dd4de853f9d83a101/demo_media/Volume%20control.gif)
Dynamic Gestures for Volume control. The rate of increase/decrease of volume is proportional to the distance moved by pinch gesture from start point.