/FaceBoxes.PyTorch

A PyTorch Implementation of FaceBoxes

Primary LanguagePythonMIT LicenseMIT

FaceBoxes in PyTorch

License

By Zisian Wong, Shifeng Zhang

A PyTorch implementation of FaceBoxes: A CPU Real-time Face Detector with High Accuracy. The official code in Caffe can be found here.

Performance

Dataset Original Caffe PyTorch Implementation
AFW 98.98 % 98.55%
PASCAL 96.77 % 97.05%
FDDB 95.90 % 96.00%

Citation

Please cite the paper in your publications if it helps your research:

@inproceedings{zhang2017faceboxes,
  title = {Faceboxes: A CPU Real-time Face Detector with High Accuracy},
  author = {Zhang, Shifeng and Zhu, Xiangyu and Lei, Zhen and Shi, Hailin and Wang, Xiaobo and Li, Stan Z.},
  booktitle = {IJCB},
  year = {2017}
}

Contents

Installation

  1. Install PyTorch >= v1.0.0 following official instruction.

  2. Clone this repository. We will call the cloned directory as $FaceBoxes_ROOT.

git clone https://github.com/zisianw/FaceBoxes.PyTorch.git
  1. Compile the nms:
./make.sh

Note: Codes are based on Python 3+.

Training

  1. Download WIDER FACE dataset, place the images under this directory:
$FaceBoxes_ROOT/data/WIDER_FACE/images
  1. Convert WIDER FACE annotations to VOC format or download our converted annotations, place them under this directory:
$FaceBoxes_ROOT/data/WIDER_FACE/annotations
  1. Train the model using WIDER FACE:
cd $FaceBoxes_ROOT/
python3 train.py

If you do not wish to train the model, you can download our pre-trained model and save it in $FaceBoxes_ROOT/weights.

Evaluation

  1. Download the images of AFW, PASCAL Face and FDDB to:
$FaceBoxes_ROOT/data/AFW/images/
$FaceBoxes_ROOT/data/PASCAL/images/
$FaceBoxes_ROOT/data/FDDB/images/
  1. Evaluate the trained model using:
# dataset choices = ['AFW', 'PASCAL', 'FDDB']
python3 test.py --dataset FDDB
# evaluate using cpu
python3 test.py --cpu
# visualize detection results
python3 test.py -s --vis_thres 0.3
  1. Download eval_tool to evaluate the performance.

References

  • Official release (Caffe)

  • A huge thank you to SSD ports in PyTorch that have been helpful:

    Note: If you can not download the converted annotations, the provided images and the trained model through the above links, you can download them through BaiduYun.