/FaceDetection-DSFD

Primary LanguagePythonApache License 2.0Apache-2.0

License

By Jian Li, Yabiao Wang, Changan Wang, Ying Tai, Jianjun Qian, Jian Yang, Chengjie Wang, Jilin Li, Feiyue Huang.

Introduction

This paper is accepted by CVPR 2019.

In this paper, we propose a novel face detection network, named DSFD, with superior performance over the state-of-the-art face detectors. You can use the code to evaluate our DSFD for face detection.

For more details, please refer to our paper DSFD: Dual Shot Face Detector!

DSFD Framework

Our DSFD face detector achieves state-of-the-art performance on WIDER FACE and FDDB benchmark.

WIDER FACE

DSFD Widerface Performance

FDDB

DSFD FDDB Performance

Qualitative Results

Requirements

  • Torch == 0.3.1
  • Torchvision == 0.2.1
  • Python == 3.6
  • NVIDIA GPU == Tesla P40
  • Linux CUDA CuDNN

Getting Started

Installation

Clone the github repository. We will call the cloned directory as $DSFD_ROOT.

git clone https://github.com/TencentYoutuResearch/FaceDetection-DSFD.git
cd FaceDetection-DSFD
export CUDA_VISIBLE_DEVICES=0

Evaluation

  1. Download the images of WIDER FACE and FDDB to $DSFD_ROOT/data/.

  2. Download our DSFD model [微云] [google drive] trained on WIDER FACE training set to $DSFD_ROOT/weights/.

  3. Check out ./demo.py on how to detect faces using the DSFD model and how to plot detection results.

python demo.py [--trained_model [TRAINED_MODEL]] [--img_root  [IMG_ROOT]] 
               [--save_folder [SAVE_FOLDER]] [--visual_threshold [VISUAL_THRESHOLD]] 
    --trained_model      Path to the saved model
    --img_root           Path of test images
    --save_folder        Path of output detection resutls
    --visual_threshold   Confidence thresh
  1. Evaluate the trained model via ./widerface_val.py on WIDER FACE.
python widerface_val.py [--trained_model [TRAINED_MODEL]] [--save_folder [SAVE_FOLDER]] 
                         [--widerface_root [WIDERFACE_ROOT]]
    --trained_model      Path to the saved model
    --save_folder        Path of output widerface resutls
    --widerface_root     Path of widerface dataset
  1. Download the eval_tool to show the WIDERFACE performance.

  2. Evaluate the trained model via ./fddb_test.py on FDDB.

python widerface_test.py [--trained_model [TRAINED_MODEL]] [--split_dir [SPLIT_DIR]] 
                         [--data_dir [DATA_DIR]] [--det_dir [DET_DIR]]
    --trained_model      Path of the saved model
    --split_dir          Path of fddb folds
    --data_dir           Path of fddb all images
    --det_dir            Path to save fddb results
  1. Download the evaluation to show the FDDB performance.

Citation

If you find DSFD useful in your research, please consider citing:

@inproceedings{li2018dsfd,
  title={DSFD: Dual Shot Face Detector},
  author={Li, Jian and Wang, Yabiao and Wang, Changan and Tai, Ying and Qian, Jianjun and Yang, Jian and Wang, Chengjie and Li, Jilin and Huang, Feiyue},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  year={2019}
}