visão computacional - ufpr · 2019. 12. 10. · visão computacional prof. eduardo todt 2019....

77
Universidade Federal do Paraná Especialização em Inteligência Artificial Aplicada Mobile Robotics Visão computacional Prof. Eduardo Todt 2019

Upload: others

Post on 04-Jul-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Universidade Federal do Paraná

Especialização em Inteligência Artificial Aplicada

Mobile Robotics

Visão computacional

Prof. Eduardo Todt2019

Page 2: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

SensoresCCD

Array de sensores, carga em capacitores transferida entre pixels, leitura realizada em um extremoMaior sensibilidade próximo a IRMaior faixa dinâmica (ex: 40000:11 → 3600:1 → 35dB)

CMOSTransistores junto a cada pixel permitem leitura em paralelo dos pixelsMenor resolução e menor sensibilidade devido à presença dos transistores adicionaisProcesso de fabricação mais simples

Imagem em coresUm CCD com filtros RGB em pixels vixzinhosTrês CCDs, cada um com filtro global RGB

ProblemasSensibilidades distintas para RGB, azul menorWhite-balanceColor constancy

http://pt.wikipedia.org/wiki/Dispositivo_de_carga_acoplada

Page 3: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Inteligência artificial

Robótica

Computação gráfica

Processamento de imagens

Psicologia

Aprendizagem computacional

Page 4: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 5: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 6: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Lente foca os raios no plano de projeçãoRaios que passam pelo centro não são desviados

Page 7: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Todos raios paralelos convergem para um ponto, localizado à distância focal f

Page 8: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Pontos satisfazendo equação estão em foco

Page 9: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 10: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 11: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Matching de pontos nas duas imagens que

correspondem ao mesmo ponto no mundo 3D

Critérios: correlação e diferença

Custo muito alto para explorar toda imagem

Page 12: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Restringe a correspondência a uma linha

Page 13: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

F Moreno 2001

Transformação de cada plano de imagem para que paresconjugados de linhas epipolares fiquem colineares e paralelasa um eixo da imagem

Page 14: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Exemplo de correspondência com geometria epipolar

Page 15: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

1. Achar os pontos conjugados

2. Calcular a disparidade

d=v-v’

3. Objetos mais próximos são

representados mais claros

Page 16: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Aproximação do movimento aparente dos objetos em

uma imagem

Correlação entre frames sucessivos

Page 17: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

http://people.csail.mit.edu/lpk/mars/temizer_2001/Optical_Flow/

Page 18: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

parâmetros intrínsecos– geometria da câmera

– características óticas

parâmetros extrínsecos– posição e orientação do frame da câmera

relativo ao mundo

Calibração de Câmeras

Page 19: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Pinhole camera model

x=fXZ

y=fYZprincipal

point

(xy1 )~(

fXfYZ )=[

f 0 00 f 00 0 1 ](

XYZ )

Page 20: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Pinhole camera model

(optical center)

origin

principal point

P

(X,Y,Z)

p

(x,y)

(xy1 )~(

fXfYZ )=[

f 0 00 f 00 0 1 ](

XYZ )

x

y

Page 21: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Intrinsic matrix

• non-square pixels (digital video)

K= [f 0 xc0 f yc0 0 1 ]

K= [f x 0 x c0 f y yc0 0 1 ]

Is this form of K good enough?

Page 22: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Intrinsic matrix

• non-square pixels (digital video)

• skew

K= [f 0 xc0 f yc0 0 1 ]

Is this form of K good enough?

K= [f x s x c0 f y yc0 0 1 ]

Page 23: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Intrinsic matrix

• non-square pixels (digital video)

• skew

• radial distortion

K= [f 0 xc0 f yc0 0 1 ]

Is this form of K good enough?

K= [f x s x c0 f y yc0 0 1 ]

Page 24: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Distortion

Radial distortion of the image– Caused by imperfect lenses– Deviations are most noticeable for rays that pass

through the edge of the lens

Page 25: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Barrel Distortion

No distortion

Barrel

Wide Angle Lens

Page 26: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Pin Cushion Distortion

Pin cushion

Telephoto lens

No distortion

Page 27: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Modeling distortion

2. Apply radial distortion

3. Apply focal length translate image center

1. Project (X, Y, Z)to “normalized” image coordinates

xn=XZ

yn=YZ

r2=xn2+yn

2

xd=xn (1+κ 1r2+κ 2r

4 )yd=yn (1+κ 1r

2+κ 2 r4 )

x=fxd+xcy=fy d+yc

x=fXZ

y=fYZ

Distortion-Free: With Distortion:

Page 28: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Camera rotation and translation

(X'Y'Z' )=R 3× 3(

XYZ )+t

(xy1 )~ [

f 0 xc0 f y c0 0 1 ] [R|t ] (

XYZ1

)x ~ K [R|t ]X

extrinsic matrix

Page 29: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Two kinds of parameters

internal or intrinsic parameters: focal length, optical center, skew

external or extrinsic (pose): rotation and translation:

(xy1 )~ [

f 0 xc0 f y c0 0 1 ] [R|t ] (

XYZ1

)=[a b c de f g hi j k l ](

XYZ1)

Page 30: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Camera calibration

Estimate both intrinsic and extrinsic parametersMainly, two categories:

Using objects with known geometry as reference Self calibration (structure from motion)

(xy1 )~ [

f 0 xc0 f y c0 0 1 ] [R|t ] (

XYZ1

)=[a b c de f g hi j k l ](

XYZ1)

Page 31: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Camera calibration approaches

Directly estimate 11 unknowns in the M matrix using known 3D points (Xi,Yi,Zi) and measured feature positions (ui,vi)

x ~ K [R|t ]X=MX

Page 32: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Calibration

Directly estimate 11 unknowns in the M matrix using known 3D points (Xi,Yi,Zi) and measured feature positions (ui,vi)

x ~ K [R|t ]X=MX

NonLinear Approach:

∑i=1

N

(u i−m00 X i+m01Y i+m02 Zi+m03

m20 X i+m21Y i+m22Z i+1 )2

+(v i−m10 X i+m11Y i+m12Z i+m13

m20X i+m21Y i+m22Z i+1 )2

Page 33: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Multi-plane calibration

Images courtesy Jean-Yves Bouguet, Intel Corp.

Advantage• Only requires a plane• Don’t have to know positions/orientations• Good code available online!

– Intel’s OpenCV library: http://www.intel.com/research/mrl/research/opencv/

– Matlab version by Jean-Yves Bouget: http://www.vision.caltech.edu/bouguetj/calib_doc/index.html

– Zhengyou Zhang’s web site: http://research.microsoft.com/~zhang/Calib/

Page 34: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Linear regression

Page 35: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Linear regression

[X i Y i Z i 1 0 0 0 0 −ui X i −uiY i −ui Z i0 0 0 0 X i Y i Z i 1 −v i X i −v iY i −v iY i ] [

m00

m01

m02

m03

m10

m11

m12

m13

m20

m21

m22

]=[uiv i ]

Page 36: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Linear regression

Solve for Projection Matrix M using least-square techniques

[X1 Y 1 Z1 1 0 0 0 0 −u1 X 1 −u1Y 1 −u1Z1

0 0 0 0 X 1 Y 1 Z1 1 −v1 X 1 −v1Y 1 −v1Y 1

XN Y N ZN 1 0 0 0 0 −uN X N −uN Y N −uN ZN0 0 0 0 X N Y N ZN 1 −vN X N −vN Y N −vN Y N

] [m00

m01

m02

m03

m10

m11

m12

m13

m20

m21

m22

]=[uiv i ]

Page 37: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Step 1: data acquisition

Page 38: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Step 2: specify corner order

Page 39: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Step 3: corner extraction

Page 40: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Step 4: minimize projection error

Page 41: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Step 4: camera calibration

Page 42: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Step 4: camera calibration

Page 43: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Step 5: refinement

Page 44: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Camera calibration With OpenCV

http://docs.opencv.org/master/doc/tutorials/calib3d/camera_calibration/camera_calibration.html

Page 45: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Tamanho informado do tabuleiro: 4x9 (sem as bordas)

Page 46: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 47: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Caixa de chá a aprox. 1,3m

Page 48: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 49: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Caixa de chá a aprox. 2,2m

Page 50: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 51: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Câmeras com eixos principais não paralelos

Page 52: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 53: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura
Page 54: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

OpenCV stereoCalibration

CM1 - Camera Matrix for left camera

CM2 - Camera Matrix for right camera

D1 - Vector of distortion coefficients for left camera

D2 - Vector of distortion coefficients for right camera

R - Rotation matrix between the left and the right camera coordinate systems

T - Translation vector between the left and the right coordinate systems of the cameras

E - Essential matrix

F - Fundamental matrix

Page 55: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Recuperação de imagens

Page 56: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Primeiras bordagens em reconhecimento

Color histogram [Swain & Balalrd, 1991]

(rgb )

Cada pixel um vetor de cor

¿

¿

¿

¿

¿

¿

¿

¿

¿

¿

=> não é robusto à oclusão, não é invariante, não é distintivo

Histograma descreve distribuição de vetores de cor

Page 57: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Primeiras bordagens em reconhecimento

Autoimagens (eigenimages) [Turk & Pentland, 1991]

=> não é robusto à oclusão, não é invariante . .1v.

3v

2v.

Projeta imagens de faces para um espaço de características, face space

Eigenfaces são os eigenvectors (principal components) da matriz de covariância de um conjunto de faces

Cada imagem é um ponto ou vetor em um espaço hiperdimensional

Cada face é uma soma ponderada das eigenfaces → comparam-se os pesos

Page 58: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Primeiras bordagens em reconhecimento

Autoimagens (eigenimages) [Turk & Pentland, 1991]

Imagens de treinamento Sete eigenfaces

Page 59: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Primeiras bordagens em reconhecimento

Invariantes geométricos [Rothwell, Zisserman, Mundy and Forsyth, 1992]

=> local e invariante

Invariantes obtidos por curvas algébricas planas,i.e., linhas e cônicas:

5 linhas coplanares fornecem dois invariantes independentes

1 cônica e 3 linhas permitem calcular 3 índices

1 par de cônicas fornece dois índices invariantes

Extrai bordas com Canny

Distância entre dois pontos é invariante à rotação

Cross-ratio é invariante à homografia planar

Page 60: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Bordas x Cantos

Page 61: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Pontos de interesse

Page 62: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Harris detector

Baseado na ideia de auto-correlação

Diferença relevante em todas direções => ponto de interesse

Page 63: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Abordagem proposta por Schmid and Mohr, 1997

1) Extração de pontos de interesse (characteristic locations)

2) Cálculo de descritores locais

3) Determinação de correspondências

4) Seleção de imagens similares

( )local descriptor

Page 64: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Determinando correspondência

Comparação dos vetores com distância de Mahalanobis:

)()(),( 1 qpqpqp TMdist

( ) ( )=?

Page 65: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Descritores locais

G (( x ' , y ' )t , σ )=1

2 πσ2exp (−

( x ' , y ' )t2

2σ2)

I ( x , y )∗G (σ )=∫−∞

∫−∞

G ( x' , y ' ) I ( x−x ' , y− y ' )d x 'd y '

v ( x , y )=(I ( x , y )∗G (σ )

I ( x , y )∗G x(σ )

I ( x , y )∗G y (σ )

I ( x , y )∗Gxx (σ )

I ( x , y )∗Gxy (σ )

I ( x , y )∗G yy( σ )

)Derivadas na escala de cinza

Page 66: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Descritores locais

Invariância à rotação: invariantes diferenciais [Koen87]

[LLi LiLi Lij L jLiiLij Lijε ij(L jkl LiLk Ll−L jkk Li Ll Ll )

Liij L j Lk Lk−Lijk Li L j Ll−ε ij L jkl Li Lk LlLijk Li L j Lk

]=[LLx Lx+Ly L yLxx Lx Lx+2 Lxy LxL y+Lyy L yyLxx+L yyLxx Lxx+2 Lxy Lxy+Lyy L yy…

……

] onde ε ij é o tensor antisimétrico epsilon

Page 67: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Descritores locais

Robustez à variação em iluminação

Em caso de transformações afins:

baII )()( 21 xx [Li Lij L j

(Li Li )3 /2

Lii( Li Li )

1 /2

Lij L jiLi Li

ε ij(L jkl Li Lk Ll−L jkk Li Ll Ll )

(Li Li )2

LiijL j Lk Lk−Lijk Li L jLk )

(Li Li )2

−ε ij L jkl Li Lk Ll(Li Li )

2

Lijk Li L j Lk(Li Li )

2

]Ou normalização de pedaço da

imagem com média e variância

Page 68: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Scale Invariant Feature Transform (SIFT)

Detector e descritor de pontos de interesse proposto por Lowe em 2003

Características locais

Invariância

Page 69: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Invariant Local Features

Image content is transformed into local feature coordinates that are invariant to translation, rotation, scale, and other imaging parameters

SIFT Features Lowe 2003

Page 70: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Scale space processed one octave at a time

Lowe 2003

Page 71: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Key point localization Detect maxima and minima of

difference-of-Gaussian in scale space

Fit a quadratic to surrounding values for sub-pixel and sub-scale interpolation (Brown & Lowe, 2002)

Taylor expansion around point:

Offset of extremum (use finite differences for derivatives):

Blur

Resam ple

Subtra ct

Lowe 2003

Page 72: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Select canonical orientation Create histogram of local

gradient directions computed at selected scale

Assign canonical orientation at peak of smoothed histogram

Each key specifies stable 2D coordinates (x, y, scale, orientation)

0 2

Lowe 2003

Page 73: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Example of keypoint detectionThreshold on value at DOG peak and on ratio of principle curvatures (Harris approach)

(a) 233x189 image(b) 832 DOG extrema(c) 729 left after peak value threshold(d) 536 left after testing ratio of principle curvatures

Lowe 2003

Page 74: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

SIFT vector formation Thresholded image gradients are sampled over 16x16

array of locations in scale space Create array of orientation histograms 8 orientations x 4x4 histogram array = 128 dimensions

Lowe 2003

Page 75: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

SIFT vector formation

Lowe 2003

Page 76: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Lowe 2003

Page 77: Visão computacional - UFPR · 2019. 12. 10. · Visão computacional Prof. Eduardo Todt 2019. Sensores CCD Array de sensores, carga em capacitores transferida entre pixels, leitura

Histogram of gradients