EE368/CS232
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 2007-2008
CD Cover Recognition through Camera-Phone

The project should be done individually or in groups of up to 3 people and should require about 50-60 hours per person. Each group will develop and implement their own algorithm to identify a CD cover from an image captured by a cell-phone camera.

INTRODUCTION
DOWNLOADS
INSTRUCTIONS
DEADLINES
PROJECT SUBMISSION

PROJECT TEAMS


INTRODUCTION

The project should be done individually or in groups of up to 3 people and should require about 50-60 hours per person. Each group will develop and implement their own algorithm. The goal is to develop an image-processing algorithm for recognizing a CD cover from an image snapped by a camera-phone. Such a scheme would enable the user to get additional information about the CD on-the-spot through his/her mobile phone. Applications of this kind are usually referred to as "augmented reality" applications. Implemented on hand-held mobile devices, they are called "mobile augmented reality." We focus on the image-processing scheme for the class project.

Many different image processing techniques may succeed in identifying one CD cover from a relatively small dataset. You may use any algorithm that you learned in class, as well as algorithms that we have not discussed. However, solutions will probably require a combination of several schemes.

From the Downloads section, you can download a dataset of 30 distinct CD cover images and the corresponding ground truth data; each image displays one CD cover with no tilt/perspective. You can also download a set of 99 training images and the corresponding ground truth data. Each image in the training set represents an image snapped by a user and contains one CD cover; notice that the CD cover might not be from the dataset. After you submit your algorithm implementation, we will check its performance with a set of test images, which are not in the training set. Each test image contains one CD cover. You may assume that the variations among the training images are typical.

Photographs Details:

The photographs in the training and test sets were all taken with a Nokia N95. The photos were captured indoor and we did not control the lighting. The images are quite noisy, and many have motion blur and/or defocus. Sometimes the CD is occluded on the edge by the hand holding it. Occasionally there is spurious glare/reflection from the CD cover. Nevertheless, the 1280x960 resolution is high considering cell-phone photos.



DOWNLOADS

CD Cover Dataset Images and Ground Truth Data

Dataset Images: Gallery or ZIP file
- The dataset images are regular JPEG images.
- The images can be read by imread( ) in MATLAB.

Ground Truth for Dataset Images: ground_truth_dataset.m
- The ground truth data are stored in a MATLAB script file.
- Read the header comments of the m-file for more info.

Training Images and Ground Truth Data

Training Images: Gallery or ZIP file
- The training images are regular JPEG images.
- The images can be read by imread( ) in MATLAB.

Ground Truth for Training Images: ground_truth_training.m
- The ground truth data are stored in a MATLAB script file.
- Read the header comments of the m-file for more info.

Final Test Images and Testing Routine

Test Images: (Zip file)
Testing Routine: (M file)



INSTRUCTIONS

  • Your algorithm has to output the title of the CD cover. "No_Match" should be used if the CD cover found in the image does not belong to the dataset.

    Specifically, the interface between your CD cover identification function and the evaluation routine is specified in MATLAB notation as follows,

    function CD_cover_title = identify_CDcover(img)

    The input and output are defined as follows,

    img: height-by-width-by-3 uint8 array representing a 24-bit RGB image obtained through imread( ).

    CD_cover_title: A character array indicating the title of the CD cover contained in the input image. This must exactly match one of the strings given in the ground truth files as evaluated by strcmp( ).

  • You may use any MATLAB built-in function or MATLAB image processing toolbox function. You may NOT use other libraries or code other than your own. However, you may re-implement any library that you wish.

  • The performance metric

    Total score:

    The total score is equal to the number of CD covers identified correctly. For each test image, the score is 1 for correct identification and 0 for wrong identification.

    Tie breaker:

    Programs with the same score will be ranked according to run-time.

  • The maximum run-time for a single image is 1 minute. We will abort your program if it takes longer.

  • To register your group, please send an e-mail to ee368-spr0708-staff@lists.stanford.edu with the subject "group registration for project".



DEADLINES

Cut-off for group registration: 11:59 PM, May 12
Program submission: 11:59 PM, May 30
Report submission: 11:59 PM, June 1

No extensions will be given.



PROJECT SUBMISSION

(1) Please mail to ee368-spr0708-staff@lists.stanford.edu (do not c.c. to TA's or Professor's personal e-mail address).

(2) For program, please include ONLY nessessary files in ONE ZIP file named "ee368groupXX.zip" and email it with subject "ee368 groupXX program". Your 2 digit group number XX is listed below.

(3) For report, please prepare in PDF format, name it "ee368groupXX.pdf" and email it with subject "ee368 groupXX report". Your 2 digit group number XX is listed below.

Please follow the IEEE two-column format for the project report. Templates (both Word and LaTeX) are available from the websites of several IEEE conferences. You can take a look at some reports from last year to get a general idea about the format. Please describe your algorithm precisely and concisely and make sure it is easy to read and grasp.

(4) Note that your code will be run on the SCIEN machines by the teaching staff. Hence, it is a good idea to get an account there and make sure that there are no platform-specific problems with your code.

(5) If you are a group, then you need to submit the log of who did what with your report.


PROJECT TEAMS

Group entries:

Group 01: Jae Mo Park and Eunjoon Cho
Group 02: Manuel Gomez Rodriguez and Borja Manuel Peleato-Inarrea and Tamer Ahmed Deif
Group 03: Srinidhi Ramesh Kondaji and Priyanka Singh and Ayichew Hailu
Group 04: Raghunandan Hulikal Keshavan and Deepak Iyer and Srinivasa Rangan Sridharan
Group 05: Sean Truong and Kevin Wong
Group 06: Marcus chen and Chia-Hsiung (Eric) Chen and Johnson Liang
Group 07: Sanghoek Kim and Kie Tae Kwon and Sung Hee Park
Group 08: Xiaomeng Zhang and Jiajing Xu
Group 09: Chen Gu and Nagarajan
Group 10: Ankit Patel and Sanaz Motahari and Federico Felizzi
Group 11: Scott Cottier and Jesse Chen and Elza John
Group 12: Gautham J. Mysore and Bhargav Raman
Group 13: Hojin Kim and Jaewon Yang
Group 14: Philip Cheng and Eric Kwan

Individual entries:

Group 15: Cho, Je-Kwang
Group 16: Craddock, Carl Warren
Group 17: El Hourani, Charles Issam
Group 18: Gardiner, Koji Lion
Group 19: Jo, Chang-yeon
Group 20: Lehnert, Keith LaRussa
Group 21: Makar, Mina Ayman Saleh Yanni
Group 22: Martinez, Marc Andrew
Group 23: Muthukrishnan Gomathi, Sankar
Group 24: Permenter, Frank Noble
Group 25: Sakunkoo, Nawachon
Group 26: Skeffington, Wesley Michael
Group 27: Timp, Rolf James
Group 28: Vangipuram, Sandeep
Group 29: Whiteley, William James