top of page
  • Foto do escritormirella melo

Câmera estéreo: recuperando a profundidade da cena

Atualizado: 10 de jun. de 2022

A aquisição de uma imagem bidimencional acarreta na perda de uma dimensão: a profundidade. Como podemos recuperar esse dado tão fundamental tanto para a vida quanto para as máquinas?


Na vida, nós inferimos a distância dos objetos através de uma série de fatores. Pesquisas apontam a influência de texturas, formatos, e variação da iluminação atuando num mecanismo de busca por correspondência do mesmo "ponto" de luz nos diferentes olhos. Além disso, fatores como tamanho relativo dos objetos com outros na cena, bem como sua movimentação, perspectiva linear e a própria vivência do indivíduo auxiliam nessa estimativa. No entanto, como exatamente nosso cérebro junta e interpreta essas informações ainda não é completamente compreendido [1].


Já considerando as máquinas, a arte imitou a vida. Inspiradas no sistema visual humano (e de outros seres) vieram as chamadas câmeras estéreo: um arranjo composto por dois ou mais sensores de imagem com posicionamentos fixos entre si. Nesse sistema, a estimativa de profundidade se torna possível a partir de duas macro atividades:

  • a definição dos parâmetros do sistema e do modelo das câmeras

  • a correta associação dos pontos correspondentes entre duas imagens

A definição dos parâmetro do sistemas podem ser calculados a partir da calibração, onde o processo mais bem adotado é feito a partir da captura de várias imagens de um tabuleiro de xadrez. Já quanto à associação dos pontos, existem diversas técnicas propostas, porém ainda é um problema amplamente estudado.


A figura 1 ilustra o processo de recuperação da profundidade da cena. Uma vez que o par de imagens é retificado, algoritmos de correspondência estéreo buscam por pixels correspondentes entre as imagens, em seguida, gera o mapa de disparidade e, finalmente, calcula a profundidade desses pontos a partir da triangulação, demonstrada em Câmera Estéreo: triangulação.


Figura 1: processo de estimativa de profundidade a partir do par de imagens. Fonte: autora.


Correspondência estéreo

A atividade mais crucial, difícil e suscetível a erros no processo da figura 1 é encontrar os pontos correspondentes entre o par de imagens. Este conceito é conhecido como correspondência estéreo (em inglês, Stereo matching) e tem uma linha de pesquisa atual e vasta. Quando o par de imagens está retificado horizontalmente, as buscas por pontos correspondentes entre duas imagens bidimensionais podem ser restringidas à uma linha horizontal, caracterizando uma restrição epipolar horizontal, o que leva a uma otimização nas buscas. A figura 2 ilustra essa restrição, isto é, a ponta do coração, na imagem-referência, se encontra na imagem-correspondente no pixel 4 da linha horizontal em questão.

Figura 2: a restrição epipolar horizontal garante que pontos correspondentes estão localizados em linhas correspondentes - num mundo ideal, é claro. Forte: autora.


Essa restrição epipolar é conceituada dentro da geometria epipolar, e você pode descobrir mais sobre esse tópico clicando em Geometria Epipolar [em breve].


Mapa de disparidade

Os algoritmos de correspondência estéreo, que buscam definir pixels equivalentes, resultam em uma imagem conhecida como mapa de disparidade. Mas o que é disparidade? Considerando uma imagem representada por uma matriz 2D, tem-se que as variáveis 𝑢𝐿 e 𝑢𝑅 da figura abaixo representam as posições de coluna de pontos correspondentes (assumindo a restrição epipolar horizontal). Sendo assim, a diferença dos valores 𝑢𝐿 e 𝑢𝑅 é denominada de disparidade.


𝑑 = 𝑢𝐿 - 𝑢𝑅


Figura 3: lustração da disparidade: o objeto capturado por ambas as imagens tem uma

distância relativa de 𝑑 unidades de pixels na horizontal.


Encontrando a disparidade para todos (ou alguns) pixels da imagem-referência, chega-se no mapa de disparidade. Usualmente, a imagem esquerda é a definida como imagem-referência, logo, cada pixel do seu mapa de disparidade guarda o número de pixels que devo deslocar a fim de encontrar o pixel correspondente na imagem direita. Em outras palavras: dado um par de imagens retificadas e sem distorções, um ponto 𝑝(𝑖, 𝑗) na imagem-referência tem seu equivalente na imagem-correspondente em 𝑝(𝑖, 𝑗−𝑑), sendo 𝑑 o valor de disparidade.


A depender da aplicação, a busca por pontos correspondentes pode ser feita para todo pixel da imagem ou apenas para alguns pixels muito específicos. Caso você queira reconstruir um objeto 3D a partir de imagens, por exemplo, é importante ter a estimativa completa de profundidade da cena. Já para estimar a posição da câmera em um ambiente, apenas alguns pontos de referência são suficientes. Logo, o mapa pode ser dado de forma esparsa ou densa, ilustrado na figura 4. No primeiro caso, apenas os pixels destacados em verdes vão ter a informação de disparidade. Já no caso de mapa denso, cada pixel da imagem tem um respectivo valor de disparidade.

Figura 4: tipos de mapa de disparidade. O esparso calcula a disparidade apensas de pontos

específicos (por exemplo, dos pontos destacados em verdes). Já o denso calcula

a disparidade para cada pixel da imagem. Fonte: autora [2].


Profundidade

Finalmente, com o mapa de disparidade e conhecendo os parâmetros das câmeras e do sistema, é possível calcular a pronfundidade do pixel. A equação utilizada é mostrada abaixo, sendo comprimento focal 𝑓 das câmeras, 𝑏 o baseline (distância entre os centro de projeções das câmeras), 𝑢𝐿 e 𝑢𝑅 a posição de pontos correspondentes, e 𝑑 a disparidade. Caso queira entender como chegar nessa equação, sua demonstração pode ser encontrada em Câmera Estéreo: triangulação.



[1] CYGANEK, Boguslaw; SIEBERT, J. Paul. An introduction to 3D computer vision techniques and algorithms. John Wiley & Sons, 2011.

[2] MELO, Mirella Santos Pessoa de. Mapeamento de região navegável a partir de um sistema SLAM e segmentação de imagem. 2021. Dissertação de Mestrado. Universidade Federal de Pernambuco.

12 visualizações0 comentário

Posts recentes

Ver tudo
bottom of page