项目作者: xenon-19

项目描述 :
Virtually controlling computer using hand-gestures and voice commands. Star ⭐ our repo if you find it helpful.
高级语言: Python
项目地址: git://github.com/xenon-19/Gesture-Controlled-Virtual-Mouse.git
创建时间: 2021-05-18T06:37:55Z
项目社区:https://github.com/xenon-19/Gesture-Controlled-Virtual-Mouse

开源协议:GNU General Public License v3.0

下载


Gesture Controlled Virtual Mouse platform

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.

Video Demonstration: link

Note: Use Python version: 3.8.5

Features

click on dropdown to know more

Gesture Recognition:


Neutral Gesture

Palm

Neutral Gesture. Used to halt/stop execution of current gesture.



Move Cursor
Move Cursor

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.


Left Click
Left Click

Gesture for single left click


Right Click
Right Click

Gesture for single right click


Double Click
Double Click

Gesture for double click


Scrolling
Scrolling

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

Gesture for drag and drop functionality. Can be used to move/tranfer files from one directory to other.


Multiple Item Selection
Multiple Item Selection

Gesture to select multiple items


Volume Control
Volume Control

Dynamic Gestures for Volume control. The rate of increase/decrease of volume is proportional to the distance moved by pinch gesture from start point.


Brightness Control
Brightness Control

Dynamic Gestures for Brightness control. The rate of increase/decrease of brightness is proportional to the distance moved by pinch gesture from start point.

Voice Assistant ( Proton ):


Launch / Stop Gesture Recognition
launch stop gesture recognition


  • Proton Launch Gesture Recognition

    Turns on webcam for hand gesture recognition.


  • Proton Stop Gesture Recognition

    Turns off webcam and stops gesture recognition.
    (Termination of Gesture controller can also be done via pressing Enter key in webcam window)



Google Search
proton search github


  • Proton search {text_you_wish_to_search}

    Opens a new tab on Chrome Browser if it is running, else opens a new window. Searches the given text on Google.



Find a Location on Google Maps
proton find location


  1. Proton Find a Location

    Will ask the user for the location to be searched.


  2. {Location_you_wish_to_find}

    Will find the required location on Google Maps in a new Chrome tab.



File Navigation
proton list files
proton open
proton go back


  • Proton list files / Proton list

    Will list the files and respective file_numbers in your Current Directory (by default C:)


  • Proton open {file_number}

    Opens the file / directory corresponding to specified file_number.


  • Proton go back / Proton back

    Changes the Current Directory to Parent Directory and lists the files.



Current Date and Time
proton date / time


  • Proton what is today’s date / Proton date

    Proton what is the time / Proton time

    Returns the current date and time.



Copy and Paste
proton copy
proton paste


  • Proton Copy

    Copies the selected text to clipboard.



  • Proton Paste

    Pastes the copied text.



Sleep / Wake up Proton
proton sleep / wake up


  • Sleep

    Proton bye

    Pauses voice command execution till the assistant is woken up.


  • Wake up

    Proton wake up

    Resumes voice command execution.



Exit
proton exit


  • Proton Exit

    Terminates the voice assisstant thread. GUI window needs to be closed manually.


Getting Started

Pre-requisites

Python: (3.6 - 3.8.5)

Anaconda Distribution: To download click here.

Procedure

  1. git clone https://github.com/xenon-19/Gesture-Controlled-Virtual-Mouse.git

For detailed information about cloning visit here.

Step 1:

  1. conda create --name gest python=3.8.5

Step 2:

  1. conda activate gest

Step 3:

  1. pip install -r requirements.txt

Step 4:

  1. conda install PyAudio
  1. conda install pywin32

Step 5:

  1. cd to the GitHub Repo till src folder

Command may look like: cd C:\Users\.....\Gesture-Controlled-Virtual-Mouse\src

Step 6:

For running Voice Assistant:

  1. python Proton.py

( You can enable Gesture Recognition by using the command “Proton Launch Gesture Recognition” )

Or to run only Gesture Recognition without the voice assisstant:

Uncomment last 2 lines of Code in the file Gesture_Controller.py

  1. python Gesture_Controller.py

Collaborators

Viral Doshi GitHub Email LinkedIn Instagram
Nishiket Bidawat Github Email LinkedIn Instagram
Ankit Sharma GitHub Email LinkedIn Instagram
Parth Sakariya Github Email LinkedIn Instagram