Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão...

Post on 17-Apr-2015

108 views 0 download

Transcript of Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão...

Processamento de imagens capturadas para algoritmos de

Visão Computacional

Curso de Visão Computacional

Marcelo Gattass

2009.2

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

object instance recognition (matching)

David Lowe

Motivação

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

Slide Set 12: Face Detection/Viola-Jones 5CS 175, Fall 2007: Professor Padhraic Smyth

Small set of 111 Training Images

Motivação

How do we build panorama?

• We need to match (align) images

Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

Motivação

Matching with Features

•Detect feature points in both images

Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

Motivação

Matching with Features

•Detect feature points in both images

•Find corresponding pairs

Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

Motivação

Matching with Features

•Detect feature points in both images

•Find corresponding pairs

•Use these pairs to align images

Motivação

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

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

Example: Build a Panorama

M. Brown and D. G. Lowe. Recognising Panoramas. ICCV 2003

Motivação

Photosynth

Motivação

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

Requisitos

Uma caracteristica deve ser robusta o suficiente para continuar se destacando mesmo quando a cena é capturada em

diferentes condições

Types of invariance

Illumination

Tom Duerig

Requisitos

Types of invariance

Illumination Scale

Tom Duerig

Requisitos

Types of invariance

Illumination Scale Rotation

Tom Duerig

Requisitos

Types of invariance

Illumination Scale Rotation Affine

Tom Duerig

Requisitos

Types of invariance

Illumination Scale Rotation Affine Full Perspective

Tom Duerig

Requisitos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Detecção de arestas

1 > 2

Operadores clássicoss

Prewitt’s

11

11

11

1

1

11

Suaviza Diferencia

101

101

101

111

000

111

111

111

Arestas

Openadores clássicos

Sobel’s

11

22

11

1

1

11

SuavizaDiferencia

101

202

101

121

000

121

121

121

Arestas

Detector de arestas

I

22

I

dy

dI

dx

d

100 Threshold

Arestas

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

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

Hai Tao

Arestas

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

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

Canny Edge Detector

• Convolution with derivative of Gaussian

• Non-maximum Suppression

• Hysteresis Thresholding

Khurram Hassan-Shafique

Arestas

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

Canny Edge Operator

IGIGS ** T

y

G

x

GG

T

Iy

GI

x

GS

**

Khurram Hassan-Shafique

Arestas

Canny Edge Detector

xS

yS

I

Khurram Hassan-Shafique

Arestas

Canny Edge Detector

I

22yx SSS

25 ThresholdS

Khurram Hassan-Shafique

Arestas

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

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

Non-Maximum Suppression

0

12

3

41420tan41422- :3

41422tan :2

41422tan41420 :1

41420tan41420 :0

.θ.

.θ.

.θ.-

x

y

S

Sθ tan

Khurram Hassan-Shafique

Arestas

Non-Maximum Suppression

22yx SSS M

25ThresholdM

Khurram Hassan-Shafique

Arestas

Hysteresis Thresholding

Khurram Hassan-Shafique

Arestas

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

Hysteresis Thresholding

M 25ThresholdM

15

35

Low

High

Khurram Hassan-Shafique

Arestas

Resultado de algoritmo de histerese

Arestas

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

Segmentos de reta longos

Um caso especial

Segmentos retos longos

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

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

Hough Transform – cont.

cmxy ii )()( ii ymxc

x

y

m

c

Segmentos retos longos

Hough Transform – cont.

m

c

m

c

ponto de maior contribuição

Segmentos retos longos

Hough Transform – cont.

Segmentos retos longos

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

Hough Transform – cont.

sincos ii yx

x

y

22 hw 0

cmxy ii m e c [- +]

Segmentos retos longos

Hough Transform – cont.

x

y

Segmentos retos longos

Hough Transform – cont.

x

y

Segmentos retos longos

Transformada de Hough

Segmentos retos longos

Transformada de Hough

Segmentos retos longos

Busca de linhas longas no campo

Outro enfoque: tese de Flávio Szenberg: Juiz Virtual

Segmentos retos longos

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

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

Filtragem para realce de linhas Problemas com linhas duplas

Segmentos retos longos

Filtragem para realce de linhas A transformação negativa é aplicada entre o cálculo da

luminância e o filtro LoG.

Segmentos retos longos

Filtragem para realce de linhas Resultado de uma segmentação (threshold) feita na

imagem filtrada.

(em negativo para visualizar melhor)

Segmentos retos longos

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

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

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

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

Eliminando pontos que não estão sobre um segmento de reta

Células com pontos formando segmentos de retas:

Segmentos retos longos

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

Determinando segmentos de reta São formados grupos com células de mesmo valor,

representados na figura abaixo por cores distintas.

Segmentos retos longos

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

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

Extração de segmentos de retaSobrepondo as linhas extraída na imagem, temos o seguinte resultado:

Segmentos retos longos

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

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

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

Reconhecimento dos segmentosProblema relacionado com a perspectiva

2

1222

122

1222

12

12122

1212

)()()()(

))(())((

vvuuvvuu

vvvvuuuu

ttttssss

ttssttss

8.01

21

Segmentos retos longos

Reconhecimento dos segmentosProblema relacionado com a perspectiva

f1

f2

f3

Segmentos retos longos

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

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

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

Detector de cantos

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

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

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

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

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

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

Harris Detector

• The Algorithm:– Find points with large corner response

function R (R > threshold)– Take the points of local maxima of R

Cantos

Harris Detector: WorkflowCantos

Harris Detector: WorkflowCompute corner response R

Cantos

Harris Detector: WorkflowFind points with large corner response: R>threshold

Cantos

Harris Detector: WorkflowTake only the points of local maxima of R

Cantos

Harris Detector: WorkflowCantos

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

Example: Corner Detection (for camera calibration)

courtesy of B. Wilburn

Cantos

Example: Corner Detection

courtesy of S. Smith

SUSAN corners

Cantos

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

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

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

Harris Detector: Some Properties

• But: non-invariant to image scale!

All points will be classified as edges

Corner !

Cantos

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

SIFT (Scale Invariant Feature Transform)

SIFT

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

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

Scale space doubles for the next octave

K=2(1/s)

SIFT

Detection of scale-space extremaSIFT

Keypoint localization

X is selected if it is larger or smaller than all 26 neighbors

Pontos

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

Accurate keypoint localization

• Change sample point if offset is larger than 0.5

• Throw out low contrast (<0.03)

SIFT

Eliminating edge responses

r=10

Let

Keep the points with

SIFT

Maxima in DSIFT

Remove low contrast and edgesSIFT

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

Orientation assignmentSIFT

Orientation assignmentSIFT

Orientation assignmentSIFT

Orientation assignmentSIFT

SIFT descriptorSIFT

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

FIM