32
CSC508 1 Recap

CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

Embed Size (px)

Citation preview

Page 1: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 1

Recap

Page 2: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 2

Low Level Vision

• Input– Image sensor data

• Processing – Neighborhood operators– Mathematical operators– Local contextual operators

• Output– Pixel based features

Page 3: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 3

Mid Level Vision

• Input– Pixel based features

• Processing – Statistical operators– Mathematical operators– Global contextual operators

• Output– Objects

Page 4: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 4

Mid-Level Vision

Page 5: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

Intensity Region Segmentation

CSC508 5

Page 6: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 6

Homogeneous Intensity Regions

• Areas of constant intensity within the image

• May represent – Objects– Regions of interest

• Computed by [one method among many]– Binarization– Connected component analysis

Page 7: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 7

Binarization (revisited)

Original Gray Level Image Binary Image

Page 8: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 8

Binarization (revisited)

Page 9: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 9

Region Formation

Original Gray Level Image Marked Region Image

1

2

34

Page 10: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 10

Boundary Information

Original Gray Level Image Region Boundary Image

Page 11: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 11

Finding Regions viaConnected Component Analysis

• In the input image the intensity of each region may be arbitrary

• In the binarized image the intensity of each region is 255 (maximum, or at least different from the background)

• The goal of connected component analysis is to “label” the pixels of each connected region with a value unique to that region

Page 12: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 12

Connected Component Analysis

• A simple recursive “flood-fill” algorithm will do the trick but…– It is slow– A large object will overflow the stack (memory

intensive)

• Smarter algorithms can be found in the computer graphics, graph theory, and image processing literature

Page 13: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 13

Connected Component Analysis

• One algorithm works as follows:– Pass 1:

• Assign labels to each object pixel

• Keep track of neighboring labels that belong to the same object

– Pass 2:• Rectify associations

• Pass 2 is somewhat complex and comes from a language parsing algorithm – I won’t describe the details here

Page 14: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 14

Connected Component Analysis

Original Gray Level Image Marked Region Image

1

2

34

Page 15: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 15

Connected Component Analysis

• Note that this image is “ideal”– You might expect images as such in a

manufacturing environment

• In less than ideal cases objects may get broken up or merged by thin lines, etc.– Correction can be made through the use of Morphological operators

• Erosion• Dilation

– More on Morphological operators next week

Page 16: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 16

Boundary Extraction

• Once you have identified regions it is [conceptually] simple to extract their boundaries– Find the upper-left most pixel of the region

– “Walk around” the region always keeping it to your right

– Keep track of the directions you step along the way (north, south, east, or west)

– Stop when you return back to the beginning

• This creates a chain-code of the region boundary• From the chain-code you can compute the perimeter

length and other descriptors

Page 17: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 17

Boundary Chain-Code

• “*” marks the starting point (upper-left most pixel of the region)

• Resultant chain-code is NEEESESSSWSSWSWWWWNNNNEESENWN

• Resultant perimeter is 30

N E E E* S EN S

N E E N SN S E W SN SN W SWWWW S

E/W

Page 18: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

Region Description

CSC508 18

Page 19: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 19

Object Description

• Now that we have identified objects we need a way to describe them that will facilitate recognition

Page 20: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 20

Moments

• A set of descriptors for representing the shape of an object

• Typically applied to an identified region but may be used with gray-level

Page 21: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 21

Discrete Case

• Moment of an region (general definition)

• Central moments

jifi j

qp

pq jim ,

jifi j

qp

pq yjxi ,

jif ,

mm

mm yx

00

01

00

10 , (Object centroid)

0 if not in region1 if in region

Page 22: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 22

Central Moments

• First few central moments:

y

x

yx

mmmm

m

m

010202

102020

001111

0110

0000

0

Page 23: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 23

Moment Features

• Centroids (average x and y locations)

• Principle axis orientation

mm

mm yx

00

01

00

10 ,

0220

110.2

arctan*5.0

Page 24: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 24

Convex Hull

• Another useful shape descriptor

• The smallest convex border encasing the object– Think of stretching a rubber band around the

outside of the object and letting it wrap around it– This will be the convex hull

• Input to the algorithm is a set of points– These are the boundary points found previously

Page 25: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 25

Region Descriptors

• Region: 1– Area: 27753.0

– xBar: 171.26

– yBar: 131.89

– theta: -32.87

– perimeter: 1098

• Convex Hull– Perimeter: 812

Page 26: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 26

Region Descriptors

• Region: 2– Area: 10390.0

– xBar: 230.82

– yBar: 252.99

– theta: 87.51

– perimeter: 580

• Convex Hull– perimeter: 515

Page 27: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 27

Region Descriptors

• Region: 3– Area: 8049.0

– xBar: 362.24

– yBar: 223.76

– theta: -6.62

– perimeter: 411

• Convex Hull– perimeter: 322

Page 28: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 28

Region Descriptors

• Region: 4– Area: 11203.0

– xBar: 357.98

– yBar: 378.14

– theta: -27.80

– perimeter: 648

• Convex Hull– perimeter: 520

Page 29: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 29

Region Descriptors

• Region: 5– Area: 14880.0

– xBar: 92.5

– yBar: 366.5

– theta: 0.0

– perimeter: 492

• Convex Hull– perimeter: 484

Page 30: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 30

Other Features

• Average Intensity• Circularity or Compactness

a

p2

p: perimeter, a: area

Page 31: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 31

Things To Do

• Reading for Next (few) Week(s)– Chapter 14 – Segmentation by Clustering

• We’ll consider various clustering methods

– Chapter 15 – Segmentation by Models• We’ll analyze the Hough Transform

Page 32: CSC508 1 Recap. CSC508 2 Low Level Vision Input –Image sensor data Processing –Neighborhood operators –Mathematical operators –Local contextual operators

CSC508 32

Things To Do• Homework

– Convex Hull• Find an algorithm for computing the convex hull of a set of points• Describe the algorithm in words• Test the code

– Boundary Extraction• Write the code to trace the boundary (chain code) of a specified region• Print out the chain code symbols (start pixel row, column followed by a sequence of N E W S directions)• Test the code

– Moments• Code the μ00, μ10, μ01, μ11, μ20, μ02 moments

• Test the code

• You may write in any programming language you choose• Deliverables:

– Zipped images in email– Email the source code to [email protected] with the subject line

CSC508 PROGRAM 3• Due beginning of class in two weeks

– (late assignments will be penalized 10%)– I will post test images