Skip to content

Caffe implementation of Mobilenet-SSD face detector (NCS compatible)

Notifications You must be signed in to change notification settings

ysh329/MobilenetSSDFace

 
 

Repository files navigation

before run example, ensure caffe-ssd installed:

mkdir images/output
python ./scripts/test_on_examples.py

Mobilenet+SSD face detector training

This repo contains code for Mobilenet+SSD face detector training. This detector is compatible with Movidius Neural Compute Stick. You need NCSDK to test it with Neural Compute Stick.

Deploying models for Caffe and Neural Compute Stick

You can deploy two different SSD face detectors: "full" detector or "short" detector. The latter is shortened: layers 14-17 are deleted. It is a bit faster (67 ms vs 75 ms) and captures small faces only.

To deploy detectors to Caffe:

make deploy_full

or

make deploy_short

To deploy detectors to NCS (and Caffe):

make compile_full

or

make compile_short

Deployment models are placed in models/deploy.

Training

To train this detector (SSD-Caffe is needed):

  1. Download WIDER and FDDB datasets.

  2. Edit Makefile: set data_dir, lmdb_pyscript, caffe_exec, datasets names and path to data folder.

  3. Make LMBD database:

make lmdb
  1. Make face model (generate templates and get pre-trained weights):
make face_model_full
  1. Edit train_files/solver_train_full.prototxt if necessary and train net:
make train_full

Or resume from snapshot:

echo /path/to/snapshot > train_files/snapshot.txt
make resume_full
  1. Test model:
echo /path/to/snapshot > train_files/snapshot.txt
make test_full

Test best model from this repo:

make test_best_full
  1. (Optional) Make long-range (shorter) model:
make face_model_short

And test it:

make test_short_init
  1. Plot loss from Caffe logs:
make plot_loss

Plot Average Precision from snapshots:

echo /path/to/any/snapshot > train_files/snapshot.txt
make plot_map_full
  1. Profile initial VOC net, best face net, short face net for Neural Compute Stick:
make profile_initial

or

make profile_face_full

or

make profile_short_init

Also see Caffe_face.ipynb for details.

See images/output to see how nets perform on examples (test network to get these results).

See this notebook for training this model in Google Colaboratory.

About

Caffe implementation of Mobilenet-SSD face detector (NCS compatible)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 99.1%
  • Other 0.9%