/FaceDetection-DSFD

腾讯优图高精度双分支人脸检测器

Primary LanguagePythonOtherNOASSERTION

Update

  • 2019.04: Release pytorch-version DSFD inference code.
  • 2019.03: DSFD is accepted by CVPR2019.
  • 2018.10: Our DSFD ranks No.1 on WIDER FACE and FDDB

Introduction

In this repo, 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! or poster slide!

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

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 xxxxxx/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.
  2. Lightweight DSFD is here.

Qualitative Results

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}
}

Contact

For any question, please file an issue or contact

Jian Li: swordli@tencent.com