Em nossa página principal de Visão Computacional, demos um exemplo de brincadeira com perspectiva com a foto da Figura 1. Quando a foto foi tirada, perdemos a informação de profundidade da cena. Todos os objetos tridimensionais se tornaram pixels num mesmo plano.
Mesmo que possa parecer algo trágico :(, por conta dessa perda de informação, podemos tirar essas fotos divertidas que brincam com o conceito de perspectiva.
Nesse caso, a flor se encontra mais próxima da câmera que a menina, dando a impressão de que a flor tem proporções parecidas com o tamanho de saia que ela usaria.
Vamos representar esse exemplo geometricamente. A Figura 2a apresenta a projeção de um ponto tridimensional no plano da imagem no sistema de coordenadas da câmera. Esse ponto pode ser, por exemplo, um ponto na saia da menina.
Fig 2a. Projeção do ponto tridimensional X1 no plano da imagem da câmera O1
Fig 2b. Os pontos X1', X1'' e X1''' sobre a linha ℓ1 também possuem mesma projeção que X1 em u1
Na Figura 2b, um ponto tridimensional X1 = (x1, y1, z1, 1)T na saia da menina da foto é projetado no plano da imagem em u̇1 = (u1, v1, 1)T. Qualquer que fosse a posição de X1 sobre a linha ℓ1 (X1', X1'' e X1'''), sua projeção continuaria sendo a mesma. Ou seja, se um ponto da flor estiver em X1', ele estará à frente da menina na projeção, sendo ele a aparecer na foto, e não a saia da menina. Matematicamente, tem-se que para diferentes valores de z1 haverá um X1 que obedeça à equação de reta
Nota-se que tendo somente essa equação não é possível descobrir z1, visto que não temos nenhum elemento do ponto X1, havendo, portanto, infinitas soluções. Entretanto, se houver outra imagem da mesma cena onde se conhece o ponto correspondente do pixel u̇1, pode-se triangular a informação e reaver a profundidade z1, como mostra a Figura 3. Essa segunda foto pode ser fornecida por qualquer câmera posicionada em um local diferente da primeira. Um sistema de duas câmeras é chamado de sistema estéreo, entretanto, ao abstrair essa definição para imagens, tem-se que qualquer par de imagens que possua uma transformação levando pixels de uma para a outra pode ser chamado de par estéreo, ou sistema estéreo.
Fig 3. Triangulação do ponto X1 com a adição de uma segunda imagem. (R21, t21) representa a transformação de X1 no sistema de coordenadas da câmera 1 para X2 no sistema da câmera 2
Para se triangular a informação, deve-se encontrar a expressão que relaciona os pixels correspondentes das duas imagens. Portanto, primeiramente, transforma-se o pixel u̇1 para unidades métricas com
considerando z1 como a variável que se deseja encontrar.
Posteriormente, para encontrar a projeção do ponto X1 no plano da imagem da câmera 2, deve-se transformá-lo para o sistema de coordenadas da câmera 2
e, então, projetá-lo no plano da imagem da câmera 2
Após a projeção, o resultado estará sobre o efeito do fator de escala z2, que deve ser retirado dividindo-se o próprio vetor resultado z2 u̇2 pelo seu último elemento. Assim, neste caso
Todo o processo citado pode ser representado pela expressão
Assumido conhecimento do pixel u̇2 da imagem 2 correspondente a u̇1, tem-se que z1 é o valor que valida a equação acima.
Claro que com uma foto tirada de outro ângulo, é possível identificar que a menina não possui uma saia de flor. Entretanto, trabalhamos com robótica e visão, certo?! Ao obtermos a profundidade da cena, nossos robôs podem se localizar, interagir com o meio e, inclusive, descobrir a proporção entre a moça e a flor. :)
A Figura 4 apresenta os pixels correspondentes a u̇1 na imagem 2 para diferentes valores de z1.
A localização do pixel correspondente a u̇1 na imagem 2 varia segundo a expressão
como apresentado anteriormente.
Essa equação descreve uma reta, onde para cada valor de z1 há um pixel u̇2. Essa reta corresponde à projeção da linha ℓ1 no plano da imagem da câmera 2 (Figura 4b :D). Ela recebe o nome de linha epipolar.
A Figura 5 ilustra geometricamente a idéia para ambas as câmeras.
Fig 5. Linhas epipolares e epipolos nas duas câmeras
Fig 4a. Pixels correspondentes a u̇1 na imagem 2 para diferentes valores de z1
Fig 4b. A projeção da linha de projeção ℓ1 no plano da imagem da câmera 2 recebe o nome de linha epipolar
O ponto e1, chamado de epipolo, é a projeção do centro óptico da câmera 2 (O2) no plano da imagem da câmera 1. O epipolo e2 é encontrado da mesma maneira. O plano π é formado pelos pontos O1, O2 e X1, onde a linha que liga os centros ópticos das câmeras é chamada de baseline. Sua interseção com os planos das imagens formam as linhas epipolares.
A geometria que reúne essas relações de visão computacional para um sistema estéreo recebe o nome de geometria epipolar. Sua importância para as aplicações de visão está principalmente nas restrições geométricas, que como consequência, limitam o espaço de busca pelo pixel correspondente para uma linha, não sendo necessária uma busca exaustiva por toda a imagem.
Referência: Capítulo 2 da dissertação de mestrado de Leonardo de Assis Silva.