Computer Projects for
Digital Image Processing
Part
of the class requirements is to do a computer project. Project can be done in
groups (up to 3 people) and should require 50 hours per person in total. The
topic of project is Face Detection. Each group will develop and
implement their algorithms to detect human faces in a test image. Competition
based on detection accuracy in a limited time will be held. Web submission of
the project, and brief class-room presentation is required. We will also
organize a peer review process for the projects.
Face Detection Competition
Results (Spring 2002)
DOWNLOADS
----------------------------------
Training Images and Ground Truth Data for the Face
Detection Project
The training images
are regular JPEG images. The ground truth data are binary images which can be
read by imread( ) in MATLAB.
----------------------------------
Evaluation Program
This is the
MATLAB function which will be used to evaluate your face detection algorithm on
the final test image. (details below)
INSTRUCTIONS
There are three
major steps in the project:
I.
Design
and implement your face detection rountine in MATLAB based on the provided training
images and ground truth data.
II.
Test
your routine with the training images by the evaluation program.
III.
Performance
of your routine will be tested in the class presentation with a test image by
the same evaluation program.
Each step is described below in detail.
I. Your Own Face Detection Routine:
Format
Your face detection routine should have this format: function faceCoords =
name_of_your_routine(inImage)
Input : an image matrix formed by 'inImage = double(imread(inImageFile))';
Output: - a N-by-2 matrix named 'faceCoords' containg a pair of coodinate for each detected face
N is number of faces you detected
faceCoords(:,1) contains vertical coordinates (row index of the image
matrix)
faceCoords(:,2) contains horizontal coordinates (column index of the image matrix)
We'll call your routine in the evaluation program by eval(sprintf('faceCoords
= %s(inImage);',routineName));
Time-Limit
There will be a time-limit for your routine. You should monitor the execution time of your routine and output the result by that time-limit. The proper time-limit (when running on a ISE lab machine) will be anounced later.
Our evalution 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 certain amount of time left, refine your estimation. Otherwise, output what you’ve got and terminate your routine.
II. Evaluation Program (evaluate.m)
Format:
[score,numHits,numRepeats,numFalsePositive,distance,runTime]
= evaluate(inImageFile,refImageFile,routineName)
Input :
1. Test Image
2. Ground Truth Data (image with faces labelled: 1 for face, 0 for
non-face)
3. name of your face detection routine
Output :
1. score = numHits - numRepeats - numFalsePositive (from ouput 2,3,4)
2. numHits = Number of Faces succesfully detected
3. numRepeats = number of repeatedly detected faces
4. numFalsePositive = number of cases where a non-face was reported
5. distance = root mean squared distance between detected point and centroid
of the ground truth face
6. runTime = run time of your face detection routine
Example:
[score,numHits,numRepeats,numFalsePositive,distance,runTime]
= evaluate('Training_1.jpg','ref1.png','name_of_your_routine')
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 brutally terminate your routine without getting any result.
2.
Score:
For those with run-time within the time-limit, the ‘score’ from the evaluation program indicates the detection accuracy.
3.
Distance:
This criterion is supplementary, it will be used only when two groups have the same ‘score’.
|
5/28 (Tue) 1700~1900, Gates B01 (9
groups) |
|
|
1 |
Dileep George {dil@stanford.edu} |
|
Shantanu Rane {srane@stanford.edu} |
|
|
2 |
NicolasRemy {nremy@pangea.stanford.edu} |
|
RamiYounis {ryounis@pangea.stanford.edu} |
|
|
3 |
Noppadol Pringvanich {noppadol@stanford.edu} |
|
Pamornpol Jinachitra {pj97@stanford.edu} |
|
|
4 |
Jean-Philippe Ronc {jronc@stanford.edu} |
|
Xavier Brolly {brollyx@stanford.edu} |
|
|
Ying Xu {xying@stanford.edu} |
|
|
5 |
Aikaterini Argyraki {argyraki@stanford.edu} |
|
Marios Philiastides {marios@stanford.edu} |
|
|
Rafael Ballagas {ballagas@stanford.edu} |
|
|
6 |
Yuichiro Yamashita {yamas@stanford.edu} |
|
7 |
TaesangYoo { yoots@stanford.edu} |
|
Youngjae Kim {youngjae@stanford.edu} |
|
|
8 |
Larson Peder {plarson@stanford.edu} |
|
Perry Patrick {patperry@stanford.edu} |
|
|
9 |
Michael Braun {mibraun@stanford.edu} |
|
Philip Beatty {pbeatty@stanford.edu} |
|
|
Sangho Yoon {holyoon@stanford.edu} |
|
|
|
|
|
5/29 (Wed) 0900~0950, McCull 115 (4
groups) |
|
|
10 |
Amita Pugalia {amipugalia@stanford.edu} |
|
Ramon Prieto {rprieto@Stanford.EDU} |
|
|
Sora Kim {kimsora@Stanford.EDU} |
|
|
11 |
Donghyun Kim {kidhyun@stanford.edu} |
|
Jin Hyung Lee {ljinhy@stanford.edu} |
|
|
Joong Ho Won {jhwon@stanford.edu} |
|
|
12 |
Joy Rajiv {jrajiv@Stanford.EDU} |
|
Mehdi. Mohseni {mmohseni@Stanford.EDU} |
|
|
Sameer Hemchand Jain {sjain@Stanford.EDU} |
|
|
13 |
Jian Zhang {jianz@stanford.edu} |
|
Jing Chen {jeanchen@stanford.edu} |
|
|
Miao He {hmiao@stanford.edu} |
|
|
|
|
|
5/30 (Thur) 1700~1900, Gates B01 (10
groups) |
|
|
14 |
Duncan Riach {duncan@riach.org} |
|
Philip Johnson {philip_b_johnson@hotmail.com} |
|
|
15 |
Carmen Ng {carmenng@ccrma.stanford.edu} |
|
Thomas Pun {tpun@apple.com}) |
|
|
16 |
Ajay Gupta {agupta74@stanford.edu} |
|
Gang Xie {gangxie@stanford.edu} |
|
|
Jiwu Tang {jiwutang@stanford.edu} |
|
|
17 |
Ana Bertran Ortiz {nuska@Stanford.EDU} |
|
Huanzhou Yu {hzhyu@Stanford.EDU} |
|
|
Paolo Sacchetto {paolos@Stanford.EDU} |
|
|
18 |
Emilio Antunez {eantunez@stanford.edu} |
|
Inam-Ur-Rahman Malik {imalik@stanford.edu} |
|
|
Kevin Hunter {khunter@micron.com} |
|
|
19 |
Junjie Liu {junjie.liu@stanford.edu} |
|
20 |
Scott Payne {gt1994@stanford.edu} |
|
Vey Ling {vsling@stanford.edu} |
|
|
21 |
Frederic SARRAT {fsarrat@stanford.edu} |
|
22 |
Ashish Desai {ashish_desai@agilent.com} |
|
Kais Jameel Maayah {maayah@stanford.edu} |
|
|
Lukas Herzog {l.herzog@gmx.net} |
|
|
23 |
Amie Chu {amiechu@stanford.edu} |
|
Jason Lee {jsnlee@stanford.edu} |
|
|
24 |
Nitin Kartik {nitin.Kartik@motorola.com} |
PROJECT SUBMISSION
(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 unix command "ps2pdf" on ISE or Leland machines. You might want to use 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".
Email to ee368instructor@lists.stanford.edu
if you have any question.