Extração de Características cap 4 – Trucco e Verri.
Transcript of Extração de Características cap 4 – Trucco e Verri.
Extração de Características
cap 4 – Trucco e Verri
Características de uma imagem
• Globais: histograma, conteúdo de freqüências, etc...
• Locais: regiões com determinada propriedade, arestas, cantos, curvas, etc...
Arestas e cantos
• Locais de mudanças significativas na intensidade da imagem
Edgedels = edge elements
Tipos de arestasdegrau(step) rampa(ramp)
cume(roof) impulso(spike)
Gráfico sem e com ruído
Derivadas e arestas
f(x) f(x)+n(x) | f'(x)+n'(x) | f"(x)+n"(x)
Série de Taylor
)()(2
)()()()()( 3"
2' xOxf
xxfxxfxxf
iiii ffff "'1 2
1
Com x=1, f(x)=fi e f(x+x)=fi+1
Com x=-1, f(x)=fi e f(x+x)=fi-1
iiii ffff "'1 2
1
(a)
(b)
Aproximações para derivadas
(a-b) 2/)( 11'
iii fff 2/)( 11'
iii fff
(a+b) )2( 11"
iiii ffff )2( 11"
iiii ffff
f(x)
x
fi-1fi fi+1
i+1ii-1
Em 2D
y
fx
f
yxf ),(
Gradiente
Laplaciano
2
2
2
22 ),(
y
f
x
fyxf
x
yxfyxf
x
yxf mnmn
,,, 1
x
yxfyxf
y
yxf mnmn
,,, 1
11
1
1
Convolution Kernels
141
4204
141
Laplaciano
)2( 11"
iiii ffff
•Sometimes we are interested only in changing magnitude without regard to the changing orientation.
•A linear differential operator called the Laplacian may be used.
•The Laplacian has the same properties in all directions and is therefore invariant to rotation in the image.
http://www.cee.hw.ac.uk/hipr/html/log.html
http://ct.radiology.uiowa.edu/~jiangm/courses/dip/html/node83.html
Finite differences
11* II x
1
1*II y
IKhurram Hassan-Shafique
Classical Operators
Prewitt’s Operator
11
11
11
1
1
11
Smooth Differentiate
101
101
101
111
000
111
111
111
Khurram Hassan-Shafique
Classical Operators
Sobel’s Operator
11
22
11
1
1
11
SmoothDifferentiate
101
202
101
121
000
121
121
121
Khurram Hassan-Shafique
• Sobel Edge Detector
Detecting Edges in Image
Image I
101
202
101
121
000
121
*
*
Idx
d
Idy
d
22
Idy
dI
dx
d
ThresholdEdges
Khurram Hassan-Shafique
Sobel Edge Detector
Idx
d
Idy
d
I
Khurram Hassan-Shafique
Sobel Edge Detector
I
22
I
dy
dI
dx
d
100 ThresholdKhurram Hassan-Shafique
Marr and Hildreth Edge Operator
• Smooth by Gaussian
• Use Laplacian to find derivatives
IGS * 2
22
2
2
1
yx
eG
Sy
Sx
S2
2
2
22
Khurram Hassan-Shafique
Marr and Hildreth Edge Operator
IGIGS ** 222
2
22
22
22
3
2 22
1
yx
eyx
G
Khurram Hassan-Shafique
Marr and Hildreth Edge Operator
2
22
22
22
3
2 22
1
yx
eyx
G
0.0008 0.0066 0.0215 0.031 0.0215 0.0066 0.00080.0066 0.0438 0.0982 0.108 0.0982 0.0438 0.00660.0215 0.0982 0 -0.242 0 0.0982 0.0215
0.031 0.108 -0.242 -0.7979 -0.242 0.108 0.0310.0215 0.0982 0 -0.242 0 0.0982 0.02150.0066 0.0438 0.0982 0.108 0.0982 0.0438 0.00660.0008 0.0066 0.0215 0.031 0.0215 0.0066 0.0008
X
Y
Khurram Hassan-Shafique
Marr and Hildreth Edge Operator
Zero CrossingsDetection
I ImageG2*
IG *2 Edge Image
IG *2 Zero Crossings
Khurram Hassan-Shafique
1
6
3
Khurram Hassan-Shafique
Quality of an Edge Detector
• Robustness to Noise• Localization• Too Many/Too less Responses
Poor robustness to noise Poor localization Too many responses
True Edge
Khurram Hassan-Shafique
Canny Edge Detector
• Criterion 1: Good Detection: The optimal detector must minimize the probability of false positives as well as false negatives.
• Criterion 2: Good Localization: The edges detected must be as close as possible to the true edges.
• Single Response Constraint: The detector must return one point only for each edge point.
Khurram Hassan-Shafique
Hai Tao
The result– General form of the filter (N.B. the filter is odd so h(x) = -h(-x) the
following expression is for x < 0 only)
h x e a x a x e a x a xx x( ) ( sin cos ) ( sin cos ) / 1 2 3 4 1 2
2 05220
2 91540
156939
.
.
.
a
a
a
a
1
2
3
4
1
01486768717
0 2087553476
1244653939
0 7912446531
2
.
.
.
.
Camillo J. Taylor
Approximation– Canny’s filter can be approximated by the derivative of a Gaussian
h xd
dxe
xe
x x
( ) ( )
2
2
2
222
2
Camillo J. Taylor
Derivative of GaussianCanny
Canny Edge Detector
• Convolution with derivative of Gaussian
• Non-maximum Suppression
• Hysteresis Thresholding
Khurram Hassan-Shafique
Algorithm Canny_Enhancer• Smooth by Gaussian
IGS * 2
22
2
2
1
yx
eG
Tyx
T
SSSy
Sx
S
22yx SSS
x
y
S
S1tan Khurram Hassan-Shafique
• Compute x and y derivatives
• Compute gradient magnitude and orientation
Canny Edge Operator
IGIGS ** T
y
G
x
GG
T
Iy
GI
x
GS
**
Khurram Hassan-Shafique
Canny Edge Detector
xS
yS
I
Khurram Hassan-Shafique
Canny Edge Detector
I
22yx SSS
25 ThresholdS
Khurram Hassan-Shafique
We wish to mark points along the curve where the magnitude is biggest.We can do this by looking for a maximum along a slice normal to the curve(non-maximum suppression). These points should form a curve. There arethen two algorithmic issues: at which point is the maximum, and where is thenext one?
Algorithm Non-Maximum Suppression
Khurram Hassan-Shafique
Non-Maximum Suppression
• Suppress the pixels in ‘Gradient Magnitude Image’ which are not local maximum
edgean tonormaldirection thealong
in of neighbors theare and Sx,yy,xy,x
otherwise0,,&
,, if,
, yxSyxS
yxSyxSyxS
yxM
yx ,
yx,
yx ,
Khurram Hassan-Shafique
Non-Maximum Suppression
0
12
3
41420tan41422- :3
41422tan :2
41422tan41420 :1
41420tan41420 :0
.θ.
.θ
.θ.
.θ.-
x
y
S
Sθ tan
Khurram Hassan-Shafique
Non-Maximum Suppression
22yx SSS M
25ThresholdM
Khurram Hassan-Shafique
Hysteresis Thresholding
Khurram Hassan-Shafique
Hysteresis Thresholding
• If the gradient at a pixel is above ‘High’, declare it an ‘edge pixel’
• If the gradient at a pixel is below ‘Low’, declare it a ‘non-edge-pixel’
• If the gradient at a pixel is between ‘Low’ and ‘High’ then declare it an ‘edge pixel’ if and only if it is connected to an ‘edge pixel’ directly or via pixels between ‘Low’ and ‘ High’
Khurram Hassan-Shafique
Hysteresis Thresholding
M 25ThresholdM
15
35
Low
High
Khurram Hassan-Shafique
Resultado de algoritmo de histerese
Subpixel Localization– One can try to further localize the position of the edge within a pixel by
analyzing the response to the edge enhancement filter
– One common approach is to fit a quadratic polynomial to the filter response in the region of a maxima and compute the true maximum.
a
bx
yyya
yyb
cbay
cbay
cy
cbxaxxy
2
);0())1()1((2
1
));1()1((2
1
)1(
;)1(
;)0(
)(
max
2
0 1-1
Derivadas direcionais
y
n
y
f
x
n
x
f
n
f
x
y
f(x,y)
y
x
n
nn
h
pfnhpf
n
pfh
)()(lim
)(0
yx ny
fn
x
f
n
f
nfn
f
y
xyx n
n
y
f
x
f
y
fx
f
nnn
f
n
f
n
f
2
Detecting corners
– If Ex and Ey denote the gradients of the intensity image, E(x,y), in the x and y directions then the behavior of the gradients in a region around a point can be obtained by considering the following matrix
2
2
yyx
yxxyx
y
x
EEE
EEEEE
E
EC
Camillo J. Taylor
Examining the matrix
– One way to decide on the presence of a corner is to look at the eigenvalues of the 2 by 2 matrix C.
• If the area is a region of constant intensity we would expect both eigenvalues to be small
• If it contains a edge we expect one large eigenvalue and one small one
• If it contains edges at two or more orientations we expect 2 large eigenvalues
Camillo J. Taylor
Finding corners
– One approach to finding corners is to find locations where the smaller eigenvalue is greater than some threshold
– We could also imagine considering the ratio of the two eigenvalues
Computing Image Gradients
Corner Analysis– The ellipses indicate the eignvalues and eigenvectors
of the C matrices
Juiz Virtual
Tese de Flávio Szenberg
Modelos
F1
F6 F2
F3
F4
F5 F7
F8 F9
F1
F6
F2
F3
F4
F5
F8
F7
F9
Os modelos utilizados na tese:
Modelo de um campo de futebol
Modelo sem simetria
Filtragem para realce de linhas O filtro Laplaciano da Gaussiana (LoG) é aplicado à
imagem, baseado na luminância.
010
141
010
121
242
121
16
1
filtro gaussiano
filtro laplaciano
Filtragem para realce de linhas Problemas com linhas duplas
Filtragem para realce de linhas A transformação negativa é aplicada entre o cálculo da
luminância e o filtro LoG.
Filtragem para realce de linhas Resultado de uma segmentação (threshold) feita na
imagem filtrada.
(em negativo para visualizar melhor)
Extração de segmentos de retas longos
O objetivo é localizar segmentos de retas longos candidatos a serem linhas da imagem do modelo.
O procedimento é dividido em dois passos:
1. Eliminação de pontos que não estão sobre nenhum segmento de reta.
2. Determinação de segmentos de retas.
Eliminando pontos que não estão sobre um segmento de reta
A imagem é dividida, por uma grade regular, em células retangulares.
Eliminando pontos que não estão sobre um segmento de reta
Para cada célula, os autovalores 1 e 2 (1 2) da matriz de covariância, dada abaixo, são calculados.
Se 2 = 0 ou 1/ 2 > M (dado) então
o autovetor de 1 é a direção predominante
senão
a célula não tem uma direção predominante
n
ii
n
iii
n
iii
n
ii
vvvvuu
vvuuuu
n
1
2
1
11
2
1
1
2
vu ,
Eliminando pontos que não estão sobre um segmento de reta
Podemos atribuir pesos i aos pontos (resultado do LoG).
n
ii
n
iii
n
iii
n
ii
vvvvuu
vvuuuu
n
1
2
1
11
2
1
n
iii
n
iiii
n
iiii
n
iii
n
ii vvvvuu
vvuuuu
1
2
1
11
2
1
1
Eliminando pontos que não estão sobre um segmento de reta
Células com pontos formando segmentos de retas:
Determinando segmentos de reta
As células são percorridas de modo que as linhas são processadas de baixo para cima e as células em cada coluna são processadas da esquerda para direita. Um valor é dado para cada célula: Se não existe uma direção predominate na célula, o valor é zero. Caso contrário, verifica-se os três vizinhos abaixo e o vizinho à
esquerda da célula corrente. Se algum deles tem uma direção predominante similar ao da célula corrente, quando unidos, então a célula corrente recebe o valor da célula que tem a direção mais similar; senão, um novo valor é usado para a célula corrente.
Determinando segmentos de reta São formados grupos com células de mesmo valor,
representados na figura abaixo por cores distintas.
Extração de segmentos de retaCada grupo fornece um segmento de reta.
A reta de equação v=au+b é encontrada por método de mínimos quadrados:
O segmento é obtido limitando a reta pela caixa envoltória dos pontos usados.
n
iii
n
iiii
n
ii
n
iii
n
iii
n
iii
v
vu
u
uu
b
a
1
1
1
11
11
2
v
u
Extração de segmentos de retaOs segmentos de reta que estão sobre a mesma reta suporte são unidos, formando segmentos longos, usando mínimos quadrados.
No final do processo, tem-se um conjunto de segmentos de reta.
a
b
c
d
e
f
f1
f2f3
f4
f5
f6
f7
Extração de segmentos de retaSobrepondo as linhas extraída na imagem, temos o seguinte resultado:
Reconhecimento dos segmentos
A partir do conjunto de segmentos, as linhas do modelo são detectadas e o modelo reconhecido [Grimson90].
Método baseado na Transformada de Hough.
Método de reconhecimento baseado em modelo.
• Conjunto de restrições
Reconhecimento dos segmentos
F1 F7 F6F5F4F3F2
f1:
f2:
F1
F6F2
F3
F4
F5 F7
Modelo
F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2
Árvore de Interpretaçãof1
f2f3
f4
f5
f6
f7
Visualização
Método de Reconhecimento baseado em Modelo
O nó {f1: F1, f2:F6 , f3:F3} é discardado por que viola a restrição:
A linha representante de F6 deve estar entres as linhas que
representam F1 e F3, na visualização.F1 F7 F6F5F4F3F2
F1 F7 F6F5F4F3F2
f1:
f2:
Árvore de Interpretação
F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2 F1 F7 F6F5F4F3F2
f3:
Reconhecimento dos segmentosDiscardando nós
F1
F6F2
F3
F4
F5 F7
Modelo
f1
f2
f3
f4
f5
Visualização
f6
f7
Reconhecimento dos segmentosProblema relacionado com a perspectiva
2
1222
122
1222
12
12122
1212
)()()()(
))(())((
vvuuvvuu
vvvvuuuu
ttttssss
ttssttss
8.01
21
Reconhecimento dos segmentosProblema relacionado com a perspectiva
f1
f2
f3
Reconhecimento dos segmentosEscolhendo a melhor solução
F1
F6F2
F3
F4
F5 F7
Modelo
• Em geral, existem diversas interpretações possíveis;
• Escolhemos a interpretação onde a soma dos comprimentos dos segmentos representativos é máxima.
f1 : F4 f2 : F3 f3 : f4 : f5 : F6 f6 : F7 f7 : F1 Vencedor
f1
f2f3
f4
f5
f6
f7
Visualização
f1 : F4 f2 : f3 : f4 : F3 f5 : F6 f6 : F7 f7 : F1
f1 : F2 f2 : F3 f3 : f4 : f5 : F6 f6 : F5 f7 : F1
f1 : F4 f2 : F3 f3 : f4 : f5 : F6 f6 : F7 f7 : F1
f1
f2f3
f4
f5
f6
f7
Visualização
Reconhecimento dos segmentos
F1
F6F2
F3
F4
F5 F7
ModeloResultado final
F7
F1
F6F2
F3
F4
F5
Modelo
ou
Cálculo da transformação projetiva planar
Uma transformação projetiva planar H (homografia) correspondente às linhas reconhecidas é encontrada (usando pontos de interseção e pontos de fuga como pontos de referência).
Modelo reconstruído
H
pontos de interseção
pontos de fuga