Digital Image Processing Home Class Information Class Schedule Handouts Projects Win 2018/19 Projects Win 2017/18 Projects Aut 2016/17 Projects Aut 2015/16 Projects Spr 2014/15 Projects Spr 2013/14 Projects Win 2013/14 Projects Aut 2013/14 Projects Spr 2012/13 Projects Spr 2011/12 Projects Spr 2010/11 Projects Spr 2009/10 Projects Spr 2007/08 Projects Spr 2006/07 Projects Spr 2005/06 Projects Spr 2003/04 Projects Spr 2002/03 Test Images MATLAB Tutorials Android Tutorials SCIEN BIMI |
Final Project for Spring 2002-2003
Part of the class requirements is to do a computer project. The project should be done in groups of 3 people (exceptions need to be approved) and should require 50 hours per person. The topic of the project is Face Detection. Each group will develop and implement their algorithms to detect human faces in a test image. An extra task as a bonus for the project is to point out the faces of female students. This bonus part is not required to be considered as a complete project. Competition based on detection accuracy in a limited time will be held. Submission of the project (computer programs and a report), and brief class-room presentation are required. Students are encouraged to refer to last year's projects. However, independent implementation of the algorithm is necessary.
COMPETITION
RESULTS
Group 01 report presentation results image Group 02 report presentation results image Group 03 report presentation results image Group 04 report presentation results image Group 05 report presentation results image Group 06 report presentation results image Group 07 report presentation results image Group 08 report presentation results image Group 09 report presentation results image Group 10 report presentation results image Group 11 report presentation results image Group 12 report presentation results image Group 13 report presentation results image Group 14 report presentation results image Group 15 report presentation results image Group 16 report presentation results image Group 17 report presentation results image
---------------------------------- Training Images and Ground Truth Data
- The training images are regular JPEG images. - The ground truth data are color-indexed PNG images. Face regions are labeled by non-zero pixels. Male faces are labeled in white (value 1) and female faces are labled in red (value 2). - The images can be read by imread( ) in MATLAB.
---------------------------------- Evaluation Program
This is the MATLAB function which will be used to evaluate your face detection algorithm (details below).
There are three major steps in the face detection project:
I. Design and implement your routine in MATLAB based on the provided training images and ground truth data. II. Test your routines with the training images by the evaluation program. III. Performance of your routine will be tested with a test image by the same evaluation program provided here.
Each step is described below in detail.
I. Your Face Detection Routine:
Format
Your main routine has to be in this format: function outFaces = faceDetection(inImage).
INPUT: a image matrix formed by 'inImage = double(imread(imageFilename))'. The image file is one of the JPEG training images or the final test image we will use in the class presentation.
OUTPUT: a N-by-3 matrix named 'outFaces' containg the coodinates and the color-index for each detected face -- N is the number of faces you’ve detected -- outFaces(:,1) contains the detected vertical coordinates (row index of the image matrix) -- outFaces(:,2) contains the detected horizontal coordinates (column index of the image matrix) -- outFaces(:,3) contains the gender of the detected faces (1 for male, 2 for female)
NOTE: The gender recognition part is considered as a bonus of the project. If you decide not to do it, simply set the elements in outFaces(:,3) to any integer. However, your still have to return a N-by-3 matrix.
You can call other sub-routines under this main routine. The main routine serves as the interface with our evaluation program. We'll call your main routine in the evaluation program by outFaces = faceDetection (inImage).
Time-Limit
The time-limit for your routines is 7 minutes (when running on a ISE lab machine with most resource available). You should monitor the execution time and output the results by that time-limit. Our evaluation program can check if you are within the time-limit only after your routine is terminated. In other words, you need to make sure you finish your routine in time and return the proper result.
You might want to start your routine with a rough estimation, and then check the time remaining. If there is a certain amount of time left, refine your estimation. Otherwise, output what you’ve got and terminate your routine. You can also down-sample the image to reduce the amount of computation required. However, this down-sampling process should be part of your own routine. When we test your algorithm, the test image will be in the same resolution as the training images posted on the web.
II. Evaluation Program (evaluate.m)
Format:
[finalScore, detectScore, numHit, numRepeat, numFalsePositive, distance, runTime, bonus] … = evaluate(inImageFilename, refImageFilename, p)
INPUT: 1. filename of the training image (or the test image) 2. filename of the corresponding ground truth data 3. weighting factor of the bonus
OUTPUT: 1. finalScore = p*bonus + detectScore 2. detectScore = numHit - numRepeat - numFalsePositive (from ouput 3,4,5) 3. numHit = number of faces succesfully detected 4. numRepeat = number of faces repeatedly detected 5. numFalsePositive = number of cases where a non-face is reported 6. distance = root mean squared distance between detected point and centroid of the ground truth face 7. runTime = run time of your face detection routine 8. bonus = max(0, number of correctly recognized female faces - number of male faces falsely recognized as female). Please refer to evaluate.m for details. Note that the bonus is never negative.
Example:
[finalScore, detectScore, numHit, numRepeat, numFalsePositive, distance, runTime, bonus] … = evaluate('Training_1.jpg','ref1.png', 1.0)
III. Performance Criterion
The performace of your routine is judged by outputs of the evaluation program. There are three criterions:
1. Run-Time: You need to make sure your run-time is within the given time limit. Otherwise, we might need to terminate your routine without getting any result.
2. Final Score: For those with run-time within the time-limit, the ‘finalScore’ from the evaluation program indicates your detection and recognition accuracy.
3. Distance: This criterion is supplementary, it will be used only when two groups have the same ‘finalScore’.
Deadline to register groups: April 30 Deadline for submission of presentation slides: 7:00pm, the night before presentation
(1) Please send to chuoling@stanford.edu since ee368instructor doesn't have enough space (do not c.c. to ee368instructor).
(2) For program, please include ONLY nessessary files in ONE ZIP file named "ee368groupXX.zip" and email it with subject "ee368 groupXX program".
(3) For ppt file, please name it "ee368groupXX.ppt" and email it with subject "ee368 groupXX slides".
(4) For report, please make it in PDF format, name it "ee368groupXX.pdf" and email it with subject "ee368 groupXX report".
(5) For people don't know how to make PDF files, here is one way to do that. Print your report from any document processing software to a PostScript file (.ps) and use the command "ps2pdf" on ISE machines. You can find a PS print driver for windows from http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows.
To conclude, name your file as "ee368groupXX.xxx" with your group number and a proper file suffix. Send it to chuoling@stanford.edu with subject "ee368 groupXX xxxxx".
Please email to ee368instructor@lists.stanford.edu for questions or bug reports. Last modified: 06/03/2003
|