Estructura a partir del movimiento (SfM): cómo las fotos con solape se vuelven 3D
La estructura a partir del movimiento (SfM, del inglés structure from motion) es la primera mitad de la fotogrametría. A partir de un conjunto de fotos con solape tomadas desde distintas posiciones, sin ningún registro de dónde estaba la cámara, recupera la posición de cada cámara y un conjunto disperso de puntos 3D de la escena. Todo lo que viene después en un flujo de mapeo —la nube densa, la superficie, el ortomosaico— se construye sobre ese resultado, así que la calidad del paso SfM marca el techo del resto.
STREAM Capture está en desarrollo y aún no se ha publicado. Cuando se lance llegará en la misma descarga que su programa hermano STREAM Terrain; la descarga actual contiene STREAM Terrain.
Qué significa estructura a partir del movimiento
El nombre dice lo que ocurre. La estructura es la forma 3D de la escena; el movimiento es la cámara desplazándose entre fotos. Mueva la cabeza de lado: los objetos cercanos se desplazan sobre el fondo más que los lejanos; ese desplazamiento, llamado paralaje, lleva la profundidad. El SfM mide cómo se desplazan miles de puntos entre fotos y deduce a la inversa las posiciones 3D que lo explican.
La fotogrametría antigua necesitaba cámaras con calibración conocida y posiciones levantadas antes de empezar. El SfM elimina ese requisito: resuelve juntas las posiciones de las cámaras, la lente y los puntos 3D, solo a partir de las fotos. Por eso funciona con la cámara corriente de un dron y con una carpeta de imágenes sin ordenar, y por eso su resultado en bruto tiene una escala y una orientación arbitrarias hasta que las posiciones de cámara o el control en tierra lo atan a un sistema de coordenadas.
Los pasos de un flujo SfM
El software encuentra puntos distintivos en cada foto, reconoce los mismos puntos en las fotos vecinas, descarta los emparejamientos que no pueden pertenecer a una misma escena rígida y construye después la red de cámaras hacia fuera a partir de una pareja inicial bien conectada. Cada punto visto en varias fotos se triangula y un ajuste final refina todo a la vez.
| Etapa | Qué ocurre | Qué suele salir mal |
|---|---|---|
| Detección de características | Se encuentran puntos distintivos en cada foto y se describen para poder reconocerlos en otras fotos | Poca textura: agua en calma, nieve fresca, fotos borrosas |
| Emparejamiento | Se comparan las descripciones entre fotos con solape para encontrar dos veces el mismo punto | Una textura repetitiva, como tejas o hileras de cultivo, da emparejamientos falsos |
| Verificación geométrica | Se descartan los emparejamientos que no encajan en una escena rígida | Objetos en movimiento o un paralaje fuerte en terreno empinado |
| Reconstrucción inicial | Una pareja de fotos bien conectada da las primeras cámaras y puntos; se le van añadiendo más fotos | Una red de fotos débil: grupos de fotos que nunca se conectan con el resto |
| Triangulación | Cada punto visto en varias fotos se sitúa en 3D donde se cruzan sus rayos de visión | Fotos tomadas casi desde el mismo sitio dan una profundidad imprecisa |
| Ajuste de haces | Cámaras, parámetros de lente y puntos se ajustan juntos para concordar con cada medición | Un modelo de lente que no encaja o una distancia focal inicial equivocada |
Ajuste de haces: de dónde salen las cifras
El ajuste de haces es el último paso y el más importante. Mueve juntos las cámaras, los parámetros de la lente y los puntos 3D para hacer lo más pequeña posible la suma de los errores de reproyección al cuadrado. El error de reproyección que informa, en píxeles, mide lo bien que concuerdan las fotos y el modelo resuelto; nuestro artículo sobre el error de reproyección explica cómo leerlo.
Como el ajuste trabaja solo con mediciones de imagen, un resultado SfM no tiene escala, posición ni norte reales hasta que algo los aporta: posiciones de cámara de un dron RTK o PPK, puntos de control terrestre, o ambos. Lo bien que el mapa terminado se asienta sobre el terreno es otra cuestión, que se responde con puntos de comprobación independientes.
SfM, fotogrametría y SLAM
El SfM es una etapa de la fotogrametría, no un sinónimo suyo. La fotogrametría continúa desde el resultado SfM con la estimación de profundidad densa, la construcción de superficies, la ortorrectificación y una comprobación de precisión frente a puntos independientes. El software SfM es, por tanto, la parte de alineación del software de fotogrametría.
El SfM tampoco es SLAM. El SLAM funciona en tiempo real sobre un flujo ordenado de imágenes o de datos de sensores, normalmente en un robot en movimiento, y sacrifica algo de precisión por velocidad. El SfM trabaja sin conexión sobre un conjunto de fotos sin ordenar y puede optimizarlo todo de forma global, lo que conviene al mapeo, donde la precisión importa más que la velocidad.
Qué necesita el SfM y dónde falla
El SfM necesita solape, fotos nítidas y textura visible: cada punto del terreno debe aparecer en varias fotos desde posiciones distintas, y el software debe poder distinguir un lugar de otro. Hacen falta al menos tres fotos con solape para empezar y un emplazamiento real necesita muchas más. Tiene dificultades con el agua en calma y la nieve fresca, con la textura repetitiva, con lo que se mueve entre fotos y con las cámaras de obturador rodante, que captan la escena fila a fila mientras el dron se mueve.
En STREAM Capture esta es la etapa Alinear. Extrae y empareja características SIFT en la GPU, resuelve las cámaras y la lente, y escribe las poses de cámara, una nube dispersa y el error de reproyección a resolución completa. Las posiciones leídas de las fotos actúan como a priori, una red de fotos débil se nombra en el informe en lugar de ocultarse y la autocalibración de la lente se informa con su incertidumbre.
Preguntas frecuentes
¿Qué es la estructura a partir del movimiento (SfM)?
Un método que recupera la posición de cada cámara y un conjunto disperso de puntos 3D solo a partir de fotos con solape, usando cómo se desplazan los puntos entre fotos cuando la cámara se mueve. Es la etapa de alineación de la fotogrametría.
¿Cómo funciona la estructura a partir del movimiento?
Detecta puntos distintivos en cada foto, los empareja entre fotos, elimina los emparejamientos erróneos, construye la red de cámaras a partir de una pareja bien conectada, triangula los puntos y refina cámaras, lente y puntos juntos con un ajuste de haces.
¿Qué diferencia hay entre SfM y fotogrametría?
El SfM es la primera etapa: da las posiciones de cámara y un conjunto disperso de puntos. La fotogrametría abarca toda la cadena y añade profundidad densa, superficies, ortofotos y comprobaciones de precisión frente a puntos independientes.
¿Qué diferencia hay entre SfM y SLAM?
El SLAM funciona en tiempo real sobre un flujo ordenado de imágenes o de datos de sensores, normalmente en un robot en movimiento. El SfM funciona sin conexión sobre un conjunto de fotos sin ordenar y optimiza de forma global, lo que conviene al mapeo.
¿El SfM necesita puntos de control terrestre?
No para construir el modelo: el SfM funciona solo con las fotos, pero el resultado tiene una escala y una posición arbitrarias. Las posiciones de cámara de un dron RTK o PPK, los puntos de control terrestre o ambos lo sitúan en el terreno, y los puntos de comprobación independientes miden lo bien que lo hacen.
¿Por qué mi alineación SfM falla o deja cámaras fuera?
Normalmente por poco solape, fotos borrosas, superficies repetitivas o sin características, como el agua en calma, o cosas que se mueven entre fotos. Revise el mapa de solape y el aviso de red débil tras el procesamiento y añada fotos donde la cobertura sea escasa.
Vea el resultado de la etapa Alinear: poses de cámara, nube dispersa y error de reproyección
STREAM Capture está en desarrollo y aún no se ha publicado. Cuando se lance llegará en la misma descarga que su programa hermano STREAM Terrain; la descarga actual contiene STREAM Terrain.