11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1...

21
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf . puc-rio . br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass 2007-s02 Trabalho 2 – Calibração de câmera e adição de objetos virtuais a cena real César Palomo

Transcript of 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1...

Page 1: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

1

Visão Computacional e Realidade AumentadaProf Marcelo Gattass

2007-s02

Trabalho 2 – Calibração de câmera e adição de objetos

virtuais a cena realCésar Palomo

Page 2: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

2

Objetivos

Calibração de câmera A partir de vídeo de um tabuleiro de xadrez Parâmetros intrínsecos e extrínsecos obtidos

Adição de marcadores e objetos virtuais Matrizes Projection e ModelView do OpenGL

obtidas através da calibração da câmera Adição de objetos virtuais via OpenGL

Page 3: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

3

Calibração – Identificação de cantos Feita por modelo 2D de um tabuleiro de xadrez Identificação de cantos internos do tabuleiro

uso do OpenCV: cvFindChessboardCorners() Exemplo de cantos encontrados e desenhados

pelo OpenCV:

Page 4: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

4

Calibração – Parâmetros da câmera Extrínsecos ou externos

Localização e orientação da câmera Intrínsecos ou internos Calibração: estimativa destes parâmetros Notação:

Z

Yfy

Z

Xfx ,

xc

yc

zcp’

Z

Y

X

P

y'

x'

Z

Yfy

Z

Xfx ,

'

'

y

xp

ZYZ

Xf

Page 5: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

5

Calibração – Parâmetros instrínsecos - 1

Eixo óptico: pode não coincidir com centro óptico da câmera

xim

yim

x’

y’

01 3 4

1

2

0

3

2

sx

sy

p'

ooy

ox5

ximx

oxs

x

'yim

y

oys

y

'

)(

)(

yimy

ximx

oys

oxs

y

xp

Simplificação do método usado: assume que eixo óptico passa pelo centro óptico da câmera

Page 6: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

6

Calibração – Parâmetros instrínsecos - 2

Distância focal f:

Z

Y

X

osf

osf

w

y

x

yy

xx

h

h

100

0

0

wyw

x

y

x

h

h

im

im

)(

)(

yimy

ximx

oys

oxs

y

xp

ZYZ

Xf

Assumindo sx = sy (pixel quadrado):

Z

Y

X

of

of

w

y

x

y

x

h

h

100

0

0

Page 7: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

7

Calibração – Parâmetros instrínsecos - 3

Outras simplificações do método utilizado:

Ignora distorção radial

Ignora cisalhamento

Page 8: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

8

Calibração – Parâmetros extrínsecos - 1

xcyc

zc

ywxw

zw

Pw

Pc t

Rotação e translação Inferidas pela relação entre

coordenadas do mundo e da câmera

w

w

w

cwcwcw

cwcwcw

cwcwcw

c

c

c

cw

Z

Y

X

Z

Y

X

kkkjki

jkjjji

ikijii

P

tPP wc

1w

w

w

z

y

x

cwcwcw

cwcwcw

cwcwcw

c

c

c

cZ

Y

X

t

t

t

Z

Y

X

kkkjki

jkjjji

ikijii

P

wc PtRP

c

c

c

yy

xx

h

h

Z

Y

X

of

of

w

y

x

100

0

0

Page 9: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

9

Calibração – Parâmetros extrínsecos - 2

Translação –Tx, Ty, Tz (3 g.l.)

Rotação (3 g.l. - a priori)

333231

332221

131211

rrr

rrr

rrr

w

w

w

k

j

i

1

0

wwwwww

wwwwww

kkjjii

jkkiji

As restrições complicam ao minimar o erro na derivação dos parâmetros

Page 10: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

10

Calibração – Tsai 2D - 1 Utilizou-se Tsai 2D para calibração Assume:

Centro óptico conhecido Distorção radial insignificante

yimiximi oyyoxx

zww

yww

yi

zww

xww

xi

TYrXr

TYrXrfy

TYrXr

TYrXrfx

ii

ii

ii

ii

3231

2221

3231

1211

Page 11: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

11

Calibração – Tsai 2D - 2

x

yy

xy

x

s

s

f

s

s

f

f

f

Álgebra para simplificação:

yww

i

yz

ww

xww

i

xz

ww

TYrXry

fTYrXr

TYrXrx

fTYrXr

iiii

iiii

22213231

12113231

xwwxiy

wwyi TYrXrfyTYrXrfx iiii 12112221

Assumindo pixel quadrado:

1

xiw

iw

iyiw

iw

i TyrYyrXyTxrYxrXx iiii 12112221

Page 12: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

12

Calibração – Tsai 2D - 3 Substituição de variáveis

0654321 vyvYyvXyvxvYxvXx iw

iw

iiw

iw

i iiii

xy TvTv

rvrv

rvrv

63

125222

114211

Resolve sistema usando SVD (Single Value Decomposition)

0v0Av

3

6

222

121

512

411

vT

vT

vr

vr

vr

vr

y

x

?

?

23

13

r

r

Por estarmosno 2D

...

Page 13: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

13

Calibração – Implementação Utilizou-se Tsai 2D com base nas bibliotecas do “Juiz Virtual”

criadas na Tese de Doutorado de Flávio Szenberg [1]: tsaiCalibration2D() e tsaiCalibration2D_Tr()

Coordenadas do mundo Tabuleiro conhecido: assumiu-se que casas são

quadradas

Coordenadas da câmera (ou do olho) Cantos identificados através do OpenCV, como

anteriormente descrito

Assumiu-se: Centro óptico conhecido: centro da tela (WIDTH / 2,

HEIGHT / 2)

Page 14: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

14

Matrizes OpenGL – 1 Matriz de projeção perspectiva do OpenGL:

0100

2)(00

02

0

002

nf

fn

nf

nfbt

bt

bt

nlr

lr

lr

n

P

Transformando para o Viewport:

xn

yn

zn

111

-1-1-1

2

10

nw

xwxx

2

10

nw

yhyy

2

1max

nw

zzz

xw

yw

w

h

0

y0

x0

Page 15: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

15

Matrizes OpenGL – 2 Obtemos então:

1000

100

010

001

1000

0

0

0

0100

2)(00

02

0

002

100022

00

20

20

200

2

maxmaxz

y

x

exexex

eyeyex

ezeyex

eye

eye

eye

zzz

yyy

xxx

nf

fn

nf

nfbt

bt

bt

nlr

lr

lr

n

zz

hh

ww

cM tPRPtRP wwcwc

1w

w

w

z

y

x

cwcwcw

cwcwcw

cwcwcw

Z

Y

X

t

t

t

kkkjki

jkjjji

ikijii

100

0

0

yy

xx

osf

osf

Page 16: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

16

Matrizes OpenGL – 3 Utilizando os valores de nearplane, farplane e distância

focal:

0100

*2)(00

02

0

02

0

0100

*2)(00

02

0

02

0

0100

*2)(00

002

0

0002

100022

00

20

20

200

2

maxmax

nfar

nfar

nfar

nfar

h

s

f

w

s

f

nfar

nfar

nfar

nfar

h

s

f

w

s

f

nfar

nfar

nfar

nfarhs

fws

f

zz

hh

ww

y

x

y

x

y

x

Uso das funções das bibliotecas de Flávio Szenberg[1]: tsaiOGLProjectionMatrix() e tsaiOGLModelViewMatrix()

Matriz ModelView obtida a partir de R e T da calibração:

1000

]2[]8[]7[]6[

]1[]5[]4[]3[

]0[]2[]1[]0[

TRRR

TRRR

TRRR

Page 17: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

17

Adição de marcadores e objetos virtuais

Carregamento das matrizes do OpenGL glLoadMatrixf()

Adição de marcadores e objetos virtuais Marcadores para os cantos do tabuleiro Eixos x em vermelho, y em verde e z em azul Objetos virtuais em cima do tabuleiro

Page 18: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

18

Implementação C++ OpenGL e GLUT OpenCV Bibliotecas de Flávio Szenberg para Tsai2D

Page 19: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

19

Trabalhos futuros Melhoria da iluminação para integrar melhor objetos

virtuais à cena Melhoria na performance

Page 20: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

20

Referências [1] Szenberg, Flávio “Acompanhamento de cenas com calibração

automática de câmeras”, http://www.tecgraf.puc-rio.br/~szenberg/doutorado/

Enunciado do trabalho: http://www.tecgraf.puc-rio.br/~mgattass/ra/t1Calibra.html

OpenCV: http://www.cs.iit.edu/%7Eagam/cs512/lect-notes/opencv-intro/opencv-intro.html

Slides da disciplina: http://www.tecgraf.puc-rio.br/~mgattass/ra/ppt/

Page 21: 11/09/07 Visão Computacional e Realidade Aumentada César Palomo – cpalomo @ inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass.

11/09/07 Visão Computacional e Realidade AumentadaCésar Palomo – cpalomo @ inf . puc-rio . br

21

?César Palomo

cpalomo @ inf . puc-rio . br

Perguntas