Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G....

64
www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves

Transcript of Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G....

Page 1: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

www.dca.ufrn.br/~lmarcos/courses/visao

Visão ComputacionalGeometria de Transformações

Luiz M. G. Gonçalves

Page 2: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformações

Vetores, bases e matrizesTranslação, rotação e escalaCoordenadas homogêneasRotações e translações 3D

Page 3: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Vetor

Entidade Física Exemplos:

Entidade Geométrica Exemplos:

Page 4: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Vetores

Noção da Física: comprimento, direção, sentido

Exemplos: velocidade, força, deslocamento

Representação matemática: Enuplas ordenadas v = (v1,v2,…,vn)

v

u

Page 5: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Vetores Soma, subtração e multiplicação p/

escalar Produto escalar: u.v = u1v1+u2v2+…

+unvn

Produto vetorial: Norma: ||v ||= (v1

2+v22+…+vn

2)1/2

Unitário: ||v ||= 1 Ângulo: (u,v) = acos-1[(u.v) / (||u|| ||v)] Ortogonalidade: u.v = 0 ((u,v)=90o)

v

u

0

Page 6: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Uso de transformações

Construir modelos complexos a partir de componentes simples

Transformar coordenadas de câmera em mundo, objeto e imagem e vice-versa

Analisar efeitos de transformações rígidas e não rígidas em objetos

xo

zoyo

yc

xc

zc

xwzw

yw

yimxim

Page 7: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Uso de transformações

Animação Variar transformações no tempo para

criar movimento

xo

zoyo

yc

xc

zc

xwzw

yw

yimxim

Page 8: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Cinemática

Page 9: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Combinação linearDados dois vetores v1 e v2,ande uma

distância qualquer na direção de v1 e então ande outra distância na direção de v2

O conjunto de todos os lugares (vetores, pontos) que podem ser atingidos é dado pelas combinações lineares possíveis entre v1 e v2

Um conjunto de vetores é dito linearmente independentes se nenhum deles pode ser escrito como uma combinação linear dos outros

Page 10: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Combinação linear

V = k1V1+k2V2

v1

v2

k1V1

k2V2

V = k1V1+k2V2

Page 11: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Independência Linear

Um conjunto de vetores é dito linearmente independente se nenhum dos vetores pode ser escrito como uma combinação linear dos outros

Exemplo de 3 vetores LI: e1 = (1,0,0)

e2 = (0,1,0)

e3 = (0,0,1)

Page 12: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Bases vetoriaisUma base vetorial é um conjunto de

vetores linearmente independentes entre si, cuja combinação linear leva a qualquer lugar dentro do espaço, isto é, varre o espaço.

Para varrer um espaço n-dimensional, são necessários n vetores

Se a base é normalizada e os vetores mutu-amente ortogonais, ela é dita ser ortonormal

Obviamente, há muito mais que uma base possível para um dado espaço vetorial.

Page 13: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Representação de vetores

Todo vetor tem uma representação única numa dada base Os multiplicadores pelos vetores da base são

chamados de componentes ou coordenadas Mudando a base, muda os componentes,

mas não o vetor

V= v1E1+v2E2+...+vnEn

Os vetores E1, E2, ..., En são a base

Os escalares v1, v2 , ..., vn são os componentes de v com respeito à base.

Page 14: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformação Linear e AfimUma função (ou mapeamento ou

ainda transformação) F é linear se, para todos os vetores v1 e v2 e todos escalares k:

F(V1+V2) = F(V1) + F(V2)

F(kV1) = kF(V1)Qualquer mapeamento linear é

completamente especificado pelo seu efeito numa base vetorial

Page 15: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Efeito na base

v = v1E1+ v2E2+ v3E3

F(v) = F(v1E1+v2E2+v3E3)=

= F(v1E1)+F(v2E2)+F(v3E3)= = v1F(E1) + v2F(E2)+v3F(E3)

Uma função F é afim se ela é linear mais uma translação Então a função y = mX+b não é linear,

mas é afim

Page 16: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformando um vetor (f11v1+f12v2 +f13v3)E1+(f21v1+f22v2+f23v3)E2+(f31v1+f32v2+f33v3)E3

As coordenadas do vetor da base transformado (em termos dos vetores da base original):

F(E1) = f11E1 +f21E2+f31E3

F(E2) = f12E1 +f22E2+f32E3

F(E3) = f13E1 +f23E2+f33E3

O vetor geral V transformado torna-se:F(V) = v1F(E1) + v2F(E2)+v3F(E3) =v1(f11E1+f21E2+f31E3)+v2(f12E1+f22E2+f32E3)+v3(f13E1+f23E2+f33

E3)=(f11v1+f12v2 +f13v3)E1+(f21v1+f22v2+f23v3)E2+

(f31v1+f32v2+f33v3)E3

Page 17: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformando um vetor

Suas coordenadas ainda em referência a E tornam-se:

v1´= f11v1 +f12v2+f13v3

v2´= f21v1+f22v2+f23v3

v3´= f31v1+f32v2+f33v3

Ou simplesmentevi = fijvj

que é a fórmula de multiplicação matricial

Page 18: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Multiplicação de matrizes!

Uma matriz F de dimensões nxn representa uma função linear em n dimensões A i-ésima coluna mostra o que a função

faz ao vetor de base correspondenteTransformação é uma combinação

linear das colunas de F Primeiro componente do vetor de

entrada escala a primeira coluna da matriz

acumula no vetor de saída repete para cada coluna e componente

Page 19: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Exemplo: ACHANDO A MATRIZ

F:R2->R2: (x, y) -> (2x, 3y)E1 = (1,0), E2 = (0,1)

F(E1) = (2, 0)

F(E2) =(0,3)

Em forma matricial: 2 0 X 0 3 YF:R2->R2: (x, y) -> (2x+y, 3y+x)

Page 20: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Multiplicação matricial

Usualmente calcula-se de modo diferente faça o produto interno da coluna i da

matriz com o vetor de entrada para conseguir componente i do vetor de saída:

v1´ f11 f12 f13 v1

v2´ = f21 f22 f23 v2

v3´ f31 f32 f33 v3

Page 21: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.
Page 22: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Translação

Page 23: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Rotação

Page 24: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Matriz de rotação possui vetores unitários

Page 25: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Representação da rotação

Page 26: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Rotação em torno de Z

Page 27: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Exemplo de rotação

Page 28: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.
Page 29: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.
Page 30: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.
Page 31: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Relações espaciais

Representação em relação a um frame (sistema de coordenadas)

P (X,Y,Z)

Page 32: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Orientação

Page 33: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Orientação

Page 34: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Matriz de orientação

Page 35: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Propriedade elementar (unitária)

Page 36: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformações Homogêneas

Juntando posição e orientação

Page 37: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Juntando orientação e posição

Page 38: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Coordenadas Homogêneas

Page 39: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Juntar rotação e translação

Page 40: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Coordenadas homogêneas

Translação não é linear. Como representar em forma de matriz? Adiciona uma coordenada extra a cada vetor

x´ 1 0 0 tx xy´ = 0 1 0 ty yz´ 0 0 1 tz z1 0 0 0 1 1

Coordenada extra é chamada de homogênea (ou w)

Transformação denominada homogênea

Page 41: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformação Homogênea

Page 42: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.
Page 43: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformações Homogêneas 3D

São muito similar ao 2DCoordenadas homogêneas requerem

matrizes 4x4Matrizes de translação e escala são:

Page 44: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Representação da rotaçãoRepresentação da rotaçao é mais complexa

Page 45: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Rotação 3D

Rotação é um pouco mais complicado

Sistema de coordenadas de mão direita ou esquerda afeta direção de rotação

Sistema de mão direita

Sistema de mão esquerda

x

y

z

x

y z

Page 46: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Produto Cruzado (Vetorial)

Eixo Z é determinado a partir dos eixos X e Y pelo produto vetorial

Produto vetorial segue regra da mão direita em um sistema de mão direita e regra da mão esquerda em um sistema de mão esquerda

Estaremos trabalhando quase sempre com sistema de mão direita

Page 47: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Matriz dual

Se v = (x,y,z) é um vetor, a matriz v*=é denominada matriz dual de v

Produto vetorial: v x a = v* a Ajuda a definir rotações em torno de eixo

arbitrário Velociade angular e matriz dual vezes

derivadas Interpretação geométrica de v* a:

Projeta a num plano normal a v Rotaciona de 90º em torno de v Vetor resultante é perpendicular a v e a a

Page 48: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Ângulos de Euler para rotações 3D

Ângulos de Euler: 3 rotações em torno de cada eixo, porém: Interpolação de ângulos para animação

produz movimentos bizarros Rotações dependem da ordem, e não

existem convenções para que ordem usar

Usado amplamente, devido à simplicidade

Conhecidos como row, pitch, yaw

Page 49: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Roll (x), Pitch (y), Yaw (z)

Page 50: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Rotação em torno de cada eixo

Page 51: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Generalização da Rotação

Page 52: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Rotação arbitrária

Dado um eixo ou direção (x,y,z) e um ângulo , a matriz de rotação fica:

X

Y

Z

(x,y,z)

(Px’,Py’,Pz’)

(Px,Py,Pz)

-

Page 53: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Exemplo de rotação + translação

Page 54: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Exemplo: continuação

Page 55: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Problema da comutatividade

Translação seguida de rotação é diferente de rotação seguida de translação

Page 56: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Transformações em cadeia

Page 57: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Seqüência de transformações

Mesmo conjunto aplicado a vários pontos

Calcular e combinar matrizes é rápido

Reduzir a seqüência numa única matriz

Page 58: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Colapsando transformações

Considere a seqüência p’=ABCDpMultiplicação não é comutativa (ordem)Multiplicação é associativa

Da esquerda para a direita (pré-multiplicação)

Direita para a esquerda (pós-multiplicação)ABCD = (((AB)C)D) = (A(B(CD)))Troque cada matriz pelo produto do par

Page 59: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Colapsando transformações

Mesmo resultado:

Page 60: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Convenção vetor-coluna

Transformação por matriz x vetor

A(B(C(D(x)))) = produto matriz-vetor dado pela seqüência ABCDx

Page 61: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Convenção vetor-linha

Transformação por vetor x matriz

Todas as matrizes devem ser transpostas

Seqüência ABCDx transposta é xtDtCtBtAt

OpenGL usa esta regra

Page 62: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.
Page 63: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.

Invertendo a transf. homogênea

Page 64: Www.dca.ufrn.br/~lmarcos/courses/visao Visão Computacional Geometria de Transformações Luiz M. G. Gonçalves.