Robótica MO810/MC959 lmarcos/mo810.

74
Robótica MO810/MC959 http://www.ic.unicamp.br/ ~lmarcos/mo810

Transcript of Robótica MO810/MC959 lmarcos/mo810.

Page 1: Robótica MO810/MC959 lmarcos/mo810.

RobóticaMO810/MC959

http://www.ic.unicamp.br/~lmarcos/mo810

Page 2: Robótica MO810/MC959 lmarcos/mo810.

Gradiente 1D• Uma dimensão:

• Duas dimensões:

),()( fxx

f

x

fxf

y

f

x

fyxf

),(

x

y ou inclinação ou direção ou tangente

Módulo ouintensidade

Page 3: Robótica MO810/MC959 lmarcos/mo810.

Na prática, uma aproximação

P0(x0,y0)

P1(x1,y1)

Page 4: Robótica MO810/MC959 lmarcos/mo810.

Gradiente 2D

x

y

yx

y

x

y

x

fDireção

fsMagnitude

yxfnyxf

yxfynxf

xfnxfxfxfyy

xx

1

22

000101

01

tan)(:

)(:

),(),(

),(),(

)()()()(

Page 5: Robótica MO810/MC959 lmarcos/mo810.

Vários tipos de gradiente

• Roberts:

• Prewit

• Sobel

01

10

10

01

101

101

101

111

000

111

101

202

101

121

000

121

Page 6: Robótica MO810/MC959 lmarcos/mo810.

Gradiente e imagem

• Gradiente mede variação da intensidade

• Gradiente realça arestas

• Pode-se derivar outras máscaras para outras direções (tudo é mesmo uma aproximação dada pelo cálculo infinitesimal):

• Exemplo:110

101

011

Page 7: Robótica MO810/MC959 lmarcos/mo810.

Laplaciano

• Aproximação:

2

2

2

22

y

f

x

ff

),1(),1()1,()1,(4

1),(),( yxfyxfyxfyxfyxfyxL

Page 8: Robótica MO810/MC959 lmarcos/mo810.

Problemas com o Laplaciano

• Informação direcional não disponível

• Aumenta o ruído nas imagens (duplica), lembre-se que é uma aproximação

• Prejudicado por picos e vales bruscos

• Solução: suavizar imagem antes com o gaussiano G => muitos cálculos.

• Juntar 2 e G num único filtro:

• L(G(I(x,y))) = LoG(I(x,y))

Page 9: Robótica MO810/MC959 lmarcos/mo810.

Filtro Gaussiano

• G0:

• G1: Gradiente do gaussiano

• G2: Laplaciano do gaussiano

2222 ,2

1),(

2

2

yxreyxgr

2

2

23 2

)(

r

er

rg

2

2

235

2 1

2

1)(

r

er

rg

Page 10: Robótica MO810/MC959 lmarcos/mo810.

Exemplos de máscara gaussiana• Normalized Gaussian (norma 1) (G0 1D)

• double gn[3][7]={/*3 sigmas diferentes*/

• {0.0000, 0.0003, 0.1065, 0.7866, 0.1065, 0.0003, 0.0000 },

• {0.0513, 0.1219, 0.2049, 0.2436, 0.2049, 0.1219, 0.0513 },

• {0.1063, 0.1403, 0.1658, 0.1752, 0.1658, 0.1403, 0.1063 }};

• Normalized Gaussian first derivative (norma 1) (G1 1D)

• double dgn[3][7]={/*3 sigmas diferentes*/

• {0.0000, 0.0025, 0.4975,-0.0000,-0.4975,-0.0025,-0.0000 },

• {0.1278, 0.2023, 0.1700,-0.0000,-0.1700,-0.2023,-0.1278 },

• {0.2083, 0.1834, 0.1083,-0.0000,-0.1083,-0.1834,-0.2083 }};

• Normalized LoG (by norma 1) (G2 1D)

• double lgn[3][7]={ /*3 sigmas diferentes*/

• { 0.0000, 0.0028, 0.2228,-0.5488, 0.2228, 0.0028, 0.0000 },

• { 0.1320, 0.0570,-0.1629,-0.2962,-0.1629, 0.0570, 0.1320 },

• {-0.0000,-0.1246,-0.2354,-0.2800,-0.2354,-0.1246,-0.0000 }};

Page 11: Robótica MO810/MC959 lmarcos/mo810.

Gráficos

Page 12: Robótica MO810/MC959 lmarcos/mo810.

Gradiente de superfícies

• Vetor (p,q) tal que:y

fq

x

fp

;

p

q

p

qx

y

f

f

Normal

Page 13: Robótica MO810/MC959 lmarcos/mo810.

Shape from shading

• Mapa de reflectância

• dão a direção da luz

N

Luz

Observador

),(

)1)(1(

)(),(

2222

0

ss

ss

ss

qp

onde

qpqp

qqpprqpR

Page 14: Robótica MO810/MC959 lmarcos/mo810.

Recuperando a forma de uma esfera

Page 15: Robótica MO810/MC959 lmarcos/mo810.

Mapa de reflectância

Page 16: Robótica MO810/MC959 lmarcos/mo810.

Recuperando a forma de uma bacia

Page 17: Robótica MO810/MC959 lmarcos/mo810.

Mapa de reflectância

Page 18: Robótica MO810/MC959 lmarcos/mo810.

Processo iterativo

• Resultado mapa de normais ou diagrama de agulhas

• Em cada posição, vetor normal indica a direção da normal à superfície.

Page 19: Robótica MO810/MC959 lmarcos/mo810.

Problemas

• Alguns casos, mais de uma solução

• Dependente do tipo de iluminação

• Bordas complicam

• Necessidade de inicialização (n0)

Page 20: Robótica MO810/MC959 lmarcos/mo810.

Estéreo fotométrico

• Variação da posição de iluminação

N

Luz

Observador

N

Luz

Observador

Page 21: Robótica MO810/MC959 lmarcos/mo810.

Estéreo fotométrico

• e

• mas p1 = p2 e q1 = q2

• ps1 e ps2 são conhecidos, portanto, é possível encontrar uma solução

)1)(1(

)(),(

21

21

21

21

11110111

ss

ss

qpqp

qqpprqpR

)1)(1(

)(),(

22

22

22

22

22220222

ss

ss

qpqp

qqpprqpR

Page 22: Robótica MO810/MC959 lmarcos/mo810.

Shape from line-drawing

Page 23: Robótica MO810/MC959 lmarcos/mo810.

Shape from line-drawing

Page 24: Robótica MO810/MC959 lmarcos/mo810.

Shape from line-drawing

• 1) Detetor de arestas

• 2) Binarização

• 3) Tentar encontrar estruturas que permitam reconstruir a forma (cantos, etc)

• 4) Tentar achar a orientação espacial destas estruturas.

• 5) Tentar juntar as estruturas no espaço

Page 25: Robótica MO810/MC959 lmarcos/mo810.

Shape from line-drawing

Page 26: Robótica MO810/MC959 lmarcos/mo810.

Shape from motion

• Imagem como uma série de Taylor:

• Se considerarmos que a intensidade da imagem não muda se movermos a imagem de um ponto a outro:

• Assim: (eq. fundamental)

...),,(

),,(

22

22

2

2

ydy

fdx

x

fdt

t

fdy

y

fdx

x

ftyxf

dttdyydxxf

),,(),,( tyxfdttdyydxxf

tt

f

t

dy

y

f

t

dx

x

f

Ignorados

Page 27: Robótica MO810/MC959 lmarcos/mo810.

Fluxo óptico

• Fazendo obtém-se

• ou

• onde é o gradiente (espacial) da imagem

dt

dyv

dt

dxu ;

vy

fu

x

f

t

f

fUt

f

f

Page 28: Robótica MO810/MC959 lmarcos/mo810.

Explicação

• Considere câmera fixa e objeto movendo

• A taxa de variação no tempo da intensidade de um ponto na imagem é explicada como sendo a taxa variação no espaço da intensidade da cena multiplicada pela velocidade com que o ponto se move em relação à câmera.

• Algo como a segunda lei de Newton ?

Page 29: Robótica MO810/MC959 lmarcos/mo810.

Integrando motion (relaxação)

• T=0

• Estime u(x,y,o),v(x,y,0)

• Até que algum erro seja satisfeito, faça

• fim;

• Obs:

22yx

t

ff

fU

D

Pfvv

D

Pfuu

ykav

k

xkav

k

1

1

222

;

yx

tavyavx

ffD

fvfufP

Page 30: Robótica MO810/MC959 lmarcos/mo810.

Shape from stereo

• Duas ou mais imagens da mesma cena

• Tomadas de pontos de vista diferentes

• Percepção da 3a dimensão

Page 31: Robótica MO810/MC959 lmarcos/mo810.

Calibração de câmera

x y z

R R R D

R R R D

R R R D

x

y

zi i i

i

i

i, , , 1

0 0 0 1 1

1 1 1 2 1 3 1

2 1 2 2 2 3 2

3 1 3 2 3 3 3 ( 1 )

x y z

R R R

R R R

R R R

x

y

z

D

D

Di i i

i

i

i

, ,1 1 1 2 1 3

2 1 2 2 2 3

3 1 3 2 3 3

1

2

3

( 2 )

X fx

zf

y

zi ii

i

i

i, Y ,

X fR x R y R z D

R x R y R z Dii i i

i i i

1 1 1 2 1 3 1

3 1 3 2 3 3 3

Y fR x R y R z D

R x R y R z Dii i i

i i i

2 1 2 2 2 3 2

3 1 3 2 3 3 3

Page 32: Robótica MO810/MC959 lmarcos/mo810.

Restrições de ortonormalidade

R R R

R R R

R R R

112

122

132

212

222

232

312

322

332

1

1

1

R R R R R R

R R R R R R

R R R R R R

11 21 12 22 13 23

11 31 12 32 13 33

21 31 22 32 23 33

0

0

0

R R R

R R R

R R R

112

212

312

122

222

322

132

232

332

1

1

1

R R R R R R

R R R R R R

R R R R R R

11 12 21 22 31 32

11 13 21 23 31 33

12 13 22 23 32 33

0

0

0

Page 33: Robótica MO810/MC959 lmarcos/mo810.

Princípio básico da reconstrução estéreo (triângulos)

Objeto

Olhoesquerdo

Olhodireito

Page 34: Robótica MO810/MC959 lmarcos/mo810.

Transformações

• Objetos guardam relações com o mundo real

• Rotação, translação e escala

• Se conseguirmos determinar pontos correspondentes, pode-se determinar os triângulos e a 3a dimensão

• Casamento de todos os pontos

Page 35: Robótica MO810/MC959 lmarcos/mo810.

Disparidade estéreo

yl

y

P(x,y, z)

yr

xl xr

xO b

Figura 2.1 - Modelo estéreo

f

b

Page 36: Robótica MO810/MC959 lmarcos/mo810.

Premissas

• (x, y, z) = coordenadas de um ponto no espaço

• Origem imagem esquerda (xl, yl) em (0, 0, f)

• Ponto focal esquerdo em (0, 0, 0)

• Imagem direita (xr, yr) com origem em (b, 0, f)

• Ponto focal direito em (b, 0, 0)• b = linha de base• f = distância focal (dos centros aos planos

imagens)

Page 37: Robótica MO810/MC959 lmarcos/mo810.

Disparidade e Profundidade

xfx

zl

x

f x b

zr

y yfy

zl r

yl

y(x,y,z)

yr

xl xr

xO b

Figura 2.1 - Modelo estéreo

d

bxx l

d

byy l

d

bfz

d = xl - xr,

b

f

xl xr

Page 38: Robótica MO810/MC959 lmarcos/mo810.

Generalizando (movendo origem)

(0,0,0) (d,0,0)(-d,0,0)

Page 39: Robótica MO810/MC959 lmarcos/mo810.

Calculando a disparidade

Page 40: Robótica MO810/MC959 lmarcos/mo810.

Observações

• z é inversamente proporcional a d• z é diretamente proporcional a b• fixado um erro na determinação de d:

– precisão na determinação de z cresce de forma direta com b.

– com o crescimento de b, imagens tendem a ser muito diferentes uma da outra

– ponto visível numa imagem pode não ser noutra, mesmo com vergência

Page 41: Robótica MO810/MC959 lmarcos/mo810.

Mais observações

• d é proporcional à distância focal f

• à medida que f cresce, imagens também

• aumenta a distância do ponto projetado nas imagens ao centro destas e em conseqüência a disparidade

Page 42: Robótica MO810/MC959 lmarcos/mo810.

Determinando altura dos pontos

ii

i ddd

hh

0

0

000

0

lr

lirii

ii

xxd

xxd

ddd

ii dd

hh

0

0 ii

i ddd

hhh

0

00

Page 43: Robótica MO810/MC959 lmarcos/mo810.

Restrição epipolar

r

rr

r

rr

z

y

f

y

z

x

f

x

e

wcszvbsyuasx rrr e ,

wcsc

bwcv

c

b

f

y

wcsc

awcu

c

a

f

x

r

r

1

1

Page 44: Robótica MO810/MC959 lmarcos/mo810.

Linhas epipolares

S'l

S'r

Sl S

r

D'l

D'r

P'l

P'r

b

P

Dl D

r

Page 45: Robótica MO810/MC959 lmarcos/mo810.

Orientação relativa (interior)

Page 46: Robótica MO810/MC959 lmarcos/mo810.

Orientação relativa

rlll

rlll

rlll

zrzryrxr

yrzryrxr

xrzryrxr

34333231

24232221

14131211

9 incógnitas para R3 incógnitas para TTotal de 12 incógnitas (ou graus de liberdade)

3 equações (restrições normalidade de R) +1 equação (restrição de ortogonalidade de R)4 pontos correspondentes no sistema de câmeraTotal de 12 restrições seria OK?

r

rr

r

rr

z

y

f

y

z

x

f

x

e

Page 47: Robótica MO810/MC959 lmarcos/mo810.

Orientação relativa

Mínimo de 5 pontos = 5x2 = 1010 + 4 = 14 > 131 incógnita para S

yl

y P(x, y, z)

yr

xl xr

xO b

Figura 2.1 - Modelo estéreo

y

l

y P(x, y, z)

y

rx

l

x

r

xO bFigura 2.1 - Modelo estéreo

Page 48: Robótica MO810/MC959 lmarcos/mo810.

Solução

• 5 pontos com coordenadas de mundo conhecidas (não coplanares) e seus correspondentes nas imagens

Page 49: Robótica MO810/MC959 lmarcos/mo810.

Orientação absoluta (exterior)

Page 50: Robótica MO810/MC959 lmarcos/mo810.

Algoritmos estéreos1) Extração de feições ou características das

imagens;

2) Estabelecimento de correspondência (matching) entre as feições extraídas;

3) Reconstrução tridimensional.

Objeto

Olhoesquerdo

Olhodireito

Page 52: Robótica MO810/MC959 lmarcos/mo810.
Page 53: Robótica MO810/MC959 lmarcos/mo810.
Page 54: Robótica MO810/MC959 lmarcos/mo810.
Page 55: Robótica MO810/MC959 lmarcos/mo810.
Page 56: Robótica MO810/MC959 lmarcos/mo810.
Page 57: Robótica MO810/MC959 lmarcos/mo810.
Page 58: Robótica MO810/MC959 lmarcos/mo810.
Page 59: Robótica MO810/MC959 lmarcos/mo810.
Page 60: Robótica MO810/MC959 lmarcos/mo810.
Page 61: Robótica MO810/MC959 lmarcos/mo810.

Corresp. estéreo (matching)

• estereogramas de pontos randômicos • evidências da fase de correspondências • correlação de áreas ou de características (ou

elementos)• as imagens são pré-filtradas (eliminar altas

frequencias e realce de características)• Ideal: correspondênca para todos os pixels

nas imagens (na prática impossível).

Page 62: Robótica MO810/MC959 lmarcos/mo810.

Possivel método

• 1) determinar detalhes inconfundíveis (contornos, certos ângulos, linhas)

• 2) tentar sua localização na outra imagem• 3) usar as diferenças observadas nos tons de cinza entre pixels

vizinhos (textura) para tentar a correspondência• Valores da luminância de pixels correspondentes a um mesmo

ponto na superfície podem ser diferentes nas duas imagens• diferença na quantização, sistemas de aquisição, pontos de vista

ou ângulos de iluminação, distorções na aquisição, má localização dos elementos, ruídos, ocultação de um elemento numa das imagens.

Page 63: Robótica MO810/MC959 lmarcos/mo810.

Métodos de matching

• Matching baseado em áreas (completo)– correlacão entre janelas– minimização de erros– relaxação

• Matching baseado em elementos– encontrar elementos– correlação entre elementos (esparso)

Page 64: Robótica MO810/MC959 lmarcos/mo810.

Filtragem

Imn(,) =

(,)(,)

mnImn 2 =

2

(,)(,)

mnImn

2

Page 65: Robótica MO810/MC959 lmarcos/mo810.

CORRELAÇÃO de ELEMENTOS

• encontrar numa das imagens elementos que possuam características semelhantes a dados elementos (pixels ou grupos de pixels) da outra imagem, através do cômputo de valores de correlaçã

Page 66: Robótica MO810/MC959 lmarcos/mo810.

CORRELAÇÃO DE SINAIS

• Nishihara (1982)

primitiva “and” em espaço de escalas

Imagem 2G(8) Corr. Sinais Mapa de

Digital Disparid.

Page 67: Robótica MO810/MC959 lmarcos/mo810.

JANELAS ADAPTATIVAS

• 1) restringir tamanho de janela por contornos e por um tamanho máximo

• 2) Cálculo da disparidade para cada ponto da imagem com precisão a nível de píxel.

• 3) Completar o mapa de disparidade iterativamente

• 4) Densificar o mapa de disparidade

Page 68: Robótica MO810/MC959 lmarcos/mo810.

CORRELAÇÃO DE CANTOS

• 1) Extração de elementos tais como sequências de arestas ou aproximações de polígonos e localizar cantos nestes.

• 2) Aplica-se um operador diferencial e relaciona-se pontos que são cantos por limiarização (thresholding).

• 3) Uso de um modelo explícito da estrutura local da imagem na vizinhança dos cantos e procurar similares numéricos para tal modelo por uma minimização não linear.

Page 69: Robótica MO810/MC959 lmarcos/mo810.

CORRESPONDÊNCIA de ARESTAS

• 1) Extração de arestas. Definição de estruturas lineares compostas or sequencias de pixels.

• 2) Cálculos de valores de correlação nestas estruturas

• 3) Pode-se eliminar algumas arestas pelo tamanho da estrutura (comprimento), pela curvatura, etc...

Page 70: Robótica MO810/MC959 lmarcos/mo810.

VARREDURA DE LINHAS EPIPOLARES COM USO DE PROGRAMAÇÃO DINÂMICA

),( )(

e ),()(( )(

onde , )(

21121

3222132

32

1

2

3

xxhMinxf

xxhxfMinxf

xfMin

x

x

x

),,( 321

,, 321

xxxhMinxxx

Divide-se o espaço de disparidade dentro de cadalinha epipolar em dois sub-espaçosResolve-se o problema em um deles e depois no outroInter e intra-scan-line

Page 71: Robótica MO810/MC959 lmarcos/mo810.

UTILIZAÇÃO DE SNAKES• tracking de objetos em sequências de imagens

• snake minimiza energia numa spline, guiada por restrições de forças externas e influenciada pelas forças da imagem que a empurram em direção a elementos (features) tais como linhas e arestas

• snakes são contornos ativos que estacionam-se nas proximidades de arestas, localizando-as de forma precisa.

• Usa-se a continuidade de espaços de escala para enlarguecer a região de captura nos arredores de um elemento, ou seja, uma borração inicial da imagem com um filtro. 2)()( sVsVE R

sL

sest

Page 72: Robótica MO810/MC959 lmarcos/mo810.

MATCHING POR NÍVEIS DE CINZA E RELAXAÇÃO

x

E

x

EEEdd rl

llnji

nji

2

1)(

1

)(

2

)( 4

4

22

4

4

4 22

jiji ddkyyxxx

Page 73: Robótica MO810/MC959 lmarcos/mo810.

CLIQUE MAXIMAL• Considere o grafo completo completo cujos nós são os

píxels (ou elementos) de cada imagem

• Ligações ou ramos estão definidos entre cada par deste conjunto de nós, nos dois sentidos.

• Uma esfera, onde os pontos sobre a superfície de cada hemisfério é o conjunto de píxels de cada uma das duas imagens respectivamente, havendo arestas ligando a todos.

• Estabelecer um subgrafo que indique a melhor semelhança entre cada píxel destas imagensO subgrafo solução é denominado clique maximal.

Page 74: Robótica MO810/MC959 lmarcos/mo810.

Matching recursivo (LM)