Juiz Virtual: uma aplicação de
modelagem baseada em imagens
Paulo Cezar P. Carvalho (IMPA)
Flávio Szenberg (PUC-Rio)
Marcelo Gattass (PUC-Rio)
Computação Gráfica
Modelos
Imagens
Visão Computacional
Câmera Sintética
Computação Gráfica
Modelos
Imagens
Visão Computacional
Geometria e Textura
Modelagem Baseada em Imagens
Posição de câmera
Imagens
Posição, geometria,
textura dos objetos
Câmera sintética
Modelos
Imagens
Novos objetos
(sintéticos)
Image based
modeling
• Produz descrição 3D
dos objetos
• Visualização com
câmeras arbitrárias

Image based
rendering
• Visualização diretamente a partir de um
conjunto de imagens
• Câmeras restritas
Visualização
Modelagem Baseada em Imagens
Câmera sintética, em geral
na mesma posição
Posição de câmera
Imagens
Posição, geometria,
textura dos objetos
Modelos
Imagens
Novos objetos (sintéticos)
na frente ou no fundo da cena
Exemplos de uso de
“image based rendering”
• QuickTime VR
– Usa fotos panorâmicas
de ambientes
– Usuário pode “olhar”
para pontos diferentes
e se “aproximar ou
afastar” da cena (na
verdade, é só um efeito
de zoom)
Exemplos de uso de
“image based rendering”
• Projeto Visorama
(IMPA/ECO-UFRJ)
– hardware especial
– realidade virtual
– aplicações
• turismo
• educação
Exemplos de “image based
modeling”
• Restituição de aerofotos (visão estereo)
• Análise quantitativa de imagens médicas
(extração de medidas de comprimento e
volume)
• Tira-teima e similares.
Hípóteses deste trabalho
• Modelagem baseada em uma única imagem
• Imagem contém pontos de referência cujas
coordenadas são conhecidas
• Objetos têm forma conhecida a priori;
portanto, basta determinar sua localização
na cena através dos pontos de objeto
• Usuário participa do procedimento,
indicando pontos de referência e de objetos
Imagem inicial
ponto de referência (conhecido)
ponto de objeto (a determinar)
Sobrepondo objetos sintéticos
Imagem sintética
De um outro ângulo
Outras formulações possíveis
(não abordadas)
• Uso de imagens múltiplas da mesma cena.
• Uso de uma seqüência de imagens da
mesma cena
– por exemplo, explorando informações
previamente obtidas, como posição da câmera
• Reconhecimento automático de pontos de
referência e de objetos
Da imagem para o modelo
• determinação (calibração) da câmera
– onde está?
– voltada para onde?
– qual o ângulo de abertura?
• determinação dos objetos (jogadores, bola,
juiz)
– onde estão?
Calibração da câmera
• Dada uma amostra de N pontos, de
coordenadas conhecidas (xi, yi, zi), e suas
respectivas localizações (ui, vi) na imagem,
encontrar uma câmera compatível com essa
informação.
Dados para calibração
Modelo de Câmera
• O modelo mais simples: “pin-hole”
Modelo de Câmera
• Equivalente a projeção perspectiva
Projeção perspectiva
M = (X,Y,Z)
Y’
m = (X’, Y’)
X’
Z
f
Semelhança de triângulos : X’ = fX/Z, Y’= fY/Z
Y
X
No entanto ...
• As coordenadas dos pontos de referência
são descritas em um sistema de coordenadas
não relacionado à câmera
• As coordenadas de suas respectivas imagens
são dadas em pixels
No entanto ...
• As coordenadas dos pontos de referência
são descritas em um sistema de coordenadas
não relacionado à câmera
• As coordenadas de suas respectivas imagens
são dadas em pixels
Estabelecer a equação da câmera exige
considerar 4 sistemas de coordenadas.
Quatro sistemas de coordenadas
M = (x,y, z)
Y’
m
X’
Z
Y
X
z
v
(u,v)
x
y
u
Quatro sistemas, três
transformações
• Mundo  Câmera (rotação + translação)
• Câmera  Plano de Projeção (projeção
perspectiva)
• Plano de Projeção  Imagem (escala +
translação)
Coordenadas homogêneas
• É conveniente usar coordenadas
homogêneas para descrever essas
transformações
(x, y, z)
 {(wx, wy, wz, w) | w 0} =
[wx, wy, wz, w]
[x, y, z, w]  (x/w, y/w, z/w)
Do mundo para a câmera
(x,y,z)  (X,Y,Z)
orientação dos
eixos
 X   r1
Y   r
  2
 Z   r3
  
W   0
translação da
origem
tx 

ty

tz 

1
x
 y
 
z
 
1
Projeção perspectiva
(X,Y,Z) (X’,Y’)
 X '  f
  
 Y'    0
W '  0
0
f
0
0 0

0 0
1 0
X 
Y 
 
Z 
 
W 
Da projeção para a imagem
(X’, Y’)  (u, v)
fatores de
escala
 u   u
 v  0
  
 w  0
translação da
origem
0
v
0
u0   X ' 



v0   Y ' 
1  W '
Compondo as transformações
(multiplicando as matrizes)
 u  u r1  u0r3 u t x  u0t z 
  

 v   v r2  v0r3 v t y  v0t z 
 w 

r3
tz
tz
ponto na imagem
x
 y
 
z
 
1
ponto em 3D
De volta à calibração
• O problema é o de encontrar r1, r2, r3, tx, ty,
tz, u, v, u0, v0 (10 parâmetros
independentes)
• Cada par (xi, yi, zi) - (ui, vi) fornece duas
equações (não lineares) envolvendo estes
parâmetros
• São necessários, portanto, pelo menos cinco
pontos
De volta à calibração (cont.)
• Para bons resultados, normalmente se
utiliza um número maior de pontos de
referência.
• Neste caso, o sistema não pode ser
resolvido exatamente.
• Procura-se então encontrar o conjunto de
parâmetros que minimize o erro cometido.
 otimização não linear (problema difícil)
Uma alternativa mais simples
 u  u r1  u0r3 u t x  u0t z 
  

 v   v r2  v0r3 v t y  v0t z 
 w 

r3
tz
matriz de projeção
genérica
x
 y
 
z
 
1
 u   q1
  
 v   q 2
 w  q3
q14 

q24 
q34 
x
 y
 
z
 
1
Vantagens e desvantagens
 O problema de calibração recai na
resolução de um sistema de equações
lineares (ou de um problema de mínimos
quadrados lineares).
 O resultado do processo não é uma
“verdadeira” câmera
Câmera “falsa”
Solução para o problema
• Adotar um segundo passo, no qual a
“falsa”câmera Q é transformada em uma
câmera “verdadeira”.
• A maior parte dos parâmetros da câmera
“verdadeira” são determinados pela
câmera “falsa”.
Parâmetros fornecidos pela
“falsa” câmera Q
• posição da câmera
– obtida fazendo u=0, v=0, w=0 e resolvendo um
sistema de equações
 q1

q 2
 q3
q14 

q24 
q34 
x
 y
 
z
 
1
 0
 
 0
0
Parâmetros fornecidos pela
“falsa” câmera Q (cont)
• direção ortogonal ao plano de projeção
– obtida encontrando o ponto do campo cuja
imagem por Q é o centro da imagem
 q1

q 2
 q3
q14 

q24 
q34 
 wx 
 wy 
 
0
 
w
u0 
 
v0 
 1 
Parâmetros da câmera verdadeira
• Conhecidos
r1, tx, ty, tz, u0, v0
• Desconhecidos:
r2, r3, u, v
• Graus de liberdade:
3 ou 2 (se admitirmos u = v = )
Determinação dos parâmetros
desconhecidos
• Parâmetros a determinar
q2 =  r2, q3 =  r3
• Satisfazem
q2 . r1 = 0, q3 = r1  q2
Problema linear de mínimos quadrados a
duas variáveis (duas componentes de q2, por
exemplo).
Ajustando os parâmetros
comparar com
Após o segundo passo
Da imagem para o modelo
determinação (calibração) da câmera
– onde está?
– voltada para onde?
– qual é sua abertura?
• determinação dos objetos (jogadores, bola,
juiz)
– onde estão?
Posicionando os objetos
• objetos sempre localizados através de sua
posição (x, y, 0) no campo, obtida
resolvendo:
 q1

q 2
 q3
q14 

q24 
q34 
 wx 
 wy 
 
0
 
w
u 
 
v 
1
posição do
“pé“do
jogador
Posicionando os objetos (cont)
• Uma vez conhecida a posição de cada
objeto, modelos previamente preparados
destes objetos podem ser posicionados
corretamente.
• Da mesma forma, é possível determinar a
distância entre dois pontos do campo
através de suas imagens.
Demonstração do
aplicativo
Conclusões
• Método eficiente e relativamente simples de
calibração de câmera.
• Bons resultados apesar do modelo simples
de câmera.
• Utiliza somente uma imagem
• Não exige nenhuma informação a priori
sobre a câmera
Em breve
• Site na Internet contendo o artigo, o
aplicativo, e imagens para teste.
(possivelmente com imagens dos jogos da
Copa)
• Consultar a home-page dos autores:
http://www.impa.br/~pcezar/
http://www.tecgraf.puc-rio.br/~szenberg/
Download

Modelagem baseada em imagens: o caso do "Tira