philwhln / hand_detection

A Light CNN based Method for Hand Detection and Orientation Estimation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hand Detection and Orientation Estimation

This project utilizes a modified MobileNet in company with the SSD framework to achieve a robust and fast detection of hand location and orientation. Our implementation is adapted from the PyTorch version of SSD and MobileNet.

Contents

  1. Preparation
  2. Training
  3. Evaluation

Preparation

  1. Due to some compatibility issues, we recommend to install PyTorch 0.3.0 and Python 3.6.8, which our project currently supports.

  2. Get the code.

    git clone https://github.com/yangli18/hand_detection.git
  3. Download the Oxford hand dataset and create the LMDB file for the training data.

    sh data/scripts/Oxford_hand_dataset.sh
  4. Compile the NMS code (from ruotianluo/pytorch-faster-rcnn).

    sh layers/src/make.sh

Training

Train the detection model on the Oxford hand dataset.

python train.py 2>&1 | tee log/train.log
  • Trained with data augmentation v2, our detection model reaches over 86% average precision (AP) on the Oxford hand dataset. We provide the trained model in the weights dir.
  • For the convenience of training, a pre-trained MobileNet is put in the weights dir. You can also download it from here.

Evaluation

  1. Evaluate the trained detection model.

    python eval.py --trained_model weights/ssd_new_mobilenet_FFA.pth --version ssd_new_mobilenet_FFA
    • Note: For a fair comparison, the evaluation code of the Oxford hand dataset should be used to get the exact mAP (mean Average Precision) of hand detection. The above command should return a similar result, but not exactly the same.
  2. Evaluate the average detection time.

    python eval_speed.py --trained_model weights/ssd_new_mobilenet_FFA.pth --version ssd_new_mobilenet_FFA

About

A Light CNN based Method for Hand Detection and Orientation Estimation

License:MIT License


Languages

Language:Python 93.5%Language:C 3.7%Language:Cuda 2.1%Language:Shell 0.6%Language:C++ 0.1%