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

 

Training_1.jpg              ref1.png

Training_2.jpg              ref2.png

Training_3.jpg              ref3.png

Training_4.jpg              ref4.png

Training_5.jpg              ref5.png

Training_6.jpg              ref6.png

Training_7.jpg              ref7.png

 

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)

evaluate.m

 


 

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’.

 

 


 

PRESENTATION SCHEDULE

 

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.