Este repositorio implementa un sistema de registro de pose para modelos CAD 3D a partir de imágenes 2D, basado principalmente en el algoritmo propuesto por Atoche (2011). Se emplean correspondencias punto-rayo y visibilidad geométrica para estimar la rotación y traslación que alinean el modelo con la vista de una cámara calibrada.
Desarrollar una herramienta funcional de visión por computadora que:
- Detecte bordes relevantes en la imagen (SUSAN, Canny).
- Genere rayos proyectados desde puntos de borde utilizando la matriz intrínseca de cámara.
- Empareje estos rayos con puntos visibles del modelo CAD.
- Calcule la transformación óptima (pose) que alinee el modelo con la imagen.
- Lenguaje: Python 3.x
- Librerías: Open3D (con CUDA), OpenCV, NumPy, Matplotlib
- Métodos clave:
- Correspondencia punto-rayo (CLP)
- Estimación robusta de pose (SVD + Huber)
- Visibilidad por geometría (normales perpendiculares)
- Transformaciones iterativas y multivista
Un algoritmo funcional que intenta minimizar el error entre rayos proyectados y puntos CAD.
📌 Resultado:
-
Calcula error ponderado y muestra convergencia.
-
🚨 Se atasca en mínimos locales.
-
No escapa por falta de exploración angular.
Visualizador interactivo que permite inspeccionar:
- Las listas geométricas: vértices, aristas, normales, puntos interpolados.
- La imagen texturizada.
- Rayos proyectados desde la imagen.
- La cámara calibrada con perspectiva.
🎯 Función clave: Diagnóstico geométrico completo.
Aplica rotaciones dinámicas al modelo CAD y recalcula visibilidad.
📍 Ideal para comprobar que el sistema responde correctamente a transformaciones.
Implementación casi completa del método de Atoche (2011):
- Construcción de listas geométricas (Listas 1–4).
- Evaluación de visibilidad (Lista 5) mediante normales perpendiculares.
- Emparejamiento rayo ↔ modelo.
- Estimación de pose con pesos robustos y SVD.
- Iteración controlada por error ponderado.
📌 Resultado:
- Logro parcial: estructura funcional y visualización completa.
- 🚨 Fracaso en converger a la pose real debido a mínimos locales persistentes.
⚠️ Alta complejidad del modelo Benchy contribuyó a errores y lentitud de procesamiento.
| Problema | Descripción |
|---|---|
| ❌ Mínimos locales | La optimización converge en poses incorrectas. |
| 🐌 Modelo CAD complejo (Benchy) | Alto número de vértices dificultó la visibilidad y emparejamiento. |
| ⏱️ Tiempo limitado | No se integraron estrategias de exploración global ni depuración fina. |
Este proyecto demostró la complejidad real de aplicar algoritmos teóricos de visión por computadora en escenarios prácticos. Replicar la metodología de Atoche permitió:
- Comprender en profundidad el registro CAD↔imagen.
- Identificar los cuellos de botella geométricos y algorítmicos.
- Visualizar en tiempo real los efectos de transformaciones y correspondencias.
Aunque el sistema no logró estimar correctamente la pose, dejó como legado una plataforma sólida para exploraciones futuras que incorporen:
- Métodos de escape de mínimos locales.
- Reducción de complejidad geométrica.
- Integración con redes neuronales o aprendizaje supervisado.





