All Projects → SparshaSaha → Hand-Gesture-Recognition-Using-Background-Elllimination-and-Convolution-Neural-Network

SparshaSaha / Hand-Gesture-Recognition-Using-Background-Elllimination-and-Convolution-Neural-Network

Licence: MIT License
Hand Gesture Recognition using Convolution Neural Network built using Tensorflow, OpenCV and python

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to Hand-Gesture-Recognition-Using-Background-Elllimination-and-Convolution-Neural-Network

Cerebrum
Crossmodal Supervised Learning Toolkit using High-Performance Extreme Learning Machines over the audio-visual-textual data
Stars: ✭ 41 (-65.83%)
Mutual labels:  supervised-learning
machine learning from scratch matlab python
Vectorized Machine Learning in Python 🐍 From Scratch
Stars: ✭ 28 (-76.67%)
Mutual labels:  supervised-learning
zoofs
zoofs is a python library for performing feature selection using a variety of nature-inspired wrapper algorithms. The algorithms range from swarm-intelligence to physics-based to Evolutionary. It's easy to use , flexible and powerful tool to reduce your feature size.
Stars: ✭ 142 (+18.33%)
Mutual labels:  supervised-learning
wavenet-classifier
Keras Implementation of Deepmind's WaveNet for Supervised Learning Tasks
Stars: ✭ 54 (-55%)
Mutual labels:  supervised-learning
Deep-Learning-Mahjong---
Reinforcement learning (RL) implementation of imperfect information game Mahjong using markov decision processes to predict future game states
Stars: ✭ 45 (-62.5%)
Mutual labels:  supervised-learning
fall-detection-two-stream-cnn
Real-time fall detection using two-stream convolutional neural net (CNN) with Motion History Image (MHI)
Stars: ✭ 49 (-59.17%)
Mutual labels:  open-cv
pedestrian-detection
Pedestrian Detection using Non Maximum Suppression
Stars: ✭ 30 (-75%)
Mutual labels:  open-cv
textlytics
Text processing library for sentiment analysis and related tasks
Stars: ✭ 25 (-79.17%)
Mutual labels:  supervised-learning
License-Plate-Detection
{Python}: Detect and extract the license plate of vehicles using Machine Learning and Image Processing Techniques
Stars: ✭ 48 (-60%)
Mutual labels:  open-cv
dl-relu
Deep Learning using Rectified Linear Units (ReLU)
Stars: ✭ 20 (-83.33%)
Mutual labels:  supervised-learning
sutton-barto-rl-exercises
📖Learning reinforcement learning by implementing the algorithms from reinforcement learning an introduction
Stars: ✭ 77 (-35.83%)
Mutual labels:  supervised-learning
SML CV
Using supervised machine learning to build collective variables for accelerated sampling
Stars: ✭ 20 (-83.33%)
Mutual labels:  supervised-learning
omikuji
An efficient implementation of Partitioned Label Trees & its variations for extreme multi-label classification
Stars: ✭ 69 (-42.5%)
Mutual labels:  supervised-learning
A-Hierarchical-Transformation-Discriminating-Generative-Model-for-Few-Shot-Anomaly-Detection
Official pytorch implementation of the paper: "A Hierarchical Transformation-Discriminating Generative Model for Few Shot Anomaly Detection"
Stars: ✭ 42 (-65%)
Mutual labels:  supervised-learning
OpenSourceComputerVision
Open Source Computer Vision with TensorFlow, MiniFi, Apache NiFi, OpenCV, Apache Tika and Python For processing images from IoT devices like Raspberry Pis, NVidia Jetson TX1, NanoPi Duos and more which are equipped with attached cameras or external USB webcams, we use Python to interface via OpenCV and PiCamera. From there we run image processin…
Stars: ✭ 39 (-67.5%)
Mutual labels:  open-cv
The-Supervised-Learning-Workshop
An Interactive Approach to Understanding Supervised Learning Algorithms
Stars: ✭ 24 (-80%)
Mutual labels:  supervised-learning
alexnet-architecture.tensorflow
Unofficial TensorFlow implementation of "AlexNet" architecture.
Stars: ✭ 15 (-87.5%)
Mutual labels:  supervised-learning
machine-learning-course
Machine Learning Course @ Santa Clara University
Stars: ✭ 17 (-85.83%)
Mutual labels:  supervised-learning
robo-vln
Pytorch code for ICRA'21 paper: "Hierarchical Cross-Modal Agent for Robotics Vision-and-Language Navigation"
Stars: ✭ 34 (-71.67%)
Mutual labels:  supervised-learning
machine-learning
Programming Assignments and Lectures for Andrew Ng's "Machine Learning" Coursera course
Stars: ✭ 83 (-30.83%)
Mutual labels:  supervised-learning

Hand Gesture Recognition Using Background Ellimination and Convolution Neural Network

About the Project

This is a simple application of Convolution Neural Networks combined with background ellimination to detect different hand gestures. A background ellimination algorithm extracts the hand image from webcam and uses it to train as well predict the type of gesture that is. More information about the algorithm can be found below.

Requirements

  • Python3
  • Tensorflow version=1.13.1
  • TfLearn
  • Opencv headless (cv2) for python3
  • Numpy
  • Pillow (PIL)
  • Imutils

File Description

PalmTracker.py : Run this file to generate custom datasets. Go into the file and change the name of the directory and make other appropriate changes.

ResizeImages.py : Run this file after PalmTracker.py in order to resize the images so that it can be fed into the Convolution Neural Network designed using tensorflow. The network accepts 89 x 100 dimensional image.

ModelTrainer.ipynb : This is the model trainer file. Run this file if you want to retrain the model using your custom dataset.

ContinuousGesturePredictor.py : Running this file opens up your webcam and takes continuous frames of your hand image and then predicts the class of your hand gesture in realtime.

Some key architectural insights into the project

Background Ellimination Algorithm

I have used opencv for taking a running average of the background for 30 frames and then use that running average to detect the hand that has to be introduced after the background has been properly recognized.

I had found a very useful article on foreground mask by Gogul09 and i have pretty much used his code for background ellimination with a few changes in order to suit my cause.

He has written an awesome article on the problem and you can read it up here.

The Deep Convolution Neural Network

The network contains 7 hidden convolution layers with Relu as the activation function and 1 Fully connected layer.

The network is trained across 50 iterations with a batch size of 64.

I kind of saw that 50 iterations kind of trains the model well and there is no increase in validation accuracy along the lines so that should be enough.

The model achieves an accuracy of 96.6% on the validation dataset.

The ratio of training set to validation set is 1000 : 100.

How to run the RealTime prediction

Run the ContinuousGesturePredictor.py file and you will see a window named Video Feed appear on screen. Wait for a while until a window named Thresholded appears.

The next step involves pressing "s" on your keyboard in order to start the real-time prediction.

Bring your hand in the Green Box drawn inside Video Feed window in order to see the predictions. Look in demo for some visual clarity.

Demo of how things look on the go

Well now it's time for some demo.

Alt Text

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].