scieee AI-readable full text Open interactive document viewer

Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto

Cop, Colin Ulrich; Cabrero Villar, Patricia; González Jiménez, David

Abstract

La realidad aumentada (RA) se ha convertido en la última década en una tecnología accesible a millones de usuarios a través de sus dispositivos móviles. Basada inicialmente en el uso de marcadores, hoy en día existen algoritmos que permiten su uso sin marcadores que, pese al éxito de juegos como Pokemon Go, no han terminado de despegar de manera general. Este trabajo de fin de grado plantea un análisis de las posibilidades de la realidad aumentada sin marcadores. A lo largo del proyecto se exploran y estudian las librerías existentes, de cara a descubrir sus similitudes y diferencias realizando pequeñas pruebas de concepto. Con los resultados obtenidos de este estudio se han realizado tres aplicaciones que explotan las características de las librerías y las tecnologías estudiadas. La primera aplicación que se desarrolló ayuda al montaje de muebles en realidad aumentada. En esta aplicación se puso a prueba la librería ARCore y sus funcionalidades sin marcadores. En segundo lugar, se ha desarrollado un videojuego multijugador de cara a mostrar sus posibilidades en el campo haciendo uso de los puntos de ancla en la nube y la detección de planos. Por último, se ha creado una aplicación que permite disfrutar de la experiencia de una manera más natural usando las gafas de Aryzon1 interactuando con los objetos colocados en el plano escogido.

Full text

Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. Por Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Grado en Desarrollo de Videojuegos Facultad de Informática Tutor: Pedro Pablo Gómez Martín Madrid, 2018–2019 Índice general Página Resumen 9 Palabrasclave.................................... 9 Abstract 11 Keywords ...................................... 11 1. Introducción 13 1.1. Motivación .................................. 13 1.2. Objetivos ................................... 13 1.3. Metodología.................................. 14 1.4. Plandetrabajo................................ 15 1. Introduction 17 1.1. Motivation................................... 17 1.2. Objectives................................... 17 1.3. Workmethodology.............................. 18 1.4. Workplan................................... 19 2. Antecedentes y estado del arte 21 2.1. Definición................................... 21 2.2. Historia .................................... 21 2.3. Dispositivos.................................. 25 2.3.1. GoogleGlass ............................. 25 2.3.2. Hololens................................ 26 2.3.3. MagicLeap.............................. 27 2.3.4. Aryzon ................................ 28 2.3.5. Otros dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4. Aplicaciones.................................. 29 2.4.1. Medicina ............................... 29 2.4.2. Educación............................... 30 2.4.3. Arte.................................. 31 2.4.4. Fabricación .............................. 32 2.4.5. Publicidad .............................. 32 2.4.6. Turismo................................ 33 2.4.7. Videojuegos.............................. 34 2.4.8. Comercio electrónico (e-commerce)................. 35 3 Grado en Desarrollo de Videojuegos Facultad de Informática 3. Realidad aumentada sin marcadores 39 3.1. Aspectostécnicos............................... 39 3.1.1. Descripción.............................. 39 3.1.2. Métodos de seguimiento . . . . . . . . . . . . . . . . . . . . . . . 40 3.1.3. Tecnologías implicadas en la RA sin marcadores . . . . . . . . . . 41 3.2. Librerías de realidad aumentada sin marcadores . . . . . . . . . . . . . . 46 3.2.1. Wikitude ............................... 46 3.2.2. ARKit................................. 47 3.2.3. ARCore................................ 48 3.2.4. Vuforia ................................ 49 3.2.5. Kudan................................. 49 3.2.6. MaxST ................................ 50 3.2.7. 8thWall................................ 51 3.2.8. EasyAR ............................... 51 3.2.9. ARFoundation ............................ 52 3.3. Resumen de características . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.3.1. Tabla de funcionalidades . . . . . . . . . . . . . . . . . . . . . . . 53 3.3.2. Lenguajes y plataformas soportados . . . . . . . . . . . . . . . . 53 4. Comparación y análisis de las librerías 55 4.1. Wikitude ................................... 56 4.1.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 56 4.1.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 56 4.1.3. Conclusiones ............................. 57 4.2. ARKit..................................... 57 4.2.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 57 4.2.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 57 4.2.3. Conclusiones ............................. 58 4.3. ARCore .................................... 59 4.3.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 59 4.3.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 59 4.3.3. Conclusiones ............................. 60 4.4. Vuforia..................................... 60 4.4.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 60 4.4.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 60 4.4.3. Conclusiones ............................. 61 4.5. Kudan..................................... 61 4.5.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 61 4.5.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 62 4.5.3. Conclusiones ............................. 62 4.6. Maxst ..................................... 63 4.6.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 63 4.6.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 63 4.6.3. Conclusiones ............................. 64 4.7. 8thWallXR ................................. 64 4.7.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 64 4.7.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 64 4.7.3. Conclusiones ............................. 65 4 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. 4.8. EasyAR.................................... 65 4.8.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 65 4.8.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 65 4.8.3. Conclusiones ............................. 66 4.9. ARFoundation ................................ 66 4.9.1. Calidad de la documentación y primeros pasos . . . . . . . . . . . 66 4.9.2. Evaluación de las capacidades de la librería . . . . . . . . . . . . 67 4.9.3. Conclusiones ............................. 67 4.10. Conclusiones pruebas de librerías . . . . . . . . . . . . . . . . . . . . . . 67 5. Pruebas de concepto 71 5.1. Primerosprototipos.............................. 71 5.1.1. Pruebas con ARToolKit . . . . . . . . . . . . . . . . . . . . . . . 71 5.1.2. HarryPotter ............................. 73 5.1.3. DragonBall .............................. 75 5.1.4. Juego de cartas Yu-gi-oh . . . . . . . . . . . . . . . . . . . . . . . 76 5.1.5. JengAR................................ 78 5.2. Pruebasdeconcepto ............................. 79 5.2.1. Instrucciones de montaje de muebles en AR - AmueblAR . . . . . 79 5.2.2. Visualizador de objetos en AR con gafas Aryzon - Visualizer 3D . 82 5.2.3. Juego multijugador con cloud anchor - BombARdero+ . . . . . . 84 6. Conclusiones y trabajo futuro 87 6.1. Futurospasos................................. 88 6. Conclusions and future work 89 6.1. Futurework.................................. 90 7. Contribuciones 91 7.1. ColinUlrichCop ............................... 91 7.2. Patricia Cabrero Villar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3. David González Jiménez . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Repositorios 95 Bibliografía y enlaces de referencia 100 UCM 5 Acrónimos RA: Realidad aumentada SDK: Software development kit (Kit de Desarrollo de software) SLAM: Simultaneous localization and mapping HMD: Head Mount Display API: Application Programming Interface IDE: Integrated Development Environment (Entorno de desarrollo integrado) 7 Resumen La realidad aumentada (RA) se ha convertido en la última década en una tecnología accesible a millones de usuarios a través de sus dispositivos móviles. Basada inicialmente en el uso de marcadores, hoy en día existen algoritmos que permiten su uso sin marcadores que, pese al éxito de juegos como Pokemon Go, no han terminado de despegar de manera general. Este trabajo de fin de grado plantea un análisis de las posibilidades de la realidad aumentada sin marcadores. A lo largo del proyecto se exploran y estudian las librerías existentes, de cara a descubrir sus similitudes y diferencias realizando pequeñas pruebas de concepto. Con los resultados obtenidos de este estudio se han realizado tres aplicaciones que explotan las características de las librerías y las tecnologías estudiadas. La primera aplicación que se desarrolló ayuda al montaje de muebles en realidad aumentada. En esta aplicación se puso a prueba la librería ARCore y sus funcionalidades sin marcadores. En segundo lugar, se ha desarrollado un videojuego multijugador de cara a mostrar sus posibilidades en el campo haciendo uso de los puntos de ancla en la nube y la detección de planos. Por último, se ha creado una aplicación que permite disfrutar de la experiencia de una manera más natural usando las gafas de Aryzon1interactuando con los objetos colocados en el plano escogido. Palabras clave Realidad aumentada, SLAM, ARCore, ARKit, RA sin marcadores, multijugador, seguimiento, detección de planos. 1Gafas cardboard que permiten tener una experiencia de realidad aumentada [17]. 9 Capítulo 1 Introduction 1.1. Motivation Over the last few years, the augmented reality has become a mature technology and it is accesible to a large amount of users. Supported by the rise of smartphones and the improvement of their components, augmented reality is increasingly being adopted by a larger audience. That is why this is an important and recurring topic in innovation products. The augmented reality market is expected to grow from 3.5 million in 2017 to more than 198 million dollars by 2025 [49]. In the next few years it is expected to transform several markets like art, education, advertising, manufacturing processes, tourism and specially videogames among others. It is an outstanding topic due to the growth of this sector and that is why we decided to study the limitations and capabilities of the currently available technologies. 1.2. Objectives The main goal of the thesis will be determining and studying the capabilities and limitations of the currently available markerless augmented reality libraries. In order to accomplish this, we established the following objectives: 1. Research and study of cutting-edge markerless augmented reality libraries. 2. Deployment of simple applications with each library in order to find its pros and cons. 3. Analysis of the results achieved by the previous applications. 4. Approach and implementation of different markerless augmented reality proof of concept based on the previously achieved results. 5. Development of a multiplayer augmented reality application. 17 Grado en Desarrollo de Videojuegos Facultad de Informática 1.3. Work methodology To carry out these goals, we will investigate through internet sources, scientific articles, previous studies and books; all of them are reflected in the bibliography and webgraphy. These resources will be the basis of the project’s foundation and that is why two main research channels will be opened: on one hand we will research and analyze the different augmented reality development libraries and on the other the different applications in the market for this technology. The bibliographical review that will be carried out will be defined by two areas of knowledge that must be investigated in order to develop the main objective. In order to acquire technical knowledge of augmented reality, we will investigate through bibliography recommended by professors of the Complutense IT faculty. The most relevant books will be Borko Furht’s “Handbook of Augmented Reality”, Vladimir Geroimenko‘s “Augmented reality games I, Understanding the Pokémon GO phenomenon” and “Augmented reality games II, The gamification of education, medicine and art”. Due to the continuous change experienced by augmented reality technologies, the research will be strongly bounded to scientific articles, as well as to the documentation of the different libraries that lead the market. Once the bibliographical research is completed, different existing applications will be tested in order to find their strengths and weaknesses. Thanks to these conclusions we will carry out a more solid and truthful proof of concept, avoiding previously observed mistakes. We will seek to know the specific characteristics of the chosen libraries delimiting the pros and cons of each of them. To identify them, we will perform several defined and closed tests, testing the different libraries in the same device in order to establish a comparison between them. These test applications will be developed whenever possible in the Unity environment. Finally, three applications of greater complexity will be developed that will allow us to exploit the virtues of different libraries in order to show and establish the previous study conclusions. Unity 2019.2 and 2018.3 will be used as our development environment, as it is one of the leading videogame engines and it is a reference in the industry. Thanks to its versatility and intuitive interface it will allow us to iterate quickly throughout the tests and proofs of concept. We will be more comfortable with this engine as it is the one chosen by the faculty to study throughout the degree of videogame development, facilitating again the agility in development. Visual Studio 2019 will be used as our IDE, accompanied by Visual Studio Tools for Unity, a free Visual Studio extension that makes it a complete tool with which to develop applications and multiplatform games with Unity. This tool allows the Visual Studio integration with Unity editor allowing us to develop more efficiently. 18 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. Github will be the system control version chosen, we are used to the platform and it allows us to integrate it with tools such as Visual Studio and Microsoft Teams. The task tracking and communication tool between the team will be Microsoft Teams given its versatility and the possibility of adding tools. 1.4. Work plan First of all we will work on researching and analysing cutting-edge markerless AR libraries. This part will be carried out jointly by the three of us. We will study the different technologies that make up the experience of AR on smartphones to understand how it works at a low level and thus be able to figure out the market demand in order to make a credible proof of concept with current RA applications. Secondly, after identifying the libraries that exist in the market, those will be tested (those that are possible) considering the devices and platforms supported by each of them, also keeping in mind the licenses offered in each of them. We will develop test applications with each library, these will allow us to evaluate each of the markerless augmented reality libraries, checking their efficiency. The tests will be executed in the same light conditions and with the same device in order to obtain a greater precision in the comparison. In this case we will divide the test development in an equitable manner. Once the libraries that best fit our needs have been found, the following proofs of concept will be developed: Assemble Ikea furniture: the process of assembling a piece of furniture in augmented reality will be displayed. Helping the user in the assembling process. Multiplayer game: we will develop a game in which we will combine markerless technology with cloud anchors (section 3.1.3) allowing us to create an online multiplayer game. 3D models visualizer with Aryzon glasses (section 2.3.4): we will use cardboard augmented reality glasses in which we can see a 3D model overlapped with the real world, in the application the user will interact with the 3D model through the Xbox controller allowing to rotate, scale and move it. UCM 19 Capítulo 2 Antecedentes y estado del arte 2.1. Definición Se llama realidad aumentada al conjunto de tecnologías que permite a un usuario ver en tiempo real contenido virtual superpuesto al mundo real mediante un dispositivo tecnológico. El objetivo de esta tecnología es simplificar y facilitar el trabajo de los humanos en ciertos sectores, y gracias al increíble crecimiento que se está dando en el desarrollo de la realidad aumentada, sobre todo en los dispositivos móviles, la convierte en una tecnología muy barata y accesible. A diferencia de la realidad virtual, la realidad aumentada no sustituye la realidad, sino que la complementa para ayudar a comprender mejor el entorno en el que nos rodea. 2.2. Historia Figura 2.1: Cartel publicitario de la máquina Sensorama En la década de 1950, surgió por primera vez el término realidad aumentada cuando Morton Heilig, cinematógrafo estadounidense, pensó en un prototipo de cine que estimulara todos los sentidos del ser humano de manera efectiva, de modo que la experiencia de cine fuera más completa. Años más tarde, concretamente en 1962, Heilig construyó dicho prototipo, al que llamó Sensorama. Se trataba de un cine inmersivo y novedoso que incluía funcionalidades como 3D, visión angular (actualmente conocido como IMAX), vídeo en color, sonido en estéreo, además de estimular otros sentidos con aromas, viento, y vibraciones (figura 2.1). En la actualidad, estas funcionalidades están disponibles en algunos cines, por ejemplo la sala 4DX de Kinépolis [23]. 21 Grado en Desarrollo de Videojuegos Facultad de Informática Figura 2.2: Ivan Sutherland “Espada de Damocles” 1968. El HMD (Human Mounted Display) se inventó en 1968 por Ivan Sutherland, fue el primer sistema que permitía ver en tiempo real las aristas de sencillos objetos 3D (Wireframe) superpuesto al mundo real. Empleaba dos sistemas de tracking para calcular el registro de la posición y rotación de la cámara; uno mecánico y otro basado en ultrasonidos. Debido a su gran peso se ancló el artefacto al techo, lo que le dio un aspecto característico que inspiró su nombre “Espada de Damocles” (figura 2.2). Gracias a este dispositivo Sutherland pasó a la historia como uno de los pioneros de los cascos de realidad aumentada. Sin embargo, no fue hasta 1992 cuando se acuñó el término de realidad aumentada tal y como lo entendemos hoy en día por Tom Caudell y David Mizell. Dos ingenieros de Boeing que proponían el uso de esta novedosa tecnología para mejorar la eficiencia y experiencia de las tareas realizadas por operarios humanos asociadas a la fabricación de aviones. La aparición del primer videojuego en realidad aumentada ocurrió en el año 2000. Bruce Thomas demostró en el ISWC (International Symposium on Wearable Computers) su videojuego ARQuake. El sistema empleaba una brújula digital, un receptor de GPS y métodos de visión basados en marcas [5]. Los jugadores tenían que llevar una especie de ordenador portátil a la espalda, un casco de visión estereoscópica4y un mando de dos botones [2] (figura 2.3(a)). El funcionamiento del HMD (figura 2.3(b)) consistía en un divisor de haz que recibía la imagen virtual desde una pantalla que permitía ver el mundo real y el virtual en los ojos del usuario. La imagen resultante (figura 2.3(c)) permitía una inmersión muy lograda para la época. 4Dos puntos de vista poco separados entre sí. 22 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. (a) Dispositivo utilizado (b) Funcionamiento del HMD (c) Visualización del videojuego Figura 2.3: ARQuake [2] En 2007, en el ISMAR (International Simposium on Mixed and Augmented Reality), Klein y Murray presentaron el sistema de tracking PTAM (Parallel Tracking and Modeling) una variante al SLAM, que separa la localización y el mapeado en hilos diferentes. El SLAM, descrito en detalle en la sección 3.1.3 es una tecnología que sirve para que localizar la posición dentro de un entorno y modelarlo. Separar estos dos procesos en hilos diferentes permitía conseguir unos resultados en tiempo real muy sólidos. Figura 2.4: Wikitude App 2008 [5]. En 2008 se creó Wikitude, una aplicación que utilizaba el GPS para mostrar al usuario información de la Wikipedia según el lugar en el que estuviese, pudiendo obtener datos sobre monumentos, esculturas o construcciones que estuvieran cerca. La aplicación (figura 2.4) permite al usuario enfocar con la cámara del dispositivo obteniendo información como es el nombre del castillo, su origen, y la distancia a la que está. Un año más tarde, en 2009, desarrolló el videojuego ARhrrrr!, del género shooter. El primer videojuego en realidad aumentada para smartphone con contenido 3D de alta calidad. Se generaba un mapa 3D sobre un marcador, y el objetivo era rescatar a los humanos de la ciudad y matar a los zombies (figura 2.5)[5]. UCM 23 Grado en Desarrollo de Videojuegos Facultad de Informática Figura 2.5: Ejemplo del videojuego ARhrrrr!5. En el mismo año, el estudio español Novorama creó el videojuego Invizimals, un juego de PSP (PlayStation Portable) que se convirtió en un éxito mundial, vendiendo más de 8 millones de copias en todo el mundo en el primer trimestre de 2010. Necesitaba usar la cámara adicional que se conectaba a la PSP, y gracias al uso de los marcadores, se podía registrar la posición del jugador. En 2014 nació Project Tango, uno de los primeros desarrollos de realidad aumentada pensado para ser distribuido mundialmente en los smartphones. En 2015, Tango pasó a formar parte de Google. El objetivo era mapear espacios tridimensionales usando solamente un dispositivo portátil. Esta tecnología sólo se desarrolló para el dispositivo Phab2 Pro de Lenovo, el cual incluía 3 cámaras, algo inusual en aquel momento. Las tres funcionalidades principales para el desarrollo de esta tecnología han sido: Seguimiento del movimiento: Se trata del uso de las características visuales del entorno combinadas con los datos proporcionados por los sensores de movimiento incorporados en el teléfono, el acelerómetro y por el giroscopio, teniendo como objetivo realizar un seguimiento de los movimientos hechos del dispositivo. Reconocimiento del ambiente: Tango almacena la información del entorno que le rodea, buscando los puntos característicos en cada fotograma que recibe de las cámaras usando tecnologías explicadas con más detalle en la sección 3.1.3. Percepción de profundidad: Gracias a las cámaras especiales que incorpora el dispositivo, Tango podía calcular tamaños y distancias en el entorno que se encuentra. Después de 3 años, en 2017, Google decidió cerrar el desarrollo de Tango y se centró en su tecnología actual, ARCore (sección 3.2.3), que es el competidor directo de ARKit (sección 3.2.2), la librería de Apple. 5Imagen sacada de https://github.blairmacintyre.me/site-archive/ael-2015/research/games/arhrrrr/ 24 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. 2.3. Dispositivos A principios de la década de 2010 las empresas más importantes de software y hardware empezaron a interesarse en el desarrollo de dispositivos que permitiesen el uso de aplicaciones de realidad aumentada sin tener que recurrir a móviles o tablets. De esta forma, el uso de la realidad aumentada sería mucho más cómodo y abriría la puerta a un mundo completamente nuevo de posibilidades que hasta entonces eran desconocidas. 2.3.1. Google Glass Uno de los primeros proyectos de hardware para realidad aumentada fueron las Google Glass, impulsadas por Google, que fueron presentadas por primera vez en abril de 2012. El prototipo (figura 2.6) consta de una montura de gafas sin cristales, que en su patilla derecha incorpora una cámara y un pequeño procesador que permite la superposición de imágenes virtuales sobre lo que está viendo realmente el usuario. Aunque el diseño ha ido variando a lo largo de los años con las diferentes generaciones de Google Glass, el modelo ha mantenido la misma funcionalidad y se ha ampliado con nuevas prestaciones. Figura 2.6: Prototipo original de Google Glass6 Google empezó a comercializar las gafas al año siguiente bajo el título de Glass Explorers al precio de 1500 dólares. Su público objetivo eran los desarrolladores, a los que se facilitó enormemente su labor con el fin de expandir los límites del nuevo hardware. Sin embargo, debido a que el dispositivo tomaba imágenes del mundo real y podía guardarlas y procesarlas se enfrentó a diversos problemas de privacidad. Una de las medidas que se tomaron por aquel entonces fue no aprobar ninguna aplicación que utilizase reconocimiento facial. Ya en mayo 2014 salió a la venta para todos los públicos en Estados Unidos, retrasándose un mes en llegar a Europa. Las principales prestaciones que presentaba el dispositivo consistían en la consulta de mensajes, imágenes y otro tipo de datos presentes en los móviles sin necesidad de utilizarlos, poder consultar internet, siempre que se dispusiera de conexión, mediante órdenes de voz y grabar vídeo a una resolución de 720 píxeles [14]. Con el paso del tiempo y debido en parte a la falta de aplicaciones y a los problemas con la privacidad las gafas empezaron a fracasar en el mercado. Sin embargo Google cambió de estrategia y redirigió el objetivo de su producto. En 2017, las Google Glass Enterprise fueron presentadas y salieron a la venta, pero ahora se vendían a grandes empresas para 6Imagen sacada de https://www.justinmind.com/blog/prototype-google-glass-applications UCM 25 Grado en Desarrollo de Videojuegos Facultad de Informática 2.4.4. Fabricación Con la constante mejora de la tecnología móvil y los múltiples avances en el campo de la realidad aumentada no sorprende la cantidad de aplicaciones con diferentes utilidades que podemos encontrar en el mercado. El sector industrial no es una excepción, siendo éste uno de los principales beneficiados por la evolución de este campo. De hecho, como comentábamos en la sección de historia, el término de realidad aumentada fue acuñado por dos trabajadores de este campo, ingenieros de Boeing, que utilizaban esta tecnología para facilitar la fabricación de aviones. En la actualidad, valiéndose de estos sistemas, ya podemos empezar a hablar de fábricas inteligentes que mejoran la transmisión de información entre las máquinas y los operarios y permiten una mejor gestión de los recursos y de los datos disponibles, mejorando así la eficiencia y la productividad de forma drástica. Un ejemplo de ello está en el diseño industrial: disponiendo de las diferentes piezas virtuales, la realización de prototipos y el intercambio de los diferentes componentes es sumamente rápido y no tiene ningún impacto sobre otros modelos. Pero sus aplicaciones en una fábrica también se extienden al mantenimiento de la misma o incluso a la seguridad laboral [44]. Otra de las principales aplicaciones en este terreno es la formación de los operarios mediante el uso de textos explicativos o imágenes que aparecen en realidad aumentada. Se puede observar en la figura 2.14 algunas de las aplicaciones en la industria, donde se puede señalar dónde hay una avería, o que hay que inspeccionar, muy útiles para compartir información entre trabajadores y evitar malentendidos. Figura 2.14: Ejemplos de uso en la Fabricación [48]. 2.4.5. Publicidad No es ningún secreto que el objetivo primordial de la publicidad es vender un producto a un comprador concreto. Desde el principio de los tiempos la publicidad ha sido agresiva y vistosa, con el fin de llegar a un público mayor y sorprender al que la presencia para que se plantee si necesita lo que se le está vendiendo. En los días que vivimos la publicidad se vale de todos los recursos que tiene a su alcance para ampliar sus horizontes, y la 32 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. tecnología de la realidad aumentada no es excepción. Los anuncios y aplicaciones de realidad aumentada son especialmente exitosos, ya que el usuario no sólo está viendo la publicidad, sino que es partícipe de ella y puede sumergirse en la experiencia con todos sus sentidos. Multitud de empresas han empezado a incorporar la realidad aumentada en sus diferentes anuncios. Un ejemplo de ello en el campo del motor son las aplicaciones de BMW, que permiten la interacción por parte de los clientes con modelos virtuales de sus productos, como coches u otros vehículos [45]. Otro ejemplo del uso de esta tecnología en la publicidad es la idea de Burger King que se puede ver en la figura 2.15. Se trata de una campaña publicitaria que incentiva a los usuarios a “quemar” los carteles de la competencia mediante el uso de una aplicación móvil. Como recompensa por ello se recibe un cupón canjeable por una hamburguesa del Burger King [20]. Figura 2.15: Burger King campaña publicitaria16. 2.4.6. Turismo En los últimos años hemos podido encontrar un gran aumento en el desarrollo de aplicaciones de realidad aumentada. Esto se debe principalmente a que la tecnología cada vez es mejor, más barata y accesible, y permite disfrutar de este campo a muchas más personas y de una forma más directa e intuitiva. Precisamente es necesario diseñar aplicaciones intuitivas y sencillas si van a ir dirigidas a un público que no esté habituado al mundo digital; como es en el caso de las aplicaciones de realidad aumentada en el sector del turismo [43]. Existen multitud de maneras en las que el usuario puede interactuar con el entorno en estas aplicaciones. Con esto el turista además de estar físicamente en un destino también puede interactuar con él, haciendo más completa su experiencia y obteniendo información o fuentes de ocio que de otras maneras habrían pasado inadvertidas. A día de hoy ya existen lugares como parques de atracciones que se valen de esta 16Imagen sacada de https://www.designboom.com/technology/burger-king-burn-that-ad-free-whopper-virtual-reality-03-21-2019/ UCM 33 Grado en Desarrollo de Videojuegos Facultad de Informática tecnología para guiar a los usuarios por el recinto y les ofrecen diferentes actividades y juegos para que su experiencia sea inolvidable. Un ejemplo de ello es el prototipo implementado por Lego para el parque Legoland Dinamarca. El usuario puede seguir a un guía virtual hecho de piezas Lego y previsualizar las atracciones antes de montarse [35]. Figura 2.16: Aplicación para el parque Legoland 17. Figura 2.17: Traductor de Google en RA18. Por supuesto, la realidad aumentada presenta otro beneficio primordial a la hora de viajar a otro país con una lengua diferente a la nuestra. Existen aplicaciones que con el uso de la cámara traducen en tiempo real carteles y cualquier tipo de texto de un idioma a otro. Como podemos observar en la figura 2.17, su uso es muy cómodo, sobre todo para los idiomas que no utilizan nuestro alfabeto, ya que no hace falta escribir el texto para traducirlo. Esto resulta increíblemente rápido y eficaz a la hora de obtener información y sin duda mejorará la experiencia turística en destinos internacionales. 2.4.7. Videojuegos El sector del ocio electrónico es en la actualidad más grande de lo que nunca ha sido. Se sabe que el dinero que mueve es mayor al que suman las industrias cinematográfica y discográfica juntas [8], y no sorprende a nadie el hecho de que la realidad aumentada haya encontrado aquí el nicho perfecto en el que asentarse y desarrollarse. El auge de la industria del videojuego viene impulsado en los últimos años por la accesibilidad de los móviles y el desarrollo de juegos para estos dispositivos. De hecho, la aplicación que permitió la difusión masiva al público general de la realidad aumentada fue Pokémon Go en 2016 (aunque ya lo había conseguido en menor medida Invizimals en 2009), que se convirtió en un fenómeno mundial durante el verano de dicho año y que este año ha experimentado otro pico de facturación que no se alcanzaba desde su lanzamiento [29]. Una de las claves de su éxito fue innegablemente basarse en la conocida 17Imagen sacada de https://www.youtube.com/watch?v=gSTJmO9nMpU 18Imagen sacada de https://www.muyinteresante.es/tecnologia/articulo/ el-nuevo-google-translate-traduce-imagenes-y-voz-211421238921 34 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. franquicia, sin embargo, cada ciertos años sale al mercado una nueva entrega de la saga principal en las consolas de Nintendo y no logra la difusión y fiebre masiva que sí consiguió esta aplicación, lo que nos sugiere que la realidad aumentada y la accesibilidad también son decisivos en el entusiasmo del público. Figura 2.18: Captura del juego Pokémon Go19. Como hemos comentado antes, la gamificación de otros sectores como la educación es una realidad, y muchos de los juegos que vemos en estos ámbitos se valen de la realidad aumentada para proporcionar al usuario una experiencia de aprendizaje nueva y más satisfactoria. El futuro en este campo es sin ninguna duda de los más prometedores, puesto que un alto porcentaje de los jugadores afirma que si se llegase a prescindir de las pantallas de dispositivos móviles para el despliegue de aplicaciones en realidad aumentada y se utilizasen visores más pequeños y cómodos de alta durabilidad y precio asequible, no dudarían en utilizar esta tecnología en su tiempo de ocio habitual [47]. 2.4.8. Comercio electrónico (e-commerce) Los probadores virtuales están marcando tendencia en las nuevas generaciones de aplicaciones y estrategias de venta. Estas aplicaciones hacen uso de la realidad aumentada con tecnologías como el reconocimiento de rostros, reconocimiento de superficies o estimación de luces, y son punto de referencia en el mercado los siguientes ejemplos: 1. Ikea Place Esta aplicación permite al usuario ver el catálogo de Ikea y una vez seleccionado el elemento verlo en la habitación real con las dimensiones reales del objeto. UCM 35 Grado en Desarrollo de Videojuegos Facultad de Informática Figura 2.19: IKEA Place AR probador virtual20. 2. YouCam Makeup Esta aplicación es un excelente y conseguido ejemplo de e-commerce en el mundo de la belleza donde se aplica esta tecnología. La calidad del tracking del pelo es bastante precisa generando una experiencia agradable. Figura 2.20: Imagen representativa de YouCam Makeup21. 3. L’Oreal (Modiface) Esta Aplicación permite al usuario maquillarse con los productos de L’Oreal en realidad aumentada, así como escoger el color que mejor combine con sus prendas. Muestra los productos relacionados con esa tonalidad y ofrece la posibilidad de comprarlos dentro de la aplicación. 20Imagen sacada de https://www.droid-life.com/wp-content/uploads/2018/03/ ikea-place-android-app-980x580.jpg 21Imagen sacada de https://www.techeblog.com/artificial-intelligence-software-hair-color-youcam-makeup-app/ 36 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. Resumen Como se ha visto en este capítulo, la realidad aumentada ha ido creciendo y evolucionando desde 1950 con el prototipo de Sensorama hasta novedosas aplicaciones existentes en la actualidad. En la actualidad la realidad aumentada está presente en multitud de sectores como la medicina, la educación, el arte, la publicidad, el turismo, la fabricación y los videojuegos. Ante el crecimiento y las posibilidades de esta tecnología se han en desarrollado diferentes librerías que pasaremos a analizar en el siguiente capítulo. Por otro lado, para un correcto conocimiento y análisis de las funcionalidades de estas librerías, también estudiaremos en el siguiente capítulo las tecnologías implicadas en la realidad aumentada sin marcadores. UCM 37 Capítulo 3 Realidad aumentada sin marcadores 3.1. Aspectos técnicos 3.1.1. Descripción La realidad aumentada es una tecnología que permite mezclar el mundo virtual con el mundo físico, añadiendo la información virtual a la información física ya existente en tiempo real, permitiendo al usuario comprender mejor el entorno que le rodea [1]. En la última década, con la aparición de los dispositivos móviles más potentes y las librerías gratuitas de realidad aumentada, el desarrollo de aplicaciones de RA se ha vuelto muy accesible para cualquier desarrollador. Esto implica un aumento drástico en el número de ideas y aplicaciones que surgen día a día. En la actualidad existen tres tipos de seguimiento en la realidad aumentada: Realidad aumentada con marcadores (2D y 3D): Los marcadores son imágenes impresas, dibujos o objetos previamente escaneados en los que la aplicación reconoce el marcador y activa la experiencia sobre dicho marcador. Realidad aumentada sin marcadores: Esta es la tecnología más novedosa, ya que combina diferentes tecnologías como SLAM (detallado en el apartado 3.1.3), seguimiento del movimiento, reconocimiento del ambiente o detección de planos para proyectar el objeto y mantenerlo anclado en el mismo punto sin ayuda de ningún marcador. Realidad aumentada por geolocalización: Este tipo de experiencias vinculan a la RA con una ubicación geolocalizada específica. Normalmente se utilizan en exteriores y proporcionan información contextual sobre el ambiente que nos rodea. Las posibilidades de la realidad aumentada sin marcadores están en pleno auge y cada vez aparecen más aplicaciones que mejoran la experiencia de usuario y facilitan el trabajo en algunos sectores como puede ser la industria, la arquitectura, la medicina o la educación. 39 Grado en Desarrollo de Videojuegos Facultad de Informática 3.1.2. Métodos de seguimiento El seguimiento (tracking) es como conocemos al proceso de localización espacial del usuario en un entorno. Es uno de los aspectos clave en el desarrollo de aplicaciones de realidad aumentada ya que cuanto mejor sea la estimación de la posición y orientación del dispositivo, mejores y más acertados serán los resultados y la inmersión por parte del usuario [6]. Los algoritmos de tracking se encargan de calcular la posición del dispositivo en relación a los objetos de la escena física. Existen multitud de tecnologías y métodos en los que se apoyan para llevarlos a cabo, siendo los más comunes: sensores mecánicos, magnéticos, sónicos, dinámicos y basados en visión. Hoy en día estos últimos son los más extendidos, ya que la mayoría de los dispositivos desde los que se despliegan las aplicaciones de realidad aumentada, como móviles o tabletas, disponen de una o varias cámaras [5]. El tracking basado en cámaras de visión es un subcampo del tracking 3D, en el que se utilizan algoritmos de visión por ordenador para obtener de la manera más precisa posible el posicionamiento de seis grados de libertad del dispositivo (tres grados de posición y otros tres de orientación). En este tipo de posicionamiento es necesario disponer de un conjunto de marcadores o referencias tridimensionales para situar la cámara con respecto a ellas. Aunque recientemente se ha tendido a utilizar en menor medida los marcadores físicos para dar una experiencia más rápida y cómoda al usuario, han sido una herramienta imprescindible en los primeros pasos de la realidad aumentada para la obtención de la localización relativa de la cámara. Según David Marimón [3], fundador y director general de Catchoom, se pueden distinguir dos aproximaciones distintas a la hora del tracking: los métodos Bottom-Up y los Top-Down. Bottom-Up Las aproximaciones del tipo Bottom-Up pretenden obtener la posición del dispositivo basándose en la información que recibe a través de la cámara. Para este método de tracking la posición y orientación se calculan en base a la obtención de características geométricas de objetos y sus relaciones. Dependiendo de los datos procesados, el seguimiento puede ser con marcas o sin ellas. El tracking basado en marcas era el método más extendido en los inicios de la realidad aumentada. Hace sus cálculos con la ayuda de marcadores físicos que en su mayoría presentan un gran contraste entre blanco y negro para que los sensores puedan percibirlos con mayor facilidad. Existen también marcadores que usan códigos de colores y diferentes formas geométricas, aunque después de ser sometidos a prueba se comprobó que los más sólidos eran los marcadores cuadrados. Por otra parte, este método es especialmente sensible a la oclusión, ya que cuando se pierde el marcador, es imposible calcular la posición del dispositivo. Por este motivo, se han diseñado algoritmos que pueden hacer frente a este problema mediante estimaciones que completan marcas que no son totalmente visibles. 40 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. Paralelamente, el tracking sin marcas se basa únicamente en las características intrínsecas de la escena, estructuras físicas de fácil percepción como las esquinas de una mesa. Existen técnicas en este campo que utilizan información sobre superficies planas detectadas en el campo de visión, siendo su principal inconveniente su alto coste computacional. De hecho, actualmente este tipo de localización no lo pueden llevar a cabo todos los dispositivos del mercado. Por otra parte, hay técnicas basadas en modelos. No están considerados marcadores porque son parte del medio natural, pero al igual que con éstos los cálculos se basan en el reconocimiento de los objetos que existen y que el programa está preparado para procesar. Finalmente, existen métodos que actúan en escenarios donde no se es capaz de obtener planos o modelos. Sin embargo, estas técnicas no son utilizada habitualmente por sus altos requisitos de cómputo. Top-Down Las aproximaciones del tipo top-down intentan estimar desde la posición actual del dispositivo si se está percibiendo lo que se esperaba. Es decir, primero se estima la posición y después se confirma esa estimación con los datos del medio. En este caso, se emplean modelos de movimiento para hacer una predicción de la localización del dispositivo. Partiendo de esta estimación, se busca mediante la cámara una serie de referencias parciales que corrijan la predicción y mejoren el posicionamiento del observador. Por ello, todos los modelos top-down se ven obligados a trabajar con filtros y modelos de asociación de datos. El uso de estos filtros permite combinar varios métodos de tracking y mantener un registro constante de los objetos y la cámara, aunque los marcadores, modelos o planos sean parcialmente visibles por oclusión o se hayan escapado del campo de visión. Además del seguimiento óptico, se han desarrollado numerosas alternativas con las que proporcionar otros métodos de localización (como los beacons o la ubicación del GPS) y así complementar y facilitar una localización más precisa y correcta. A las aproximaciones que se valen de varias de estas técnicas se las denomina métodos de fusión. 3.1.3. Tecnologías implicadas en la RA sin marcadores El objetivo de la realidad aumentada es integrar contenido virtual en el mundo real. Idealmente, dicho contenido se tendría que comportar exactamente como uno real, esto requiere una información muy precisa sobre la posición del dispositivo que usa el usuario con respecto al objeto virtual. Para ello, se han desarrollado diferentes tecnologías que junto a los sensores de los teléfonos actuales (giroscopio, acelerómetro, sensor de luz) y a la cámara, permiten disfrutar de una experiencia casi ideal [1]. UCM 41 Grado en Desarrollo de Videojuegos Facultad de Informática Puntos de anclaje en la nube Las plataformas soportadas son: iOS Unity (via ARFoundation) Unreal Engine 4 [24] La licencia es gratuita. 3.2.3. ARCore Esta librería está desarrollada por Google, y fue lanzada en febrero de 2018 como respuesta para competir contra ARKit de iOS. La versión con la que trabajamos es ARCore SDK for Unity v1.11.0 (2019-05-05) [30]. Funcionalidades: Reconocimiento de imágenes 2D (marcadores) Reconocimiento de objetos 3D Reconocimiento de rostro SLAM Mapeado de áreas grandes Estimación de luces Puntos de anclaje en la nube Las plataformas soportadas son: Android (Sólo los dispositivos soportados [32]) Android NDK Unity (Android, iOS) Unreal Engine 4 iOS La licencia para usar ARCore es gratuita. 48 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. 3.2.4. Vuforia Esta librería está desarrollada por la empresa PTC. La versión que hemos utilizado ha sido Vuforia SDK Android 8.3.8 (2019-06-13) [53]. Funcionalidades: Reconocimiento de imágenes 2D (marcadores) Reconocimiento de objetos 3D Escáner de objetos 3D Plataformas: Android iOS Windows Smart Glasses Licencias: Básica, 42$ al mes, limita el número de marcadores por licencia a 100. Básica con base de datos en la nube para los marcadores 99$ al mes. Para la versión pro, la cual incluye marcadores ilimitados, acceso a API avanzada, y soporte en producción. Hay que contactar y hacen presupuesto a medida para la empresa. 3.2.5. Kudan Kudan es una empresa que se dedica al desarrollo de la realidad aumentada, virtual y mixta, además de la conducción autónoma, drones y robots. La versión que hemos utilizado ha sido la Kudan SDK Unity 1.6.0 (2019-07-16) [58]. Funcionalidades: Reconocimiento de imágenes 2D (marcadores) SLAM Plataformas: Unity (Android, iOS) iOS Android Licencias: AR Indie: Gratis. Pensado para la fase de desarrollo, protegido con marca de agua. UCM 49 Grado en Desarrollo de Videojuegos Facultad de Informática AR Business: 1500$. Para las empresas con menos de un millón de dólares en ingresos. AR Enterprise: Para las empresas con más de un millón de dólares en ingresos, hay que contactar con Kudan y proporcionan un presupuesto personalizado. 3.2.6. MaxST Maxst se fundó en 2010 y se dedica a la investigación y desarrollo de la tecnología de realidad aumentada. Han lanzado Maxst AR SDK, el cual hemos probado en la versión MaxstARSDK_Unity 4.1.3 [41]. Funcionalidades: Reconocimiento de imágenes 2D (marcadores) Reconocimiento de objetos 3D Reconocimiento de códigos de barras y QR Plataformas: Unity (Android,iOS) Android iOS Windows macOS Epson Moverio BT-300,350 y ODG R-7 Licencias: Free. Gratis, para uso no comercial, incluye marca de agua. Pro-one. Para aplicaciones con menos de 100k descargas (no incluye actualizaciones). Pago único de 499$ Pro-Subscription. Subscripción anual, incluye actualizaciones 599$ por año Enterprise. Para aplicaciones con más de 100k de descargas. Hay que contactar con Maxst para recibir un presupuesto. 50 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. 3.2.7. 8th Wall 8th Wall desarrolla dos productos diferentes, 8th Wall Web y 8th Wall XR for Unity. El producto que vamos a analizar en el desarrollo es el 8th Wall XR for Unity 11.2.6.519, para que la comparación entre las librerías sea mas precisa, ya que la potencia que tiene en navegador es menor a la que puede llegar a tener una aplicación de Unity [10]. Funcionalidades: Reconocimiento de imágenes 2D (marcadores) 6 grados de libertad SLAM Estimación de la luz Plataformas: Unity (Android, iOS) Web (A-Frame, BabylonJS, Sumerian, three.js) soportada en la versión web El uso de 8th Wall XR de Unity es gratuito. En el caso de 8th Wall Web, la licencia se cobra según las visitas en la web. Aparte, se necesita una licencia de desarrollador que cuesta 250$/mes. Pago por visita (PPV) Paquete estándar PPV de alto tráfico Paquete alto tráfico 1000$/mes 3000$/mes 6000$/mes 6000$/mes 0 visitas incluidas 500k visitas incluidas 0 visitas incluidas 5M visitas incluidas 0.01$/visita 0.01$/visita extra 0.0025$/visita 0.0025$/visita extra Cuadro 3.1: Licencias 8th Wall 3.2.8. Easy AR EasyAR es una compañía china que lleva en el mercado desde 2016. Hemos probado la versión EasyARSense Unity SDK v3.0.1(2019-07-07) [21]. Funcionalidades: Reconocimiento de imágenes 2D (marcadores) Reconocimiento de objetos 3D SLAM Grabación de pantalla Plataformas soportadas: Unity (Android, iOS) UCM 51 Grado en Desarrollo de Videojuegos Facultad de Informática Android iOS Windows Licencias: EasyAR SDK Basic. Gratis EasyAR SDK Pro, 499$ por licencia. Añade el reconocimiento de objetos 3D, la grabación de pantalla y reconocimiento de más de un marcador simultáneo. EasyAR SDK Pro trial. Lo mismo que el Pro, pero limitado a 100 usos por día. 3.2.9. ARFoundation Este último no se trata exactamente de una librería, sino de un paquete de Unity (aún en fase experimental) que integra una API de alto nivel (wrapper) que permite tener el mismo código funcional para ARCore y ARKit, según si se compila el proyecto para Android o para iOS. La versión más reciente es ARFoundation 2.2 (Unity 2019.1), incluye las versiones más recientes de ambas librerías [50]. Soporta las mismas funcionalidades que ARCore y ARKit: Reconocimiento de imágenes 2D (marcadores) Reconocimiento de objetos 3D Reconocimiento de rostro Oclusión (iOS con ARKit) SLAM Mapeado de áreas grandes (ARCore) Estimación de luces Puntos de anclaje en la nube Plataformas soportadas: Unity (Android, iOS) Su licencia, al igual que ARCore y ARKit, es gratuita. 52 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. 3.3. Resumen de características 3.3.1. Tabla de funcionalidades A continuación, en la tabla 3.2 se puede ver un resumen de las funcionalidades que tiene cada una de las librerías que vamos a analizar. Más adelante, en la parte de comparación y análisis de las librerías, evaluaremos la calidad y eficiencia de estas funcionalidades para cada librería. SDK Marcadores 2D Marcadores 3D Tipo tracking SLAM Detección de rostro Estimación de luces Otras Wikitude ✓ ✓ Tracking instantáneo ✓-✓Geo AR ARKit ✓✓Detección de planos ✓✓✓ Oclusión, Cloud Anchor ARCore ✓ ✓ Detección de planos ✓ ✓ ✓ Cloud Anchor Vuforia ✓ ✓ Detección de planos ✓–✓ Kudan ✓-Tracking instantáneo ✓-✓ MaxST ✓ ✓ Tracking instantáneo ✓–✓ 8th Wall XR ✓–Detección de planos ✓–✓ EasyAR ✓ ✓ Tracking instantáneo ✓–✓Grabación de pantalla AR Foundation ✓ ✓ Detección de planos ✓ ✓ ✓ Cuadro 3.2: Comparación de funcionalidades Como vemos en la tabla 3.2, menos en el reconocimiento de rostro, casi todas las librerías tienen las mismas funcionalidades, por lo que a priori nos sirve cualquiera para realizar nuestras pruebas de concepto. Por lo que se probarán todas y se verán cuáles son las que mejor resultado proporcionan. 3.3.2. Lenguajes y plataformas soportados Podemos ver en la tabla 3.3 que prácticamente todas las librerías soportan Android e iOS, con lo que podemos deducir que es donde más se está invirtiendo en el mercado. Quizás las smartglasses puedan brindar una experiencia de realidad aumentada más agradable, pero todavía está muy lejos de ser accesible para la mayoría de la población, mientras que un dispositivo móvil es mucho más asequible. UCM 53 Grado en Desarrollo de Videojuegos Facultad de Informática SDK Unity3D (Android, iOS) Unreal Engine 4 Java Objective-C C++ JavaScript Wikitude ✓–✓ ✓ –✓ ARKit ✓ ✓ –✓– – ARCore ✓ ✓ ✓ ✓ – – Vuforia ✓–✓ ✓ ✓ – Kudan ✓–✓ ✓ – – MaxST ✓–✓–✓– 8th Wall ✓– – – – ✓ EasyAR ✓–✓ ✓ ✓ – AR Foundation ✓– – – – – Cuadro 3.3: Comparación de plataformas y lenguajes soportados En la tabla 3.3, es muy fácil observar que Unity3D sale ganador, se puede trabajar con absolutamente todas las librerías, además gracias a su editor y entorno visual, resulta muchísimo más cómodo y ahorra mucho tiempo a la hora de desarrollar una aplicación de realidad aumentada. Después de haber analizado las características de éstas librerías de realidad aumentada, en el siguiente capítulo sometemos a cada librería a una prueba para evaluar su funcionamiento. Resumen Existen diferentes formas de seguimiento en la realidad aumentada: utilizando marcadores, no utilizándolos y basándose en la geolocalización. Estos tipos de seguimiento pueden funcionar de dos maneras. La forma Bottom-Up busca calcular la posición del dispositivo en relación a la información que obtiene de la cámara. Esta información puede venir en forma de marcadores físicos, planos, patrones faciales, etc. Por otro lado, la forma Top-Down hace una estimación inicial de la posición de la cámara y después con la información que recibe corrige la aproximación previa. En la realidad aumentada sin marcadores se utilizan una serie de tecnologías para calcular la posición de la cámara y los objetos virtuales en la escena física. Algunos de estos métodos son: SLAM, reconocimiento del ambiente, detección de oclusión, detección de rostros y puntos de anclaje. En este capítulo hemos dado un vistazo rápido a las características principales de las librerías de realidad aumentada sin marcadores. En el siguiente capítulo profundizaremos más en el funcionamiento de cada una y las evaluaremos de acuerdo a las pruebas que hemos realizado. 54 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Capítulo 4 Comparación y análisis de las librerías De cara a analizar las librerías se desarrollará una aplicación con cada una de ellas. La aplicación consistirá en instanciar un dragón obtenido de la Asset Store de Unity [37]. Los test se desarrollarán en dos condiciones lumínicas diferentes, luz mínima y ambiental. Como luz mínima se considerará una sala de unos 20m2únicamente iluminada por un haz de luz perteneciente a una habitación contigua. En cambio, como luz ambiente se considerará esta misma sala iluminada por cuatro ventanas a la luz de la tarde. El dispositivo que se utilizará para realizar todas las pruebas será el Pocophone F1. A excepción de las librerías ARKit y Vuforia, que serán probadas con un Iphone 8 Plus debido a que el Pocophone F1 no está en la lista de dispositivos soportados en Vuforia Fusion [54] y ARKit únicamente soporta dispositivos iOS. Para realizar la evaluación de las capacidades y los límites de cada librería se realizará un test que consistirá en: Instanciar un objeto. Movernos alrededor de dicho objeto, para comprobar la estabilidad del punto de anclaje. Realizar movimientos bruscos y veloces en el teléfono para ver si pierde la referencia en algún momento. Sacar al objeto del campo de visión de la cámara y ver cómo reacciona cuando al volver. Alejarnos del objeto y ver hasta que distancia sigue funcionando. Observar la calidad de las texturas. Observar la estimación de luces. Una vez realizadas las pruebas el análisis de las librerías se estructurará en los puntos que se describen a continuación: 55 Grado en Desarrollo de Videojuegos Facultad de Informática Calidad de la documentación y primeros pasos: en este punto evaluaremos la dificultad para realizar una aplicación básica con cada librería, desde el momento en el que se descarga el SDK, hasta que se construye la aplicación. Evaluación de las capacidades de la librería: en este apartado se tendrán en cuenta las funcionalidades, las tecnologías que soporta y el nivel personalización dentro de la aplicación, es decir, hasta que nivel podemos usar la API que nos proporcionan. Conclusiones: gracias al estudio realizado estableceremos unas conclusiones sobre el uso de cada librería y decidiremos si nos facilita el desarrollo de alguna prueba de concepto. Las aplicaciones y desarrollo de las pruebas se encuentran almacenadas en el repositorio: https://github.com/ar-tfg/DemosLibrerias. Los vídeos de las evaluaciones se encuentran almacenados en la siguiente lista de reproducción de Youtube https://www.youtube.com/playlist?list= PLqQgTAUiabc8AQrcc48Jdglnytus9IoXe. 4.1. Wikitude 4.1.1. Calidad de la documentación y primeros pasos La experiencia al crear una aplicación usando Wikitude es buena. Te guían desde el momento en el que entras a la web para descargar el SDK que necesites, eso sí, hace falta registrarse y descargar una clave de licencia para que funcione la aplicación. Dicha clave hay que introducirla en el componente Wikitude Camera que trae el paquete. Todos estos pasos vienen documentados, para facilitar el proceso de prueba, el paquete incluye varias escenas montadas en las que se pueden probar diferentes tipos de tecnologías. Para hacer funcionar todas las escenas, es necesario que el Package Name de la aplicación sea “com.wikitude.unityexample”, ya que el SDK está protegido de esta manera. La documentación de la API es muy completa y está muy bien estructurada [28]. 4.1.2. Evaluación de las capacidades de la librería Condiciones de luz mínimas: https://youtu.be/_4fLQas1NcM Consigue instanciar el objeto dentro de un plano y posee buena iluminación. El plano falla cuando empezamos a movernos haciendo un giro de 45º no esperado, si estamos encima del modelo se pierde, si damos la vuelta completa sigue perdido. Necesitamos volver a referenciarlo por que no se recupera. La calidad del modelo y su textura es óptima para las condiciones de luz que posee. Se pierde la referencia fácilmente ante los giros. Cuando se realiza un movimiento de cámara en el que el punto de anclaje sale del campo de visión y más tarde se vuelve a enfocar a él, tarda un segundo en volver a posicionar el plano y su objeto. En esta prueba no hemos conseguido que pierda la referencia por distancia. Hace estimaciones con oclusión desapareciendo con la pared. 56 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. Condiciones de luz ambiente: https://youtu.be/wlqITlPTz3o Consigue instanciar el objeto dentro de un plano y posee buena iluminación. El plano falla cuando empezamos a movernos haciendo de nuevo un giro de 45º no esperado, si estamos encima del modelo se pierde pero en este caso se recupera con cierta facilidad. Podemos acercarnos bastante manteniendo el nivel de detalle. La calidad del modelo y su textura es óptima para las condiciones de luz que posee. Se pierde la referencia fácilmente ante los giros. Cuando se realiza un movimiento de cámara en el que el punto de anclaje sale del campo de visión y más tarde se vuelve a enfocar a él, tarda menos de un segundo en volver a posicionar el plano y su objeto. En esta primera prueba no hemos conseguido que pierda la referencia por distancia. Hace estimaciones con oclusión desapareciendo con la pared. Luz Ambiente Luz Mínimas Estabilidad del punto de anclaje 3 6 Estimación y calidad de iluminación 4 6 Resistencia a movimientos 1 2 Recuperación del ancla 8 8 Cuadro 4.1: Análisis Wikitude 4.1.3. Conclusiones A pesar de ser una de las librerías pioneras en el sector, los resultados obtenidos no son tan buenos frente a sus competidores, por lo menos en lo que a realidad aumentada sin marcadores se refiere. Lo peor de esta librería es la resistencia a movimientos bruscos (y no tan bruscos), desde que el móvil sufre una pequeña agitación, el modelo desaparece, lo cual es desastroso. Por otro lado, hay que destacar es su intento de detectar oclusión, ha sido la única que ha reaccionado cuando hemos cruzado una pared. 4.2. ARKit 4.2.1. Calidad de la documentación y primeros pasos La documentación de ARKit es muy extensa y detallada y con una comunidad amplia y activa favoreciendo el desarrollo de aplicaciones con esta tecnología. Existe un plugin para Unity que permite el desarrollo en la plataforma. Para hacer funcionar este SDK es tan sencillo como añadirlo desde el gestor de paquetes de Unity. Este paquete permite partir desde una escena vacía o desde el ejemplo aportado por el SDK, gracias al ejemplo la primera toma de contacto con la librería es bastante accesible. Además la documentación de los primeros pasos es una excelente guía para el conocimiento de la librería y el posterior desarrollo. 4.2.2. Evaluación de las capacidades de la librería Condiciones de luz mínimas: https://youtu.be/uwjq-bF_J4M UCM 57 Grado en Desarrollo de Videojuegos Facultad de Informática Luz Ambiente Luz Mínimas Estabilidad del punto de anclaje 4 6 Estimación y calidad de iluminación 1 1 Resistencia a movimientos 4 9 Recuperación del ancla 3 7 Cuadro 4.6: Análisis Maxst 4.6.3. Conclusiones Apenas necesita tiempo para posicionar el ancla, no hay que esperar a que reconozca una superficie plana, pero la estabilidad debe mejorar un poco. A pesar de estar en unas condiciones lumínicas ideales, el modelo a veces se mueve cuando estamos muy cerca e incluso puede llegar a perderse la referencia. Esto es crítico si se quiere desarrollar una aplicación en la que se pueda mover alrededor de un punto, o acercarse mucho a él para poder verlo con detalle. 4.7. 8th Wall XR 4.7.1. Calidad de la documentación y primeros pasos Para desarrollar aplicaciones de realidad aumentada con 8thWall, es necesario registrarse en su página web [10], descargar el SDK, y generar una clave de licencia, que tendremos que especificar en el objeto “XRAppSettings” que se encuentra dentro del paquete de Unity3D. Estos pasos vienen bien documentados en la guía que proporcionan, por lo que la calidad de la documentación es buena, también en la parte de la API. Tienen tutoriales subidos en los que enseñan y explican cómo desarollar aplicaciones con su SDK. En los dispositivos que se encuentran en la lista de ARCore [32], 8thWall usa ARCore para la tecnología de realidad aumentada. Para los que no se encuentran en esa lista, tienen su propia tecnología, que no funciona tan bien pero por lo menos permite cubrir un rango muy amplio de dispositivos soportados. Para facilitar el desarrollo, han creado una aplicación para probar en el móvil desde el editor de Unity3D, llamada 8th Wall XR Remote, que se puede encontrar en Google Play [12]. 4.7.2. Evaluación de las capacidades de la librería Condiciones de luz mínimas: https://youtu.be/6edM5PhhXj0 El nivel de luz de la sala supone un problema para posicionar el modelo con lo que aumentamos el nivel de luz. La calidad de las texturas del objeto son buenas, además posee estimación de iluminación sobre el modelo correcta y muy eficaz. El anclaje alrededor del objeto con movimientos suaves es muy buena pudiendo dar una vuelta sin problema y acercarnos para ver el detalle del objeto sin que desaparezca. No conseguimos perderlo con la distancia en ningún momento. La capacidad de soportar movimientos bruscos es muy buena, nunca se pierde y su anclaje sigue en la posición correcta. Al 64 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. sacarlo del campo de visión lo mantiene creando una transición suave. Condiciones de luz ambiente: https://youtu.be/5TBd3ml35RY La detección del plano es muy rápida. Mantiene y mejora la calidad de las texturas del objeto, así como la estimación de iluminación. El anclaje alrededor del objeto con movimientos suaves es muy buena pudiendo dar una vuelta sin problema y acercarnos para ver el detalle del dragón sin que desaparezca. No conseguimos perderlo con la distancia en ningún momento. La capacidad de soportar movimientos bruscos y movimientos fuera del campo de visión continua siendo muy buena. Luz Ambiente Luz Mínimas Estabilidad del punto de anclaje 10 10 Estimación y calidad de iluminación 8 8 Resistencia a movimientos 10 10 Recuperación del ancla 10 10 Cuadro 4.7: Análisis 8th Wall 4.7.3. Conclusiones Aunque por debajo utilice la misma tecnología que ARCore, la capa que han desarrollado por encima simplifica bastante el uso de la librería y el desarrollo de una aplicación con realidad aumentada. Por esta razón, y por los resultados obtenidos, que han sido excelentes, esta librería una muy buena opción para desarrollar una aplicación. Además, el otro producto que desarrolla la empresa, 8th Wall for Web, permite llevar la realidad aumentada a un navegador de manera muy sencilla, sin necesidad de instalar una aplicación completa. Aunque los resultados no son tan buenos como en una aplicación desarrollada en Unity, se defiende muy bien [11]. 4.8. Easy AR 4.8.1. Calidad de la documentación y primeros pasos Es necesario registrarse para acceder a la descarga del SDK y generar una clave de licencia. Una vez importado el paquete dentro de Unity, hay que buscar el objeto “EasyARKey” y especificar la clave. Las escenas que vienen de ejemplo no son del todo intuitivas ni modificables, ya que para cambiar el objeto que se instancia hay que entrar y hacer unos cambios en el código. Lo ideal sería poder cambiarlo desde el editor. La documentación es mejorable, solo tienen una guía para hacer la Build en cada plataforma, pero no hay ninguna guía que explique como crear una aplicación desde cero, ni explican cuales son las clases y componentes importantes e inprescindibles. 4.8.2. Evaluación de las capacidades de la librería Condiciones de luz mínimas: https://youtu.be/G_iY6gdoMOU UCM 65 Grado en Desarrollo de Videojuegos Facultad de Informática Coloca el modelo enfrente del usuario automáticamente sin buscar ningún plano de referencia. La estabilidad del objeto es muy mala ya que no nos podemos acercar porque el objeto también se mueve cuando el usuario cambia de posición, lo mismo ocurre al intentar dar la vuelta sobre él. La calidad de texturas es aceptable y no posee estimación de luz. La resistencia a movimientos bruscos es buena, nunca se deja de ver el objeto y se mantiene en su posición, lo mismo ocurre al sacarlo del campo de visión. Condiciones de luz ambiente: https://youtu.be/rA2uLYET5ck Continúan apareciendo los problemas sin podernos acercar al modelo ni dar la vuelta correctamente. Además aparece un nuevo problema donde la aplicación hace uso de muchos recursos generando un framerate23 muy bajo, por debajo de los 30 fotogramas por segundo. Mejora su capacidad de resistir movimientos bruscos. El resultado de la prueba de sacar el objeto fuera del campo de visión también es bueno, es capaz de mantener la referencia de la posición. Luz Ambiente Luz Mínimas Estabilidad del punto de anclaje 2 3 Estimación y calidad de iluminación 1 1 Resistencia a movimientos 9 10 Recuperación del ancla 10 10 Cuadro 4.8: Análisis EasyAR 4.8.3. Conclusiones Aunque la estabilidad del punto de anclaje no sea bueno, la librería instancia el objeto sin buscar un plano, de hecho no utiliza la cámara, únicamente hace uso del giroscopio y de la brújula digital. El uso que se le podría dar a esta librería es para una aplicación que esté pensada para usarse sin moverse del sitio, sin importar las condiciones de luz, la resistencia a los movimientos bruscos es muy buena, al igual que la reposición del objeto cuando se sale del campo de visión de la cámara y luego vuelve. 4.9. ARFoundation 4.9.1. Calidad de la documentación y primeros pasos Usar ARFoundation es muy cómodo, ya viene integrado en Unity, simplemente hay que añadirlo desde el Package Manager. La documentación es buena y además hay varios tutoriales subidos por la comunidad, por lo que es fácil aprender a usar ARFoundation. Unity proporciona una serie de escenas de ejemplo que son muy útiles a la hora de entender el funcionamiento de la API y para realizar pruebas de concepto rápidamente [52]. 23Frecuencia a la cual un dispositivo muestra los fotogramas 66 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. 4.9.2. Evaluación de las capacidades de la librería Condiciones de luz mínimas: https://youtu.be/MrYmYtdJKrY El nivel de luz de la sala no supone ningún problema para posicionar el modelo y reconocer el plano. La calidad de las texturas del objeto son notables, además existe estimación de iluminación sobre el modelo pero no es del todo correcta. El anclaje alrededor del objeto con movimientos suaves es buena nos podemos acercar y alejar manteniendo el nivel de detalle. No conseguimos perderlo con la distancia. La capacidad de soportar movimientos bruscos es casi perfecta ya que no desaparece el modelo, pero a veces se mueve un poco recolocándose en un breve período de tiempo. Al sacarlo del campo de visión lo mantiene en su posición. Condiciones de luz ambiente: https://youtu.be/y3jS70BuPck La calidad de la iluminación y de la textura es bastante buena, por lo que da una impresión de realismo. La estabilidad del punto de anclaje es perfecta, podemos dar la vuelta completamente, acercarnos para ver el más mínimo detalle sin que el modelo se desplace ni se deje de ver. La resistencia a los movimientos bruscos es perfecta, no desaparece nunca el modelo ni se mueve de su posición inicial, ocurre igual con la prueba de sacarlo del campo de visión, el modelo permanece en su posición y permite una transición limpia y natural cuando se vuelve a enfocar a su punto de anclaje. Luz Ambiente Luz Mínimas Estabilidad del punto de anclaje 10 10 Estimación y calidad de iluminación 8 9 Resistencia a movimientos 9 10 Recuperación del ancla 10 10 Cuadro 4.9: Análisis ARFoundation 4.9.3. Conclusiones Sin duda es una de las opciones más razonables para desarrollar una aplicación de realidad aumentada de calidad. ARFoundation engloba ARCore y ARKit en una misma API, lo que permite tener una aplicación en ambas plataformas usando el mismo código. El único punto flojo es el rango de dispositivos que soportan la tecnología, que son prácticamente los mismos que ARCore [32]. Quizás hoy en día el público al que puede llegar la aplicación es demasiado reducido, pero con el paso del tiempo ira creciendo drásticamente, gracias a la mejora del hardware de los dispositivos. 4.10. Conclusiones pruebas de librerías A continuación, en la figura 4.10, se encuentra un resumen con la evaluación de las funcionalidades de cada librería y la nota resultante. Se recuerda que cada prueba se ha sometido en las mismas condiciones de entorno y con los mismos dispositivos. UCM 67 Grado en Desarrollo de Videojuegos Facultad de Informática Wikitude ARKit ARcore Vuforia Kudan MaxST 8th Wall XR EasyAR ARFoundation Calidad de la documentación 10 9 9 8 2 9 9 7 8 Estabilidad del punto de ancla 610 10 7 7 6 10 310 Comportamiento con luz ambiente 610 10 7 6 7 10 510 Comportamiento con luz mínima 3 9 10 6 3 3 10 5 9 Estimación de luces y calidad de imagen 610 9 2 0 2 8 1 9 Total (puntuación) 6,2 9,6 9,6 6,6 3,6 5,4 9,4 3,5 9,2 Cuadro 4.10: Análisis de las características de las librerías de RA sin marcadores Figura 4.1: Puntuación de las librerías Como se puede observar en la tabla 4.1, una vez probadas y comparadas todas las aplicaciones de carácter básico de las librerías, es evidente que ARKit y ARCore son claros ganadores a nivel general, pero entraremos en detalle para ver las funcionalidades y limitaciones de cada una, por lo que vamos a definir nuestra opinión sobre su uso Lo primero que podemos observar es que las librerías que usan detección de planos tienen una precisión y estabilidad increíble, permitiendo un paseo libre por el entorno sin que el ancla presente ningún desplazamiento o cambio de escala. Por el otro lado, tenemos las librerías que utilizan instant tracking, aunque su resistencia a movimientos bruscos y a giros sea muy buena en algunos casos, la estabilidad del punto de anclaje cuando nos 68 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. movemos es bastante pobre. Si queremos realizar una aplicación donde la estabilidad y precisión del ancla sea estricta, lo más seguro es optar por usar la tecnología de detección de planos. Además de la precisión que proporcionan estas librerías, también implementan la estimación de luz, la cual aporta una pincelada de realismo muy importante para la experiencia inmersiva. Las limitaciones de esta tecnología vienen dadas por el entorno, ya sea por el espacio libre que haya para reconocer un plano, por el nivel de luz o por el tipo de superficie. Si la superficie es de color liso, seguramente haya dificultades para reconocer el plano, y finalmente debido al alto coste computacional, la cantidad de dispositivos soportados. Los puntos fuertes de las librerías que utilizan instant tracking suplen las limitaciones vistas anteriormente. Su uso es recomendado en aplicaciones pensadas para ser usadas en cualquier entorno, sin depender ni del nivel de luz ni de la superficie que nos rodea, y para cuando no sea necesario moverse en el entorno. Además, cubre un rango muy amplio de dispositivos [55], por lo que se puede llegar a un público mayor. Si miramos la calidad de la experiencia, está claro que usando la detección de planos, como puede ser ARKit y ARCore, obtenemos mejores resultados frente al instant tracking, pero no es suficiente para posicionarse como la principal solución para todas las ideas del mercado. Aunque los resultados obtenidos por el instant tracking sean peores, sus posibilidades de funcionar en casi cualquier dispositivo, momento y entorno hace que sea una opción a tener en cuenta para muchas aplicaciones. UCM 69 Capítulo 5 Pruebas de concepto 5.1. Primeros prototipos Antes de analizar las capacidades de las librerías sin marcadores se realizaron algunos prototipos en los que se ponía a prueba las funcionalidades con marcadores. De esta manera nos permitió conocer las diferencias entre ambos tipos de aplicaciones. Una vez conocidas estas diferencias se desarrollaron prototipos en los que se pone a prueba las funcionalidades de la realidad aumentada sin marcadores. Seguimos este orden de desarrollo para ir avanzando por las diferentes etapas por las que ha pasado este campo en todo su proceso evolutivo. Estos prototipos se describirán a lo largo de las siguientes secciones. 5.1.1. Pruebas con ARToolKit En nuestros primeros pasos en el mundo de la realidad aumentada exploramos algunas librerías como ARToolKit, con el fin de familiarizarnos con el desarrollo de este tipo de aplicaciones. ARToolKit es una de las librerías de desarrollo pioneras en el ámbito que investigamos, disponible desde el año 2004 para descargar de manera gratuita y que cuenta con más de 160.000 descargas desde entonces. Se distribuyó para diversas plataformas como SGI IRIX (que dejó de utilizarse en 2006), Linux, MacOS y Windows y fue desarrollada originalmente por el Dr. Hirokazu Kato para posteriormente pasar a manos del Human Interface Technology Laboratory en la Universidad de Washington y ARToolworks.Inc en Seattle. Muchas librerías posteriores se han basado en el código de ésta para ampliar sus funcionalidades, dando lugar a algunas como ARTag (que promete mayor fiabilidad a la hora de procesar imágenes por su mejor manejo de la luz), FLARToolKit (consistente en un port en ActionScript 3), ARDesktop (que facilita la creación de interfaces) o Studierstube Tracker (que mejora sus características, pero deja de ser de código abierto). Además de todas las derivaciones de ARToolKit, también podemos encontrar software no orientado a programadores como ATOMIC Authoring Tool, que permitía a cualquier usuario el desarrollo de una aplicación de realidad aumentada de manera sencilla y con una interfaz intuitiva. Esta herramienta acabó cayendo en desuso a principios de la década de 2010 debido a que ya existían librerías mejores que ARToolKit y mejores 71 Grado en Desarrollo de Videojuegos Facultad de Informática alternativas en lo que a SDK se refiere. Al ser ARToolKit una de las primeras herramientas para el desarrollo de realidad aumentada, no contemplaba un uso de esta sin marcadores. Una de las mayores dificultades a las que se enfrentó fue el seguimiento del “ojo” del usuario, es decir, el foco de la cámara del dispositivo. Para saber desde qué perspectiva debía dibujar los elementos virtuales la aplicación necesitaba saber a dónde está mirando el usuario en el mundo real. La librería solventa este problema utilizando algoritmos de visión que calculan la localización y orientación de la cámara basándose en marcadores físicos en tiempo real. Los marcadores que es capaz de identificar consisten en la mayoría de los casos en un cuadrado negro bien contrastado con un fondo e interior blancos. Además, cada marcador, para diferenciarse del resto incluye pequeñas variaciones como otras figuras geométricas dentro del cuadrado. Para nuestros experimentos con ARToolKit, en lugar de utilizar la librería original, utilizamos una adaptación de la misma para ser utilizada en Unity3D, que puede encontrarse actualmente en https://github.com/artoolkit/arunity. Esta extensión nos permite el acceso a componentes como ARController yARMarker dentro del editor. Para el desarrollo de este “HolaMundo” con ARToolKit en Unity hemos seguido los siguientes pasos: creamos un GameObject24 que servirá como “raíz” de la escena y otro que actuará como gestor del sistema de realidad aumentada. Al gestor le incluimos el componente ARController, que está encargado de las opciones de vídeo y del seguimiento de los marcadores. Dentro de éste modificamos la capa a la que debe prestar atención. Por otra parte, el objeto raíz de la escena incluye la luz direccional y la cámara, y además le añadimos el script AROrigin, que permite situar espacialmente la escena. La cámara, además de su script de cámara por defecto, debe recibir el componente ARCamera para poder detectar los marcadores. Ahora hay que crear un objeto que llevará la información del marcador y le añadimos el componente ARMarker, que lleva la etiqueta del marcador que hace de identificador único. Este componente tiene dos tipos de patrones (figura 5.1) para identificar por defecto: hiro ykanji. En este caso utilizaremos el patrón hiro. 24Objeto de Unity3D 72 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. Figura 5.1: Tipos de patrón ARToolkit Añadimos a la raíz de la escena un objeto que será contenedor del objeto 3D que queremos que aparezca cuando enfocamos al marcador y que lleva el script ARTrackedObject y dentro del campo Marker Tag introducimos el identificador del marcador asociado al objeto. Conclusiones: Si bien esta librería fue útil en su día para sentar las bases del desarrollo de programas en realidad aumentada, hoy en día no se encuentra documentación actualizada y la página web que le daba soporte ha desaparecido [16]. Además, sus funcionalidades son muy limitadas y su rendimiento es muy inferior al que presentan otras alternativas más actuales como Vuforia, que permite también el uso de marcadores. 5.1.2. Harry Potter Se pueden ver los resultados en el vídeo https://vimeo.com/331236805. Después de descartar ARToolkit, nos decantamos por hacer las pruebas con Vuforia, que tiene soporte tanto para realidad aumentada con marcadores como sin ellos. Además, la documentación es reciente y ofrece una serie de posibilidades que nos interesaba aprovechar, como por ejemplo su integración con Unity3D. Para implementar los prototipos pensamos en aplicaciones que fueran rápidas de codificar, pero que pudieran aportar algo interesante a los ojos de los usuarios. Tras un tiempo de debate encontramos curiosa la idea de que “escaneando” con el móvil un cartel o las viñetas de un cómic se pudiese obtener información no presente a simple vista en el mundo real, aportándole una capa más de profundidad y dinamismo a la experiencia del observador. A continuación comentamos el proceso de desarrollo. Suscribiéndonos a la web de Vuforia se nos da la posibilidad de crear una base de datos con imágenes que nosotros mismos tomemos o escojamos para la aplicación. Este servicio de Vuforia ofrece un número limitado de bases de datos que podemos crear, pero es posible expandirlo y encontrar otras funcionalidades con los planes Basic o Pro. En UCM 73 Grado en Desarrollo de Videojuegos Facultad de Informática (sección 2.4.8). Ikea, por ejemplo, ha lanzado Ikea Place, una aplicación de realidad aumentada para dispositivos móviles que permite visualizar cualquier habitación de tu casa con muebles virtuales. De esta manera podemos decidir si encajan con nuestro salón y si las medidas son las adecuadas para después comprar el mueble en la tienda física. Sabemos que comprar sofás o estanterías por piezas es en ocasiones más barato y facilita enormemente el transporte, sin embargo la parte en la que muchos compradores experimentan problemas es a la hora de montarlos. Muchos son incapaces de ver en el plano de las instrucciones en qué lugar va cada tornillo o de qué forma se unen las patas. Por eso, la aplicación que nosotros hemos propuesto consiste en un pequeño manual de instrucciones en realidad aumentada sin marcadores. De esta manera se puede ver en todo momento el modelo 3D del mueble, rotarlo y además desplazarte alrededor de él para apreciar en detalle cada uno de los pasos en el proceso de montaje. El funcionamiento es muy sencillo: para empezar escaneamos el plano para que el programa cree una superficie donde colocar el mueble. A continuación tocamos la pantalla en el lugar en el que queremos colocarlo. Ahora podemos rotar el mueble hacia izquierda y derecha para dejarlo en una posición en la que nos resulte cómodo acercarnos y alejarnos mientras vemos los pasos de montaje. Finalmente, al pulsar el botón de aceptar entramos en la fase de construcción. En ella tenemos un botón a cada lado de la pantalla: el de la izquierda retrocede al paso anterior y el de la derecha avanza al paso siguiente. Mientras se suceden las animaciones que van explicando cómo armar progresivamente el mueble el usuario puede moverse libremente con su dispositivo para apreciar los detalles e incluso retroceder si no ha entendido bien el paso a seguir. Para el desarrollo hemos utilizado la librería ARCore en Unity, que permite el despliegue de realidad aumentada sin marcadores. Utilizando la tecnología que nos vienen dada por la librería buscamos una serie de puntos en el suelo que nos permitirán crear un plano virtual. Una vez generada esta superficie el plano se representa gráficamente en pantalla con la unión de los puntos. A continuación dividimos la aplicación en tres estados: despliegue, rotación y montaje. Empezamos en la fase de despliegue, en la que el programa está continuamente esperando la interacción del usuario. Cuando se toca la pantalla, se comprueba si ha habido colisión con el plano virtual, y de ser así se instancia el mueble en el lugar en el que hemos tocado. Si este proceso se ha llevado a cabo con éxito, pasamos a la fase de rotación. Aquí aparecen dos botones azules a los lados de la pantalla y uno verde en la parte inferior. Los botones laterales llevan una referencia al mueble para que al ser pulsados lo roten en una u otra dirección. El botón inferior por otra parte nos sirve para comunicarle a la aplicación que estamos conformes con la posición actual del objeto y que puede pasar a la siguiente fase. Finalmente nos encontramos con dos nuevos botones a los laterales, que como hemos explicado anteriormente se encargan de adelantar y retroceder los pasos de montaje. El sofá tiene un componente Animator Controller que lleva el árbol de estados. Este árbol consta de 10 estados fijos, en los que se queda el mueble una vez ha terminado su animación correspondiente y 18 estados móviles o animaciones, que se reproducen cuando se pulsan los botones de avanzar o retroceder. Para ello, existe una variable que 80 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. controla el avance y otra que hace lo propio con el retroceso, que se anulan una vez se entra en un estado estático y se activan al pulsar el botón que corresponde, pasando así a la animación del paso siguiente o anterior. Cabe destacar el proceso de creación del mueble en sí mismo, que en el caso del ejemplo se trata del sofá Kivik. Como no era posible encontrar un modelo dividido en piezas y fácilmente animable se realizó un modelo desde cero con la ayuda de la documentación que encontramos en la web de Ikea. El mueble consta de las siguientes piezas: el asiento del sofá, el respaldo del sofá, el asiento de la cheslong 28 y su respaldo, los dos brazos, dos escuadras, una pletina, ocho patas, dieciocho tornillos con sus correspondientes tuercas y arandelas, cinco cojines cuadrados y un cojín alargado para la cheslong. Excluyendo los tornillos, que los encontramos en una página de recursos gratuitos [19], todos los demás fueron creados por nosotros en Blender, herramienta de la que ya hemos hablado anteriormente. Una vez terminadas las piezas del sofá, las texturizamos con colores azules y aspecto de sofá, y por otro lado las piezas como los tornillos o las escuadras una textura metálica. Pensamos que podríamos empezar a animar cada parte por separado dentro de un objeto conjunto del que fueran hijas todas las piezas, pero para que Unity pueda interpretar cada acción como propia de un objeto mayor a las partes es necesario hacer un rigging que abarque todas piezas del sofá. Una vez construido el esqueleto se le asigna a cada hueso el objeto que se va a encargar de mover. Este proceso ocasionó algunos problemas, al tratarse de un objeto compuesto ciertos huesos acababan emparentándose automáticamente con partes del sofá que nos les correspondían. La única solución fue establecer manualmente los pesos (es decir, la influencia que tiene cada hueso sobre una parte concreta) sobre los diferentes conjuntos de vértices hasta que conseguimos el resultado que esperábamos. En lo referente a las animaciones nos fue muy útil el vídeo que tiene publicado la cuenta de Ikea España en la plataforma Youtube [36] en el que se explica el procedimiento que se sigue para construir el sofá. Habiéndolo analizado dividimos el montaje en 9 pasos diferenciados y los animamos también en Blender, haciendo desaparecer las partes que no se están utilizando en ese momento para que sea más claro y fácil verlo. Al contrario que en los ejemplos con marcadores en los que pudimos exportar directamente el archivo de Blender para su uso en Unity, aquí nos dio problemas ya que el editor dejó de reconocer los clips de vídeo de algunas animaciones. Solventamos este problema exportando el objeto desde el programa de modelado en formato “fbx”, pero nos surgió otro nuevo inconveniente, todas las partes del sofá habían perdido sus texturas. Ya desde Unity creamos los materiales por separado y se los asignamos a cada pieza. Fue un proceso bastante agotador, pero consideramos que el resultado es satisfactorio y útil, además ofrece nuevas posibilidades en un campo que no deja de crecer. 28 Tipo de sofá que posee una prolongación lo suficientemente larga en forma de L como para soportar las piernas humanas. UCM 81 Grado en Desarrollo de Videojuegos Facultad de Informática Figura 5.7: Capturas de la aplicación AmueblAR 5.2.2. Visualizador de objetos en AR con gafas Aryzon - Visualizer 3D En la fase de investigación, pensamos que una de las limitaciones de la realidad aumentada en dispositivos móviles es el hecho de tener que sujetar el móvil con las manos, por lo que el control y la experiencia de usuario se ve condicionada negativamente. Una vez identificamos este problema decidimos buscar un headset low cost de realidad aumentada, encontrando las gafas de Aryzon [17]. Se trataba del producto perfecto para iniciarnos en el desarrollo de RA con headset. Decidimos desarrollar una aplicación en la que se pudiera ver objetos y/o modelos 3D y poder caminar alrededor de ellos. Para añadirle más funcionalidad, usamos un mando de Xbox One que nos permitirá mover, rotar y escalar el modelo a nuestro gusto, con el objetivo de poder manipular la aplicación sin necesidad de tocar el móvil, ya que éste estará colocado en las gafas. Para el desarrollo de la aplicación usamos el SDK de Aryzon, ya que nos facilita la vista estereoscópica para simular los ojos y ARCore para la tecnología de realidad aumentada. Se decidió usar la detección de planos de ARCore, ya que queríamos usar la realidad aumentada sin marcadores y movernos alrededor del modelo, y como hemos visto en las pruebas, la estabilidad de los puntos de anclaje de ARCore es muy buena. Para el desarrollo de esta prueba de concepto, necesitamos el SDK de Aryzon y el SDK de ARCore, y los modelos sacados del Asset Store de Unity [37]. Se desarrolló un script para manipular con el mando de Xbox One los objetos que instanciamos. Los controles son: 82 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. El joystick izquierdo sirve para mover el objeto en los ejes X y Z La cruceta (D-PAD) vertical para mover el objeto en el eje Y El joystick derecho para rotar el objeto La cruceta (D-PAD) horizontal para escalar el objeto. Botón [A] permite instanciar el objeto en el lugar en el que estemos mirando Botón [X] cambia el objeto que se va a instanciar Botón [B] permite activar y desactivar el render de los planos que ha encontrado la aplicación, para tener una visión más limpia. El mayor problema que nos encontramos al desarrollar la aplicación fue la documentación respecto al mapeo del mando, ya que cambia según la plataforma en la que se utiliza. La de Android no estaba actualizada y no coincidían los botones y los ejes que nos proporcionaba la documentación. El resultado final es bueno, ya que tener el teléfono fijo en nuestros ojos gracias a las gafas, hace que podamos tener las manos libres para poder controlar y manipular lo que queramos ver. El precio de las gafas es un precio asequible para el público, y en nuestro caso hemos utilizado un mando de Xbox One oficial, pero existen mandos bluetooth para los smartphones que también se pueden conseguir muy baratos. Usando la realidad aumentada de esta manera abre las posibilidades a nuevas mecánicas de juego y seguramente suponga una revolución en la realidad aumentada de “bolsillo”. Lo que se ve en la figura 5.8 es la aplicación usando ARCore y el SDK de Aryzon, el modelo que vemos en la imagen, se proyecta a través del sistema de cristales explicado anteriormente, permitiendo una visión del mundo real y el modelo 3D superpuesto en el plano encontrado. Figura 5.8: Proyección estereoscópica del móvil UCM 83 Grado en Desarrollo de Videojuegos Facultad de Informática 5.2.3. Juego multijugador con cloud anchor - BombARdero+ Se pueden ver los resultados en el vídeo https://youtu.be/MX5_5ui2WUw. Muchos usuarios han tenido contacto alguna vez con la realidad aumentada, sin embargo, existe una tecnología que muy pocos han probado, la realidad aumentada multidispositivo. Esta permite ver en tiempo real los objetos virtuales en el mismo punto del mundo físico a través de distintos dispositivos, gracias a los cloud anchors explicados anteriormente en la sección 3.1.3. El objetivo principal del videojuego es destruir el mayor número de edificios posible. Para ello, cada jugador controla su propio avión (figura 5.9), éste consta de una velocidad constante hacia delante, y para controlar su trayectoria existe en la parte inferior izquierda de la pantalla un joystick que permite mover el avión hacia arriba, abajo, derecha e izquierda. En la esquina inferior derecha se encuentra un botón que al pulsarlo, se lanza una bomba en la posición del avión, dicha bomba sirve para destruir los edificios que se encuentran en la ciudad. Figura 5.9: Visualización del BombARdero+ Los Cloud Anchors suben la información del punto de anclaje a la nube, permitiendo compartir esa información con otro dispositivo. Para usarlos, hace falta conseguir una clave de licencia de ARCore Cloud Anchor API en Google Cloud Platform [33]. Una vez conseguida la credencial, hay que introducirla en Unity3D, “Edit ->Project Settings ->Google ARCore ->Cloud Anchor API Keys”. En los ejemplos que ofrece Google, la implementación de los Cloud Anchor utiliza la Multiplayer High Level API(Multiplayer HLAPI) de Unity, por lo que también hay que activar el servicio de multijugador en nuestro proyecto desde el dashboard de Unity [51]. Una vez realizado estos dos pasos, al compilar la escena de ejemplo, debería funcionar. En esa escena, un usuario tiene que 84 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. crear una sala e instanciar un objeto, el punto de anclaje principal, que se convertirá en las coordenadas (0,0,0) del entorno. Este punto de anclaje tarda unos diez segundos en subirse a la nube y estar disponible para más usuarios, que al entrar a la aplicación le aparece un listado con las salas disponibles. Primero tuvimos que mirar como funciona la implementación de Google de los cloud anchors, para entender el proceso de cómo se subía el punto de anclaje a la nube y la cantidad de información de control que teníamos. Este proceso fue bastante sencillo, ya que el código de ejemplo es muy entendible e intuitivo. Una vez conseguido implementar con los cloud anchors el BombARdero (que habíamos programado anteriormente en monojugador), hubo que hacer retoques a los scripts y añadir componentes de la multiplayer HLAPI a los objetos, para implementar la parte multijugador. En el Cloud Anchor Network Manager hay que registrar el objeto que se va a instanciar cada vez que entra un jugador a la partida, en nuestro caso es un avión. El avión en un principio está desactivado y se activa en el momento en el que se almacena o resuelve el ancla principal. UCM 85 Grado en Desarrollo de Videojuegos Facultad de Informática 86 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Capítulo 6 Conclusiones y trabajo futuro Gracias a este estudio podemos hacer una estimación bastante certera de cuál es el estado, las capacidades y las limitaciones de las librerías y la tecnología de realidad aumentada en la actualidad cumpliendo de esta manera nuestro objetivo principal con creces. La realidad aumentada sin marcadores es una tecnología muy nueva, además es accesible a un gran número de usuario gracias a los smartphones. En los últimos años se han desarrollado diferentes librerías que facilitan el desarrollo de las aplicaciones con RA sin marcadores. Dichas librerías se actualizan frecuentemente introduciendo nuevas características y mejorando las existentes con el fin de enriquecer la experiencia. Tras la finalización del proyecto, podemos extraer varias conclusiones sobre las diferentes librerías expuestas en este trabajo, proporcionadas tanto por los resultados obtenidos como por la investigación llevada a cabo durante estos meses. Gracias a las pruebas desarrolladas con las principales librerías del mercado podemos establecer que Google y Apple lideran en calidad, por lo que ARCore y ARKit, son una de las opciones más viables para una aplicación que exige estabilidad y precisión. También cabe destacar el esfuerzo por parte del equipo de desarrollo de Unity3D para implementar la API de ARFoundation, que nos permite desarrollar aplicaciones de realidad aumentada para Android e iOS con el mismo código. Por otra parte, tenemos librerías que son más inestables, pero son capaces de funcionar en casi todos los dispositivos [55] y en un gran porcentaje de entornos y condiciones. Esto hace que el uso de estas librerías, como pueden ser Vuforia, EasyAR, o Maxst, sean una opción a elegir para aplicaciones que no requieran una estabilidad tan minuciosa. Después de haber probado todas las librerías vistas anteriormente, queda de manifiesto que se ha conseguido que la estabilidad sea prácticamente perfecta en la mayoría de los casos. También observamos un gran avance en la estimación de luces, muy lograda en casos como ARCore y ARkit, aportando mayor realismo a la experiencia inmersiva. Concluimos que los desarrolladores de ambas empresas líderes (Apple y Google) están optando por revolucionar el mercado con tecnologías como la oclusión y los cloud anchors. La realidad aumentada es una tecnología muy novedosa, por lo que avanza muy rápidamente, aproximadamente cada mes y medio ARCore recibe una nueva actualización. De hecho, durante el desarrollo de este trabajo, las librerías sufrieron 87 Grado en Desarrollo de Videojuegos Facultad de Informática actualizaciones importantes con la inclusión de nuevas características. Gracias a la extensa documentación existente y a los tutoriales creados por la comunidad, el aprendizaje del desarrollo de aplicaciones con realidad aumentada sin marcadores resulta cómodo y accesible para el desarrollador. Esta accesibilidad nos ha permitido el desarrollo de tres aplicaciones destinadas a tres sectores diferentes y nos ha resuelto problemas y dudas que han surgido durante el desarrollo de las mismas. 6.1. Futuros pasos Como futuros pasos se puede extender el análisis a las funcionalidades de las smartglasses de realidad aumentada. Estos dispositivos dominan actualmente el mercado y es interesante someterlos a las mismas pruebas y sacar las posibilidades y limitaciones de cada uno. Por otro lado, todas las pruebas que hemos realizado nosotros han sido en interiores, por lo que se deberían de realizar pruebas en un espacio abierto en el exterior y comprobar el comportamiento. Además es importante analizar la experiencia de usuario en la realidad aumentada. Es unos de los problemas que hemos identificado, ya que la mayoría de los usuarios que prueban por primera vez una aplicación de realidad aumentada suelen estar desorientados impidiéndoles disfrutar de la experiencia. Para complementar nuestro trabajo, es interesante hacer un estudio sobre otras funcionalidades que soportan algunas librerías, como el reconocimiento facial, la oclusión, los cloud anchors. Con este tipo de investigación se podría ampliar nuestro trabajo integrando más funcionalidades en el documento de evaluación de las librerías de realidad aumentada. 88 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Capítulo 6 Conclusions and future work Thanks to this study we are able to define an accurate evaluation of the state, capabilities and limitations of augmented reality libraries and technology, achieving our main goal. Markerless augmented reality is a new technology and it is accesible to a great number of people thanks to smartphones. In the last years, augmented reality libraries have been developed that ease the AR application development, these libraries are being updated introducing new features that improve the experiencie. After the fulfillment of the project, we can establish several conclusions about the different libraries mentioned in this paper, based on the research carried out during these months and the results obtained with the tests. Thanks to the developed tests, we can establish that Google and Apple lead in terms of quality. ARCore and ARKit are one of the most viable options for an application that demands stability and precision. It is also noteworthy that Unity3D development team is making a great effort to implement the ARFoundation API, which allows us to develop augmented reality applications for Android and iOS with the same source code. On the other hand, we have low cost libraries that are more unstable, but are capable of working on almost all devices[55] and in a large percentage of environments and conditions. This makes the use of libraries, such as Vuforia, EasyAR, or Maxst, an option to use for applications that do not require such demanding stability. After testing all the libraries seen above, it is clear that the stability is practically perfect in most cases. We also see a great advance in the estimation of lights, remarkable in cases such as ARCore and ARKit, providing greater realism to the immersive experience. We can conclude that the developers of both leading companies (Apple and Google) are disrupting the market with technologies such as occlusion and cloud anchors. Augmented reality is a very new technology, so it evolves very quickly, approximately every month and a half ARCore receives a new update; without going any further while we were doing this work, we have been able to observe many important changes in the library. Thanks to an extensive documentation and tutorials created by the community, learning to develop markerless AR applications is accessible to the developer. This accessibility has allowed us to develop three applications for three different sectors and it has solved some problems and doubts that came up during their development. 89 Índice de figuras 2.1. Cartel publicitario de la máquina Sensorama . . . . . . . . . . . . . . . . 21 2.2. Ivan Sutherland “Espada de Damocles” 1968. . . . . . . . . . . . . . . . 22 2.3. ARQuake ................................... 23 2.4. WikitudeApp2008.............................. 23 2.5. Ejemplo del videojuego ARhrrrr! . . . . . . . . . . . . . . . . . . . . . . 24 2.6. Prototipo original de Google Glass . . . . . . . . . . . . . . . . . . . . . 25 2.7. Actuales Google Glass Enterprise 2 . . . . . . . . . . . . . . . . . . . . . 26 2.8. Dispositivos Hololens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.9. MagicLeap .................................. 28 2.10.GafasAryzon................................. 28 2.11. Uso de realidad aumentada en una intervención quirúrgica . . . . . . . . 30 2.12. Juego educativo Elements 4D . . . . . . . . . . . . . . . . . . . . . . . . 30 2.13. Exhibición de Adrien M y Claire B Mirages and Miracles ......... 31 2.14. Ejemplos de uso en la Fabricación . . . . . . . . . . . . . . . . . . . . . . 32 2.15. Burger King campaña publicitaria . . . . . . . . . . . . . . . . . . . . . . 33 2.16. Aplicación para el parque Legoland . . . . . . . . . . . . . . . . . . . . . 34 2.17. Traductor de Google en RA . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.18. Captura del juego Pokémon Go . . . . . . . . . . . . . . . . . . . . . . . 35 2.19. IKEA Place AR probador virtual . . . . . . . . . . . . . . . . . . . . . . 36 2.20. Imagen representativa de YouCam Makeup . . . . . . . . . . . . . . . . . 36 3.1. Detecciónderostros ............................. 44 4.1. Puntuación de las librerías . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.1. Tipos de patrón ARToolkit . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.2. Estimación de Vuforia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.3. Aplicación del periódico de Harry Potter . . . . . . . . . . . . . . . . . . 74 5.4. Página del cómic con RA . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.5. Visualización del juego de cartas . . . . . . . . . . . . . . . . . . . . . . 78 5.6. Visualización del JengAR . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.7. Capturas de la aplicación AmueblAR . . . . . . . . . . . . . . . . . . . . 82 5.8. Proyección estereoscópica del móvil . . . . . . . . . . . . . . . . . . . . . 83 5.9. Visualización del BombARdero+ . . . . . . . . . . . . . . . . . . . . . . 84 97 Índice de cuadros 3.1. Licencias8thWall .............................. 51 3.2. Comparación de funcionalidades . . . . . . . . . . . . . . . . . . . . . . . 53 3.3. Comparación de plataformas y lenguajes soportados . . . . . . . . . . . . 54 4.1. AnálisisWikitude............................... 57 4.2. AnálisisARKit ................................ 58 4.3. AnálisisARCore ............................... 60 4.4. AnálisisVuforia................................ 61 4.5. AnálisisKudan ................................ 62 4.6. AnálisisMaxst ................................ 64 4.7. Análisis8thWall............................... 65 4.8. AnálisisEasyAR ............................... 66 4.9. Análisis ARFoundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.10. Análisis de las características de las librerías de RA sin marcadores . . . 68 99 Bibliografía [1] Julie Carmigniani y Borko Furht. “Augmented Reality: An Overview”. En: 3.aed. Vol. 4. 5. Handbook of Augmented Reality. Nueva York: Springer, jul. de 1993. Cap. 1, págs. 03-46. [2] Wayne Piekarski y Bruce Thomas. ARQuake: The Outdoor Augmented Reality Gaming System. 1.aed. Bubok Publishing S.L, 2002. [3] D. Marimon. “Advances in Top-Down and Bottom-Up Approaches to Video-Based Camera Tracking”. Tesis doct. France: École Polytechnique Fédérale de Lausanne., jul. de 2007. [4] Guan Tao y Wang Cheng Wang Tian Yuan. “Real-Time Occlusion Handling in Augmented Reality Based on an Object Tracking Approach.” En: MDPI 10.10 (jul. de 2010). [5] J.A Albusac Jiménez y J.J Castro Sánchez C. González Morcillo. Realidad Aumentada. Un enfoque práctico con ARToolkit y Blender. 1.aed. Bubok Publishing S.L, 2012. [6] Shoaib Ehsan y Adrian F. Clark Erkan Bostanci Nadia Kanwal Nadia. “User Tracking Methods for Augmented Reality”. En: International Journal of Computer Theory and Engineering 5 (2013), pág. 98. [7] BBC Earth Lab. How Does Facial Recognition Work? | Brit Lab. 2015. url: https: //www.youtube.com/watch?v=1aHub80AHFk (visitado 02-09-2019). [8] DEV. Libro Blanco del Desarrollo español de videojuegos 2018. 1.aed. 2018. [9] Maxst. SLAM, Core technology of AR, What is it? 2018. url: https://medium. com / maxst / slam - core - technology - of - ar - what - is - it - e6c9ae4839b4 (visitado 02-09-2019). [10] 8thWall. 8thWall developer documentation. 2019. url: https://www.8thwall.com/ index.html (visitado 01-09-2019). [11] 8thWall. 8thWall Jini Web Demo. 2019. url: 8th.io/jini (visitado 08-09-2019). [12] 8thWall. 8thWall XR Remote. 2019. url: https://play.google.com/store/apps/ details?id=com.the8thwall.XRRemote&gl=ES (visitado 08-09-2019). [13] La Vanguardia Álex Barredo. Probamos las Magic Leap, las gafas de realidad aumentada que van a cambiarlo todo. 2019. url: https://www.lavanguardia.com/ tecnologia/20190217/46505226926/magic-leap-analisis.html (visitado 07-07-2019). [14] Glass Almanac. The History of Google Glass. 2019. url: http://glassalmanac.com/ history-google-glass (visitado 18-09-2019). [15] Apple. Apple Developer Documentation. 2019. url: https://developer.apple.com/ augmented-reality/arkit/ (visitado 01-09-2019). 101 Grado en Desarrollo de Videojuegos Facultad de Informática [16] ARToolKit. ARToolKit Webpage. 2019. url: artoolkit.org (visitado 09-09-2019). [17] Aryzon. Aryzon official Website. 2019. url: https://www.aryzon.com (visitado 09-09-2019). [18] Realidad en Aumento. 7 aplicaciones de realidad aumentada que están revolucionando la medicina. 2019. url: https://realidadenaumento.es/realidadaumentada-en-la-medicina/ (visitado 19-09-2019). [19] Cbspicer. Modelo 3D de tornillos. 2019. url: https://www.turbosquid.com/3dmodels/free-bolt-assembly-nut-3d-model/317816 (visitado 09-09-2019). [20] Designboom. Burger King encourages users to ’burn’ rival ads in augmented reality campaign. 2019. url: https://www.designboom.com/technology/burger-kingburn-that-ad-free-whopper-virtual-reality-03-21-2019/ (visitado 19-09-2019). [21] EasyAR. EasyAR. 2019. url: https://www.easyar.com/view/sdk.html (visitado 01-09-2019). [22] Elemmental. ‘Mirages & miracles’: entre lo real y lo imaginario. 2019. url: https: //elemmental.com/2019/02/15/mirages-miracles-entre-lo-real-y-lo-imaginario/ (visitado 19-09-2019). [23] Kinepolis España. Cine 4DX. 2019. url: https://kinepolis.es/movie-formats/4dx (visitado 19-09-2019). [24] E. Games. Getting started with Unreal Engine 4 and Arkit. 2019. url: https:// www.unrealengine.com/en-US/blog/getting-started-with-ue4-and-arkit (visitado 01-09-2019). [25] Damián García. Google hace oficiales a las Glass Enterprise Edition 2. 2019. url: https://andro4all.com/2019/05/google-glass-enterprise-edition-2-lanzamientoprecios (visitado 18-09-2019). [26] V. Geroimenko. Augmented reality games II, The gamification of education, medicine and art. 1.aed. Springer, 2019. [27] Wikitude GmbH. Wikitude Documentation. 2019. url: https://www.wikitude. com/download/ (visitado 01-09-2019). [28] Wikitude GmbH. Wikitude Unity Documentation. 2019. url: https : / / www . wikitude.com/external/doc/documentation/latest/unity/gettingstartedunity. html#getting-started (visitado 08-09-2019). [29] Sergio C. González. Pokémon GO ha facturado hasta abril de 2019 un 33 por ciento más que en 2018. 2019. url: https://as.com/meristation/2019/05/07/noticias/ 1557204572_736806.html (visitado 19-09-2019). [30] Google. ARCore developer documentation. 2019. url: https://developers.google. com/ar/ (visitado 01-09-2019). [31] Google. ARCore Fundamental Concepts. 2019. url: https://developers.google. com/ar/discover/concepts (visitado 02-09-2019). [32] Google. ARCore supported devices. 2019. url: https://developers.google.com/ar/ discover/supported-devices (visitado 08-09-2019). [33] Google. Google Cloud Platform. 2019. url: https://console.cloud.google.com/ home/dashboard (visitado 09-09-2019). 102 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez Realidad aumentada sin marcadores: posibilidades, librerías y prueba de concepto. [34] Google. Google’s Github. 2019. url: https://github.com/google-ar/arcore-unitysdk/releases (visitado 08-09-2019). [35] Jachim van Huut. The Augmented Reality Wayfinding app we made as a concept for Legoland Denmark. 2019. url: https://twitter.com/jachim_van_huut/status/ 1100348709991313408 (visitado 19-09-2019). [36] Ikea. Instrucciones de montaje del sofá KIVIK - IKEA. 2019. url: https://www. youtube.com/watch?v=F_2Mh3aa0Zs (visitado 09-09-2019). [37] Protofactor Inc. HEROIC FANTASY CREATURES FULL PACK Volume 1. 2019. url: https://assetstore.unity.com/packages/3d/characters/creatures/heroicfantasy-creatures-full-pack-volume-1-5730 (visitado 13-09-2019). [38] Kudan. Kudan License Keys. 2019. url: https://www.xlsoft.com/doc/kudan/ development-license-keys/ (visitado 08-09-2019). [39] Kudan. Kudan official webpage. 2019. url: https://www.kudan.io/ (visitado 08-09-2019). [40] Macrumors. iOS 13 Code Suggests Apple Testing AR Headset. 2019. url: https: //www.macrumors.com/2019/09/02/appleglassesstarboardgartaios13/ (visitado 20-09-2019). [41] Maxst. Maxst developer documentation. 2019. url: https://developer.maxst.com/ (visitado 01-09-2019). [42] Microsoft. HoloLens 2 AR Headset: On Stage Live Demonstration. 2019. url: https: //youtu.be/uIHPPtPBgHk?t=377 (visitado 20-09-2019). [43] Neosentec. 5 Beneficios de la realidad aumentada en turismo. 2019. url: https: //www.neosentec.com/5beneficiosdelarealidadaumentadaenturismo/ (visitado 09-09-2019). [44] Neosentec. Realidad Aumentada en la Industria 4.0. 2019. url: https://www. neosentec.com/realidad-aumentada-en-la-industria-4-0/ (visitado 09-09-2019). [45] Neosentec. Realidad Aumentada en Publicidad y Marketing. 2019. url: https:// www.neosentec.com/realidad-aumentada-en-la-publicidad/ (visitado 09-09-2019). [46] PhotonEngine. Photon Unity3D Networking Framework. 2019. url: https://www. photonengine.com/pun (visitado 15-09-2019). [47] Caracol Radio. Realidad Aumentada, el futuro de los gamers y no tan gamers. 2019. url: https://caracol.com.co/radio/2019/03/28/tecnologia/1553785800_494234. html (visitado 19-09-2019). [48] Placenote SDK. Using Placenote for industrial collaboration. 2019. url: https: //www.youtube.com/watch?v=TO6s0ePf41c (visitado 09-09-2019). [49] Statista. Topic: Augmented Reality (AR). 2019. url: https://www.statista.com/ topics/3286/augmented-reality-ar/ (visitado 07-08-2019). [50] Unity. About AR Foundation. 2019. url: https://docs.unity3d.com/Packages/ [email protected]/manual/index.html (visitado 01-09-2019). [51] Unity. Unity Dashboard Services. 2019. url: https://developer.cloud.unity3d.com/ projects/ (visitado 09-09-2019). UCM 103 Grado en Desarrollo de Videojuegos Facultad de Informática [52] Unity. Unity’s Github. 2019. url: https : / / github . com / Unity - Technologies / arfoundation-samples (visitado 09-09-2019). [53] Vuforia. Vuforia developer documentation. 2019. url: https://developer.vuforia. com/pricing (visitado 01-09-2019). [54] Vuforia. Vuforia Fusion Supported Devices. 2019. url: https://library.vuforia.com/ articles/Solution/vuforia-fusion-supported-devices.html (visitado 09-09-2019). [55] Wikitude. Instant Tracking: Augmented Reality Uses Cases And How-to. 2019. url: https://www.wikitude.com/blog-instant-tracking-augmented-reality-uses-casesand-how-to/ (visitado 15-09-2019). [56] Xataka. 11 apps para sacar partido partido a la realidad aumentada en tu móvil. 2019. url: https://www.xataka.com/moviles/11-apps-para-sacar-partido-partidoa-realidad-aumentada-tu-movil (visitado 19-09-2019). [57] Xataka. Facebook se alía con Ray-Ban para desarrollar sus gafas de realidad aumentada. 2019. url: https://www.xataka.com/realidad-virtual-aumentada/ facebook-se-alia-ray-ban-para-desarrollar-sus-gafas-realidad-aumentada-llegarian2023-como-sustituto-al-movil-cnbc (visitado 20-09-2019). [58] Xlsoft. Kudan developer documentation. 2019. url: https://www.xlsoft.com/en/ products/kudan/price.html (visitado 01-09-2019). [59] Lior Wolf Yaniv Taigman Ming Yang y Marc’Aurelio Ranzato. Creating a Multiuser AR Experience. 2019. url: https://developer.apple.com/documentation/arkit/ creating_a_multiuser_ar_experience?language=objc (visitado 02-09-2019). [60] Marc’Aurelio Ranzato Yaniv Taigman Ming Yang y Lior Wolf. DeepFace: Closing the Gap to Human-Level Performance in Face Verification. 2019. url: https : // research.fb. com/publications/deepfaceclosingthe - gap - tohumanlevelperformance-in-face-verification/ (visitado 02-09-2019). 104 Colin Ulrich Cop, Patricia Cabrero Villar, David González Jiménez