Contents — find the section you need

Pontos correspondentes no "mesmo plano" — uma mesa, um pôster, o asfalto — capturados em duas imagens estão relacionados por uma relação muito mais simples do que em uma cena 3D geral. Não importa onde a câmera esteja, pontos nesse plano podem ser transformados uns nos outros usando apenas uma única matriz 3\times3. Essa matriz é a homografia (uma transformação projetiva). Enquanto o Guia de Geometria Epipolar lida com restrições de correspondência que pressupõem a profundidade da cena, a homografia é um caso contrastante, pois lida com correspondências que não dependem da profundidade — e somente sendo capaz de usar ambas apropriadamente é que se obtém a visão completa da geometria de duas vistas.

0. Resumo de 30 segundos

  • Uma homografia H é uma matriz 3\times3 que representa uma correspondência de imagem \tilde{\mathbf{x}}'\sim H\tilde{\mathbf{x}}, seja para pontos no mesmo plano ou para uma câmera em rotação pura. Ela possui 8 graus de liberdade, até a ambiguidade de escala.

  • O método DLT (Transformação Linear Direta) constrói duas equações lineares por correspondência de ponto e resolve H linearmente via SVD a partir de 4 ou mais correspondências. A normalização de Hartley é eficaz para estabilização numérica.

  • Como as correspondências reais incluem discrepâncias, os outliers são removidos com RANSAC antes da estimativa final. O tamanho mínimo da amostra é de 4 pontos, o que mantém o número de iterações de estimativa robusta menor do que para a estimativa da Matriz Essencial/Fundamental.

  • Dada uma câmera calibrada, ela se decompõe na forma H=K(R+\mathbf{t}\mathbf{n}^\mathsf{T}/d)K^{-1} em rotação R, direção de translação e normal ao plano \mathbf{n} — embora, em geral, múltiplas soluções candidatas fisicamente plausíveis permaneçam, e você precise de informações adicionais para restringi-las.

  • Para cenas planas ou rotação pura, a homografia é um modelo mais apropriado do que a Matriz Essencial ou Fundamental. Não detectar essa degenerescência significa tentar à força a reconstrução 3D em uma situação onde recuperar a profundidade é fundamentalmente impossível.

1. O que é homografia: Transformação projetiva planar

Quando coordenadas homogêneas \tilde{\mathbf{x}}=(x,y,1)^\mathsf{T} , \tilde{\mathbf{x}}'=(x',y',1)^\mathsf{T} em duas imagens satisfazem a relação

\tilde{\mathbf{x}}' \sim H\tilde{\mathbf{x}}

através de alguma matriz 3\times3 H , chamamos H de homografia. \sim significa igual a menos de escala — multiplicar H por qualquer constante não nula representa a mesma transformação — portanto, os graus de liberdade de H são 9-1=8 .

Diagram 1 · Use the button to switch views
Quatro pontos correspondentes em um plano mapeados da Imagem 1 para a Imagem 2 pela homografia H, em contraste com o caso de paralaxe de profundidade onde um H é insuficiente
Diagram 2 · Use the button to switch views

Existem, em linhas gerais, duas condições físicas sob as quais uma homografia é válida. Primeiro, todos os pontos 3D correspondentes estão em um único plano. Em segundo lugar, mesmo para uma cena com estrutura 3D geral, se a câmera não se deslocar e apenas girar (panorâmica/inclinação), a relação pode ser descrita por uma homografia, independentemente da profundidade. Isso ocorre porque, quando a câmera apenas gira, não há paralaxe.

2. Estimação via Método DLT

A partir de uma única correspondência (x,y)\to(x',y'), podemos derivar uma restrição linear em cada elemento h_1,\dots,h_9 de H (escrevendo \mathbf{h}=\operatorname{vec}(H)). Expandindo a condição de que o produto vetorial \tilde{\mathbf{x}}'\times H\tilde{\mathbf{x}}=\mathbf{0} se anule, obtemos as seguintes duas equações independentes por correspondência.

\begin{bmatrix} -x & -y & -1 & 0 & 0 & 0 & x'x & x'y & x' \\ 0 & 0 & 0 & -x & -y & -1 & y'x & y'y & y' \end{bmatrix}\mathbf{h}=\mathbf{0}

Com 4 correspondências, você obtém 8 equações, que (em posição geral) determinam unicamente o H com 8 graus de liberdade. No caso realista em que 5 ou mais correspondências estão disponíveis, você encontra a solução de mínimos quadrados para A\mathbf{h}=\mathbf{0} para a matriz A empilhando todas as correspondências — isto é, o vetor singular à direita correspondente ao menor valor singular de A, via SVD. Este é o método DLT (Transformação Linear Direta).

Assim como no algoritmo de 8 pontos em geometria epipolar, usar coordenadas de pixel brutas diretamente tende a ser numericamente mal condicionado. A implementação padrão é a Transformação de Laplace Diferencial (DLT) normalizada de Hartley: aplica-se uma transformação de similaridade T,T' ao conjunto de pontos de cada imagem, de modo que ele tenha centroide zero e distância média \sqrt{2}, resolve-se nesse quadro normalizado e, em seguida, transforma-se as coordenadas de volta com H=T'^{-1}H_{\text{norm}}T.

3. Estimação Robusta via RANSAC

Como as correspondências reais incluem discrepâncias, aplicar a DLT diretamente a cada correspondência permite que outliers distorçam significativamente a solução. O RANSAC repete o seguinte:

  1. Seleciona-se aleatoriamente 4 correspondências e constrói-se uma hipótese para H via DLT.

  2. Para cada correspondência, calcula-se o erro de reprojeção entre a posição prevista por H e o ponto correspondente real.

  3. Adota-se a hipótese com o maior número de correspondências (inliers) dentro do limiar.

  4. Resolva o DLT mais uma vez usando todos os inliers finais e finalize com otimização não linear (minimização direta do erro de reprojeção), se necessário.

O número de iterações necessárias pode ser estimado, dado um índice de inliers w , um tamanho mínimo de amostra s=4 e uma probabilidade de sucesso alvo p , como

N=\frac{\log(1-p)}{\log\!\left(1-w^{s}\right)}

Para o mesmo índice de inliers, a homografia s=4 requer menos iterações do que a estimativa da Matriz Essencial/Fundamental, que precisa de s=5 – 8 . Esta é uma das razões pelas quais é prática comum, logo após a correspondência SIFT ou ORB, realizar primeiro uma verificação geométrica aproximada com homografia antes de prosseguir para a estimativa 3D completa.

4. Decompondo H: Extraindo Rotação, Translação e Normal do Plano

Se a câmera estiver calibrada e os parâmetros intrínsecos K_1,K_2 forem conhecidos, a homografia normalizada \tilde H = K_2^{-1}HK_1 pode ser escrita, usando a normal unitária do plano \mathbf{n} (no sistema de coordenadas da câmera 1), a distância ao plano d e a pose relativa R,\mathbf{t}, como

\tilde H = R+\frac{\mathbf{t}\,\mathbf{n}^\mathsf{T}}{d}

Se a câmera sofrer rotação pura sem translação, \mathbf{t}=\mathbf{0}, então \tilde H=R — a própria matriz de rotação.

O processo de recuperar R,\mathbf{t}/d,\mathbf{n} a partir de \tilde H é chamado de decomposição de homografia. São conhecidos diversos algoritmos, incluindo o método clássico de Faugeras-Lustman e o método analítico de Malis-Vargas, que obtêm uma solução analítica usando a decomposição em autovalores de \tilde H^\mathsf{T}\tilde H. No entanto, do ponto de vista puramente matemático, podem existir até 4 soluções fisicamente possíveis (incluindo aquelas correspondentes a inversões de sinal ou reflexões). Na prática, estas são reduzidas usando:

  • Profundidade positiva (quiralidade): os pontos triangulados devem estar em frente a ambas as câmeras.

  • Plausibilidade da normal do plano: consistência com uma direção normal aproximada já conhecida da aplicação — como o chão ou uma parede.

  • Consistência entre múltiplos frames: mesmo que ambígua em um único frame, o rastreamento ao longo do tempo revela soluções não naturais por falta de continuidade.

  • A função decomposeHomographyMat do OpenCV realiza essa decomposição e fornece funções de filtro (como filterHomographyDecompByVisibleRefpoints, que seleciona a solução próxima a uma normal de plano conhecida) que ajudam a avaliar os múltiplos candidatos.

5. Relação com a Geometria Epipolar: Quando H é a Resposta Correta

Como vimos em o Guia Introdutório de Geometria Epipolar, a correspondência entre duas vistas em uma cena 3D geral é descrita pela Matriz Fundamental/Essencial. A homografia é um caso especial disso, e a escolha entre elas é a seguinte.

Situação Modelo Adequado Motivo
Estrutura 3D geral, com translação F (não calibrado) / E (calibrado) A paralaxe depende da profundidade e não pode ser comprimida em um único plano
Toda a cena, ou a região de interesse, é um único plano H Pontos em um plano são descritos exatamente por uma homografia
A câmera realiza rotação pura (apenas panorâmica/inclinação) H Sem translação, não há paralaxe, então F/E degenera
Ao visualizar uma cena distante, a paralaxe é minúscula H (aproximação prática) A paralaxe devido a diferenças de profundidade fica encoberta pelo ruído dos pixels

O problema é que "muitos pontos internos para H" e "a cena é realmente plana ou a câmera está realmente girando puramente" podem, às vezes, ser difíceis de distinguir apenas por meio de observações. Mesmo em uma cena 3D geral, uma parede ou mesa que domine o campo de visão pode se encaixar perfeitamente em uma homografia. O processo de inicialização do ORB-SLAM lida com essa ambiguidade estimando tanto H quanto F em paralelo via RANSAC, avaliando a qualidade do ajuste de cada um e selecionando automaticamente o modelo mais adequado à estrutura da cena e ao movimento da câmera. O ponto-chave da implementação é usar uma pontuação que leve em conta a diferença nos graus de liberdade de cada modelo (uma ideia relacionada ao GRIC), em vez de simplesmente comparar a contagem de inliers.

6. Aplicações: Costura de Imagens, Rastreamento de Planos em RA e Estimativa de Plano de Solo

Costura de imagens (composição de panoramas) — combinar múltiplas imagens capturadas girando a câmera em uma única imagem — é uma aplicação representativa de homografia. A homografia entre imagens adjacentes é estimada, e cada uma é deformada para um quadro de referência comum e mesclada. Quando a suposição de que a câmera está girando quase que puramente deixa de valer (ao filmar enquanto caminha ou quando há um objeto próximo na cena), a paralaxe produz fantasmas e imagens duplicadas.

O rastreamento de âncora plana em RA detecta um plano, como uma mesa ou um pôster, no primeiro quadro e, rastreando a homografia em cada quadro subsequente, consegue determinar de forma estável a pose relativa a esse plano, quadro a quadro. Usando o R,\mathbf{t}/d decomposto, é possível sobrepor um objeto virtual ancorado ao sistema de coordenadas do plano sem inconsistência visual.

A estimativa do plano de solo explora o forte conhecimento prévio de que uma estrada ou superfície de piso é "quase plana". A detecção do plano de solo em câmeras de veículos ou robôs utiliza métodos que rastreiam a homografia entre quadros consecutivos e detectam regiões que se desviam dela (obstáculos, objetos que não são o solo). Essa abordagem detecta uma quebra na consistência geométrica, em vez de reconhecer o próprio objeto.

** ## 7. Exemplo de Implementação em OpenCV

import cv2 as cv
import numpy as np

orb = cv.ORB_create(nfeatures=3000)
kp1, des1 = orb.detectAndCompute(img1, None)
kp2, des2 = orb.detectAndCompute(img2, None)
matches = cv.BFMatcher(cv.NORM_HAMMING).knnMatch(des1, des2, k=2)
good = [m for m, n in matches if m.distance < 0.75 * n.distance]

p1 = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
p2 = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)

# threshold is the allowed reprojection error, in pixels. USAC_MAGSAC is also selectable in place of RANSAC.
H, mask = cv.findHomography(p1, p2, method=cv.RANSAC, ransacReprojThreshold=3.0)
inliers = mask.ravel().astype(bool)

# if K is known, decompose into candidate solutions
num_solutions, Rs, ts, ns = cv.decomposeHomographyMat(H, K)

Observe que o H retornado por findHomography é ambíguo em termos de escala. Assim como na Matriz Essencial do Guia Introdutório de Geometria Epipolar, o vetor de translação obtido da decomposição também determina apenas uma direção — sua escala absoluta deve ser fornecida por algum outro meio (uma distância plana conhecida, uma linha de base estéreo, um sensor inercial etc.).

8. Condições Difíceis

  • Planaridade quebrada: mesmo uma cena que parece plana pode incluir objetos com espessura real — livros, bordas de placas, plantas — e os pontos sobre eles se tornam outliers sistemáticos. Afrouxar o limiar do RANSAC descuidadamente permite que pontos não planos sejam puxados, distorcendo o próprio H.

  • Falha na suposição de rotação pura: se a junção de imagens feita à mão incluir mesmo uma pequena translação, objetos mais próximos se deslocam mais, produzindo fantasmas. O uso de um tripé ou a rotação próxima ao centro óptico da lente é preferível.

  • Configurações degeneradas: se os pontos de correspondência se concentrarem ao longo de uma única linha na imagem ou dentro de uma região estreita, a matriz DLT fica mal condicionada e os erros aumentam acentuadamente nas regiões extrapoladas de H — áreas distantes dos pontos de correspondência.

  • Padrões repetitivos ou planos com pouca textura: com um padrão repetitivo, como pisos de azulejo ou uma janela em forma de treliça, os descritores locais sozinhos não conseguem distinguir uma correspondência correta de uma correspondência incorreta deslocada por um período.

  • Ambiguidade na decomposição: se K for impreciso ou o ruído for grande, pode ser impossível selecionar exclusivamente a solução fisicamente correta entre os múltiplos candidatos da decomposição. Sempre combine isso com conhecimento prévio adicional (direção normal, profundidade positiva).

9. Resumo

A homografia é uma estrutura que representa com precisão duas situações limitadas, mas praticamente frequentes — correspondência em um plano ou uma câmera em rotação pura — com uma única matriz 3\times3. O método DLT é o ponto de partida de mínimos quadrados, o RANSAC é a contramedida para outliers e a decomposição é o estágio final que extrai a rotação, translação e normal físicas. Acima de tudo, o que importa é julgar quando a homografia é o modelo correto e quando você deve mudar para a Matriz Fundamental/Essencial — errar esse limite significa tentar recuperar uma profundidade que não existe, em uma cena que nada mais é do que um plano.

Verifique seu entendimento
Uma homografia pode alinhar objetos em diferentes profundidades?

A translação geral deixa paralaxe para objetos fora do plano. Verifique as suposições de cena plana ou rotação pura antes de usar uma única homografia.

Referências

What to read next

Review the backgroundIntrodução ao Fluxo Óptico — Lendo Velocidade e Estrutura a partir do Movimento da ImagemContinue the seriesGeometria Epipolar — Leitura de Profundidade e Movimento da Câmera a partir de Duas ImagensExplore another aspect of this fieldLab de brilho e luminância — exposição, gama e recorte