Contents — find the section you need

Reúna centenas de fotos tiradas por desconhecidos do mesmo ponto turístico e recupere um modelo 3D desse edifício, juntamente com todas as posições de captura — isso é a Estrutura a partir do Movimento (SfM). A partir de um conjunto de imagens cuja ordem de captura, posições relativas da câmera e até mesmo qual lente foi usada são desconhecidas de antemão, o sistema recupera conjuntamente uma nuvem de pontos 3D geometricamente consistente e as poses da câmera. Enquanto o SLAM Visual e o VO/VIO rastreiam a posição "atual" de um robô ou câmera em tempo real, o SfM é executado principalmente offline, priorizando a precisão para construir uma cena completa. Este artigo explora a estrutura interna do SfM desde sua base, com foco nessa distinção.

A partir de um conjunto de imagens cuja ordem de captura, posições relativas da câmera e até mesmo qual lente foi usada são desconhecidas de antemão, o SfM recupera conjuntamente uma nuvem de pontos 3D geometricamente consistente e as poses da câmera. Enquanto o SLAM Visual e o VO/VIO rastreiam a posição "atual" de um robô ou câmera em tempo real, o SfM é executado principalmente offline, priorizando a precisão para construir uma cena completa. Este artigo analisa a estrutura interna do SfM desde sua concepção, centrando-se nessa distinção.

0. Resumo de 30 segundos

  • SfM é o processo de recuperar simultaneamente a nuvem de pontos 3D esparsa de uma cena e os parâmetros intrínsecos e extrínsecos de cada câmera a partir de várias imagens, por meio de correspondência de pontos de referência e verificação geométrica.

  • Existem basicamente duas estratégias de reconstrução: SfM Incremental, que adiciona as câmeras uma de cada vez em sequência, e SfM Global, que primeiro encontra a pose relativa de cada par e, em seguida, resolve as poses globais de uma só vez.

  • O SfM Incremental é robusto, mas, por ser sequencial, é propenso a desvios (erro acumulado). O SfM Global resolve tudo de uma vez e, portanto, resiste aos desvios, mas é mais vulnerável a poses relativas com muitos outliers.

  • Os pontos 3D e as poses das câmeras obtidos por triangulação são, por si só, apenas estimativas aproximadas afetadas pelo ruído da imagem. A minimização simultânea do erro de reprojeção pelo Ajuste de Pacote é o que, em última análise, determina a precisão do SfM.

  • O SfM e o Visual-SLAM compartilham a mesma geometria subjacente, mas diferem na filosofia de design: o SfM é um processamento em lote offline que prioriza a precisão e a completude, enquanto o SLAM é um processamento online em tempo real que prioriza a imediatidade e a continuidade.

1. O que o SfM recebe como entrada e o que ele produz como saída?

A entrada é um conjunto de imagens \{I_1,\dots,I_N\} cuja ordem de captura e posições relativas são desconhecidas. Cada imagem pode até ter sido tirada com uma câmera diferente, uma lente diferente e em um momento diferente. A saída consiste em três elementos:

  • A pose da câmera de cada imagem i P_i=K_i[R_i\mid\mathbf{t}_i] (parâmetros intrínsecos e extrínsecos)
  • Um conjunto de pontos 3D na cena \{\mathbf{X}_j\} (principalmente uma nuvem de pontos esparsa correspondente a pontos de interesse)
  • A correspondência (rastreamento) de quais imagens observaram quais pontos 3D

Enquanto o Guia de Calibração de Câmera recupera os parâmetros intrínsecos de uma única câmera a partir de um padrão de calibração fixo, o SfM (Surface for Motion) é um problema inverso maior: recuperar simultaneamente os parâmetros intrínsecos e extrínsecos de muitas câmeras não calibradas ou parcialmente calibradas, juntamente com a estrutura da cena, puramente a partir de restrições geométricas entre pontos correspondentes. Se os metadados EXIF incluírem uma distância focal, ela será usada como valor inicial, mas a precisão final depende das restrições geométricas das próprias imagens.

Diagram 1 · Use the button to switch views
Resultado esquemático de SfM no qual cinco imagens registradas e uma imagem não registrada produzem poses de câmera estimadas, pontos 3D esparsos e trajetórias de observação
Figura 1. Saídas típicas de SfM. Uma reconstrução contém não apenas uma nuvem de pontos 3D, mas também o status de registro da imagem, poses de câmera estimadas e as trajetórias que registram quais imagens observam cada ponto 3D. Este é um esquema estrutural, não um resultado de precisão a partir de dados medidos.

Em um visualizador de resultados, verifique primeiro se as câmeras se sobrepõem em uma região implausivelmente pequena, se a nuvem de pontos se divide ou duplica e se alguma imagem falhou no registro. Uma aparência semelhante a um edifício por si só não demonstra precisão. Avalie o erro de reprojeção, o comprimento da trajetória e o número de imagens registradas; quando um comprimento levantado ou GNSS estiver disponível, compare também com essa escala externa. O SfM monocular possui uma escala global arbitrária, portanto, uma distância exibida pelo visualizador de nuvem de pontos não é automaticamente uma distância em metros.

2. O Pipeline Básico

Diagram 2 · Use the button to switch views
The basic SfM pipeline A diagram showing the flow from an unaligned set of images, through feature extraction, matching, and geometric verification, to recovering pose and structure via either Incremental SfM or Global SfM, and finally refining with Bundle Adjustment. Image set Feature extractionexhaustive/nearby matching Geometric verificationF/E/H + RANSAC Incremental SfMinitial pair → add via PnP→ triangulate Global SfMrotation averaging → translation averaging→ triangulate all points BundleAdjustment

As etapas anteriores — extração de características, correspondência e verificação geométrica — são exatamente as mesmas técnicas elementares abordadas no Guia de Detecção de Características e no Guia de Geometria Epipolar. As decisões de projeto específicas do SfM entram em jogo na etapa posterior à descoberta de cada relação entre pares de imagens: como reunir cada imagem e cada ponto em um sistema de coordenadas consistente, sem contradições — que é onde as duas estratégias, SfM Incremental e SfM Global, divergem. ## 3. SfM Incremental: Adicionando Câmeras Uma a Uma

O SfM Incremental começa com a escolha de um par de imagens inicial com paralaxe suficiente e correspondências em número adequado, e constrói a primeira reconstrução de duas vistas estimando a Matriz Essencial/Fundamental a partir da geometria epipolar. A partir daí, repete os seguintes passos:

  1. Seleciona uma nova imagem que já possua correspondências 2D com pontos 3D registrados e encontra a pose dessa imagem por meio do PnP.

  2. Triangula os pontos ainda não reconstruídos em 3D, a partir das correspondências entre a nova imagem e as existentes.

  3. Refina a pose e a estrutura com ajuste de feixe local ou global a cada determinado número de imagens.

  4. Retorna ao passo 1 até que todas as imagens tenham sido processadas ou até que não seja mais possível adicionar imagens.

Essa abordagem, amplamente utilizada desde o Photo Tourism de Snavely et al. (2006), também é adotada pelo pipeline padrão do COLMAP como SfM Incremental. Por incrementar apenas um pequeno número de incógnitas por vez, sequencialmente, trata-se de uma implementação robusta, facilitando a detecção e exclusão de pares de imagens com problemas. Por outro lado, como as poses são empilhadas uma imagem por vez, pequenos erros iniciais se propagam para imagens posteriores, e conjuntos de dados contendo grandes loops (um grupo de imagens revisitando o mesmo local) tendem a acumular desvios. O ajuste periódico de feixes, juntamente com a detecção de revisitas equivalente ao fechamento de loops, é fundamental para controlar esse erro acumulado.

4. SfM Global: Resolvendo Todas as Relações entre Pares de Uma Só Vez

O SfM Global não registra as imagens sequencialmente — primeiro encontra a pose relativa (R_{ij},\mathbf{t}_{ij}/\|\mathbf{t}_{ij}\|) para cada par de imagens (ou um subconjunto selecionado). Em seguida, estima conjuntamente todo o grafo em duas etapas.

A média de rotações encontra um conjunto globalmente minimamente inconsistente de rotações da câmera \{R_i\} a partir do conjunto de rotações relativas entre pares R_{ij}. Uma métrica de erro comumente usada utiliza o mapa logarítmico no grupo de Lie SO(3):

\min_{\{R_i\}}\sum_{(i,j)\in\mathcal E}\rho\left(\left\|\mathrm{Log}\left(R_{ij}^\mathsf{T}R_i^\mathsf{T}R_j\right)\right\|^2\right)

\rho é uma perda robusta, que suprime a influência de poses relativas incorretas que atuam como outliers.

A média de translação, uma vez fixadas as rotações, encontra as posições da câmera \{\mathbf{t}_i\} a partir do conjunto de direções de translação relativa \mathbf{t}_{ij}. Como uma translação relativa monocular fornece apenas uma direção (veja a ambiguidade de escala discutida no Guia de Geometria Epipolar), é necessário encontrar uma configuração consistente a partir de muitas restrições direcionais aos pares — abordagens como 1DSfM, que incluem a remoção de outliers, foram propostas para isso.

Como o SfM Global usa informações de todas as imagens simultaneamente, ele é, em princípio, menos propenso à deriva sequencial observada no SfM Incremental, e também é mais fácil de paralelizar computacionalmente. Mas se outliers forem misturados às poses relativas individuais, toda a solução global fica distorcida, a menos que sejam detectados e excluídos na etapa de média. O trabalho de Moulon et al. (ICCV 2013) é um exemplo representativo que melhorou significativamente a praticidade do SfM Global, combinando a média robusta de rotação com a estimativa da direção de translação usando o tensor trifocal.

Aspecto SfM Incremental SfM Global
Como a reconstrução procede Adiciona uma imagem por vez a partir de um par inicial Resolve primeiro todas as relações entre pares e, em seguida, otimiza conjuntamente
Resistência à deriva Propenso à propagação sequencial e ao acúmulo de erros Pouco erro acumulado, pois é globalmente ótimo
Resistência a outliers Fácil de detectar e remover individualmente ao adicionar uma imagem A remoção de outliers antes do cálculo da média determina a precisão
Custo computacional Sequencial no número de imagens, tende a ficar pesado em grande escala Paralelizável, mas requer otimização global para o cálculo da média
Dificuldade de implementação Muitos exemplos de implementação, fácil de ajustar para robustez A teoria e a implementação da média de rotação/translação são mais complexas
Exemplos representativos Bundler, COLMAP (padrão), VisualSFM openMVG (pipeline SfM Global), Theia

Na prática, em vez de tratar os dois como estritamente excludentes, também estão sendo pesquisados designs híbridos — construindo uma pose global aproximada com SfM Global e refinando-a incrementalmente, ou usando apenas os pares de alta confiança de forma global e adicionando o restante incrementalmente.

5. Triangulação e Gerenciamento de Rastreamento

Uma vez encontradas as poses para um grupo de imagens, a triangulação dos pontos correspondentes para obter pontos 3D é, em si, uma extensão da operação básica de geometria de duas vistas. O que é específico do SfM é como gerenciar a correspondência, chamada de "rastreamento", quando o mesmo ponto físico é observado em três ou mais imagens.

  • Como a correspondência de características é feita aos pares, as correspondências entre as imagens A–B e B–C deveriam, idealmente, implicar também uma correspondência entre A–C, mas, na prática, isso nem sempre se verifica, dadas as distâncias reais dos descritores. Uma verificação de consistência trifocal protege a qualidade dos trajetos.
  • Quanto mais observações um trajeto contém, mais estável se torna a triangulação, mas um trajeto composto apenas de imagens com pequena paralaxe entre elas ainda resulta em uma profundidade instável.

  • Mesmo uma única correspondência incorreta misturada a um trajeto não apenas distorce a posição 3D desse ponto, como também afeta os resíduos do ajuste de feixe subsequente como um todo. A verificação no estilo RANSAC por trajeto e a rejeição de trajetos com grande erro de reprojeção são ambas necessárias.

6. A Ponte para o Ajuste de Feixe

A pose e a estrutura obtidas a partir da triangulação linear ou do PnP sequencial são, na melhor das hipóteses, valores iniciais. Minimizar simultaneamente o erro de reprojeção em todas as imagens —

\min_{\{K_i,R_i,\mathbf{t}_i,\mathbf{X}_j\}} \sum_{(i,j)\in\mathcal{O}}\rho\left(\left\|\pi\left(K_i(R_i\mathbf{X}_j+\mathbf{t}_i)\right)-\mathbf{u}_{ij}\right\|^2\right)

— é o Ajuste de Feixe, e é o que, em última análise, determina a precisão final do SfM. Por que essa otimização tem uma estrutura esparsa e por que o complemento de Schur a torna solucionável mesmo em grande escala são questões computacionais abordadas em detalhes no Guia Introdutório de Ajuste de Feixe. O que vale a pena ter em mente aqui é a diferença em como ele é usado: o SfM Incremental intercala o ajuste de feixe local a cada poucas imagens adicionadas, enquanto o SfM Global executa um único ajuste de feixe completo assim que todas as poses globais estiverem definidas.

7. Diferenças e Semelhanças com o Visual-SLAM

SfM e Visual-SLAM compartilham as mesmas ferramentas matemáticas — correspondência de características, geometria epipolar, PnP e ajuste de feixe. A diferença reside em seus objetivos e limitações.

Aspecto Estrutura a partir do Movimento Visual-SLAM
Estilo de processamento Processamento em lote offline (principalmente) Processamento sequencial online em tempo real
Ordenação de entrada Pode ser não ordenada (qualquer ordem, com múltiplas câmeras misturadas) Assume quadros cronologicamente contínuos
Objetivo principal Reconstrução 3D de alta qualidade priorizando precisão e completude Manter a auto-posição atual em tempo real
Escopo de otimização Ajuste de feixe global em todas as imagens é possível Otimização local/global limitada a quadros-chave, sob fortes restrições de orçamento computacional
Tratamento de revisitas Pode verificar cada par offline Deve detectar e corrigir o fechamento de loop online
Implementações representativas COLMAP, openMVG, Bundler Família ORB-SLAM, família VINS

Na prática, combinações como usar um mapa 3D de alta precisão construído por SfM como mapa inicial ou referência de escala do SLAM, ou pós-processar a trajetória do quadro-chave do SLAM offline com SfM para aumentar a precisão, também são comuns. As duas não são tecnologias concorrentes — elas se complementam no eixo de tempo offline/online.

8. Implementações representativas

  • COLMAP: centrado em SfM incremental, esta é a implementação de pesquisa e produção mais referenciada atualmente, fornecendo um pipeline consistente desde a extração de características, correspondência, verificação geométrica e reconstrução até o ajuste de feixe e Estereoscopia Multivisual.

  • openMVG (Open Multiple View Geometry): uma biblioteca que implementa pipelines SfM incremental e global. Frequentemente usada em conjunto com o openMVS para reconstrução densa.

  • Bundler: a implementação pioneira de SfM incremental que tornou públicos os resultados do Photo Tourism e serviu como base de comparação para muitos trabalhos subsequentes.

  • Meshroom (AliceVision): uma ferramenta de fotogrametria de código aberto com interface gráfica que lida com tudo, desde SfM e MVS até texturização, em uma única etapa.

Ao escolher uma biblioteca, "mais recente significa mais preciso" não é o critério correto — avalie com base no número de imagens que você está processando, nos recursos de GPU/CPU, na confiabilidade da distância focal EXIF, na estratégia de correspondência (exaustiva/sequencial/árvore de vocabulário) e se você deseja um pipeline único e consistente do início ao fim, incluindo MVS e geração de texturas.

9. Condições Difíceis e Casos Comuns de Falha

  • Cenas com pouca textura ou altamente repetitivas: paredes uniformes, superfícies de azulejos e fileiras de plantações em um campo não geram nenhuma correspondência ou produzem frequentes discrepâncias.

  • Conjuntos de imagens com paralaxe extremamente pequena: fotos de uma cena distante tiradas com uma teleobjetiva tornam a triangulação instável, levando a grandes erros de profundidade.

  • Objetos em movimento e mudanças de iluminação: conjuntos de fotos de pontos turísticos misturam pessoas, veículos e diferenças sazonais ou de horário do dia, introduzindo correspondências que violam a suposição de cena estática.

  • Agrupamentos de imagens isoladas: se as fotos forem divididas em dois grupos sem sobreposição de campo de visão, o SfM não consegue unificá-las em um sistema de coordenadas consistente e a reconstrução se fragmenta em várias partes desconectadas.

  • Cenas simétricas: fachadas de edifícios simétricas, por exemplo, podem convergir para uma solução espelhada geometricamente consistente, mas fisicamente incorreta.

  • Cenas simétricas: fachadas de edifícios simétricas, por exemplo, podem convergir para uma solução espelhada geometricamente consistente, mas fisicamente incorreta. ## 10. Escolhas Práticas

  • Se a captura for totalmente ordenada (vídeo ou frames contínuos de um robô), a seleção de pares iniciais do SfM Incremental torna-se fácil, e o pipeline padrão do COLMAP geralmente é suficiente.

  • Para coleções de imagens em larga escala, como fotos de turistas na internet, onde a ordem de captura e a sobreposição são desconhecidas, a escalabilidade do SfM Global tende a ser a vantagem.

  • Para aplicações que exigem desempenho em tempo real (robôs, RA, automotivo), considere o Visual-SLAM ou o VIO em vez do SfM. A principal área de atuação do SfM é a reconstrução offline de alta precisão.

  • Se você precisar de uma forma 3D densa (uma malha ou modelo texturizado), comece com a nuvem de pontos esparsa e a pose do SfM e, em seguida, passe para o Estereoscopia Multivisual.

11. Resumo

A tecnologia Structure from Motion (SfM) recupera conjuntamente as poses da câmera e a estrutura 3D, por meio de correspondência de características e verificação geométrica, a partir de um conjunto não ordenado de imagens, usando a estratégia SfM Incremental ou SfM Global. A estratégia Incremental é robusta, mas propensa a desvios, enquanto a Global resiste a desvios, mas é sensível a outliers — uma compensação simétrica. Em ambas as estratégias, a precisão final é obtida por meio do ajuste de feixe, que se conecta diretamente ao Visual-SLAM, sua tecnologia irmã que opera em um eixo temporal diferente, e ao Multi-View Stereo, uma tecnologia de reconstrução densa.

Verifique seu entendimento
As distâncias reconstruídas por SfM são automaticamente em metros?

A reconstrução monocular retém uma ambiguidade de escala.

Use as dimensões conhecidas ou informações de posicionamento para estabelecer a escala métrica.

Referências

What to read next

Review the backgroundGuia PnP — Recuperando a pose da câmera a partir de apenas pontos 3D e uma imagemContinue the seriesGuia Básico de Ajuste de Feixes — Os Mínimos Quadrados Não Lineares que Aprimoram as Poses da Câmera e os Pontos 3D em ConjuntoExplore another aspect of this fieldLab de brilho e luminância — exposição, gama e recorte