# ppt - PRIMA

AI and Robotics

Oct 19, 2013 (4 years and 7 months ago)

120 views

1

Formation et Analyse d’Images

Session 5 and 6

Daniela Hall

24 October 2005

2

Course Overview

Session 1 (19/09/05)

Overview

Human vision

Homogenous coordinates

Camera models

Session 2 (26/09/05)

Tensor notation

Image transformations

Homography computation

Session 3 (3/10/05)

Camera calibration

Reflection models

Color spaces

Session 4 (10/10/05)

Pixel based image analysis

17/10/05 course is replaced by Modelisation surfacique

3

Course overview

Session 5 + 6 (24/10/05) 9:45

12:45

Contrast description

Hough transform

Session 7 (7/11/05)

Kalman filter

Session 8 (14/11/05)

Tracking of regions, pixels, and lines

Session 9 (21/11/05)

Gaussian filter operators

Session 10 (5/12/05)

Scale Space

Session 11 (12/12/05)

Stereo vision

Epipolar geometry

Session 12 (16/01/06): exercises and questions

4

Exercise

build a cheap traffic light
monitoring system. You have
a camera that observes a
traffic light and should emit
events when the light changes
the color. How would you
proceed.

5

Session overview

1.
Contrast description

2.
Hough transform

6

Feature extraction in computer
vision

The goal of feature extraction is

Reduce the amount of information

Simplify the interpretation

Preserve the information necessary for further

The ideal feature extraction alogrithm is invariant

Invariance: the observation is the same independent of
the view point and illumination.

Contours are good candidates for invariant feature
extraction

7

Contrast

Contrast can be caused by

Change in surface orientation (discontinuity in depth)

useful for description of polyhedrical objects

useful to recognize 3D object form

Texture on a surface

independent of surface, can be used to recover the texture

Reflections

depends on view point and illumination

8

Contrast detection process

Image

processing

Image

analysis

image

intermediate

image

representation

image

description

9

Contrast detection methods

Search for extremum in 1
st

derivative

Search for zero crossing in 2
nd

derivative

10

Contrast detection

Step edge

Smoothed

step edge

First derivative

Second derivative

(white pos,

yellow negative)

11

Image processing tools

Let s(i), f(i) be two real discrete signals

s(i) has Ns discrete values on the interval 0<=i<=Smax

f(i) has Nf discrete values on the interval 0<=i<=Fmax

Pmax=min{Smax,Fmax}

s(i)=0 for all i<0, Smax<i

f(i)=0 for all i<0, Fmax<i

The scalar product of s(i) and f(i) is a scalar p

12

Correlation and convolution

Correlation is a scalar product with an offset
k over all values of k.

Convolution is a correlation where one of
the signals is flipped (i
-
k)
-
>(Fmax
-
1)
-
(i
-
k)

13

Contrast detection

Roberst contrast detector

Sobel contrast detector

Difference filters

14

Roberts contrast detector

m1(i,j)= and m2(i,j)=

1
0

0
-
1

0 1

-
1 0

Compute correlation

for n=1,2:

Contrast magnitude

Contrast direction

15

Roberst contrast detector

The detector is very sensitive to high
frequency noise.

This sensitivity can be reduced by a low
pass filtering.

16

Sobel detector

very popular detector (Duda
-
Hart 1972)

m0(i,j)= m90(i,j)=

This filter can be seen as a convolution of
two components:

m0(i,j)= * m90(i,j)= *

1
0
-
1

2
0
-
2

1 0
-
1

1
2 1

0 0 0

-
1
-
2
-
1

1

2

1

-
1 0 1

-
1

0

1

1 2 1

17

Sobel detector

As for Roberst the amplitude and
orientation are computed by:

Compute correlation

for n=1,2:

Contrast magnitude

Contrast direction

18

Examples

Original image

Roberts detector

Sobel detector

Smoothing by

binomial filters7

Difference

filter
-
1 0 1

Difference

filter
-
1 1

19

Contrast detection by derivatives

Steps:

Smoothing: suppression of noise

Computation of gradient magnitude and orientation

Local extremum detection by hysteresis thresholding

Edge segment extraction

20

Smoothing by binomial filters

Binomial filters are the best approximation of a
discrete Gaussian with integer values.

Binomial filters are generated by n convolutions
of [1 1]

Binomial series: The binomial series is composed
of the coefficients of the polynom

21

The binomial series

The coefficients of the binomial series can
be generated by Pascal’s triangle

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 29 56 70 56 29 8 1

Level(n)

0

1

2

3

4

5

6

7

8

Sum

1

2

4

8

16

32

64

128

256

Variance

0

¼

½

¾

1

5/4

6/4

7/4

2

22

Binomial filters

n convolutions of [1 1]

Gain: 2
n

Variance: var{b
n
(m)}=n var{b
1
(m)} = n/4

discrete Gaussian with sigma = 1: 1 4 6 4 1

sigma= 2: 1 8 29 56 70 56 29 8 1

sigma=0.5: 1 2 1

23

Discrete Gaussian filter

discrete Gaussian with sigma = 1: 1 4 6 4 1

Gain: 2
4
=16

G(x,1.0) |0.004|0.054|0.242|0.399|0.242|0.054|0.004|

Example of sampling a 1D Gaussian (sigma=1, R=3) session 4

16 G(x,1.0) |0.064|0.864|3.872|6.384|3.872|0.864|0.064|

24

Contrast detection by derivatives

Steps:

Smoothing: suppression of noise

Computation of gradient magnitude and orientation

Local extremum detection by hysteresis thresholding

Edge segment extraction

25

Difference filters

For a discrete signal lim does not exist

This is equivalent to s(n)*[1/2, 0, ½]

This is equivalent to s(n)*[1,
-
1]

To compute derivatives of a discrete signal, do convolution
with the Gaussian derivative kernel (more details in
session 4)

26

Difference filters

Alternative method to convolution with
Gaussian derivative kernel are the
difference filters.

Smoothing followed by a difference filter is
equivalent to the Sobel operator.

-
1 0 1

-
1

0

1

27

Examples

Original image

Roberts detector

Sobel detector

Smoothing by

binomial filters

Difference

filter
-
1 0 1

Difference

filter
-
1 1

28

Examples

Original image

Roberts detector

Sobel detector

Smoothing by

binomial filters7

Difference

filter
-
1 0 1

Difference

filter
-
1 1

29

Contrast detection by derivatives

Steps:

Smoothing: suppression of noise

Computation of gradient magnitude E(i,j) and direction theta

Local extremum detection and hysteresis thresholding

Edge segment extraction

30

Local extremum detection

Find direction of maximum gradient. Without loss
of generality, let the direction be (1, 0)
T

Check if E(i,j) is a maximum in this direction

This means:

Find contrast points C(i,j) that fulfill

31

Hysteresis thresholding

Problem: some detectors produce weak edges
which should be eliminated.

Solution: hysteresis thresholding

Properties: eliminates weak edges below a low
threshold, but not if they are connected to an edge
above a high threshold.

weak

edge

strong

edge

C(i,j)

C(i,j) after

chaining

32

Hysteresis thresholding

Uses a high and a low threshold

low threshold th0: sensitive to noise, but
produces contour candidates

high threshold th1: indicates strong edges

1.
Compute map F(i,j) with two thresholds
th0, th1

33

Hysteresis filtering

2. Computing connected components of edge
elements

An edge is selected when it contains at least one
strong edge element (with label 2).

Edges consisting of only weak edge elements are

34

Hysteresis filtering

The thresholding and chaining can be
computed in one step.

For each strong edge continue adding (8 or
4) connected pixels with E(i,j)>=th0.

35

Example

original image

Contour

image

Low

threshold

image

High

threshold

image

36

Contrast detection methods

Search for extremum in 1
st

derivative: ok

Search for zero crossing in 2
nd

derivative

37

Contrast detection by 2
nd

derivatives

The Laplacien is a isotropic filter that is used for
the contrast detection.

Lap(i,j)= Lxx(i,j) + Lyy(i,j)

with Lxx(i,j)= I(i,j) * Gxx(sigma)

As for Gaussians there exists a integer
approximation of the Laplacian.

Lxx(i,j) : [ 1
-
1] * [1
-
1] = [
-
1 2
-
1]

Lxx(i,j)+Lyy(i,j):

* + * =

0
-
1 0

-
1 4
-
1

0
-
1 0

0 0 0

0 1 0

0 0 0

-
1 2
-
1

0 0 0

0 1 0

0 0 0

-
1

2

-
1

38

39

Example

image

Lap

Difference

image Lx

Difference

image Ly

40

Example

Difference image Lx

Laplacian

41

Example

image

Lap

Difference

image Lx

Difference

image Ly

42

Contour detection by 2
nd

derivatives

In theorie:

Contours can be detected more precisely using
zero
-
crossing of 2nd derivative.

Sub
-
pixel precision is possible by interpolation.

zero crossing of 2
nd

derivatives produce closed
contours.

In real life:

The zero crossing of the 2
nd

derivative detect
also many small unstable regions.

43

Detection of zero crossing

The extrema of the 1
st

derivative correspond to
zero crossing of the 2
nd

derivative.

To generate a contour image C(i,j) proceed as
follows:

consider 4
-
connected neighbors (N,S,W,E)

44

Detection of zero crossing

For a stabler detection add a term that is
related to the strength of the edge.

Disadvantage: this measure may break a
closed contour. The contours are no longer
closed.

45

Session overview

1.
Contrast description

2.
Hough transform

46

Hough transform

The Hough transform is a standard tool in image analysis
that allows recognition of global patterns in an image space
by recognition of local patterns in a transformed parameter
space.

It is particularly useful when the patterns one is looking for
are sparsely digitized, have ``holes'' and/or the pictures are
noisy.

The basic idea of this technique is to find curves that can
be parameterized like straight lines, polynomials, circles,
etc., in a suitable parameter space.

Hough59

P.V.C. Hough, Machine Analysis of Bubble Chamber Pictures, International Conference on High

Energy Accelerators and Instrumentation, CERN, 1959.

47

Hough transform

Although the transform can be used in higher dimensions
the main use is in two dimensions to find, e.g. straight
lines, centres of circles with a fixed radius, parabolas
y

=
ax
2 +
bx

+
c

with constant
c
, etc.

As an example consider the detection of straight lines in an image. We
assume them parameterized in the form: y=mx+c

Each image point (x,y) gives rise to a certain number of possible
values for m and c.

This set of values forms a line c=
-
mx+y in the Hough space (m,c)

When the contour points are aligned, the corresponding lines in the
Hough space have the same intersection point (m0,c0).

A point in hough space indicates a line in the image space.

source: http://rkb.home.cern.ch/rkb/AN16pp/node122.html

48

Hough transform

Computation:

Initialise histogram h(m,c) (this represents the Hough
space)

for each image point (i,j)

if C(i,j)=1, then compute all possible couples (m,c) that pass
through the point (i,j).

increment all corresponding cells by 1.

A local maximum (m0,c0) in h(m,c) indicates that the
image points are aligned to the line y=m0 x+c0

49

Hough transform

Problems:

Care has to be taken when one quantizes the parameter
space.

When the bins table are chosen too fine, the local maximum
can be dispersed over several bins.

When the quantization is not fine enough, on the other hand,
nearly parallel lines which are close together will lie in the
same bin.

The coefficients m,c are not uniform in orientation

Solution: use a different parameterization (p,theta):
x sin(theta)
-
y cos(theta) + p =0

50

Hough transform

Use a different parameterization (p,theta):

x sin(theta)
-
y cos(theta) + p =0

p is the distance from the origin and

theta the angle with the
normal

Here each point in the image space corresponds to a sinusoidal
curve in the Hough space. The intersection of the sinusoidal curves
in the Hough space correspond to a line in the image space.

51

Hough transform

Computation:

Initialise histogram h(p,theta) (this represents the
Hough space)

for each image point (i,j)

if C(i,j)=1, then

for all 0<theta<2pi compute p=
-
i sin(theta)+j cos(theta)

set h(p,theta) = h(p,theta)+1

A local maximum (p0,theta0) in h(p,theta) indicates
that the image points are aligned to the line

p0=
-
x sin(theta0)+y cos(theta)

52

Generalised Hough transform

You can compute the hough transform for any pattern that can be
parameterized, such as circles, lines, parabolas.

For circles:

(x
-
a)
2

+ (y
-
b)
2

= r
2

We use a hough space h(a,b,r).

Each image point corresponds to a cone in space (a,b,r)

For a fixed r, each image point corresponds to a circle in hough space.

Algorithm:

for each image point and each radius r>0 compute the corresponding
circle in hough space. Increment all cells.

After filling the histogram, locate the local maximum (a0,b0,r0). This
maximum corresponds to the circle in the image with center (a0, b0) and