Project 5 / Face Detection with a Sliding Window

Summary

In this project we implemented a sliding window face detector based on Dalal and Triggs paper from 2005. This project consisted of 4 main steps.

  1. Gathering features (negative and positive)
  2. Training our classifier
  3. Running our detector
  4. Evaluate the results

To see more specifics of this assignment please see the project description here

Gathering Features

We gathered as many NxN (6x6 default) groups of positive hog features as possible, and 10000 negative hog features.

Training

From these features (groups of 36 hog features) we constructed SVMs to discriminate between faces/non-faces.

Running the detector

For each test images we follow the following procedure.

  1. Iterate over the image pulling out all NxN groups of hog features (same as feature size above).
  2. Calculate a confidence for each NxN group of hog features (1 box).
  3. Resize the image to 90% its previous size.
  4. If there is room for at least one NxN group of hogs then proceed to step 1.
  5. Preform non-max suppression on the top 5000 boxes.

Results

All of these results are from using hog cells of size 6 and a 36x36 size template. As you can see, our face template looks (kind of) like a face. This gives us a little bit of insight into how the features are judged as part of a face or not.

Precision Recall curve.

Example of detection on the test set from the starter code.
The same image but through our final detector.