Digital Image Processing


Class Information

Class Schedule


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



Final Project for Spring 2002-2003
Face Detection Project

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.





Group Members

Results Summary

Test Image

Ground Truth for Test Image


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


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 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:




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




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)




[finalScore, detectScore, numHit, numRepeat, numFalsePositive, distance, runTime, bonus]

= evaluate(inImageFilename, refImageFilename, p)



1. filename of the training image (or the test image)

2. filename of the corresponding ground truth data

3. weighting factor of the bonus



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.





[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
Class-room presentations of projects after May 26
Deadline for submission of project programs and report: May 26, no extensions

Deadline for submission of presentation slides: 7:00pm, the night before presentation





5/28 Wednesday 8:15am~9:50am   5/30 Friday 8:15am~9:50am
1  Jared Starman   10  Noman Ahmed
1  Gary Chern   10  Waqar Mohsin
1  Paul Gurney   10  Chung-Tse Mar
2  Joon H Shim   11  Sam Mazin
2  Jinkyu Yang   11  Priti Balchandani
2  Inseong Kim   12  Deepesh Jain
3  Wenmiao Lu   12  Subbu Meiyappan
3  Shaohua Sun   12  Husrev Tolga Ilhan
4  Boonping Lau   13  Peter Brende
4  Chun Hui Weng   13  David Black-Schaffer
4  Scott Yeh Ping Tan   13  Veniamin Bourakov
5  Cheryl Lam   14  Vivek Srinivasan
5  Yu-Kuan Lin   14  Ping Lee
5  David Mahashin   14  Arvind Sundararajan
6  Anthony Guetta   15  Sumita Pennathur
6  Michael Pare   15  Klint Rose
6  Sriram Rajagopal   15  Diederik Marius
7  Jeffrey Walters   16  Zihong Fan
7  Angela Chau   16  Michael Padilla
7  Ezinne Oji   17  Scott Leahy
8  Siddharth Joshi        
8  Gaurav Srivastava        
9  Ping Li        
9  Chunlei Liu        
9  Michael Bax        






(1) Please send to 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 "" 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


To conclude, name your file as "" with your group number and a proper file suffix. Send it to with subject "ee368 groupXX xxxxx".


Please email to for questions or bug reports.

Last modified: 06/03/2003