You are on page 1of 67

Objective of Computer Vision

The field of computer vision can


be divided into two areas
Image enhancement
Image analysis
Here we concentrate on fast methods typical for robot soccer and robot
theatre applications

Binary image
processing
Image with two gray levels 0 and 1
It contains the basic terms and
concepts used in machine vision.
Its techniques are used in all aspects
of a vision system.
Small memory requirements
Fast execution time

Gray level image vs. binary image

Image Enhancement

Point Operations

Region and
segmentation

Region (
)
A subset of an image
Segmentation
Grouping of pixels into regions such
that

Thresholding

Thresholding

Thresholding :
A method to convert a gray scale image into a
binary image for object-background separation
: Thresholded gray image
Obtained using a threshold T for the original
gray image
.
: Binary image
Equivalent to

Three

types of thresholding

where Z is a set of which elements


are integer-valued intervals.

Original image and its histogram

Thresholding

Histogram Equalization
H

Vision System

of Soccer Robot

Image notation for soccer

Image : a two-dimensional array of pixels

Pixel a[i, j]

properties
In

many cases, some simple features


of regions are useful to:
determine the locations of objects,
and to recognize objects.

Geometric

properties:

Size
Position
Orientation

Size and position

Given an m x n binary image,


Size (area) A : zero-order moment
Total size is number of
black dots
Position

: the center of area


Average in x

Average in y

Example

How to calculate line


orientation?
Step 1: calculate a,b,c coefficients
The

center of object :

Let

By

the least-squares fit of the line,

Step 2: calculate angle, line orientation

removal

It can effectively remove noise after component


algorithm labeling.
If objects of interest have sizes greater than T, all
components below T are removed by changing the
corresponding pixels values to 0.

A noisy binary image and the resulting image after size filtering (T = 10)

How to get
the position and angle of robot

Get frame-grabber, color CCD camera and computer.


Understand how you can read the image data from framegrabber.
Find the position of a colored object in 2-D image.
Determine the robot uniform with two colored objects
Calculate the position and angle of the robot from the
positions of two colored objects.

Position of colored object


1. Setting of ranges for YUV
[Ymin,Ymax], [Umin,Umax], [Vmin, Vmax]
2. Thresholding
3. Labeling (grouping)
4. Size filtering (noise elimination)
5. Finding the center of a colored object

Calculations for
soccer field

Finding robots in the


field

Robot position and heading


This cross sign is
easy to recognize

Robot color and team color

This slide explains labeling robots and teams

Window tracking method

Processing only the data within a small window


Getting a fast vision processing

Orientation

Orientation from of the axis of elongation

This is called line orientation

Line equation

: the minimum distance between the line and origin


: the angle from x-axis to the line

The distance, d, from any (x, y) within the object to the


line :
which satisfies

Minimize

Our task is to find values of angle theta and rho for which this formula is minimum.
This provides best fit to line equation

Given is object. Find its line orientation


The

center of object :

Let

1.

Calculate center

2.

Calculate a, b, and c.

By

the least-squares fit of the line,


1.

Calculate center

2.

Calculate a, b, and c.

3.

Calculate theta

algorithms

Several definitions
Neighbors
4-neighbors (4-connected)

8-neighbors (8-connected)

Path

A sequence of neighbors
Foreground

The set of all unity valued pixels in an image


Connectivity

is said to be connected to
if there
A pixel
is a path from
to
consisting entirely of pixels of
.

Connected components
A set of pixels in which each pixel is connected to all
other pixels.

labeling

Component labeling algorithm


It

finds all connected components in an image and


assigns a unique label to all the points in a component.

One

of the most common operations in machine vision

Recursive connected components algorithm

Sequential connected components algorithm

The points in a connected component form a candidate


region for an object.

An image and its connected component


image

Recursive algorithm for


connected component labeling

Recursive connected components algorithm


1.

Scan the image to find an unlabeled unity


valued pixel and assign it a new label L.

2. Recursively assign a label L to all its unity


valued neighbors.
3. Stop if there are no more unlabeled unity
valued pixels.
4. Go to step 1.

Pseudo code for the recursive algorithm

Sequential algorithm for

connected component labeling

Sequential connected components algorithm using 4connectivity


1.
Scan the image from left to right and top to bottom.
2. If the pixel is unity valued , then
(a) If only one of its upper or left neighbors has a label,
then copy the label.
(b) If both have the same label, then copy the same
label.
(c) If both have different labels, then copy the upper
pixels label and enter the labels in an equivalence
table as equivalent labels.

Sequential algorithm for connected component


labeling continued
(d) Otherwise assign a new label to this pixel and
enter this label in the equivalence table.
3. If there are more pixels to consider, then go to step
2.
4. Find the lowest label for each equivalent set in the
equivalence table.
5. Scan the picture. Replace each label by the lowest
label in its equivalent set.

Pseudo code for step 2 in the sequential


algorithm

An example for the sequential algorithm

Digital Geometry
I(i,j)

(0,0)

Picture Element or Pixel

32
Neighborhood
Connectedness
Distance Metrics

Pixel value I(I,j) =

0,1 Binary Image


0 - K-1 Gray Scale Image
Vector: Multispectral Image

Connected Components
Binary image with multiple 'objects'
Separate 'objects' must be labeled individually

6 Connected Components

Finding Connected Components

Two points in an image are 'connected' if a path can be


found for which the value of the image function is the same
all along the path.

P1

P2
P4
P3

P1

connected to

P2

P3

connected to

P4

P1

not connected to

P3 or P4

P2

not connected to

P3 or P4

P3

not connected to

P1 or P2

P4

not connected to

P1 or P2

Algorithm
Pick any pixel in the image and assign it a label
Assign same label to any neighbor pixel with the
same value of the image function
Continue labeling neighbors until no neighbors
can be assigned this label
Choose another label and another pixel not
already labeled and continue
If no more unlabeled image points, stop.

Who's my neighbor?

Example
Image

'Label' Image

Lab. Im. - 1st Component

Lab. Im. - 2nd Component

Lab. Im. - 4th Component

Final Labeling

Lab. Im. - 3rd Component

Neighbor

Consider the definition of the term 'neighbor'


Two common definitions:

Four Neighbor

Eight Neighbor

Consider what happens with a closed curve.


One would expect a closed curve to partition the plane into two connected regions.

Alternate Neighborhood Definitions

4-neighbor
connectedness

8-neighbor
connectedness

Neither neighborhood definition satisfactory!

Possible Solutions

Use 4-neighborhood for object and 8-neighborhood


for background
requires

a-priori knowledge about which pixels are object


and which are background

Use a six-connected neighborhood:

Digital Distances

Alternate distance metrics for digital images


j

Euclidean Distance

= (i-n) 2 + (j-m) 2

City Block Distance

= |i-n| + |j-m|

Chessboard Distance

= max[ |i-n|, |j-m| ]

Connected Components /
Image Labeling
Goal: To find clusters of pixels that are similar and
connected to each other
How it works:

Assign

a value to each pixel


Define what similar values mean
e.g., 10 +/- 2
Determine

if like pixels are connected

Connected Components /
Image Labeling
4- connected

8-connected

Component Labeling

Definitions
Neighbors
4-neighbors (4-connected)
8-neighbors (8-connected)

Connected

components

A set of pixels in which each pixel is connected to all


other pixels.

An image and its


connected component
image

Connected Components /
Image Labeling
1 1 1 1 1 1

A A A A A A

1 0 0 1 1 1

A B B A A A

1 1 1 0 1 1

A A A C A A

1 2 2 0 0 1

A D D C C A

1 2 2 0 0 1

A D D C C A

Connected Components /
Image Labeling
1 1 1 1 1 1

A A A A A A

1 0 0 1 1 1

A B B A A A

1 1 1 0 1 1

A A A B A A

1 2 2 0 0 1

A C C B B A

1 2 2 0 0 1

A C C B B A

Binary Image Processing


After thresholding an image, we want to know something about the
regions found ...

How many objects are in the image?


Where are the distinct object components?
Cleaning up a binary image?
Recognizing objects through their response to image masks
Describing the shape/structure of 2d objects
Pattern

Counting Objects
external corners

internal corners

Connected Component Labeling


0

Connected Component Labeling


0

Algorithm
1

1. Image is A. Let A = -A;


2. Start in upper left and work L to
R, Top to Bottom, looking for an
unprocessed (-1) pixel.

3. When one is found, change its


label to the next unused integer.
Relabel all of that pixels
unprocessed neighbors and their
neighbors recursively.
4. When there are no more
unprocessed neighbors, resume
searching at step 2 -- but do so where
you left off the last time.

Summary

A simple procedure to get robot position and heading:


Thresholding,
labeling,
size filtering,
center of area calculation,
window tracking method
Trade-off between:

real-time vision processing


and robustness

Specific frame grabber required

Problems for students


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Binary image processing and basic operations on binary


images.
List and explain briefly operations used in image enhancement
What are point operations. Give examples.
Explain contrast stretching operation. Write simple program.
Definition of image segmentation.
Segmentation based on thresholding
Types of thresholding. Give examples of each with practical
applications.
The general idea of histogram equalization. Show examples.
Geometric positions of objects in robot soccer.
Size and position of objects in robot soccer.

Problems for students


11. How to calculate quickly the center of the mass of an
object?
12. How to calculate line orientation?
13. Describe and program size filter for noise removal.
Emphasize speed not quality.
14. How to calculate position and angle of a robot using
the ceiling camera?
15. Use of colors in vision of robot soccer.
16. Window tracking methods in robot soccer.
17. Use of Line orientation in robot soccer.

Problems for students


18.
19.
20.
21.
22.
23.

24.
25.
26.

Binary image processing algorithms in robot soccer.


Component labeling
Recursive connected components algorithm
Sequential connected components algorithm
Algorithms to find connected components.
Alternate definitions of neighbors in connected
components algorithms. Applications in robot
soccer.
The concept of digital distance and its use.
Connected component labeling in binary images.
Counting objects. What are applications in robot
soccer?

You might also like