Registro de Imagem (Parte 3) — Coordenadas, Calibração de câmera e Visão Estereoscópica
Esse texto foi feito a partir da leitura do livro Análise de imagens digitais: princípios, algoritmos e aplicações, escrito por Hélio Pedrini. De forma geral, desejo falar sobre o capítulo 10, que trata sobre o tema Registro de Imagem, focando nas coordenadas.
Na sessão passada comentamos sobre interpolações e formações de imagem, o que está disponível no seguinte link.
Coordenadas
As equações também podem ser representadas através de transformação de matrizes, dessa forma, normalmente utiliza-se coordenadas homogêneas, sendo que elas possuem o valor W que é um valor diferente de zero. Dessa forma, a representação de coordenadas homogêneas passa a ser (WX, WY, WZ, W), quando no plano cartesiano seria apenas (X, Y, Z).
Para fazer a transformação de algo nas coordenadas homogêneas para o plano cartesiano, basta dividir os três primeiros valores (WX, WY e WZ) por W, sendo que os três valores resultantes são, respectivamente, X, Y e Z.
As coordenadas cartesianas comumente são utilizadas para representar o mundo real, dessa forma é denominada de sistemas de coordenadas globais que, por padrão, é utilizada para descrever cenas e objetos tridimensionais.
O sistema de coordenadas de uma câmera, no que lhe concerne, também é tridimensional, tendo o ponto Oc como o centro do eixo óptico da câmera e a distância entre o eixo óptico e o plano da imagem definido como f, com coordenadas representadas por (Xc, Yc, Zc).
O sistema de coordenadas da imagem é bidimensional, tendo ele uma origem definida pelo ponto Oi, fruto da projeção ortográfica de Oc sobre o plano de projeção. Suas coordenadas são configuradas por (X’,Y’).
Por fim, o sistema de coordenadas de pixels é definido por uma grade com o ponto de origem definido no canto superior direito de uma imagem. Sua coordenada é representada por (x,y).
Sistema de coordenada global para câmera
Essa transformação de um sistema de coordenadas para o outro, pode ser realizada a partir de movimentos de rotação e translação combinadas, em que a origem da coordenada global é transladada para a origem da câmera, o que pode ser representado por:
Após realizar a transação, o sistema de coordenadas globais realiza uma combinação de três rotações, sendo cada uma delas em um eixo de Xc, Yc e Zc, sendo representada por:
Essas duas transformações podem ser combinadas em coordenadas homogêneas, de modo que pode ser representada por:
Sistema de coordenada de câmera para imagem
A transferência do sistema de coordenadas de câmera para o de imagem consiste em uma transformação perspectiva que pode ser reescrita matricialmente através de:
Sistema de coordenada de imagem para pixel
Essa conversão consiste em contar uma série de fatores externos, como as imperfeições e distorções dos sensores, a disposição não perpendicular entre linhas e colunas, além da definição de origem da imagem ser no centro e do sistema de pixels ser no canto superior direito.
Essa transformação pode ser expressa por:
Em que,
sx → Número de pixels na horizontal;
sy → Número de pixels na vertical;
xc → Posição de x no ponto Oi;
yc → Posição de y no ponto Oi;
A coordenada de (xc,yc) é denominada ponto principal e normalmente são a metade de sx e sy, respectivamente. O valor de normalmente é igual a 𝜋/2, o que representa o valor do ângulo entre as linhas e colunas dos pixels.
As transferências de sistemas de coordenadas podem ser unidas, de modo que do sistema de coordenada global, pode ser transformada diretamente para o de pixels. Isso se dá pela multiplicação entre as transformações M1, M2 e M3 (figura 8), e pode ser representado por:
p = M3 M2 M1 P
Ou pela forma matricial utilizando coordenadas homogêneas:
Sendo que em K estão contidos os parâmetros nomeados como parâmetros intrínsecos da câmera. Todavia, há também os parâmetros extrínsecos das câmeras, encontrados em RT, sendo esses, fatores relacionados a orientação da câmera em relação às coordenadas globais.
Calibração de câmera
A calibração da câmera expressa-se em determinar os parâmetros intrínsecos e extrínsecos das câmeras, permitindo a inferência de informações tridimensionais a partir das coordenadas da imagem.
Normalmente é realizada uma abordagem que estimula os parâmetros da câmera, em que a partir de uma estrutura tridimensional com pontos conhecidos, a câmera é posta em teste, precisando realizar transformações projetivas para mapear os valores dos parâmetros em que as coordenadas dos pontos são identificados melhor.
Para a determinação da matriz de parâmetros, considerando as transformações M1, M2 e M3, descritas anteriormente, pode ser utilizado a seguinte expressão, em coordenadas homogêneas.
Visão estereoscópica
Visão estereoscópica ou visão binocular, é o processo de combinação ou analise para duas imagens da mesma cena de modo que há estimativa de uma coordenada tridimensional[2]. Esse processo permite que a percepção de profundidade, proximidade e forma do objeto sejam calculados.
Um exemplo prático pode ser visualizado no trabalho realizado por Portari Júnior (2013), em que após a seleção de keyframes específicos, o método Autodesk 123D Catch realiza a simulação da trajetória da câmera, posicionando-a em diversas posições para a mesma cena.
É intitulado de plano epipolar o conjunto de duas imagens assim como um ponto P de referência, assim como é intitulado de linhas epipolares as intersecções entre o plano epipolar e os planos das imagens. A distância B entre os eixos ópticos das câmeras, que são determinados pelo centro das lentes, é denominado base estereoscópica ou linha base. Para representar o plano epipolar assim como as linhas epipolares a figura x torna-se importante.
Para obter uma coincidência entre o sistema de coordenadas da câmera e o global, é necessário transladar a câmera para a origem do sistema global, tendo:
Já para a segunda câmera, têm-se:
Dessa forma, para casos em que a distância Z seja igual em ambas as câmeras, pode-se obter utilizar da seguinte fórmula:
Se for realizado a substituição na primeira formula para encontrar o X2 pela fórmula anterior, pode-se obter:
Para ser realizada uma simplificação ainda maior, dado que os valores de B, f, x2 e x1 são conhecidos, encontrar a coordenada Z do ponto P, assim como X e Y torna-se fácil, através das seguintes fórmulas:
Essa foi a última publicação sobre registro de imagens aqui no Data Hackers, obrigado por acompanhar toda essa série. Espero que tenha aprendido muito!
Referências
[1] KLEIN, Felix. his “erlanger programm”. History and Philosophy of Modern Mathematics; University of Minnesota Press: Minneapolis, MN, USA, v. 11, p. 145, 1988.
[2] PEDRINI, Hélio; SCHWARTZ, William Robson. Análise de imagens digitais: princípios, algoritmos e aplicações. Thomson Learning, 2008.
[3] PORTARI JÚNIOR, Sérgio Carlos. Um sistema para extração automática de keyframes a partir de fluxos de vídeo direcionado à reconstrução tridimensional de cenários virtuais. 2013.