11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 1 Visão Computacional e Realidade Aumentada Prof Marcelo Gattass 2007-s02 Trabalho 2 – Calibração de câmera e adição de objetos virtuais a cena real César Palomo
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 2 Objetivos Calibração de câmera A partir de vídeo de um tabuleiro de xadrez Parâmetros intrínsecos e extrínsecos obtidos Adição de marcadores e objetos virtuais Matrizes Projection e ModelView do OpenGL obtidas através da calibração da câmera Adição de objetos virtuais via OpenGL
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 3 Calibração – Identificação de cantos Feita por modelo 2D de um tabuleiro de xadrez Identificação de cantos internos do tabuleiro uso do OpenCV: cvFindChessboardCorners() Exemplo de cantos encontrados e desenhados pelo OpenCV:
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 4 Calibração – Parâmetros da câmera Extrínsecos ou externos Localização e orientação da câmera Intrínsecos ou internos Calibração: estimativa destes parâmetros Notação: xcxc ycyc zczc p’ y' x'
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 5 Calibração – Parâmetros instrínsecos - 1 Eixo óptico: pode não coincidir com centro óptico da câmera x im y im x’ y’ sxsx sysy p' o oyoy oxox 5 Simplificação do método usado: assume que eixo óptico passa pelo centro óptico da câmera
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 6 Calibração – Parâmetros instrínsecos - 2 Distância focal f: Assumindo sx = sy (pixel quadrado):
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 7 Calibração – Parâmetros instrínsecos - 3 Outras simplificações do método utilizado: Ignora distorção radial Ignora cisalhamento
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 8 Calibração – Parâmetros extrínsecos - 1 xcxc ycyc zczc ywyw xwxw zwzw PwPw PcPc t Rotação e translação Inferidas pela relação entre coordenadas do mundo e da câmera
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 9 Calibração – Parâmetros extrínsecos - 2 Translação –T x, T y, T z (3 g.l.) Rotação (3 g.l. - a priori) As restrições complicam ao minimar o erro na derivação dos parâmetros
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 10 Calibração – Tsai 2D - 1 Utilizou-se Tsai 2D para calibração Assume: Centro óptico conhecido Distorção radial insignificante
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 11 Calibração – Tsai 2D - 2 Álgebra para simplificação: Assumindo pixel quadrado:
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 12 Calibração – Tsai 2D - 3 Substituição de variáveis Resolve sistema usando SVD (Single Value Decomposition) Por estarmos no 2D...
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 13 Calibração – Implementação Utilizou-se Tsai 2D com base nas bibliotecas do “Juiz Virtual” criadas na Tese de Doutorado de Flávio Szenberg [1]: tsaiCalibration2D() e tsaiCalibration2D_Tr() Coordenadas do mundo Tabuleiro conhecido: assumiu-se que casas são quadradas Coordenadas da câmera (ou do olho) Cantos identificados através do OpenCV, como anteriormente descrito Assumiu-se: Centro óptico conhecido: centro da tela (WIDTH / 2, HEIGHT / 2)
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 14 Matrizes OpenGL – 1 Matriz de projeção perspectiva do OpenGL : Transformando para o Viewport : xnxn ynyn znzn xwxw ywyw w h 0 y0y0 x0x0
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 15 Matrizes OpenGL – 2 Obtemos então :
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 16 Matrizes OpenGL – 3 Utilizando os valores de nearplane, farplane e distância focal : Uso das funções das bibliotecas de Flávio Szenberg[1]: tsaiOGLProjectionMatrix() e tsaiOGLModelViewMatrix() Matriz ModelView obtida a partir de R e T da calibração :
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 17 Adição de marcadores e objetos virtuais Carregamento das matrizes do OpenGL glLoadMatrixf() Adição de marcadores e objetos virtuais Marcadores para os cantos do tabuleiro Eixos x em vermelho, y em verde e z em azul Objetos virtuais em cima do tabuleiro
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 18 Implementação C++ OpenGL e GLUT OpenCV Bibliotecas de Flávio Szenberg para Tsai2D
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 19 Trabalhos futuros Melhoria da iluminação para integrar melhor objetos virtuais à cena Melhoria na performance
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 20 Referências [1] Szenberg, Flávio “Acompanhamento de cenas com calibração automática de câmeras”, Enunciado do trabalho: OpenCV: Slides da disciplina:
11/09/07 Visão Computacional e Realidade Aumentada César Palomo – inf. puc-rio. br 21 ? César Palomo inf. puc-rio. br Perguntas