before run example, ensure caffe-ssd installed:
mkdir images/output
python ./scripts/test_on_examples.py
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.
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.
To train this detector (SSD-Caffe is needed):
Edit Makefile: set data_dir, lmdb_pyscript, caffe_exec, datasets names and path to data folder.
Make LMBD database:
make lmdb
Make face model (generate templates and get pre-trained weights):
make face_model_full
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
echo /path/to/snapshot > train_files/snapshot.txt
make test_full
Test best model from this repo:
make test_best_full
make face_model_short
And test it:
make test_short_init
make plot_loss
Plot Average Precision from snapshots:
echo /path/to/any/snapshot > train_files/snapshot.txt
make plot_map_full
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.