domingo, 19 de octubre de 2014

Visual SLAM

Cuando empecé a meterme en el mundillo de la visión artificial descubrí una serie de técnicas, muy utilizadas en robótica, que me han estado obsesionando desde entonces. Estas técnicas se llaman Visual SLAM (Simultaneous Localization And Mapping) y permiten que un robot móvil construya un mapa del entorno (desconocido) en el que se encuentra, a la vez que estima la trayectoria de su propio desplazamiento dentro de ese entorno. Existen multitud de técnicas SLAM y pueden utilizar sensores muy variados, pero en este caso hablaré de las que utilizan cámaras, es decir de los Visual SLAM.



En las técnicas de Visual SLAM se pueden utilizar distintos tipos de cámaras: monoculares, binoculares o RGBD (Tipo Kinect). Según el tipo de cámara se utilizan unos algoritmos u otros, pero todos están enfocados a descubrir cuál es la relación de movimiento que hay entre un frame y el anterior, es decir, descubir cuánto y en qué sentido se ha movido la cámara.


Este tipo de técnicas, además de ayudar a los robots móviles a conocer su entorno, se pueden utilizar para otro tipo de aplicaciones. Un claro ejemplo es el de la realidad aumentada, donde se necesita saber la posición de la cámara para poder mostrar los objetos virtuales correctamente. Antes de las técnicas de Visual SLAM, para poder calcular esa posición se utilizaban una serie de dibujos que servían como referencia y que llamamos marcas o marcadores.


Realidad aumentada con marcadores
Ejemplo de realidad aumentada con marcador.

Hoy en día, con estas nuevas técnicas, no hace falta tener ninguna referencia previa, o la referencia se coge del propio entorno, lo que nos da mucha más flexibilidad a la hora de mostrar esos objetos virtuales, haciendo que el resultado sea mucho más atractivo.