Visão Computacional
Visão Estéreo
http://www.dca.ufrn.br/~lmarcos/courses/visao
Shape from stereo
•
•
•
•
Duas ou mais imagens da mesma cena
Tomadas de pontos de vista diferentes
Percepção da 3a dimensão
Inversão de projeção por triangulação
determinando a 3a dimensão
Estéreo x Motion
Random Dot Stereograms
• http://www.nottingham.ac.uk/~etzpc/sirds.ht
ml
• http://www.nottingham.ac.uk/~etzpc/sirds.ht
ml
Princípio básico da reconstrução
estéreo (triângulos)
Objeto
Olho
esquerdo
Olho
direito
Projeção (transformações)
• Objetos guardam relações com mundo real
• Rotação, translação e escala (corpo rígido)
• Determinar pontos correspondentes nas
imagens usando estas restrições
• Tendo as câmeras calibradas em relação ao
sistema de mundo, sabendo-se a distância
entre as câmeras, pode-se determinar o
triângulo e a 3a dimensão
Modelo estéreo
P(x,y, z)
y
(xl,yl)
f
f
(0,0,0)
O
xr ,xr
(b,0,0)
b
x
P(x,
y, z)
y
Premissas
•
•
•
•
•
•
•
(xl, xr
yl) ,xr
f
f
O (0,0,0)b (b,0,0)
(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 esquerdo em (0,0,0), direito em (b,0,0)
b = linha de base
f = distância focal (dos centros óticos aos planos
imagens)
x
Projetando no plano
x
x-b
xl = x
f z
z
xr
=
f
xl
xr
f
b
x-b
z
xl =
xr =
fx
z
f (x-b)
z
Deslocamento em y=0
(x,y,z)
y
yl
yr
xl
xr
f
yr yl y
= =
f f z
f
O
b
b
Figura 2.1 - Modelo estéreo
x
yl = yr =
fy
z
xl =
Disparidade estéreo
xr =
• Manipulando as equações:
xl - xr = fx - f (x-b) = fx - fx +
z
• Definindo d
fx
z
f (x-b)
fb
fb
=
z
z
z
z
z
bf
z=
l
r
d
fx
fy
=
nas equações xl z e yl = z
=x -x
• Substituindo z
bxl
• achamos finalmente x =
d
e
byl
y=
d
z
Generalizando (movendo origem)
(-d,0,0)
(0,0,0)
(d,0,0)
Calculando a disparidade
b
d
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
Mais observações
• d é proporcional à distância focal f
• à medida que f aumenta, imagens também
• aumenta a distância do ponto projetado nas
imagens ao centro destas e em conseqüência
a disparidade
• no modelo ideal:
– pontos próximos disparidade grande
– pontos longe disparidade pequena
– ponto no infinito disparidade zero
Observações
• Modelo com vergência:
– Pontos no horópter: disparidade zero
– Pontos mais próximos que o horópter: disparidade
positiva
– Pontos mais longe que o horópter: disparidade negativa
• Bom sinal, daria para manter um robô a uma certa
distância de uma pessoa usando apenas
disparidade
Horopter
Determinando altura dos pontos
di = di - d 0
h0
hi =
d i
d0  di
di = xri - xli
d 0 = xr 0 - xl 0
Para pequenos valores de h (terrenos planos):
h0
hi = d i
d0
h0
h1
h0
hi = h0 
di
d 0  di
h2
hi
Restrição epipolar
• Verifica-se no sistema ideal apresentado que
as imagem yl e yr são a mesma e definem
uma reta paralela ao eixo x denominada
linha epipolar
• Para eixos óticos não paralelos, as projeções
de um ponto localizam-se em linhas dadas
pela interseção entre cada plano imagem e o
plano formado pelos dois centros óticos
(epipolos) mais o ponto objeto considerado
• Linhas epipolares
Restrição epipolar
P
Dl
S'l
Dr
Sl
Sr
b
P'l
P'r
D'l
D'r
S'r
P
Dl
Restrição epipolar
S'l
D
r
Sl
Sr
b
P'l
S'r
P'r
D'l
D'r
• Supondo a orientação relativa entre os dois sistemas
conhecida (visto a seguir)
• A projeção de um ponto (xl, yl) na imagem esquerda é
um raio que passa pela origem da imagem esquerda
• As coordenadas de um ponto qualquer situado neste
raio, referenciadas ao sistema esquerdo podem ser
expressas por:
x = x s ,
y = y s , z = f s
Restrição epipolar
• No sistema direito, as coordenadas desse
mesmo
ponto
no
raio
projetivo
correspondente são:
x = (r x   r y  r f )s  r
y = (r x   r y  r f )s  r
z = (r y  r y  r f )s  r
Restrição epipolar
• Assumindo que a distância focal nos dois
sistemas é a mesma, as seguintes equações
de projeção podem ser estabelecidas para o
sistema direito:
xr xr
=
f
zr
e
yr yr
=
f
zr
x = (r x   r y  r f )s  r
y = (r x   r y  r f )s  r
z = (r y  r y  r f )s  r
Restrição epipolar
• Usando as abreviações
xr = as  u, yr = bs  v e zr = cs  w
temos as equações anteriores dadas por
xr a cu - aw 1
= 
f
c
c
cs  w
yr b cv - bw 1
= 
f
c
c
cs  w
que representam uma reta pelo ponto (u/w, v/w),
quando s = 0, e por (a/c , b/c), quando s = .
Restrição epipolar
• O primeiro destes pontos S  é a imagem do ponto
nodal (focal) da câmera esquerda no plano da imagem
direita e o segundo é a imagem P  do ponto acima
considerado também na imagem direita.
P
Dl
S'l
D
r
Sl
Sr
b
P'l
P'r
D'l
D'r
S'r
Restrição epipolar
P
Dl
S'l
Dr
Sl
Sr
b
P'l
P'r
D'l
D'r
S'r
Generalidades
• Considere o raio descrito por um ponto P, o
centro Sl do sistema esquerdo e a imagem Pl
do ponto (estão alinhados).
• Se tomarmos um raio Dr paralelo a este, que
passe pelo centro do sistema direito, a
imagem D  deste raio na imagem direita e a
imagem S  do ponto nodal da câmera
esquerda na imagem direita definirão uma
reta coincidente com a primeira linha
epipolar, descrita antes.
Visão Computacional
Visão Estéreo
http://www.dca.ufrn.br/~lmarcos/courses/visao
Profundidade da disparidade e
ângulos de vergência
Vergência
Vergência
Orientação relativa
Orientação Relativa
(uma câmera em relação à outra)
• Restabelecer as posições relativas que uma
câmera tinha em relação à outra, no
momento de tomada das imagens
• Não importa os pontos de mundo, apenas de
imagem.
Orientação relativa
•Achar R, de modo que:
r11 xl  r12 yl  r13 zl  r14 = xr
r21 xl  r22 yl  r23 zl  r24 = yr
r31 xl  r32 yl  r33 zl  r34 = zr
•Sendo que
xr xr
=
f
zr
e
yr yr
=
f
zr
Orientação relativa
• Então, dados n pontos com coordenadas nas
imagens conhecidas, devemos montar um
sistema de equações para achar R
• 9 incógnitas para R
• 3 incógnitas para T
• Total de 12 incógnitas (ou graus de
liberdade)
Orientação relativa
3 equações (restrições normalidade de R) +
1 equação (restrição de ortogonalidade de R)
4 pontos correspondentes no sistema de câmera
Total de 12 restrições seria OK?
Problema de escala
Total de 13 restrições
Orientação relativa
P(x,y,z)
y
yl
yr
xl
y
xr
P(
y
y
x
x,x
y,
b
z)
Figura 2.1 - Modelo
l
r
l
O
b
Figura 2.1 - Modelo estéreo
x
O
estéreo
Mínimo de 5 pontos = 5x2 = 10
10 + 4 = 14 > 13
1 incógnita para S
r
x
Solução
y
y
l
y
r
x
l
O
P(x,
y, z)
x
r
b
x
Figura 2.1 - Modelo estéreo
• 5 pontos com coordenadas de imagem
conhecidas (não coplanares) em ambas as
imagens
Orientação absoluta ou exterior
(sistema em relação ao mundo)
Orientação absoluta
(determina parâmetros intrínsecos)
• Colocar o par (orientado relativamente) em
escala em relação ao mundo. Dada a
disparidade de um ponto, determinar a
coordenada 3D deste.
• O sistema completo fica orientado em
relação ao frame de mundo.
Orientação absoluta (exterior)
• Com 4 pontos não co-planares
+
+
+
+
+
+
+
+
• 16 equações e 16 incógnitas
+
+
+
+
Orientação absoluta
Algoritmos estéreos
1) 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
Olho
esquerdo
Olho
direito
Matching
• Podemos pensar, a princípio, em determinar
detalhes que sejam inconfundíveis nas
imagens, tais como contornos de objetos,
certos ângulos, linhas, etc, em uma imagem
e tentar sua localização na outra
• Usar as diferenças de tons de cinza entre
pixels vizinhos (textura) e tentar estabelecer
a correspondência.
Busca por correspondência
Corresp. estéreo (matching)
• estereogramas de pontos randômicos
• evidências da fase de correspondências
• correlação de áreas ou de features
(elementos)
• as imagens são pré-filtradas (eliminar altas
freqüências e realce de características)
• Ideal: correspondênca para todos os pixels
nas imagens (na prática impossível).
Problemas - ruídos - erros
• Valores da luminância dos pixels
correspondentes podem ser diferentes.
– Diferenças na quantização da luminância
– Características dos sistemas de aquisição
– Diferentes pontos de vista (diferentes ângulos)
– Distorções ocorridas no processo de aquisição
– Má localização dos elementos
– Ruídos.
• Ocultação de um elemento numa imagem.
Visão Estéreo
• Matching
Métodos de matching
• Matching baseado em áreas (completo)
– correlacão entre janelas
– minimização de erros
– relaxação
• Matching baseado em elementos (esparso)
– encontrar elementos
– correlação entre elementos (esparso)
Pré-processamento
• Redução de ruídos
• Realce de elementos (arestas, cantos,
textura)
• Normalização (em torno da média)
• Outras atenuações ou facilitações (wavelets,
multi-resolução, segmentação)
Pré-processamento (filtragem)
I (m, n)
=

 ( m, n)
I ( m, n )
 =
2

2
 (m, n)
2
I ( m, n)
Correlação
• Dada uma janela numa imagem, encontrar
uma janela na outra imagem cujos pixels
sejam o mais similar possível aos pixels da
primeira janela
Correlação
• Determinar mínimo em:
• ou determinar máximo em:
Correlação
Correlação
Correlação cruzada normalizada
Correlação cruzada normalizada
Correlação cruzada normalizada
CORRELAÇÃO DE SINAIS
• Nishihara (1982)
Imagem
Digital
2G(8)
Corr. Sinais
Mapa de
Disparid.
primitiva “and” em imagem reduzida (32x32
posições)
JANELAS ADAPTATIVAS
• 1) restringir tamanho de janela
contornos e por um tamanho máximo
por
• 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
MATCHING POR RELAXAÇÃO
• 1) Cada ponto em uma imagem possui apenas um
valor de profundidade
• 2) O valor da profundidade de um ponto na cena é
similar ao de seu vizinho
Cn+1(x,y,d)={x’,y’,d’ S Cn(x’,y’,d’) x’,y’,d’  Cn(x’,y’,d’) + C0(x,y,d)}
• Termo entre chaves {t}=1 se t>T e 0 caso contrário
• S =conj. pontos x’,y’,d’ tal que |x - x’|1 e d = d’
•  =conj. pontos x’,y’,d’ tal que |x - x’|1 e |d - d’|=1
Livro do Horn (Robot Vision)
• Relaxação usando o gradiente de
sombreamento
d
n 1
i j

1   El  Er 
= d - ( El - El ) 



2   x  x 
n
i j
4
4
4



 2 ( 2 ) =
2

= k (d i j - d i j )
4
2
2
4



 x
 x yx  y
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
imagens. O subgrafo solução é denominado
clique maximal.
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ção
Métodos baseados em elementos
• El = {{p1,I1},{p2,I2}, …,{pn,In}}
• Er = {{p1,I1},{p2,I2}, …,{pn,In}}
• Percorrer todos os elementos de (El e Er),
encontrando os pares de elementos mais
similares nas duas imagens
Métodos baseados em elementos
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.
CORRESPONDÊNCIA de ARESTAS
• 1) Extração de arestas. Definição de estruturas lineares
compostas por sequencias de pixels.
• 2) Cálculos de valores de correlação nestas estruturas
• 3) Pode-se eliminar algumas arestas na busca da
correspondente, examinando o tamanho da estrutura
(comprimento), a curvatura, etc...
VARREDURA DE LINHAS EPIPOLARES COM
USO DE PROGRAMAÇÃO DINÂMICA
Min h( x1 , x2 , x3 )
x1 , x2 , x3
Min f 2 ( x3 ) , onde
x3
f 2 ( x3 ) = Min ( f1 ( x2 )  h2 ( x2 , x3 ) e
x2
f1 ( x2 ) = Min h1 ( x1 , x2 )
x1
Divide-se o espaço de disparidade dentro de cada
linha epipolar em dois sub-espaços
Resolve-se o problema em um deles e depois no outro
Inter e intra-scan-line
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
(
Eest = VsL ( s ) - VsR ( s )
)
Usando Gabor Wavelets e Fourier
• Deslocamento no espaço corresponde a um
deslocamento de fase na transformada de
Fourier
• Wavelets aproxima Fourier
• (Sanger, Qian)
Matching recursivo (LM)
Marcos Medeiros
• Imagem é decomposta em um espaço de
escalas usando Wavelets ou Gaussianas
• Correlação começa em um nível grosseiro e
até chegar ao nível de melhor precisão
• Ganha em tempo de busca, para o melhor
nível
• Gargalo de ter que computar o espaço de
escalas
Marcos Medeiros
• Problema é então como determinar o nível
onde se deve iniciar o matching, que pode
ser diferente para cada pixel
• Solução: usar um predicado e lógica fuzzy
para calcular qual será este nível, para cada
pixel
• No final, usou apenas LoG (não Wavelets)
• Bons resultados (mais rápido que usando as
wavelets)
Trabalho de casa
• Implementar metodos de Reconstrucao Estereo, para
13/11/07
• Passos:
– Determinar o estado da arte em metodos baseados em area
– Determinar o estado da arte em metodos baseados em features
(elementos)
– Determinar o estado da arte em metodos baseados em biologia
(Gabor, Wavelets, Phase based methods, etc).
– Escolher 2 metodos diferentes e implementa-los (usando imagens
providas pelas cameras cedidas ao grupo).
– Entregar um relatorio com o estado da arte.
Download

Estereo - DCA