Contents — find the section you need
Recopilar cientos de fotos de desconocidos del mismo monumento tomadas en un lugar turístico y reconstruir un modelo 3D de ese edificio junto con cada posición de disparo: eso es la Reconstrucción Estructurada a partir del Movimiento (SfM). A partir de un conjunto de imágenes cuyo orden de captura, posiciones relativas de la cámara e incluso el objetivo utilizado se desconocen de antemano, esta técnica reconstruye conjuntamente una nube de puntos 3D geométricamente consistente y las poses de la cámara. Mientras que Visual-SLAM y VO/VIO rastrean la posición "actual" de un robot o cámara en tiempo real, SfM se ejecuta principalmente sin conexión, priorizando la precisión para construir una escena completa. Este artículo analiza la estructura interna de SfM desde sus fundamentos, centrándose en esta distinción.
0. Resumen de 30 segundos
-
La reconstrucción 3D a partir de imágenes (SfM) es el proceso de recuperar simultáneamente la nube de puntos 3D dispersa de una escena y los parámetros intrínsecos y extrínsecos de cada cámara a partir de múltiples imágenes, mediante la coincidencia de puntos característicos y la verificación geométrica.
-
Existen dos estrategias principales de reconstrucción: SfM incremental, que añade las cámaras de forma secuencial, y SfM global, que primero encuentra la pose relativa de cada par y luego calcula las poses globales de una sola vez.
-
La SfM incremental es robusta, pero al ser secuencial, es propensa a la deriva (error acumulado). La SfM global lo resuelve todo a la vez y, por lo tanto, resiste la deriva, pero es menos eficaz con poses relativas que presentan muchos valores atípicos.
-
Los puntos 3D y las poses de las cámaras obtenidos mediante triangulación son, por sí solos, estimaciones aproximadas afectadas por el ruido de la imagen. La minimización simultánea del error de reproyección mediante el ajuste de paquetes (Bundle Adjustment) es lo que, en última instancia, determina la precisión de SfM.
SfM y Visual-SLAM comparten la misma geometría subyacente, pero difieren en su filosofía de diseño: SfM es un procesamiento por lotes fuera de línea que prioriza la precisión y la exhaustividad, mientras que SLAM es un procesamiento en línea y en tiempo real que prioriza la inmediatez y la continuidad.
1. ¿Qué entrada recibe SfM y qué salida produce?
La entrada es un conjunto de imágenes \{I_1,\dots,I_N\} cuyo orden de captura y posiciones relativas se desconocen. Cada imagen puede incluso haber sido tomada con una cámara, un objetivo y en un momento diferentes. El resultado consta de tres elementos:
- La pose de la cámara de cada imagen i (parámetros intrínsecos y extrínsecos)
- Un conjunto de puntos 3D en la escena \{\mathbf{X}_j\} (principalmente una nube de puntos dispersa que corresponde a puntos característicos)
- La correspondencia (seguimiento) de qué imágenes observaron qué puntos 3D
Mientras que la Guía básica de calibración de cámaras recupera los parámetros intrínsecos de una sola cámara a partir de un patrón de calibración fijo, la reconstrucción 3D a partir de imágenes (SfM) es un problema inverso más complejo: recuperar simultáneamente los parámetros intrínsecos y extrínsecos de muchas cámaras sin calibrar o parcialmente calibradas, junto con la estructura de la escena, basándose únicamente en las restricciones geométricas entre los puntos correspondientes. Si los metadatos EXIF incluyen una distancia focal, esta se utiliza como valor inicial, pero la precisión final depende de las restricciones geométricas de las propias imágenes.
En un visor de resultados, primero compruebe si las cámaras se agrupan en una región implausiblemente pequeña, si la nube de puntos se divide o se duplica, y si alguna imagen no se registró correctamente. Una apariencia similar a la de un edificio por sí sola no demuestra precisión. Evalúe el error de reproyección, la longitud de la trayectoria y el número de imágenes registradas; cuando se disponga de una longitud medida o GNSS, compárela también con esa escala externa. Monocular SfM tiene una escala global arbitraria, por lo que la distancia mostrada por el visor de nube de puntos no se expresa automáticamente en metros.
2. El flujo de trabajo básico
Los pasos iniciales —extracción de características, coincidencia y verificación geométrica— son exactamente las mismas técnicas elementales que se describen en la Introducción a la Detección de Características y la Introducción a la Geometría Epipolar. Las decisiones de diseño específicas de SfM entran en juego en la etapa posterior a la detección de cada relación entre pares de imágenes: cómo ensamblar cada imagen y cada punto en un sistema de coordenadas coherente y sin contradicciones; es aquí donde divergen las estrategias de SfM incremental y SfM global.
3. SfM incremental: Añadiendo cámaras una a una
El método SfM incremental comienza seleccionando un par de imágenes iniciales con suficiente paralaje y suficientes correspondencias, y construyendo la primera reconstrucción de dos vistas mediante la estimación de la Matriz Esencial/Fundamental a partir de la geometría epipolar (cv-epipolar-geometry.html). A partir de ahí, se repite el siguiente proceso:
-
Se elige una nueva imagen que ya tenga correspondencias 2D con puntos 3D registrados, y se determina la pose de dicha imagen mediante PnP (cv-pnp.html).
-
Se triangulan los puntos aún no reconstruidos en 3D, a partir de las correspondencias entre la nueva imagen y las existentes.
-
Se refina la pose y la estructura mediante ajuste de haces local o global cada cierto número de imágenes.
-
Se repite el paso 1 hasta que se hayan procesado todas las imágenes o hasta que no se puedan añadir más.
Este enfoque, ampliamente utilizado desde el libro Photo Tourism de Snavely et al. (2006), también se adopta en el flujo de trabajo estándar de COLMAP como SfM incremental. Dado que solo incrementa un pequeño número de incógnitas a la vez, de forma secuencial, se trata de una implementación robusta, y es fácil detectar y excluir pares de imágenes defectuosos. Por otro lado, como las poses se acumulan imagen por imagen, los pequeños errores iniciales se propagan a las imágenes posteriores, y los conjuntos de datos que contienen grandes bucles (un grupo de imágenes que vuelven a visitar el mismo lugar) tienden a acumular deriva. El ajuste periódico de haces, junto con la detección de repeticiones equivalente al cierre de bucles (cv-loop-closure.html), es clave para controlar este error acumulado.
4. SfM Global: Resolución de todas las relaciones por pares simultáneamente
El SfM Global no registra las imágenes secuencialmente; primero encuentra la pose relativa (R_{ij},\mathbf{t}_{ij}/\|\mathbf{t}_{ij}\|) para cada par de imágenes (o un subconjunto seleccionado). Luego, estima conjuntamente todo el grafo en dos etapas.
El promedio de rotaciones encuentra un conjunto global de rotaciones de cámara mínimamente inconsistentes \{R_i\} a partir del conjunto de rotaciones relativas por pares R_{ij}. Una métrica de error comúnmente utilizada emplea el mapa logarítmico en el grupo de Lie SO(3):
\rho es una función de pérdida robusta que suprime la influencia de poses relativas incorrectas que actúan como valores atípicos.
El promedio de traslaciones, una vez fijadas las rotaciones, encuentra las posiciones de la cámara \{\mathbf{t}_i\} a partir del conjunto de direcciones de traslación relativas \mathbf{t}_{ij}. Dado que una traslación relativa monocular solo proporciona una dirección (véase la ambigüedad de escala analizada en la Introducción a la Geometría Epipolar), es necesario resolver una configuración consistente a partir de múltiples restricciones direccionales por pares. Para ello, se han propuesto enfoques como 1DSfM, que incluyen la eliminación de valores atípicos.
Como Global SfM utiliza información de todas las imágenes simultáneamente, en principio es menos propenso a la deriva secuencial que presenta Incremental SfM, y también es más fácil de paralelizar computacionalmente. Sin embargo, si los valores atípicos se mezclan con las poses relativas individuales, la solución global se distorsiona a menos que se detecten y excluyan en la etapa de promediado. El trabajo de Moulon et al. (ICCV 2013) es un ejemplo representativo que mejoró notablemente la practicidad de SfM global, combinando un robusto promedio de rotación con la estimación de la dirección de traslación mediante el tensor trifocal.
| Aspecto | SfM incremental | SfM global |
|---|---|---|
| Proceso de reconstrucción | Agrega una imagen a la vez a partir de un par inicial | Resuelve primero todas las relaciones por pares y luego optimiza conjuntamente |
| Resistencia a la deriva | Propenso a la propagación secuencial y al error acumulado | Poco error acumulado, ya que es globalmente óptimo |
| Resistencia a los valores atípicos | Fácil de detectar y eliminar individualmente al agregar una imagen | La eliminación de valores atípicos antes del promedio determina la precisión |
| Costo computacional | Secuencial en el número de imágenes, tiende a ser pesado a gran escala | Paralelizable, pero requiere optimización global para el promedio |
| Dificultad de implementación | Numerosos ejemplos de implementación, fácil de ajustar para mayor robustez | La teoría y la implementación del promedio de rotación/traslación son más complejas. |
Ejemplos representativos: Bundler, COLMAP (predeterminado), VisualSFM, openMVG (pipeline Global SfM), Theia.
En la práctica, en lugar de considerar ambas opciones como una u otra, también se investigan diseños híbridos: construir una pose global aproximada con Global SfM y luego refinarla incrementalmente, o usar solo los pares de alta confianza de forma global y agregar el resto incrementalmente.
5. Triangulación y gestión de trayectorias
Una vez que se encuentran las poses para un grupo de imágenes, la triangulación de los puntos correspondientes para obtener puntos 3D es una extensión de la operación geométrica básica de dos vistas. Lo específico de SfM es cómo gestionar la correspondencia, denominada "trayectoria", cuando se observa el mismo punto físico en tres o más imágenes.
-
Dado que la coincidencia de características se realiza por pares, las coincidencias entre las imágenes A-B y B-C deberían, idealmente, implicar también una coincidencia entre A-C; sin embargo, en la práctica, esto no siempre se cumple con las distancias reales de los descriptores. Una comprobación de consistencia trifocal garantiza la calidad de las trayectorias.
-
Cuantas más observaciones contenga una trayectoria, más estable será la triangulación; pero una trayectoria compuesta únicamente por imágenes con una pequeña paralaje entre ellas seguirá presentando una profundidad inestable.
-
Incluso una sola coincidencia errónea en una trayectoria no solo distorsiona la posición 3D de ese punto, sino que también afecta a los residuos del ajuste de haces posterior en su conjunto. La verificación tipo RANSAC por trayectoria y el rechazo de trayectorias con un gran error de reproyección son necesarios.
6. El puente hacia el ajuste de haces
La pose y la estructura obtenidas mediante triangulación lineal o PnP secuencial son, en el mejor de los casos, valores iniciales. Minimizar simultáneamente el error de reproyección en todas las imágenes —
— es el Ajuste de Paquetes, y es lo que determina la precisión final de SfM. La razón por la que esta optimización tiene una estructura dispersa y por qué el complemento de Schur la hace resoluble incluso a gran escala son cuestiones computacionales que se abordan en profundidad en la Introducción al Ajuste de Paquetes. Es importante tener en cuenta la diferencia en su uso: SfM Incremental intercala el ajuste de paquetes local cada pocas imágenes añadidas, mientras que SfM Global ejecuta un único ajuste de paquetes completo una vez que todas las poses globales están definidas.
7. Diferencias y similitudes con Visual-SLAM
SfM y Visual-SLAM comparten las mismas herramientas matemáticas: coincidencia de características, geometría epipolar, PnP y ajuste de paquetes. La diferencia radica en sus objetivos y limitaciones.
| Aspecto | Estructura a partir del movimiento | Visual-SLAM |
|---|---|---|
| Estilo de procesamiento | Procesamiento por lotes mayormente fuera de línea | Procesamiento secuencial en línea y en tiempo real |
| Orden de entrada | Puede ser desordenado (cualquier orden, se aceptan múltiples cámaras mezcladas) | Se asumen fotogramas cronológicamente continuos |
| Objetivo principal | Reconstrucción 3D de alta calidad priorizando la precisión y la completitud | Mantenimiento de la posición actual en tiempo real |
| Alcance de la optimización | Es posible el ajuste global de haces en todas las imágenes | Optimización local/global limitada a fotogramas clave, bajo fuertes restricciones de presupuesto computacional |
| Manejo de repeticiones | Se puede verificar cada par fuera de línea | Debe detectar y corregir el cierre de bucle en línea |
| Implementaciones representativas | COLMAP, openMVG, Bundler | Familia ORB-SLAM, familia VINS |
En la práctica, también son comunes combinaciones como usar un mapa 3D de alta precisión creado con SfM como mapa inicial o referencia de escala para SLAM, o procesar la trayectoria de fotogramas clave de SLAM sin conexión con SfM para mejorar la precisión. Estas dos tecnologías no compiten entre sí, sino que se complementan en el eje temporal offline/online.
8. Implementaciones representativas
-
COLMAP: centrada en SfM incremental, es la implementación de investigación y producción más referenciada actualmente, ya que proporciona un flujo de trabajo consistente desde la extracción de características, la correspondencia, la verificación geométrica y la reconstrucción hasta el ajuste de haces (/es/blog/posts/cv-bundle-adjustment.html) y la estereoscopía multivista (/es/blog/posts/cv-mvs.html).
-
openMVG (Open Multiple View Geometry): una biblioteca que implementa flujos de trabajo de SfM incremental y global. A menudo se combina con openMVS para la reconstrucción densa.
-
Bundler: la implementación pionera de SfM incremental que hizo públicos los resultados de Photo Tourism y sirvió como referencia para muchos trabajos posteriores.
-
Meshroom (AliceVision): una herramienta de fotogrametría de código abierto con una interfaz gráfica que gestiona todo el proceso, desde SfM hasta MVS y texturizado, en una sola pasada.
Al elegir una biblioteca, el criterio de "más reciente significa más preciso" no es el adecuado. Considere la cantidad de imágenes que maneja, los recursos de GPU/CPU, la fiabilidad de la distancia focal EXIF, la estrategia de coincidencia (exhaustiva/secuencial/árbol de vocabulario) y si desea un flujo de trabajo único y consistente hasta MVS y la generación de texturas.
9. Condiciones difíciles y casos de fallo comunes
- Escenas con pocas texturas o muy repetitivas: paredes uniformes, superficies en mosaico y hileras de cultivos en un campo no generan ninguna correspondencia o producen frecuentes discrepancias.
-
Conjuntos de imágenes con paralaje extremadamente pequeño: las fotos de una escena distante tomadas con un teleobjetivo hacen que la triangulación sea inestable, lo que provoca grandes errores de profundidad.
-
Objetos en movimiento y cambios de iluminación: los conjuntos de fotos de lugares turísticos incluyen personas, vehículos y diferencias estacionales o horarias, lo que introduce correspondencias que violan la suposición de escena estática.
-
Grupos de imágenes aisladas: si las tomas se dividen en dos grupos sin campo de visión superpuesto, la SfM no puede unificarlas en un sistema de coordenadas coherente, y la reconstrucción se fragmenta en varias piezas desconectadas.
-
Escenas simétricas: las fachadas de edificios simétricas, por ejemplo, pueden converger en una solución reflejada geométricamente coherente pero físicamente incorrecta.
10. Opciones prácticas
- Si la toma está completamente ordenada (vídeo o fotogramas continuos de un robot), la selección del par inicial de la SfM incremental resulta sencilla, y el flujo de trabajo predeterminado de COLMAP suele ser suficiente.
-
Para colecciones de imágenes a gran escala, como las fotos turísticas de internet, donde se desconocen tanto el orden de captura como la superposición, la escalabilidad de SfM global suele ser ventajosa.
-
Para aplicaciones que requieren rendimiento en tiempo real (robots, realidad aumentada, automoción), considere Visual-SLAM o VIO en lugar de SfM. El principal ámbito de SfM es la reconstrucción offline de alta precisión.
-
Si necesita una forma 3D densa (una malla o un modelo texturizado), comience con la nube de puntos y la pose dispersas de SfM, y luego pase a Multi-View Stereo.
11. Resumen
Structure from Motion (SfM) es una tecnología que recupera conjuntamente las poses de la cámara y la estructura 3D, mediante la coincidencia de características y la verificación geométrica, a partir de un conjunto de imágenes no ordenadas, utilizando la estrategia SfM incremental o SfM global. La estrategia incremental es robusta pero propensa a la deriva, mientras que la global resiste la deriva pero es sensible a los valores atípicos: una compensación simétrica. En ambas estrategias, la precisión final se logra mediante el ajuste de haces, que se conecta directamente con Visual-SLAM, su tecnología hermana que opera en un eje temporal diferente, y con Multi-View Stereo, una tecnología de reconstrucción densa.
¿Las distancias SfM reconstruidas se expresan automáticamente en metros?
La reconstrucción monocular conserva una ambigüedad de escala.
Utilice dimensiones conocidas o información de posicionamiento para establecer la escala métrica.Referencias
- Snavely, Seitz y Szeliski, Photo Tourism: Exploring Photo Collections in 3D (SIGGRAPH 2006)
- Schönberger y Frahm, Structure-from-Motion Revisited (CVPR 2016)
- Moulon, Monasse y Marlet, Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion (ICCV 2013)
- Wilson y Snavely, Robust Global Translations with 1DSfM (ECCV 2014)
- Documentación oficial de COLMAP
- Documentación oficial de openMVG
- Hartley y Zisserman, Geometría de múltiples vistas en visión por computadora (página oficial de los autores)
Comentarios
Inicia sesión para continuar.
Todavía no hay datos.