A PyTorch implementation of FaceBoxes: A CPU Real-time Face Detector with High Accuracy. The official code in Caffe can be found here.
Dataset | Original Caffe | PyTorch Implementation |
---|---|---|
AFW | 98.98 % | 98.47% |
PASCAL | 96.77 % | 96.84% |
FDDB | 95.90 % | 95.44% |
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}
}
-
Install PyTorch >= v1.0.0 following official instruction.
-
Clone this repository. We will call the cloned directory as
$FaceBoxes_ROOT
.
git clone https://github.com/zisianw/FaceBoxes.PyTorch.git
- Compile the nms:
./make.sh
Note: Codes are based on Python 3+.
- Download WIDER FACE dataset, place the images under this directory:
$FaceBoxes_ROOT/data/WIDER_FACE/images
- Convert WIDER FACE annotations to VOC format or download our converted annotations, place them under this directory:
$FaceBoxes_ROOT/data/WIDER_FACE/annotations
- 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
.
- 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/
- 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
- Download eval_tool to evaluate the performance.
-
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.