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/