Assignment 2
The goal of this assignment is to get your hands dirty with some
pixels and some machine learning on a pedestrian detection task. To
start there are two parts, that you should have working by Tuesday Oct
12. The whole assignment including the third part is due on Thursday
Oct 14 by midnight in e-mail to the instructor. You may find the
original HOG
paper useful.
- Write your own code to compute a HOG descriptor from a patch in an image. The input should be an image and the location of the upper left corner of the patch over which to compute the descriptor. to keep things easy, just use 128 pixel high x 64 pixel wide patches. You should use 8x8 pixel non-overlapping integration windows for the individual histograms, and include four different contrast normalizations based on the 4 16x16 pixel regions overlapping each 8x8 pixel block. You should produce a visualization of the computed feature for a positive and negative example and turn in your code.
- Train a classifier to recognize patches with pedestrians using boosting on decision stumps with the approximately 4k dimensional descriptor you computed above. Use between 100 and 1000 training examples for positive and an equal number for negatives from this dataset.. You should use the *_64x128_H96 directories for train and test, and be sure to only compute descriptors for regions at least 8 pixels from the boundary, possibly more depending on how your edge orientation and energy are computed. You can also mirror (e.g. the symmetric option for matlab's imfilter) the boundaries to give yourself some extra room. You should evaluate the accuracy of your classifier on data you did not use for training, and try detection on an image. Turn in your evaluation and code.
- Train a linear classifier for the same task using LIBLINEAR. Evaluate both the linear classifier and the boosted classifier for classification, detection, and speed (both for training and test). Turn in your evaluation.