Notes
Slide Show
Outline
1
Announcements
  • vote for Project 3 artifacts
  • Project 4 (due next Wed night)
    • Questions?
    • Late day policy:  everything must be turned in by next Friday
2
Image Segmentation
  • Today’s Readings
    • Shapiro, pp. 279-289
    • http://www.dai.ed.ac.uk/HIPR2/morops.htm
      • Dilation, erosion, opening, closing

3
From images to objects
  • What Defines an Object?
    • Subjective problem, but has been well-studied
    • Gestalt Laws seek to formalize this
      • proximity, similarity, continuation, closure, common fate
      • see notes by Steve Joordens, U. Toronto
4
Image Segmentation
  • We will consider different methods
  • Already covered:
    • Intelligent Scissors (contour-based)
    • Hough transform (model-based)
  • This week:
    • K-means clustering (color-based)
      • Discussed in Shapiro
    • Normalized Cuts (region-based)
      • Forsyth, chapter 16.5 (supplementary)
5
Image histograms
  • How many “orange” pixels are in this image?
    • This type of question answered by looking at the histogram
    • A histogram counts the number of occurrences of each color
      • Given an image


      • The histogram is defined to be



      • What is the dimension of the histogram of an RGB image?
6
What do histograms look like?
  • Photoshop demo
7
Histogram-based segmentation
  • Goal
    • Break the image into K regions (segments)
    • Solve this by reducing the number of colors to K and mapping each pixel to the closest color
      • photoshop demo
8
Histogram-based segmentation
  • Goal
    • Break the image into K regions (segments)
    • Solve this by reducing the number of colors to K and mapping each pixel to the closest color
      • photoshop demo
9
Clustering
  • How to choose the representative colors?
    • This is a clustering problem!
10
Break it down into subproblems
  • Suppose I tell you the cluster centers ci
    • Q:  how to determine which points to associate with each ci?
11
K-means clustering
  • K-means clustering algorithm
    • Randomly initialize the cluster centers, c1, ..., cK
    • Given cluster centers, determine points in each cluster
      • For each point p, find the closest ci.  Put p into cluster i
    • Given points in each cluster, solve for ci
      • Set ci to be the mean of points in cluster i
    • If ci have changed, repeat Step 2


  • Java demo:  http://www.cs.mcgill.ca/~bonnef/project.html


  • Properties
    • Will always converge to some solution
    • Can be a “local minimum”
      • does not always find the global minimum of objective function:

12
Cleaning up the result
  • Problem:
    • Histogram-based segmentation can produce messy regions
      • segments do not have to be connected
      • may contain holes


  • How can these be fixed?
13
Dilation operator:
14
Dilation operator
  • Demo
    • http://www.cs.bris.ac.uk/~majid/mengine/morph.html


15
Erosion operator:
16
Erosion operator
  • Demo
    • http://www.cs.bris.ac.uk/~majid/mengine/morph.html


17
Nested dilations and erosions
  • What does this operation do?
18
Nested dilations and erosions
  • What does this operation do?
19
Nested dilations and erosions
  • What does this operation do?
20
How about doing this automatically?
21
Images as graphs
  • Fully-connected graph
    • node for every pixel
    • link between every pair of pixels, p,q
    • cost cpq for each link
      • cpq measures similarity
        • similarity is inversely proportional to difference in color and position
        • this is different than the costs for intelligent scissors
22
Segmentation by Graph Cuts
  • Break Graph into Segments
    • Delete links that cross between segments
    • Easiest to break links that have high cost
      • similar pixels should be in the same segments
      • dissimilar pixels should be in different segments

23
Cuts in a graph
  • Link Cut
    • set of links whose removal makes a graph disconnected
    • cost of a cut:
24
But min cut is not always the best cut...
25
Cuts in a graph
26
Interpretation as a Dynamical System
  • Treat the links as springs and shake the system
    • elasticity proportional to cost
    • vibration “modes” correspond to segments
27
Interpretation as a Dynamical System
  • Treat the links as springs and shake the system
    • elasticity proportional to cost
    • vibration “modes” correspond to segments
28
Color Image Segmentation
29
Normalize Cut in Matrix Form
  • Can write normalized cut as:
30
Summary
  • Things to take away from this lecture
    • Image histogram
    • K-means clustering
    • Morphological operations
      • dilation, erosion, closing, opening
    • Normalized cuts