CS9629 Homework Assignment #1

K-means and mean-shift

Overview

SLIC results
SLIC superpixels [Achanta et al., PAMI 2011]
This homework covers standard clustering methods (K-means and mean-shift) in the context of image segmentation. These methods are often used for color quantization or for computing superpixels. Generalization of K-means and mean-shift are also commonly integrated into more advanced segmentation methods.

You can start from C++ visual studio K-means project implementing an interface that allows to load images, enter seeds, play with parameters, switch between RGB and RGBXY features, and save your results as images. To make this into a working algorithm, just implement functions Kmeans and init_means in file Kmeans.cpp. You can also use Python. In particular, you can start from MyKmeans Jupiter notebook posted here. If you are using Jupiter notebooks than you can combine your code and report/discussion (as markdown cells) in one notebook. (save and submit .html version of the notebook in addition to the notebook file .ipynb).

Specific Goals

What to submit

In addition to zipped code, submit a pdf file with your report (no more than 1.5 pages of text, but any number of images) presenting your experiments and discussion. If you are using Python Jupiter notebooks combining your code and report/discussion (as markdown cells) then save and submit .html version of the notebook (with all figures) in addition to the notebook file .ipynb.

The report should be submitted electronically via OWL. The project report and code should be your independent effort.