Top Banner
CSC508 1 Recap
32

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

Dec 30, 2015

Download

Documents

Corey Alexander
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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