2016-07-20 61K 61 0 0

##### Description

Computer Vision Lecture 11: The Hough Transform. 1. Fitting Curve Models to Edges. Most contours can be well described by combining several . ID: 412898

**Embed code:**

2016-07-20 61K 61 0 0

Computer Vision Lecture 11: The Hough Transform. 1. Fitting Curve Models to Edges. Most contours can be well described by combining several . ID: 412898

2020 © DocSlides.com.

## Download this presentation

DownloadNote - The PPT/PDF document "October 8, 2013" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.

## Presentations text content in October 8, 2013

October 8, 2013

Computer Vision Lecture 11: The Hough Transform

1

Fitting Curve Models to Edges

Most contours can be well described by combining several

“round”

elements (e.g., circular arcs) and

“straight”

elements (straight lines).

First we will study a method for fitting connected

straight lines to edge data.

Then we will discuss how to fit a circular arc to a

given set of points.

Later we will apply a very general and sophisticated

method (the Hough transform) for fitting straight

lines to edge points.

Slide2October 8, 2013

Computer Vision Lecture 11: The Hough Transform

2

Fitting Curve Models to Edges

Assume that you found edge data that seem to belong to one contour.

The shape of these data is somewhat non-linear, but you would like to use multiple connected straight lines (

polylines

) to describe the contour.

Then you can use the technique of

polyline splitting

.

If you have an

open contour

, start with a straight line connecting the two (estimated) end points.

If you have a

closed contour

, start with an appropriate polygon (a rectangle usually works well).

Slide3October 8, 2013

Computer Vision Lecture 11: The Hough Transform

3

Fitting Polylines to Edges

Let us look at an example for an open contour:

First, use a single straight line to connect the end points.

Then find the edge point with the greatest distance from this straight line.

Slide4October 8, 2013

Computer Vision Lecture 11: The Hough Transform

4

Fitting Polylines to Edges

Let us look at an example for an open contour:

Then split the straight line in two straight lines that meet at this point.

Now repeat this process with each of the two new lines.

Slide5October 8, 2013

Computer Vision Lecture 11: The Hough Transform

5

Fitting Polylines to Edges

Let us look at an example for an open contour:

Recursively repeat this process until the maximum distance of any point to the polyline falls below a certain threshold.

The result is the fitting polyline.

Slide6October 8, 2013

Computer Vision Lecture 11: The Hough Transform

6

Fitting Circular Arcs to Edges

Now we will discuss how to fit a

circular arc

to a set of edge points.

Consider three points

p

1

= (x

1

, y

1

),

p

2

= (x

2

, y

2

), and

p

3

= (x

3

, y

3

), which are pairwise different and do not lie on the same straight line.

Then we already know that there is

exactly one circle

that goes through all of these points.

We will now describe how to find this circle, i.e., determine its center and radius.

Slide7October 8, 2013

Computer Vision Lecture 11: The Hough Transform

7

Fitting Circular Arcs to Edges

The points (x, y) of a circle centered at (x

0

, y

0

) and with radius r are given by the following equation:

(x – x

0

)

2

+ (y – y

0

)

2

= r

2

.

To simplify the computation, we will use a coordinate system whose origin is in point

p

1

= (x

1

, y

1

).

In the

new coordinate system

we have:

x’ = x – x

1

y’ = y – y

1

(x’ – x’

0

)

2

+ (y’ – y’

0

)

2

= r

2

.

Slide8October 8, 2013

Computer Vision Lecture 11: The Hough Transform

8

Fitting Circular Arcs to Edges

Since the equation (x’ – x’

0

)

2

+ (y’ – y’

0

)

2

= r

2

is true for all points (x’, y’) on the circle, it must also apply to

p

1

,

p

2

, and

p

3

.

Substituting (x’, y’) with

p

1

,

p

2

, and

p

3

gives us:

x’

0

2

+ y’

0

2

- r

2

= 0

x’

2

2

- 2x’

2

x’

0

+ x’

0

2

+ y’

2

2

– 2y’

2

y’

0

+ y’

0

2

- r

2

= 0

x’

3

2

- 2x’

3

x’

0

+ x’

0

2

+ y’

3

2

– 2y’

3

y’

0

+ y’

0

2

- r

2

= 0

Subtract the first equation from the other two:

2x’

2

x’

0

+ 2y’

2

y’

0

=

x’

2

2

+ y’

2

2

2x’

3

x’

0

+ 2y’

3

y’

0

=

x’

3

2

+ y’

3

2

Slide9October 8, 2013

Computer Vision Lecture 11: The Hough Transform

9

Fitting Circular Arcs to Edges

This gives us

two

linear equations with

two

unknown variables x’

0

and y’

0

.

From these we can easily determine the

center

(x’

0

, y’

0

) of the circle.

The

radius

of the circle can then be determined by:

r

2

= x’

0

2

+ y’

0

2

.

We simply add (x

1

, y

1

) to (x’

0

, y’

0

) to get the center (x

0

, y

0

) of the circle in the original coordinate system.

Then we have completely determined the circle going through points

p

1

,

p

2

, and

p

3

.

Slide10October 8, 2013

Computer Vision Lecture 11: The Hough Transform

10

Fitting Circular Arcs to Edges

In practice we usually have

more

than three edge points through which we want to fit a circular arc.

One possible way to do the fitting in such a case is to take the two end points of those edges as points

p

1

and

p

2

.

Then we successively take every other edge point as point

p

2

and fit a circular arc to each generated set of points

p

1

,

p

2

, and

p

3

.

In each case, we measure the

deviation

of the arc from all edge points.

The arc with

minimum deviation

is chosen as the curve model for these edges.

Slide11October 8, 2013

Computer Vision Lecture 11: The Hough Transform

11

Hough Transform

The

Hough transform

is a very general technique for feature detection.

In the present context, we will use it for the

detection of straight lines

as contour descriptors in edge point arrays.

We could use other variants of the Hough transform to detect circular and other shapes.

We could even use it outside of computer vision, for example in data mining applications.

So understanding the Hough transform may benefit you in many situations.

Slide12October 8, 2013

Computer Vision Lecture 11: The Hough Transform

12

Hough Transform

The Hough transform is a

voting mechanism

.

In general, each point in the input space votes for several combinations of parameters in the output space.

Those combinations of parameters that receive the most votes are declared the

winners

.

We will use the Hough transform to fit a straight line to edge position data.

To keep the description simple and consistent, let us assume that the input image is continuous and described by an x-y coordinate system.

Slide13October 8, 2013

Computer Vision Lecture 11: The Hough Transform

13

Hough Transform

A straight line can be described by the equation:

y = mx + c

The variables x and y are the parameters of our

input space

, and m and c are the parameters of the

output space

.

For a given value (x, y) indicating the position of an edge in the input, we can determine the possible values of m and c by rewriting the above equation:

c = -xm + y

You see that this represents a straight line in m-c space, which is our output space.

Slide14October 8, 2013

Computer Vision Lecture 11: The Hough Transform

14

Hough Transform

Example: Each of the three points A, B, and C on a straight line in input space are transformed into straight lines in output space.

A

B

C

A

B

C

0

x

y

input space

0

m

c

output space

The parameters of their crossing point (which would be the winners) are the parameters of the straight line in input space.

winner parameters

Slide15October 8, 2013

Computer Vision Lecture 11: The Hough Transform

15

Hough Transform

Hough Transform Algorithm:

Quantize input and output spaces appropriately.

Assume that each cell in the parameter (output) space is an accumulator (counter). Initialize all cells to zero.

For each point (x, y) in the image (input) space, increment by one each of the accumulators that satisfy the equation.

Maxima in the accumulator array correspond to the parameters of model instances.

Slide16October 8, 2013

Computer Vision Lecture 11: The Hough Transform

16

Hough Transform

The Hough transform does

not

require

preprocessing

of edge information such as ordering, noise removal, or filling of gaps.

It simply provides an

estimate

of how to best fit a straight line (or other curve model) to the available edge data.

If there are

multiple straight lines

in the image, the Hough transform will result in multiple peaks. You can search for these peaks to find the parameters for all the corresponding straight lines.

Slide17October 8, 2013

Computer Vision Lecture 11: The Hough Transform

17

Improved Hough Transform

Here is some practical advice for doing the

Hough transform

(e.g., for some future assignment).

The m-c space described on the previous slides is simple but not very practical. It cannot represent vertical lines, and the closer the orientation of a line gets to being vertical, the greater is the change in m required to turn the line significantly.

We are going to discuss an alternative output space that requires a bit more computation but avoids the problems of the m-c space.

Slide18October 8, 2013

Computer Vision Lecture 11: The Hough Transform

18

Improved Hough Transform

As we said before, it is problematic to use m (slope) and c (intercept) as an output space.

Instead, it is a good idea to use the

orientation

and

length d

of the

normal

of a straight line to describe it.

The normal n of a straight line l is perpendicular to l and connects l with the origin of the coordinate system.

The range of

is from 0 to 360, and the range of d is from 0 to the length of the image diagonal.

Note that we can skip the

interval

from

180

to

270

, because it would require a negative d.

Let us assume that the image is 450×450 units large.

Slide19October 8, 2013

Computer Vision Lecture 11: The Hough Transform

19

Improved Hough Transform

The parameters and d form the output space for our Hough transform.

line to be described

d

0

450

y

input space

x

450

0

representation of same line in

output space

0

360

636

output space

d

0

Slide20October 8, 2013

Computer Vision Lecture 11: The Hough Transform

20

Improved Hough Transform

For any edge point (x

0

, y

0

) indicated by our

Sobel

edge detector, we have to

find all parameters

and d

for those straight lines that pass through

(x

0

, y

0

)

.

We will then

increase the counters

in our output space located at every (, d) by the edge strength, i.e., the magnitude provided by the

Sobel

detector.

This way we will find out which parameters (, d) are most likely to indicate the clearest lines in the image.

But first of all, we have to discuss

how to find

all the parameters (, d) for a given point

(x

0

, y

0

).

Slide21October 8, 2013

Computer Vision Lecture 11: The Hough Transform

21

Improved Hough Transform

But how can we compute parameter d for each value of ? Idea: Rotate (x0, y0) around origin by - so that it lands on x-axis.Then the x-coordinate of the rotated point is the value of d.

1

d

1

2

d

2

(x

0

, y

0

)

3

d

3

0

450

y

x

450

0

By varying from 0 to 360 we can find all lines crossing (x

0

, y

0

):

Slide22Slide23

Slide24