13
K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Embed Size (px)

Citation preview

Page 1: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

K-Means Clustering

CMPUT 615

Applications of Machine Learning in Image Analysis

Page 2: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

K-means Overview

• A clustering algorithm• An approximation to an NP-hard combinatorial

optimization problem• It is unsupervised• “K” stands for number of clusters, it is a user

input to the algorithm• From a set of data points or observations (all

numerical), K-means attempts to classify them into K clusters

• The algorithm is iterative in nature

Page 3: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

K-means Details

• X1,…, XN are data points or vectors or observations

• Each observation will be assigned to one and only one cluster

• C(i) denotes cluster number for the ith observation

• Dissimilarity measure: Euclidean distance metric

• K-means minimizes within-cluster point scatter:

K

k kiCkik

K

k kiC kjCji mxNxxCW

1 )(

2

1 )( )(

2

2

1)(

where mk is the mean vector of the kth cluster

Nk is the number of observations in kth cluster

Page 4: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

K-means Algorithm

• For a given assignment C, compute the cluster means mk:

• For a current set of cluster means, assign each observation as:

• Iterate above two steps until convergence

.,,1,)(: KkN

x

mk

kiCii

k

NimxiCKk

ki ,,1,minarg)(1

2

Page 5: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Image Segmentation Results

An image (I) Three-cluster image (J) on gray values of I

Matlab code:

I = double(imread(‘…'));

J = reshape(kmeans(I(:),3),size(I));

Note that K-means result is “noisy”

Page 6: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Summary

• K-means converges, but it finds a local minimum of the cost function

• Works only for numerical observations (for categorical and mixture observations, K-medoids is a clustering method)

• Fine tuning is required when applied for image segmentation; mostly because there is no imposed spatial coherency in k-means algorithm

• Often works as a staring point for sophisticated image segmentation algorithms

Page 7: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Otsu’s Thresholding Method

• Based on the clustering idea: Find the threshold that minimizes the weighted within-cluster point scatter.

• This turns out to be the same as maximizing the between-class scatter.

• Operates directly on the gray level histogram [e.g. 256 numbers, P(i)], so it’s fast (once the histogram is computed).

(1979)

Page 8: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Otsu’s Method

• Histogram (and the image) are bimodal.

• No use of spatial coherence, nor any other notion of object structure.

• Assumes uniform illumination (implicitly), so the bimodal brightness behavior arises from object appearance differences only.

Page 9: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

The weighted within-class variance is:

w2 (t) q1(t)1

2 (t) q2 (t) 22(t)

Where the class probabilities are estimated as:

q1(t) P(i)i 1

t

q2 (t) P(i)it 1

I

1(t) iP(i)

q1(t)i 1

t

2( t) iP( i)

q2(t )i t1

I

And the class means are given by:

Page 10: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Finally, the individual class variances are:

12( t) [i 1(t)]

2 P( i)

q1(t)i1

t

22( t) [i 2(t)]

2 P(i)

q2 (t)it1

I

Now, we could actually stop here. All we need to do is just run through the full range of t values [1, 256] and pick the value that minimizes .

But the relationship between the within-class and between-class variances can be exploited to generate a recursion relation that permits a much faster calculation.

w2 (t)

Page 11: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Finally...

q1(t 1) q1(t) P(t 1)

1(t 1) q1(t)1 (t) (t 1)P(t 1)

q1( t 1)

q1(1) P(1) 1(0) 0;

2( t 1) q1(t 1)1(t 1)

1 q1(t 1)

Initialization...

Recursion...

Page 12: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

After some algebra, we can express the total variance as...

2 w2 (t) q1(t)[1 q1 (t)][1(t) 2 (t)]2

Within-class, from before Between-class,

Since the total is constant and independent of t, the effect of changing the threshold is merely to move the contributions of the two terms back and forth.

So, minimizing the within-class variance is the same as maximizing the between-class variance.

The nice thing about this is that we can compute the quantities in recursively as we run through the range of t values.

B2 (t)

B2 (t)

Page 13: K-Means Clustering CMPUT 615 Applications of Machine Learning in Image Analysis

Result of Otsu’s Algorithm

An image Binary imageby Otsu’s method

0 50 100 150 200 250 3000

0.01

0.02

0.03

0.04

0.05

0.06

Gray level histogram

Matlab code:

I = double(imread(‘…'));

I = (I-min(I(:)))/(max(I(:))-min(I(:)));

J = I>graythresh(I);