As câmeras são ferramentas que armazenam a informação visual de uma cena em uma matriz de pixels. Para que isso seja possível, a luz refletida pelo mundo deve alcançar uma matriz de sensores sensíveis à luz (CCD) no interior da câmera. O modelo de câmera mais utilizado para se entender o processo é o modelo pinhole. Nesse modelo a luz deve passar através de um furo bem pequeno, formando uma imagem focada no fundo de uma câmara escura.
Fig 1. Modelo de câmera pinhole
O modelo de câmera pinhole é utilizado para representar esse processo matematicamente. Nessa representação, a cena é armazenada na forma de uma projeção do mundo em um plano chamado plano da imagem. As Figuras 2 mostram o processo de tal representação, onde o centro óptico de projeção da câmera OC é a origem do eixo de coordenadas da câmera. O plano da imagem é paralelo ao plano formado pelos eixos X e Y e perpendicular ao eixo Z. Além disso, ele está a uma distância focal f do centro óptico. O ponto onde o eixo Z intercepta o plano da imagem é chamado de ponto principal da câmera cO = (uO, vO), sendo esse, comumente, o ponto central da imagem.
Fig 2a. Sistema de coordenadas da câmera
Fig 2b. Outra representação do sistema de coordenadas
Fig 2c. Projeção do ponto tridi-mensional X (vista do plano YZ)
Dessa forma, é possível calcular o pixel u = (u, v)T no qual o ponto X = (x, y, z)T é projetado. Primeiramente, encontra-se seu ponto em coordenadas métricas Xp = (xp, yp, zp)T obtido na projeção de X no plano da imagem, para depois relacionar o resultado para valores em pixels u. Considerando que a distância focal é dada na unidade métrica, tem-se que
e zp assumindo valor igual à distância focal f para qualquer ponto projetado no plano da imagem.
Mesmo que tenha sido calculado o valor de zp, representa-se um pixel como um ponto pertencente a uma matriz bidimensional. Desta forma, desconsidera-se o valor de zp e encontra-se a quantia de xp e yp equivalente em pixels. Assim, a transformação que relaciona (xp, yp) na unidade métrica a seu valor (up, vp) em pixels é dada por
onde os parâmetros su e sv dependem das dimensões dos sensores do CCD (em unidade métrica) ao longo dos eixos X e Y , respectivamente, e representam o número de pixels por unidade de comprimento do sensor. Quando su = sv os pixels são quadrados. Caso contrário, os pixels são retangulares. Para simplificar a escrita, suf e svf serão representados, respectivamente, por fu e fv.
Ainda assim, up = (up, vp)T está dado num sistema centrado no ponto principal da câmera. Para que a referência seja tomada como o canto superior esquerdo da imagem, como normalmente se considera em uma matriz numérica, as coordenadas de up devem ser transladadas, como apresentado na Figura 3.
Matematicamente, tem-se que
onde up = fu.x/z e vp = fv.y/z.
Fig 3. Translação do sistema centrado em CO para o canto superior da imagem
Ou seja,
Se essas equações forem organizadas matricialmente de forma a evidenciar os pontos u e X, chega-se a
Percebe-se que todos os elementos do ponto X estão divididos por z, de forma que para explicitar de fato o ponto X, evidencia-se z como um fator de escala. Usualmente, se representa o pixel u em sua forma de coordenadas homogêneas u̇ = (u, v, 1)T, assim, a equação anterior se torna
Nessa equação, a profundidade z já foi expressada como um fator de escala. Ele pode ser retirado ao se dividir o vetor resultante da projeção pelo seu terceiro elemento, visto que este é o próprio z. De forma compacta, a expressão pode ser representada por
onde
Essa matriz é conhecida como matriz de parâmetros intrínsecos da câmera, visto que esses parâmetros dependem de fatores construtivos de cada dispositivo. Nessa representação, os pontos da cena já estão no sistema de coordenadas da câmera, não são considerados a distorção radial e o fator de cisalhamento entre os dois eixos do plano da imagem. O cisalhamento é normalmente considerado zero e a distorção radial pode ser tratada separadamente do modelo de projeção.
Todos esses parâmetros intrínsecos, incluindo o cisalhamento e a distorção radial, podem ser obtidos por meio de um algoritmo de calibração da câmera.
Além de se considerar as características intrínsecas da câmera, é comum em aplicações de reconstrução 3D e robótica se considerar um sistema de coordenadas global onde o robô, o objeto ou a câmera estão inseridos. Dessa forma, precisa-se encontrar uma transformação que associe esse referencial global (e.g. referencial do mundo) com os demais referenciais locais (e.g. referencial da câmera, do robô e do objeto).
As transformações de rotação RWC e translação tWC que levam um ponto no sistema de coordenadas da câmera SC para o sistema de coordenadas global SW (Figura 4) recebem o nome de parâmetros extrínsecos, por dependerem de dados externos, e não internos à câmera.
Fig 4. Transformação (RWC, tWC) do sistema de coordenadas da câmera SC para o global SW
Dessa forma, a transformação de um ponto no referencial 1 para o referencial 2 pode ser escrita como
A transformação (R21, t21) muitas vezes é representada pela matriz
que considera X1 e X2 em coordenadas homogêneas Ẋ1 = (x1, y1, z1, 1)T e Ẋ2 =(x2, y2, z2, 1)T, respectivamente. Assim, a equação anterior passa a ser representada como
Os parâmetros extrínsecos, também podem ser obtidos por meio de um algoritmo de calibração da câmera.
Referência: Capítulo 2 da dissertação de mestrado de Leonardo de Assis Silva.