A Convolutional Neural Network Cascade for Face Detection

This repo is re-implementation of the paper in TensorFlow.

Start

Preparing data

  1. Download AFLW dataset (positive) and COCO dataset (negative) for training. Any other dataset can be used instead of COCO datset for negative one.

  2. Download FDDB dataset for testing.

  3. Run data_parse.py in the dataGen folder before training and testing network.

Training classification net

12-net: python train_12net.py

24-net: python train_24net.py

48-net: python train_48net.py

Training calibration net

12-calib net: python train_calib.py 12

24-calib net: python train_calib.py 24

48-calib net: python train_calib.py 48

Hard negative mining(save hard neg db to disk in neg_train/neg_hard/)

hard neg db to train 24-net: python hard_neg_mining.py 24

hard neg db to train 48-net: python hard_neg_mining.py 48

Test

python test.py

Implementation

Implemented with TensorFlow and yields similar result with paper

training set: AFLW dataset(positive), COCO dataset(negative)

test set: FDDB dataset

Result(gren: GT, blue: detected face)

face

2 5 3 1 8 7 6 4 9 10