Leonardo Javier Ferrer García de Alba

¿Qué es realidad aumentada?
Según la sabiduría colectiva de Wikipedia: “La realidad aumentada es el término que se usa para definir una visión directa o indirecta de un entorno físico del mundo real, cuyos elementos se combinan con elementos virtuales para la creación de una realidad mixta en tiempo real. (Wikipedia, 2014)”. Una modalidad muy popular de la realidad aumentada, y sobre la cual se va a basar este artículo, es aquella en la que un usuario, generalmente a través de un teléfono celular o tableta, apunta una cámara a un objetivo y en su pantalla aparece una escena 3D orientada relativamente al objetivo. Una imagen muy descriptiva de la aplicación es la siguiente (Figura 1)
¿Cómo funciona?
La idea básica de esta aplicación es proveer al usuario de un marcador, el cual es una imagen con ciertas características que lo hacen fácil de detectar, y contra el cual el usuario va a apuntar su cámara. La aplicación busca en la imagen que recibe el marcador y cuando lo encuentra calcula la matriz de transformación entre la imagen actual y la escena de referencia. Finalmente, se despliega en la pantalla la escena transformada con la matriz hallada. En resumen, el problema reside en determinar la matriz de transformación (la cual es un tipo particular de transformación conocido como Homografía [6]).
SURF
Determinar una homografía es un subcomponente de un problema más grande y que ha sido estudiado previamente en el área de visión computacional, al que se conoce como calibración de cámara. Aunque se han hallado otras soluciones [3], la más novedosa y utilizada comercialmente [4] está basada en un desarrollo [5] llamado SURF: Speeded Up Robust Features.
SURF es un procedimiento que consiste en caracterizar una imagen (mediante features) y obtener descriptores de estos. Después se hace una relación entre los descriptores de la imagen de referencia y la observada mediante otro algoritmo, para finalmente determinar mediante optimización la homografía.
Detectar features
La detección de features es quizá el paso más relevante de la aplicación ya que de éste depende el éxito o fracaso de ésta. Tiene que ser rápido y robusto, las cuales son características normalmente contradictorias. Aunque el procedimiento de detección es mucho más complejo, en términos simples los features se detectan derivando y filtrando con filtros Gaussianos la imagen, de ahí que se solicita que los marcadores sean imágenes con altas frecuencias y que se usen imágenes en blanco y negro. Suponiendo que escogemos la siguiente imagen como referencia (Figura 2), la rotamos 45° y obtenemos los 15 features más destacados de ésta (Figura 3).

Figura 2: Imagen original. (The Mathworks, Inc., 2014)

Figura 3: Imagen transformada con 15 features detecta- dos. (The Mathworks, Inc., 2014)
Describir features
Se busca que la descripción de features sea independiente de las condiciones físicas de la escena, es decir de las características intrínsecas de la cámara, de la posición y orientación de ésta o de la iluminación. Los diseñadores de SURF decidieron que únicamente iban a trabajar con escalas y rotaciones en el plano de la imagen, de ahí que no hay marcadores 3D. Esta decisión les permitió soportar muchas aplicaciones sin perder mucha precisión, lo cual es muestra de un estudio bien realizado. En este paso a cada punto se le asocian 64 parámetros, que en su conjunto se le conocen como descriptor (se exhorta al lector a revisar el texto original para conocer su exacto significado). Para fines de este artículo basta con saber que se puede obtener una descripción única de un feature, sin importar que tan lejos o que tan rotado (con respecto al plano de la imagen) se encuentre el marcador con respecto a la cámara.
Emparejar features
Una vez obtenidos los descriptores de ambas imágenes sólo resta realizar una relación 1 a 1 de estos, es decir emparejarlos, para obtener así la homografía. Es importante notar que a pesar de la robustez del método de detección es posible que se hayan encontrado features en una imagen y en otra no, por lo que el método de emparejamiento debe reconocer la existencia de outliers e inliers. Mediante diversos algoritmos, como RANSAC o FLANN, es que se realiza el emparejamiento y simultáneamente se calcula la homografía, ya que se usa esta última como métrica del mismo emparejamiento. En nuestro caso de ejemplo se obtuvo el siguiente emparejamiento (Figura 4). Nótese que se despliegan ambas imágenes superpuestas de tal manera que se nota como se transformaron éstas y cada uno de los features. En este punto se obtiene ya la homografía, con la cual se puede transformar la escena virtual y darle al usuario la sensación de realidad aumentada.

Figura 4: Resultado del emparejamiento de features. (The Mathworks, Inc., 2014)
Conclusiones
El procedimiento detrás de una aplicación tan sencilla como poner un cubo virtual sobre una hoja de papel real es altamente sorprendente, visto incluso sólo en términos generales. El conjunto de técnicas, conocimiento y originalidad de este desarrollo muestran la gran cantidad de información que se puede obtener de simples pixeles, todo mediante la genialidad humana.
Una vez obtenido el método, que no es poca cosa, ahora el problema resulta en que funcione lo suficientemente rápido y bien en la vida real. Como normalmente pasa, la ingeniería lleva la ciencia a las manos de la gente. Dado que alguna vez nos hemos topado con un ejemplo de realidad aumentada, y si no se les sugiere ampliamente ver los que se encuentran en [4], este problema se ha resuelto de forma satisfactoria. Los detalles de esto se escribirán en una próxima edición.
Lista de Referencias
[1] Wikipedia contributors. (2014). Realidad aumentada. [En línea]. Disponible en:http://es.wikipedia.org/wiki/Realidad_aumentada
[2] TechEBlog. (2011). Augmented reality. [En línea]. Disponible en:http://www.techeblog.com/index.php/tech-gadget/augmented-reality
[3] Bouguet, J. (2013). Camera Calibration Toolbox for Matlab. [En línea]. Disponible en:http://www.vision.caltech.edu/bouguetj/calib_doc/
[4] Qualcomm, Inc. (2014). Vuforia. [En línea]. Disponible en: https://www.vuforia.com/
[5] Bay, H. et al.(2008). Speeded-Up Robust Features (SURF).European Conference on Computer Vision 2006 – ECCV. pp 407-417.
[6] Wikipedia contributors. (2014). Homography. [En línea]. Disponible en:http://en.wikipedia.org/wiki/Projective_transformation
[7] The Mathworks, Inc. (2014). Find Image Rotation and Scale Using Automated Feature Matching. [En línea]. Disponible en:
http://www.mathworks.com/help/vision/examples/find-image-rotation-and-scale-using-automated-feature-matching.html
0 comentarios :
Publicar un comentario