EN
← Volver al Portafolio
Óptica Computacional mayo de 2020

Laboratorio de Fotografía Dual

Aplicación interactiva que implementa la técnica de fotografía dual — reconstruyendo cómo se ve una escena desde el punto de vista de un proyector usando matrices de transporte de luz, descomposición SVD y reciprocidad de Helmholtz.

Técnica
Descomposición SVD de transporte de luz
Escenas
6 tipos
Captura
Simulación + webcam
Laboratorio de Fotografía Dual — Arquitectura
#computational-photography #linear-algebra #svd #compressed-sensing #dash #python

Contexto de Negocio

La fotografía dual es una técnica de imagen computacional que reconstruye cómo se ve una escena desde el punto de vista de un proyector usando solo observaciones de cámara. La matriz de transporte T codifica cada interacción de luz entre proyector y cámara a través de la geometría de la escena, reflectancia y oclusión. Al medir T con patrones de iluminación estructurada y aplicar reciprocidad de Helmholtz, podemos reconstruir computacionalmente puntos de vista que nunca fueron físicamente ocupados — viendo desde donde iluminamos.

Valor Estratégico

La aplicación provee un entorno interactivo completo para explorar fotografía dual: 6 tipos de escena ray-cast (plana, texturizada, cóncava, convexa, multi-objeto, con oclusión), 10 patrones de iluminación, descomposición SVD con exploración interactiva de valores singulares revelando complejidad óptica, compressed sensing con matrices de Bernoulli/Hadamard para adquisición eficiente, y modo opcional de captura por webcam para experimentos reales. El análisis SVD T = UΣVᵀ conecta imágenes con álgebra lineal de forma tangible — el espectro de valores singulares revela cuántos modos ópticos independientes soporta una escena.

El Desafío

La fotografía dual implica recuperar la vista desde la perspectiva de un proyector usando solo observaciones de cámara. La matriz de transporte T codifica cómo cada píxel del proyector contribuye a cada píxel de cámara a través de geometría y materiales de la escena — pero trabajar con ella requiere métodos eficientes de descomposición y reconstrucción.

Nuestro Enfoque

Simulación ray-cast con 6 tipos de escena, análisis SVD (T = U·Σ·Vᵀ) para revelar complejidad óptica, 10 patrones de iluminación, modo opcional de captura por webcam. Backend implementa modelos BRDF Lambertianos con NumPy/SciPy y frontend de visualización Dash/Plotly.

Indicadores Clave de Rendimiento

KPILínea BaseResultadoImpacto
Tipos de EscenaImágenes estáticas6 escenas ray-cast interactivasExploración óptica interactiva
Patrones de IluminaciónIluminación única10 patrones estructuradosCaracterización completa de transporte

Arquitectura

dual photography

dual photography

Seeing from Where You Illuminate

Imagine reversing the roles of projector and camera. A projector sends structured light into a scene; a camera records what bounces back. The transport matrix T encodes every interaction — how each projector pixel contributes to each camera pixel through scene geometry, reflectance, and occlusion. If you can measure T, you can reconstruct what the scene looks like from the projector’s perspective — using Helmholtz reciprocity, the dual image is simply Tᵀ applied to a virtual illumination.

This is dual photography: computational reconstruction of a viewpoint you never physically occupied.

Why It’s Interesting

The SVD decomposition T = UΣVᵀ reveals the scene’s optical complexity. A flat white wall produces a simple singular value spectrum with rapid decay — one dominant mode. A complex textured scene with occlusions has many significant singular values — rich optical structure. This connects imaging to linear algebra in a way that makes abstract mathematical concepts tangible.

With structured illumination patterns (Bernoulli or Hadamard matrices), compressed sensing theory applies: the dual image can be recovered with far fewer measurements than the full transport matrix requires. And the condition number of T determines reconstruction quality — ill-conditioned matrices from complex scenes need regularization (Tikhonov or truncated SVD) to produce stable results.

The application implements 6 ray-cast scene types (flat, textured, concave, convex, multi-object, occluding), 10 illumination patterns, interactive SVD exploration, and an optional webcam capture mode for real-world experiments.

Stack Tecnológico

Python NumPy SciPy Dash Plotly Lambertian BRDF SVD

Capturas de la Aplicación

Laboratorio de Fotografía Dual

Diagramas Técnicos

dual helmholtz

dual helmholtz