Skip to content

Latest commit

 

History

History
80 lines (58 loc) · 2.21 KB

README.md

File metadata and controls

80 lines (58 loc) · 2.21 KB

Gesture Recognition using Networks Library

The Gesture Recognition dataset was created by Ankitesh Gupta. For details on how dataset was created check this cool repository

The images were Normalized using the Mean Pixel Value and the Standard Deviation of the Pixel Value before giving it to the model for Training and Testing. The code for normalizing the data is in preprocess.py

Model Results On Gesture Recognition

The Model Consists of the Following Layers:

  1. Zero Padding Layer
    i) Height Padding : 2
    ii) Width Padding : 2

  2. Convolution Layer
    i) Kernels : 64
    ii) Kernel Height : 3
    iii) Kernel Width : 3
    iv ) Stride : 1

  3. Pooling Layer
    i) Pooling Height : 2
    ii) Pooling Width : 2
    iii) Stride Height : 2
    iv) Stride Width : 2

  4. Relu Layer

  5. Zero Padding Layer
    i) Height Padding : 2
    ii) Width Padding : 2

  6. Convolution Layer
    i) Kernels : 128
    ii) Kernel Height : 3
    iii) Kernel Width : 3
    iv ) Stride : 1

  7. Pooling Layer
    i) Pooling Height : 2
    ii) Pooling Width : 2
    iii) Stride Height : 2
    iv) Stride Width : 2

  8. Relu Layer

  9. Flatten Layer

  10. Affine Layer : 128 Neurons

  11. Affine Layer : 64 Neurons

  12. Affine Layer : 16 Neurons

  13. Affine Layer : 5 Neurons (This is the Output Layer)

  14. Softmax Layer

After 100 Epochs The Model Performance is:

Training Accuracy: 100%

Validation Accuracy: 100%

Test Accuracy: 99.8%

It took about 1-1.5 hour to train this model for 100 Epochs.
Initial Weights of the Network were assigned using Xavier Initialization.
The Model was trained using Mini-Batch Gradient Descent with Adam Optimizer.
The Mini-Batch was sampled at random during training.

Loss-Iteration Curve

Loss-Iteration Curve for 100 Epochs

Using The Trained Model

  1. Download the Model
  2. Extract it in models folder
  3. Load the Model using the command below
from networks.network import network
model = network.load("model.json")
prediction = model.predict(X)