Data Hackers
Published in

Data Hackers

Registro de Imagem (Parte 3) — Coordenadas, Calibração de câmera e Visão Estereoscópica

Photo by Christine Roy on Unsplash

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).

Figura 1: representação de sistemas de coordenadas.[2]
Figura 2: transformação de sistemas de coordenadas para mapeamento de um ponto na imagem.[2]

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.

Figura 3: Keyframes e seleções do Autodesk 123D Catch. [3]

É 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.

Figura 4: Princípio da visão estereoscópica.[2]

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.

--

--

--

Blog oficial da comunidade Data Hackers

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Lucas de Brito Silva

Lucas de Brito Silva

http://lucasbrito.now.sh/

More from Medium

Technology you should know about

Survey of No/Low Code AI End-to-end testing tools

Summary of AI Code Completion Tools — GitHub Copilot

Getting started with OVHcloud AI Training