This article is written by Chethan Parameshwara. Please contact Chethan Parameshwara if there are any errors.

Table of Contents:

Deadline

11:59 PM, Thursday, September 22, 2022

Introduction

Have you ever played with these adorable Nao robots? Click on the image to watch a cool demo.

 Nao robot demo

Nao robots are star players in RoboCup, an annual autonomous robot soccer competitions. We are planning to build the Maryland RoboCup team to compete in RoboCup 2020, we need your help. Would you like to help us in Nao’s soccer training? We need to train Nao to detect a soccer ball and estimate the depth of the ball to know how far to kick.

Nao’s training has two phases:

  • Color Segmentation using Gaussian Mixture Model (GMM)
  • Ball Distance Estimation

What you need to do

To make logistics easier, we have collected camera data from Nao robot on behalf of you and saved the data in the form of color images. Click here to download. The image names represent the depth of the ball from Nao robot in centimeters. -We will release the test dataset 48 hours before the deadline i.e. 11:59:59PM, Sunday, September 20. Test images are available here to download

Problem Statement

  1. Write MATLAB code to cluster the orange ball using Single Gaussian [30 points]
  2. Write MATLAB code to cluster the orange ball using Gaussian Mixture Model [40 points] and estimate the distance to the ball [20 points]. Also, plot all the GMM ellipsoids [10 points].

You are NOT allowed to use any built-in MATLAB function(s) like fitgmdist() or gmdistribution.fit() for GMM. To help you with code implementation, we have given the pseudocode :-)

Video Lecture

 Nao robot demo

Submission Guidelines

If your submission does not comply with the following guidelines, you’ll be given ZERO credit

File tree and naming

Your submission on Canvas must be a zip file, following the naming convention YourDirectoryID_proj1.zip. For example, xyz123_proj1.zip. The file must have the following directory structure.

YourDirectoryID_proj1.zip.

  • train_images/.
  • test_images/.
  • results/.
  • gaussian.m (For Single Gaussian)
  • GMM.m
  • trainGMM.m
  • testGMM.m
  • measureDepth.m
  • plotGMM.m
  • report.pdf

Report

For each section of the project, explain briefly what you did, and describe any interesting problems you encountered and/or solutions you implemented. You must include the following details in your writeup:

  • Your choice of color space, initialization method and number of gaussians in the GMM
  • Explain why GMM is better than single gaussian
  • Present your distance estimate and cluster segmentation results for each test image
  • Explain strengths and limitations of your algorithm. Also, explain why the algorithm failed on some test images

As usual, your report must be full English sentences, not commented code. There is a word limit of 1500 words and no minimum length requirement

Collaboration Policy

You are encouraged to discuss the ideas with your peers. However, the code should be your own, and should be the result of you exercising your own understanding of it. If you reference anyone else’s code in writing your project, you must properly cite it in your code (in comments) and your writeup. For the full honor code refer to the CMSC426 Fall 2020 website.