It is the training program for libfacedetection. The source code is based on FaceBoxes.PyTorch and ssd.pytorch.
-
Install PyTorch >= v1.0.0 following official instruction.
-
Clone this repository. We will call the cloned directory as
$TRAIN_ROOT.
git clone https://github.com/ShiqiYu/libfacedetection.train- Install dependencies.
pip install -r requirements.txtNote: Codes are based on Python 3+.
- Download WIDER FACE dataset, place the images under this directory:
$TRAIN_ROOT/data/WIDER_FACE_rect/imagesand create a symbol link to this directory from
$TRAIN_ROOT/data/WIDER_FACE_landmark/images- Train the model using WIDER FACE:
cd $TRAIN_ROOT/tasks/task1/
python3 train.pycd $TRAIN_ROOT/tasks/task1/
./detect.py -m weights/yunet_final.pth --image_file=filename.jpg- Enter the directory.
cd $TRAIN_ROOT/tasks/task1/- Create a symbolic link to WIDER Face.
$WIDERFACEis the path to WIDER Face dataset, which containswider_face_split/,WIDER_val, etc.
ln -s $WIDERFACE widerface- Perform evaluation. To reproduce the following performance, run on the default settings. Run
python test.py --helpfor more options.
mkdir results
python test.py- Download and run the official evaluation tools. NOTE: Matlab required!
# download
wget http://shuoyang1213.me/WIDERFACE/support/eval_script/eval_tools.zip
# extract
unzip eval_tools.zip
# run the offical evaluation script
cd eval_tools
vim wider_eval.m # modify line 10 and line 21 according to your case
matlab -nodesktop -nosplash -r "run wider_eval.m;quit;"Run on default settings: scales=[1.], confidence_threshold=0.3:
AP_easy=0.849, AP_medium=0.816, AP_hard=0.601
The following bash code can export a CPP file for project libfacedetection
cd $TRAIN_ROOT/tasks/task1/
./exportcpp.py -m weights/yunet_final.pth -o output.cppYou can copy $TRAIN_ROOT/tasks/task1/ to $TRAIN_ROOT/tasks/task2/ or other similar directory, and then modify the model defined in file: tasks/task2/yufacedetectnet.py .