Skip to main content

Dynamic hand gesture detection library using ML.

Project description

HandGestureRec

Short Summary:

The library is an open source dynamic hand gesture recognition built using python with a Tkinter GUI and ML. using Tensorflow, Keras Api for TF, OpneCV for camera access and MediaPipe for hand landmarks detection https://github.com/AhmadBodayr/HandGestureRec

Implementation:

The library uses the webcam as the sensor and it gives the user access to the webcam using opencv, then the handlandmarks are collected using MediaPipe.

GUI:

The GUI is the main way for the user to interact with the toolkit. It is written in Tkinter for python wich is the default GUI library for Python. The GUI is simple and easy to use.

The Backend:

It is comprised of:

Data Collection:

The data collection is done using OpenCV and MediaPipe, each gesture is composed of 80 videos each is 30 frames, with each frame containing the 42 landmarks for each hand. Each landmark is an X, Y, Z tupple which describes the location of that specific landmark.

Data Storage Strategy:

No DBMS was used instead a folder tree which is composed of 3 submodules was built. The first submodule is a gestures folder that contains all the gestures defined by the user, the second is a datasets submodule which contains all the datasets created by the user. A single dataset is a non null subset of the gestures.

The machine learning algorithm:

The ML. model used is an LSTM model which was built using Tensorflow 2.X and the Keras ApI. for tensorFlow.

How to use:

install the library from $ pip using pip install HandGestureRec and in your python project write in the terminal 'execHandGestureRec'

    1. The user define one or more gesture using the GUI. One gesture is to be defined at a time. The gesture is defined by giving it a name and pressing create gesture then OpenCV will give the user access to the webcam, 80 videos will be taken each is 30 frames in length so the user needs to do the gesture for 80 times. The starting time of each try of the 80 will be shown on the screen.
    1. After the user defines 1 or more gestures, he can then use the datasets submodule to create a dataset which will then serve as an input to the ML. model. To create a dataset the user have to give it a name and choose a subset of the gestures he defiend before hand then press create dataset.
    1. After having one or more datasets the user can then can to the models submodule to crerate a model to a specific dataset. There is a 1:1 relation between the datasets and the models meaning that every dataset can only contribute to only one model.
    1. After creating one or more models the user can test his models using the testing submodule.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

HandGestureRec-0.1.7.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

HandGestureRec-0.1.7-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file HandGestureRec-0.1.7.tar.gz.

File metadata

  • Download URL: HandGestureRec-0.1.7.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for HandGestureRec-0.1.7.tar.gz
Algorithm Hash digest
SHA256 c217977ba29bb9676b2f09ad6df56de6998f7ad305266c32d1495d92304156c7
MD5 163ed4b38fe053696f9918ba63030b09
BLAKE2b-256 506f70c8cad29546241d4d1fd90fa8ce7aa6658c5bc233fd4cd6f7ff3d9290d3

See more details on using hashes here.

File details

Details for the file HandGestureRec-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: HandGestureRec-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for HandGestureRec-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3873bf1e50f36a377c1b86669215e3fd988328b2202f8bd7703536058772757a
MD5 4ce1f1862e131c9aee0e48e09e53bc1b
BLAKE2b-256 1ee718e4d4672d2ed2cdc6cac6ece6533b38b05e349208637c5274425b941b66

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page