[General Policy] [Detection Project] [Segmentation Project] [Classification Project]
• We provide skeleton codes in Matlab for each project. You can start your implementation from the code provided by us.
• You may be able to find some codes online implemented by the authors. It is definitely OK and encouraged to check these codes. But it is
an honor code violation to directly copy codes from existing implementations. Note that your code will be read by the course instructors.
• We allow for both 1-person or 2-person teams for the projects. Each team hands in one copy of the codes and writeup. Grading will be fair
regardless of the team size.
• Your project will be evaluated based on many factors, such as your understanding of the algorithm, performance of your algorithm, quality
of your code, your creativity, write-up, and presentation.
• It is estimated to take you 20-30 hours for each project, depending on your familiarity with the algorithm and how far you want to go for
the projects. The third project might take you 10 hours more.
• You are not expected to implement all the details of the algorithm or really achieve state-of-the-art performance. But if your algorithm works
very well, you will get extra credits.
Grading Policy per Project:
• Technical approach and code: 35% (including correctness and completeness of your method, your innovation, etc)
• Experiment evaluation: 35% (including performance and results of your method, thoroughness of your experiments, insights and analysis
that you draw from your results)
• Write-up quality: 20% (please read the write-up sample carefully)
• Project presentation: 10% (clarity and content of your project presentation)
Late Days:
We allow seven late days in total for all the three projects. Once you have used up these late days, the project turned in late will be penalized 20% per late day.
Project 1: Pedestrian Detection with the Deformable Part Model
Project Description:
Implement a pedestrian detection algorithm using the HOG (Histogram of Oriented Gradients) feature representation and the Deformable Part Model.
• Refer to Viola & Jones for a general idea about object detection systems.
• Refer to Dalal & Triggs for the HOG (Histogram of Oriented Gradients) feature representation.
• Refer to Felzenszwalb et al (2008) for the Deformable Part Model for object detection. Felzenszwalb et al (PAMI 2010) is a more detailed
version of the paper.
• Refer to Felzenszwalb et al (CVPR 2010) for how to make your algorithm faster. (We encourage you to read this paper to get more ideas about how to improve a detection system. But you are not required to implement this paper.)
Dataset and Project Setup:
In this project, we will use PASCAL VOC 2007 person detection dataset to train and test your program. Here is a brief introduction of the datasets (you only need to look at the "person" category). The performance of your method will be evaluated using precision & recall curve and average precision (AP). Here is a criteria to evaluate whether a specific detection result is correct or not.
Fortunately, in this project you do not need to install the PASCAL VOC development kit and write codes of how to evaluate the performance by yourself. Please follow these steps to start your project:
• Download the PASCAL VOC development kit that has been installed by us from here (859MB). Untar the file.
• Run "VOCdevkit/example_detector.m" in matlab, which contains a very simple person detection training and testing method. This program
loads training data to memory, trains a person detector, tests the trained detector on testing images, and finally computes the average
precision score and draws the precision-recall curve.
• In "VOCdevkit/example_detector.m", replace "detector=train(VOCopts,cls)" with your own training implementation. Refer to the "train"
function for how to load training images and ground truth bounding boxes.
• In "VOCdevkit/example_detector.m", replace "test(VOCopts,cls,detector)" with your own testing implementation. Refer to the "test" function
for how to load testing images and ground truth bounding boxes.
More Guides
• The authors of the deformable part model have the code online:http://people.cs.uchicago.edu/~pff/latent/. You can read the code
before you start your own implementation. But the authors' code has many tricks that are not fully covered by their paper, and you do not
need to worry if you cannot fully understand their code.
• Implement your method based on the CVPR 2008 paper but you do not need to implement the mixture model and dynamic programming for
updating deformable parts. You can refer to the PAMI 2010 paper to have a better understanding of the method, but you do not need to
implement the additional details in this paper.
• Directly copying the authors' code without mentioning it in your write-up is an honor code violation. But if you do have trouble in
implementing a specific function, you might refer to the existing codes and mention this clearly in your write-up. Note that implementing a
function by yourself but have poor performance is more desirable than using existing codes.
• There might be some very time-consuming parts in the method. You may use mex-files which allows you to call C functions in matlab so
that your algorithm can be accelerated.
• If your compute is limited by memory or your code is extremely slow, you do not need to use all training and testing images. You can use half
or a even smaller proportion of the images. But it is encouraged to use all training (2501) and testing (4952) images in your experiments.
• If you have any questions or trouble, feel free to ask questions in Piazzza or send emails to the course staff email "cs223c-spr1011-staff [at]
lists [dot] stanford [dot] edu".
• Although you are basically implementing an existing algorithm, the project is very open and you can do everything you can imagine to
achieve good performance. You do not need to worry too much if your algorithm is not doing a perfect job. But we do encourage you to
start your projects earlier so that you have more time to play with your algorithm.
• Your project will not be evaluated based only on the performance of your algorithm. Show us that you have a good understanding of the
problem and the algorithm, and try to have deep insights from your experiment results.
References:
• P.Viola and M.Jones. Rapid Object Detection using a Boosted Cascade of Simple Features. CVPR 2001.
• N.Dalal and B.Triggs. Histograms of Oriented Gradients for Human Detection. CVPR 2005.
• P.Felzenszwalb, D.McAllester, and D.Ramanan. A Discriminatively Trained, Multiscale, Deformable Part Model. CVPR 2008.
• P.Felzenszwalb, R.Girshick, D. McAllester, and D.Ramanan. Object Detection with Discriminatively Trained Part-Based Models. PAMI
2010.
• P.Felzenszwalb, R.Girshick, and D.McAllester. Cascade Object Detection with Deformable Part Models. CVPR 2010.
Important Dates:
• Deadline of submitting the code and write-up: Sat, Apr 16 (23:59pm), how to submit your documents will be updated later
• A short presentation of your work: Mon, Apr 18 (in class)
Project 2: Interactive Image Segmentation with GrabCut
Project Description:
Dataset and Experiment:
References:
Important Dates:
Project 3: Locality-constrained Linear Coding for Scene and Action Classification
Project Description:
Dataset, Resources, and Experiment:
References:
Important Dates: