Umu logo Umeĺ universitet
Teknisk-naturvetenskaplig fakultet
Institutionen för datavetenskap

Assignment 2

Due date: 17:00 February 23rd 2005

Background

Object segmentation is perhaps the most challenging task of all in image analysis.
Autonomous, robust segmentation is essential for classification systems and is usually very difficult to achieve.

Coded targets are artificially created and usually visually distinct objects. They are introduced in an enviroment to convey information for visual interpretation (i.e. in image form).
One of the simplest forms of coded targets are the EAN-codes found on most price tags in grocery stores of today.
More advanced coded targets are often used in VR and augmented reality applications to convey localization clues (just like the room numbers in the MIT buildings lab corridors) in a visibly interpretable way. In addition, color is one of the most powerful descriptors that are available in image processing and can be used for coded targets as well.
Full color image processing methods are often easy to use and can be very efficient tools in object segmentation.

Task

As a very simple example of coded targets someone has posted post-its on some of the lecture room and lab doors in the MIT building. This information is coded via the color and number of the post-its.
Your task is to write an efficient program (in Matlab) that
  • automatically decodes the images of the encoded doors and returns the number of post-its found in each image
  • visualizes the segmentation result in an easily interpretable manner (preferrably using pseudo-color processing techniques).
    Your solution should be robust enough to function in spite of color shifts and noise due to illumination issues.
    You are presented with a number of images to use when developing your program(s), divided into three datasets consisting of 34 images each. (downsized examples of dataset images: dataset 1, dataset 2, dataset 3)
    During the grading process your programs performance will be evaluated against your test data set as well as a second, hidden data set. As you will not have access to this data set your should strive to make your solution as robust as possible (i.e. NOT customized to the data sets you are presented)

    Your solution should be robust enough to be able to correctly classify at least 90% of the supplied images correctly and at the same be general enough to correctly classify at least 80% of the (hidden) grading data set.

    Present your solution in a written report, complete with source code and some examples of segmented images.
    Your sourcecode should also be available in binary form on your CS UNIX account under the path

    ~username/edu/ia/lab2/
    

    A correct solution without a satisfactory explanation will not pass grading - make sure you demonstrate your ability to understand the segmentation algorithm and state the assumptions you have made in designing it. A solution with less than perfect performance might pass grading if you are able to demonstrate (in a satisfactory manner) how and why the solution fails.
    Be sure to demonstrate your understanding of the theory of color image processing.

    Note: On your reports front page you should include

  • Course name
  • Assignment number
  • Version
  • Date
  • Student name & email
  • Tutor name
    Make sure you include a detailed section in the report where you evaluate the assigment, it's difficulty level (data set by data set), your solution, your solutions performance and run-time efficiensy etc.

    Also note: As there are some compatibility issues between UNIX matlab and Windows matlab: make sure your code is runnable on Matlab for Windows.

    Be prepared to present and defend your work verbally.

    This assignment is to be carried out individually.

    Your solution must conform to the following architecture in order to be graded: Your solution may have many parts but should be callable in matlab as

    
    nr = lab2a(image from dataset 1)
    nr = lab2b(image from dataset 2)
    nr = lab2c(image from dataset 3)
    
    
    where nr is an integer containing the number of post-its found in the image. (The exact parameter format should be as in the provided procedure stubs)

    Clarification:
    It is possible to write just one program which operates on all datasets - you are allowed to do so if you want to but for reasons of simplicity it is recomended that you write three separate ones which each operate on its respective dataset (as indicated by the table below).

    Problem Procedure stubs Images
    A lab2a.m public1.zip
    B lab2b.m public2.zip
    C lab2c.m public3.zip

    Hints:
    The matlab function bwlabel will most likely be useful when you are counting objects
    All post-its to be counted are grouped close to each other, but none of them overlap

    Tutoring

    P-O Östberg (p-o@cs.umu.se) is responsible for this assignment and is available for questions during tutoring hours in D418.
    You are welcome to post questions via email at all times but (prompt) replies are not guaranteed outside office hours.