High-Level Computer Vision with MATLAB
1. Introduction
This laboratory session provides the opportunity to design and implement a computer vision systems that can count how many of two specific types of object are present in an image. The hours timetabled for this laboratory are completely insufficient to complete it. You are required to work on this project in your own time, and use the timetabled hours to get help and clarification.
This laboratory is assessed. You need to submit your MATLAB code through KEATS by the deadline specified on the module’s KEATS webpage. Together with your code you should submit a one paragraph description of the method you have used, and clearly acknowledge any sections of code that you have copied or modified from online sources, books, or articles. Re-using open-source software is good practice and demonstrates your research skills, however, not acknowledging other people’s work is both intellectual property theft and plagiarism. Any submission that is identified to include other people’s code which has not been clearly referenced will be reported to the College Misconduct Committee. You may not share code with each other, even if this is acknowledged. You can use any built-in MATLAB function or any official MATLAB toolbox without acknowledgement.
2. The Task
At the end of these instructions are 12 images containing various pieces of LEGO. Your system needs to read in such an image and provide a count of the number of Blue 2 by 4 bricks (objectA) and the number of Red 2 by 2 bricks (objectB). Close-up images of these two types of LEGO brick are provided here:
3. System Requirements
You should submit a single m-file, or a single zip file containing your code. Your code must include a m-file called “count_lego.m”. The main function in this file should have the following definition:
function [numA,numB]=count_lego(I)
Hence, this function takes one input argument (I), which is a MATLAB variable storing a jpeg image (i.e. I will have been produced using the command: I=imread(‘legoX.jpg’);). The two output variables (numA,numB) should be integers. The first output, numA, should provide a count of the number of Blue 2 by 4 bricks that occur in the input image. The second output, numB, should provide a count of the number of Red 2 by 2 bricks that occur in the input image.
The count_lego function may call other functions. All these functions should be included in the same m-file, or be include in the zip file you submit. Your code can also load data, as long as this data is included in the zip file you submit. Your code should run on a PC and not need access to special hardware, such as a GPU.
4. Assessment
The performance of your code will be assessed by testing the accuracy with which it counts numbers of objectA and objectB in 12 testing images. The testing images were obtained under the same conditions as the training images. In addition, your submission will be marked on how sensible an approach you have chosen to implement and how efficiently and correctly that approach has been implemented.
ObjectA
ObjectB
5. Training Images
numA=3, numB=1
numA=4, numB=1
numA=4, numB=2
numA=2, numB=1
numA=3, numB=0
numA=1, numB=3
numA=1, numB=0
numA=2, numB=0
numA=2, numB=3
numA=1, numB=0
numA=1, numB=0
numA=3, numB=2