Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão...
Transcript of Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão...
![Page 1: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/1.jpg)
Processamento de imagens capturadas para algoritmos de
Visão Computacional
Curso de Visão Computacional
Marcelo Gattass
2009.2
![Page 2: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/2.jpg)
Resumo
• Motivação (aplicações)• Requisitos• Deteção de pontos e arestas
– Analise da variação local– Deteção de arestas
• Sobel e
– Deteção de pontos• Haris• SHIFT
![Page 3: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/3.jpg)
object instance recognition (matching)
David Lowe
Motivação
![Page 4: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/4.jpg)
Slide Set 12: Face Detection/Viola-Jones 4CS 175, Fall 2007: Professor Padhraic Smyth
Sample results using the Viola-Jones Detector
• Notice detection at multiple scales
Motivação
![Page 5: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/5.jpg)
Slide Set 12: Face Detection/Viola-Jones 5CS 175, Fall 2007: Professor Padhraic Smyth
Small set of 111 Training Images
Motivação
![Page 6: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/6.jpg)
How do we build panorama?
• We need to match (align) images
Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004
Motivação
![Page 7: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/7.jpg)
Matching with Features
•Detect feature points in both images
Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004
Motivação
![Page 8: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/8.jpg)
Matching with Features
•Detect feature points in both images
•Find corresponding pairs
Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004
Motivação
![Page 9: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/9.jpg)
Matching with Features
•Detect feature points in both images
•Find corresponding pairs
•Use these pairs to align images
Motivação
![Page 10: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/10.jpg)
Matching with Features
• Problem 1:– Detect the same point independently in both
images
no chance to match!
We need a repeatable detectorDarya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004
Motivação
![Page 11: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/11.jpg)
Matching with Features
• Problem 2:– For each point correctly recognize the
corresponding one
?
We need a reliable and distinctive descriptor
Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004
Motivação
![Page 12: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/12.jpg)
Example: Build a Panorama
M. Brown and D. G. Lowe. Recognising Panoramas. ICCV 2003
Motivação
![Page 13: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/13.jpg)
Photosynth
Motivação
![Page 14: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/14.jpg)
Busca de padrões geométricos
http://www.tecgraf.puc-rio.br/~mgattass/ra/trb05/T1-VirtualOnReal/MauricioFerreira_DiogoCarneiro_CarlosEduardoLara/
Mauricio Ferreira, Diogo Carneiro e Carlos Eduardo Lara Visão 2005
Motivação
![Page 15: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/15.jpg)
Requisitos
Uma caracteristica deve ser robusta o suficiente para continuar se destacando mesmo quando a cena é capturada em
diferentes condições
![Page 16: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/16.jpg)
Types of invariance
Illumination
Tom Duerig
Requisitos
![Page 17: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/17.jpg)
Types of invariance
Illumination Scale
Tom Duerig
Requisitos
![Page 18: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/18.jpg)
Types of invariance
Illumination Scale Rotation
Tom Duerig
Requisitos
![Page 19: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/19.jpg)
Types of invariance
Illumination Scale Rotation Affine
Tom Duerig
Requisitos
![Page 20: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/20.jpg)
Types of invariance
Illumination Scale Rotation Affine Full Perspective
Tom Duerig
Requisitos
![Page 21: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/21.jpg)
Tipos de características de uma imagem
• Globais: histograma, conteúdo de freqüências, etc...
• Locais: regiões com determinada propriedade, arestas, cantos, curvas, etc...
Análise local
![Page 22: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/22.jpg)
Modelo Matemático: Função
u
v
L
L(u,v)
Função
0%
20%
40%
60%
80%
100%
Nív
eis
de c
inza
Posição ao longo da linha x
C 2,0,0: hwL
Lv
u
Análise local
![Page 23: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/23.jpg)
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
Análise local
![Page 24: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/24.jpg)
Norma da derivada
y
xyx n
n
y
f
x
f
y
fx
f
nnn
f2
y
xyx n
n
y
f
y
f
x
f
y
fy
f
x
f
x
f
x
f
nnn
f2
simétrican
f t SSxx ,02
Análise local
![Page 25: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/25.jpg)
Mínimo de formas quadráticas de matrizes simétricas positivas definidas
xAx IxAx 0xIA
0
0
y
x
cb
ba
212 ,00det
CBA
cb
ba
0
ii
i
i
cb
ba
,0
0
Análise local
![Page 26: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/26.jpg)
Autovetores e autovalores de matrizes simétricas positivas definidas
iiT
iiTi i A 0iiii A
111 A
222 A
12112 TT A
21221 TT A212121 TT
0)( 1221 T 012 T
Análise local
![Page 27: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/27.jpg)
Minimização como um problema de autovalores
x
y
12
21 '' yxyx jip
'
'
0
0''
2
1
y
xyxT
xAx
22
21 )'()'()','( yxyxf
1)'()'( 22 yx
p
x'y'
mínimo
221121 '')(')(')( yxTyTxT p
Análise local
![Page 28: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/28.jpg)
Teorema Espectral (Teorema dos Eixos Principais)
Toda matriz simétrica S (S = ST ) pode ser fatorada em: TQQQQ ΛΛS 1
- matriz diagonal real
Q – matriz ortogonal, formada pelos autovetores de S
MMachado
Análise local
![Page 29: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/29.jpg)
Estimando Orientação Local em Imagens
n
n
iii
nn
n
T
TTTT
yJ
y
y
yyJ
QQQJ
...
0
0
21
1
2
11
1
uyΛyyuΛuSuu
J é máximo se y só tem componente na direção do
autovetor de maior autovalor
Mudança de base por rotação
Usando o Teorema Espectral no problema de orientação:
MMachado
Análise local
![Page 30: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/30.jpg)
Identificando Estruturas Lineares com PCA
Problema. Dados os vetores v1,...,vk, em N dimensões, estimar a orientação média quando o sinal de vi é ignorado.
Solução. A orientação média é dada pelo eixo principal da matriz
k
i yyx
yxxTii
fff
fff
12
2
vvSMMachado
Análise local
![Page 31: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/31.jpg)
Matriz de Variância-Covariância
M
XXM
ijij
j
1
2
2
1COV 1
M
XXXXM
i
kikjij
jk
Matriz de Variância-
Covariância
221
2221
1122
1
NNN
N
COVCOV
COV
COVCOV
S
N variáveisM observações
Variância
Covariância
MMachado
Análise local
![Page 32: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/32.jpg)
PCA
maximiza a variância
minimiza a variância
Maior Componente
Principal
Menor Componente
Principal
X1
X2
21
1
21
2
MarcoMachado
Análise local
![Page 33: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/33.jpg)
PCA
• Variância total = soma das variâncias
• Variância total = traço de S
•
• Eixos principais também representam a variância total do conjunto de dados.– Primeiro eixo: 1/traço(S)– Segundo eixo: 2/traço(S)
N
ii
N
ii
11
2tr S
MarcoMachado
Análise local
![Page 34: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/34.jpg)
Estimando Orientação Local em Imagens
• Interpretação dos Autovalores 1=0, 2=0
• Intensidade constante, • sem estrutura
1>0, 2=0• Estrutura linear (invariante por deslocamento em uma única
direção) 1>0, 2>0
• A estrutura desvia do modelo de estrutura linear– Ruído– Curvatura– Múltiplas orientações
1=2
– Estrutura isotrópica
Análise local
![Page 35: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/35.jpg)
Comportamento local: Classificação
1
2
“Corner”1 e 2 são grandes,
1 ~ 2;
aumenta em todas as direções
1 e 2 são pequenos;
Quase constante em “Edge” 1 >> 2
“Edge” 2 >> 1
“Flat”
Análise local
![Page 36: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/36.jpg)
Detecção de arestas
1 > 2
![Page 37: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/37.jpg)
Operadores clássicoss
Prewitt’s
11
11
11
1
1
11
Suaviza Diferencia
101
101
101
111
000
111
111
111
Arestas
![Page 38: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/38.jpg)
Openadores clássicos
Sobel’s
11
22
11
1
1
11
SuavizaDiferencia
101
202
101
121
000
121
121
121
Arestas
![Page 39: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/39.jpg)
Detector de arestas
I
22
I
dy
dI
dx
d
100 Threshold
Arestas
![Page 40: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/40.jpg)
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
Arestas
![Page 41: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/41.jpg)
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
Arestas
![Page 42: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/42.jpg)
Hai Tao
Arestas
![Page 43: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/43.jpg)
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
Arestas
![Page 44: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/44.jpg)
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
Arestas
![Page 45: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/45.jpg)
Canny Edge Detector
• Convolution with derivative of Gaussian
• Non-maximum Suppression
• Hysteresis Thresholding
Khurram Hassan-Shafique
Arestas
![Page 46: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/46.jpg)
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
Arestas
![Page 47: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/47.jpg)
Canny Edge Operator
IGIGS ** T
y
G
x
GG
T
Iy
GI
x
GS
**
Khurram Hassan-Shafique
Arestas
![Page 48: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/48.jpg)
Canny Edge Detector
xS
yS
I
Khurram Hassan-Shafique
Arestas
![Page 49: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/49.jpg)
Canny Edge Detector
I
22yx SSS
25 ThresholdS
Khurram Hassan-Shafique
Arestas
![Page 50: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/50.jpg)
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
Arestas
![Page 51: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/51.jpg)
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
Arestas
![Page 52: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/52.jpg)
Non-Maximum Suppression
0
12
3
41420tan41422- :3
41422tan :2
41422tan41420 :1
41420tan41420 :0
.θ.
.θ
.θ.
.θ.-
x
y
S
Sθ tan
Khurram Hassan-Shafique
Arestas
![Page 53: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/53.jpg)
Non-Maximum Suppression
22yx SSS M
25ThresholdM
Khurram Hassan-Shafique
Arestas
![Page 54: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/54.jpg)
Hysteresis Thresholding
Khurram Hassan-Shafique
Arestas
![Page 55: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/55.jpg)
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
Arestas
![Page 56: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/56.jpg)
Hysteresis Thresholding
M 25ThresholdM
15
35
Low
High
Khurram Hassan-Shafique
Arestas
![Page 57: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/57.jpg)
Resultado de algoritmo de histerese
Arestas
![Page 58: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/58.jpg)
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
Arestas
![Page 59: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/59.jpg)
Segmentos de reta longos
Um caso especial
Segmentos retos longos
![Page 60: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/60.jpg)
Hough Transform
• There are three problems in model fitting– Given the points that belong to a line, what is the line?– Which points belong to which line?– How many lines are there?
• Hough transform is a technique for these problems– The basic idea is to record all the models on which
each point lies and then look for models that get many votes
Segmentos retos longos
![Page 61: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/61.jpg)
Hough Transform – cont.
• Straight line case– Consider a single isolated edge point (xi, yi)
• There are an infinite number of lines that could pass through the points
– Each of these lines can be characterized by some particular equation
cmxy ii
Segmentos retos longos
![Page 62: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/62.jpg)
Hough Transform – cont.
cmxy ii )()( ii ymxc
x
y
m
c
Segmentos retos longos
![Page 63: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/63.jpg)
Hough Transform – cont.
m
c
m
c
ponto de maior contribuição
Segmentos retos longos
![Page 64: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/64.jpg)
Hough Transform – cont.
Segmentos retos longos
![Page 65: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/65.jpg)
Hough Transform – cont.
• Hough transform algorithm1. Find all of the desired feature points in the image
2. For each feature point
For each possibility i in the accumulator that passes through the feature point
Increment that position in the accumulator
3. Find local maxima in the accumulator
4. If desired, map each maximum in the accumulator back to image space
Segmentos retos longos
![Page 66: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/66.jpg)
Hough Transform – cont.
sincos ii yx
x
y
22 hw 0
cmxy ii m e c [- +]
Segmentos retos longos
![Page 67: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/67.jpg)
Hough Transform – cont.
x
y
Segmentos retos longos
![Page 68: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/68.jpg)
Hough Transform – cont.
x
y
Segmentos retos longos
![Page 69: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/69.jpg)
Transformada de Hough
Segmentos retos longos
![Page 70: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/70.jpg)
Transformada de Hough
Segmentos retos longos
![Page 71: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/71.jpg)
Busca de linhas longas no campo
Outro enfoque: tese de Flávio Szenberg: Juiz Virtual
Segmentos retos longos
![Page 72: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/72.jpg)
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
Segmentos retos longos
![Page 73: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/73.jpg)
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
Segmentos retos longos
![Page 74: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/74.jpg)
Filtragem para realce de linhas Problemas com linhas duplas
Segmentos retos longos
![Page 75: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/75.jpg)
Filtragem para realce de linhas A transformação negativa é aplicada entre o cálculo da
luminância e o filtro LoG.
Segmentos retos longos
![Page 76: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/76.jpg)
Filtragem para realce de linhas Resultado de uma segmentação (threshold) feita na
imagem filtrada.
(em negativo para visualizar melhor)
Segmentos retos longos
![Page 77: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/77.jpg)
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.
Segmentos retos longos
![Page 78: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/78.jpg)
Eliminando pontos que não estão sobre um segmento de reta
A imagem é dividida, por uma grade regular, em células retangulares.
Segmentos retos longos
![Page 79: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/79.jpg)
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 ,
Segmentos retos longos
![Page 80: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/80.jpg)
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
Segmentos retos longos
![Page 81: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/81.jpg)
Eliminando pontos que não estão sobre um segmento de reta
Células com pontos formando segmentos de retas:
Segmentos retos longos
![Page 82: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/82.jpg)
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.
Segmentos retos longos
![Page 83: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/83.jpg)
Determinando segmentos de reta São formados grupos com células de mesmo valor,
representados na figura abaixo por cores distintas.
Segmentos retos longos
![Page 84: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/84.jpg)
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
Segmentos retos longos
![Page 85: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/85.jpg)
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
Segmentos retos longos
![Page 86: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/86.jpg)
Extração de segmentos de retaSobrepondo as linhas extraída na imagem, temos o seguinte resultado:
Segmentos retos longos
![Page 87: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/87.jpg)
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
Segmentos retos longos
![Page 88: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/88.jpg)
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
Segmentos retos longos
![Page 89: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/89.jpg)
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
Segmentos retos longos
![Page 90: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/90.jpg)
Reconhecimento dos segmentosProblema relacionado com a perspectiva
2
1222
122
1222
12
12122
1212
)()()()(
))(())((
vvuuvvuu
vvvvuuuu
ttttssss
ttssttss
8.01
21
Segmentos retos longos
![Page 91: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/91.jpg)
Reconhecimento dos segmentosProblema relacionado com a perspectiva
f1
f2
f3
Segmentos retos longos
![Page 92: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/92.jpg)
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
Segmentos retos longos
![Page 93: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/93.jpg)
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
Segmentos retos longos
![Page 94: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/94.jpg)
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
Segmentos retos longos
![Page 95: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/95.jpg)
Detector de cantos
![Page 96: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/96.jpg)
Comportamento local: Classificação
1
2
“Corner”1 e 2 são grandes,
1 ~ 2;
aumenta em todas as direções
1 e 2 são pequenos;
Quase constante em “Edge” 1 >> 2
“Edge” 2 >> 1
“Flat”
Cantos
![Page 97: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/97.jpg)
Harris Detector: Mathematics
Measure of corner response:
2det traceR M k M
1 2
1 2
det
trace
M
M
(k – empirical constant, k = 0.04-0.06)
Cantos
![Page 98: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/98.jpg)
Harris Detector: Mathematics
2
• R depends only on eigenvalues of M
• R is large for a corner
• R is negative with large magnitude for an edge
• |R| is small for a flat region
1
“Corner”
“Edge”
“Edge”
“Flat”
R > 0
R < 0
R < 0|R| small
Cantos
![Page 99: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/99.jpg)
Algoritmo
• Comparação dos gráficos
1
“Corner”
“Edge”
“Edge”
“Flat”
R > 0
R < 0
R < 0|R| small
2
2det traceR M k M
Cantos
![Page 100: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/100.jpg)
Algoritmo
• Comparação dos gráficos
1
“Corner”
“Edge”
“Edge”
“Flat”
R > 0
R < 0
R < 0|R| small
2
2det traceR M k M
Cantos
![Page 101: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/101.jpg)
Algoritmo
• Comparação dos gráficos
1
“Corner”
“Edge”
“Edge”
“Flat”
R > 0
R < 0
R < 0|R| small
2
2det traceR M k M
Cantos
![Page 102: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/102.jpg)
Harris Detector
• The Algorithm:– Find points with large corner response
function R (R > threshold)– Take the points of local maxima of R
Cantos
![Page 103: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/103.jpg)
Harris Detector: WorkflowCantos
![Page 104: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/104.jpg)
Harris Detector: WorkflowCompute corner response R
Cantos
![Page 105: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/105.jpg)
Harris Detector: WorkflowFind points with large corner response: R>threshold
Cantos
![Page 106: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/106.jpg)
Harris Detector: WorkflowTake only the points of local maxima of R
Cantos
![Page 107: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/107.jpg)
Harris Detector: WorkflowCantos
![Page 108: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/108.jpg)
Example: Gradient Covariances
Full imageDetail of image with gradient covar-
iance ellipses for 3 x 3 windows
from Forsyth & Ponce
Corners are where both eigenvalues are big
Cantos
![Page 109: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/109.jpg)
Example: Corner Detection (for camera calibration)
courtesy of B. Wilburn
Cantos
![Page 110: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/110.jpg)
Example: Corner Detection
courtesy of S. Smith
SUSAN corners
Cantos
![Page 111: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/111.jpg)
Harris Detector: Summary
• Average intensity change in direction [u,v] can be expressed as a bilinear form:
• Describe a point in terms of eigenvalues of M:measure of corner response
• A good (corner) point should have a large intensity change in all directions, i.e. R should be large positive
( , ) ,u
E u v u v Mv
21 2 1 2R k
Cantos
![Page 112: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/112.jpg)
Harris Detector: Some Properties
• Rotation invariance
Ellipse rotates but its shape (i.e. eigenvalues) remains the same
Corner response R is invariant to image rotation
Cantos
![Page 113: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/113.jpg)
Harris Detector: Some Properties
• Partial invariance to affine intensity change
Only derivatives are used => invariance to intensity shift I I + b
Intensity scale: I a I
R
x (image coordinate)
threshold
R
x (image coordinate)
Cantos
![Page 114: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/114.jpg)
Harris Detector: Some Properties
• But: non-invariant to image scale!
All points will be classified as edges
Corner !
Cantos
![Page 115: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/115.jpg)
Harris Detector: Some Properties
• Quality of Harris detector for different scale changes
Repeatability rate:# correspondences
# possible correspondences
C.Schmid et.al. “Evaluation of Interest Point Detectors”. IJCV 2000
Cantos
![Page 116: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/116.jpg)
SIFT (Scale Invariant Feature Transform)
SIFT
![Page 117: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/117.jpg)
SIFT stages:
• Scale-space extrema detection• Keypoint localization• Orientation assignment• Keypoint descriptor
( )local descriptor
detector
descriptor
A 500x500 image gives about 2000 features
matching
SIFT
![Page 118: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/118.jpg)
1. Detection of scale-space extrema• For scale invariance, search for stable
features across all possible scales using a continuous function of scale, scale space.
• SIFT uses DoG filter for scale space because it is efficient and as stable as scale-normalized Laplacian of Gaussian.
SIFT
![Page 119: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/119.jpg)
Scale space doubles for the next octave
K=2(1/s)
SIFT
![Page 120: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/120.jpg)
Detection of scale-space extremaSIFT
![Page 121: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/121.jpg)
Keypoint localization
X is selected if it is larger or smaller than all 26 neighbors
Pontos
![Page 122: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/122.jpg)
2. Accurate keypoint localization
• Reject points with low contrast and poorly localized along an edge
• Fit a 3D quadratic function for sub-pixel maxima
SIFT
![Page 123: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/123.jpg)
Accurate keypoint localization
• Change sample point if offset is larger than 0.5
• Throw out low contrast (<0.03)
SIFT
![Page 124: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/124.jpg)
Eliminating edge responses
r=10
Let
Keep the points with
SIFT
![Page 125: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/125.jpg)
Maxima in DSIFT
![Page 126: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/126.jpg)
Remove low contrast and edgesSIFT
![Page 127: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/127.jpg)
3. Orientation assignment
• By assigning a consistent orientation, the keypoint descriptor can be orientation invariant.
• For a keypoint, L is the image with the closest scale,
orientation histogram
SIFT
![Page 128: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/128.jpg)
Orientation assignmentSIFT
![Page 129: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/129.jpg)
Orientation assignmentSIFT
![Page 130: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/130.jpg)
Orientation assignmentSIFT
![Page 131: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/131.jpg)
Orientation assignmentSIFT
![Page 132: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/132.jpg)
SIFT descriptorSIFT
![Page 133: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/133.jpg)
4. Local image descriptor• Thresholded image gradients are sampled over
16x16 array of locations in scale space• Create array of orientation histograms (w.r.t. key
orientation)• 8 orientations x 4x4 histogram array = 128
dimensions• Normalized, clip values larger than 0.2,
renormalize
σ=0.5*width
SIFT
![Page 134: Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2.](https://reader036.fdocuments.net/reader036/viewer/2022062418/552fc10b497959413d8c27b1/html5/thumbnails/134.jpg)
FIM