IC3912 - Tópicos Avanzados de Gráfica Computacional
Francisca T. Gil-Ureta ⋅ 2026

La clase pasada estuvimos trabajando con una escena de 19 fotos. Una escena de exterior, pero limitada por murallas en cuatro direcciones. A partir de las fotos, utilizamos la implementación de Structure from Motion de COLMAP para obtener poses de las cámaras y una nube sparse de tan solo 24 mil puntos.


¿Qué tan bien describe esta nube de puntos las superficies de la escena? Si tuvieran que imprimir esto en 3D, medir dimensiones reales, o texturizarlo para un videojuego, ¿qué información les falta?
Screen Recording 2026-04-17 170756.mp4
SfM nos dio exactamente lo que MVS necesita: las poses de la cámara $\{P_c\}$ y una nube sparse $\{X_k\}$ para inicializar. La pregunta ahora es cómo pasar de esa representación escasa a una descripción densa de la superficie.
MVS trabaja vista por vista. Para cada imagen de referencia, usa las poses conocidas para proyectar píxeles sobre las otras vistas y buscar correspondencias fotométricas. Lo que queremos generar de output es un mapa de profundidad: un valor $d$ para cada píxel que indica a qué distancia está la superficie.
Cómo podemos encontrar la profundidad de cada pixel?
Dado un pixel $X_L$ en la imagen de la izquierda, sabemos que su correspondiente 3D, $X$ puede encontrarse en cualquier punto a lo largo del rayo que sale del centro óptico de la cámara, $O_L$, en dirección al pixel. Lo que no sabemos es la distancia a la cual se encuentra el punto. En la imagen se dibujan cuatro hipótesis $X_1, X_2, X_3$ y $X$. Para determinar que hipótesis es correcta, vamos a buscar el punto correspondiente en las imágenes vecinas.
El rayo que sale de $O_L$ a $X_L$ se proyecta en la imagen de la derecha cómo una línea (dibujada en rojo). En consecuencia, el punto 2D correspondiente $X_R$ sólo puede encontrarse en esta linea. Con esta información podemos reducir nuestro espacio de búsqueda.

Qué areas comparar?