¿Cuál es la mejor manera (algoritmo) para producir un mapa de profundidad a partir de una única cámara 2D con seguimiento y movimiento?

Esta no es una tarea trivial. Si lo logra con algún grado de éxito, algunos CTO de grandes corporaciones querrán hablar con usted, ya que la generación confiable y completa de mapas de profundidad a partir de secuencias de video es un área de investigación activa en curso, incluso sin el componente en tiempo real.

La mayoría de los sistemas para AR estiman la profundidad de manera bastante cruda en distancias muy limitadas con resolución limitada, variación temporal considerable e incertidumbre significativa en los bordes. Además, tienden a depender de sensores especiales y señales estéreo, por ejemplo, el kinect proyecta un campo aleatorio de puntos divisibles que se utilizan para definir bloques espaciales que luego se pueden triangular para la profundidad con un sensor de cámara colocado a una distancia conocida del proyector infrarrojo . Esto se conoce como un enfoque de “luz estructurada”.

Sería deseable poder obtener información de profundidad similar de una sola fuente de cámara en tiempo real y eliminar la necesidad de hardware adicional y reducir el costo y el peso del dispositivo, obviamente. Entonces, si resuelve este pequeño problema, asegúrese de escribir una tesis doctoral y hablar con algunas personas en Google y Microsoft …

Dicho esto, hay muchos documentos que ya están analizando el problema, con resultados variables. Aquí hay uno con algunas buenas citas: http://citeseerx.ist.psu.edu/vie…

¿Espera hacer esto en tiempo real, algoritmos SLAM de ala mono? Suena desafiante hacerlo bien en tiempo real, sin sincronizar con la alimentación de cámara en profundidad (que usted dice que ya está trabajando).

El problema es que necesitaría un movimiento significativo con una alimentación de cámara mono para introducir el paralaje en la escena para capturar suficientes datos para generar una nube de puntos que se parezca un poco al entorno. De lo contrario, simplemente no tendrá suficiente información sobre cómo se mueven los puntos de seguimiento entre sí, lo que es necesario para determinar su posición de profundidad Z.

Para un enfoque diferido, su mejor opción sería grabar esa alimentación de video mono, ejecutarla a través de un software de seguimiento de cámara profesional como Boujou o Syntheyes y exportar los datos de la nube de puntos desde allí. Estas aplicaciones también pueden ayudar con la creación y limpieza de mallas.

Quizás si tiene una malla escaneada del entorno, podría explorar un enfoque híbrido para ver si esa entrada de malla podría usarse para mejorar el seguimiento con una sola cámara mono en el mismo entorno.