Pattern Recognition

This is the course project for CMPN450 , pattern Recognition and Neural Networks. In this project, We implement a Hand Gesture Recognition System.Given an image containing a single hand, your system is supposed to classify the hand gesture into one of six digits (from 0 to 5). we implement a complete machine learning pipeline.

Directory Structure

C:.
│   .gitignore
│   instructions.txt
│   Project-Document.pdf
│   project.ipynb
│   README.md
│   req.txt
│   Tesis.pdf
│
├───features
│       test_features.pkl
│       train_features.pkl
│       val_features.pkl
│
├───models
│       nn_model4.h5
│       pca4_n_components_0.5.sav
│       svm_model4_best_acc_0.69.sav
│
├───modules
│       data.py
│       display_image.py
│       feature_extraction.py
│       models.py
│       preprocessing.py
│       test_model.py
│
├───out
│       results.txt
│       time.txt
│
└───screenshots
        HOG_features.png
        HOG_features_2.png
        preprocessing.png

ScreenShots

Original VS Preprocessed Image

HOG Features in Preprocessed Image

Results

we have used two models :
1- SVM
2- Fully Connected Neural network
  • SVM

SVM with RBF kernel
Accuracy: 0.6906

class precision recall f1-score support
0 0.92 0.96 0.94 25
1 0.62 0.88 0.72 24
2 0.66 0.54 0.59 35
3 0.51 0.57 0.54 35
4 0.67 0.50 0.57 28
5 0.84 0.79 0.82 34
  • Neural Network

Two layers deep fully connected Neural network
Accuracy: 0.6464

class precision recall f1-score support
0 0.96 0.88 0.92 25
1 0.55 0.71 0.62 24
2 0.60 0.60 0.60 35
3 0.55 0.49 0.52 35
4 0.53 0.57 0.55 28
5 0.77 0.71 0.74 34

Collaborators