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
•
Your company asks you to
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
processing (task dependent)
•
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
–
Limit of a shadow
•
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
•
Consists of two masks
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.0040.0540.2420.3990.2420.0540.004
Example of sampling a 1D Gaussian (sigma=1, R=3) session 4
16 G(x,1.0) 0.0640.8643.8726.3843.8720.8640.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
discarded.
34
Hysteresis filtering
•
The thresholding and chaining can be
computed in one step.
•
Start with the high threshold image.
•
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
Gradient norm and Laplacian
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
radius r0.
Comments 0
Log in to post a comment