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.
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
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:
-
Seleciona uma nova imagem que já possua correspondências 2D com pontos 3D registrados e encontra a pose dessa imagem por meio do PnP.
-
Triangula os pontos ainda não reconstruídos em 3D, a partir das correspondências entre a nova imagem e as existentes.
-
Refina a pose e a estrutura com ajuste de feixe local ou global a cada determinado número de imagens.
-
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):
\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 —
— é 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.
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
- Snavely, Seitz & Szeliski, Photo Tourism: Exploring Photo Collections in 3D (SIGGRAPH 2006)
- Schönberger & Frahm, Structure-from-Motion Revisited (CVPR 2016)
- Moulon, Monasse & Marlet, Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion (ICCV 2013)
- Wilson & Snavely, Robust Global Translations with 1DSfM (ECCV 2014)
- [COLMAP official] Documentação
- Documentação oficial do openMVG
- Hartley & Zisserman, Geometria de Múltiplas Vistas em Visão Computacional (página oficial dos autores)
Comentários
Entre na sua conta para continuar.
Ainda não há dados.