Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Realidad aumentada en Android: reconocimiento de imágenes y geolocalización usando Google Maps

Realidad aumentada en Android: reconocimiento de imágenes y geolocalización usando Google Maps

Presentación utilizada para el evento Google DevFest Sur el 25/10/2013. En la charla revisamos el estado del arte en cuanto a bibliotecas de realidad aumentada para Android. Vimos cómo funcionan de manera general y estudiamos un ejemplo práctico de reconocimiento de imágenes y geolocalización con la biblioteca Wikitude.

Nacho Álvarez

October 31, 2013
Tweet

More Decks by Nacho Álvarez

Other Decks in Technology

Transcript

  1. . . . . . . . . . .

    . . . Realidad aumentada en Android Reconocimiento de imágenes y geolocalización usando Google Maps Nacho Álvarez  @neonigmacdb  [email protected] 31 de octubre de 2013 Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 1 / 28
  2. . . . . . . Índice . . .

    1 Acerca de mí . . . 2 ¿Realidad aumentada? . . . 3 Aplicaciones . . . 4 RA en Android . . . 5 Mi elección . . . 6 Demo . . . 7 Material Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 2 / 28
  3. . . . . . . Acerca de mí .

    . Who? ▶ Trayectoria profesional: soporte UCO, desarrollador Web, desarrollador / integrador distribuciones GNU/Linux. ▶ Actualmente: WUL4 Córdoba (mobile + backend developer) ▶ Involucrado en: Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 3 / 28
  4. . . . . . . ¿Realidad aumentada? . .

    Definición de realidad aumentada ▶ Superposición de información virtual sobre entornos reales a partir de una aplicación informática ▶ ¿Qué necesitamos? Una pantalla donde poder ver esta información añadida Un software que, controlando una cámara, un sensor o un GPS e interpretando los patrones o coordenadas del mundo real, nos generará esta información ▶ Multitud de aplicaciones Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 4 / 28
  5. . . . . . . Aplicaciones . . Aplicaciones

    de realidad aumentada Educación Marketing / Publicidad Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 5 / 28
  6. . . . . . . Aplicaciones . . Aplicaciones

    de realidad aumentada Eventos Videojuegos Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 6 / 28
  7. . . . . . . RA en Android .

    . ¿Qué opciones hay? Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 7 / 28
  8. . . . . . . RA en Android .

    . Demostración Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 8 / 28
  9. . . . . . . RA en Android OpenCV

    . . OpenCV for Android ▶ Biblioteca libre de visión artificial originalmente desarrollada por Intel ▶ En 2008, la empresa Willow Garage asume el soporte. En 2012, lo hace la empresa ItSeez. ▶ Disponible para Windows, Linux, Mac, Android e iOS ▶ Para Android se proporciona la API Java con clases específicas, que es un subconjunto de la API de C ▶ SDK Quick start http://docs.opencv.org/doc/tutorials/introduction/ android_binary_package/O4A_SDK.html ▶ Utilizado en aeronaves no tripuladas, sistemas de vigilancia, reconocimiento facial, etc. Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 9 / 28
  10. . . . . . . RA en Android OpenCV

    . . OpenCV for Android: ventajas e inconvenientes ▶ Ventajas: Licencia BSD Buen rendimiento Multiplataforma Soporte de la comunidad. Multitud de snippets. ▶ Inconvenientes: La API de Java es un subconjunto mínimo. Para obtener un conjunto mayor, se recomienda usar el NDK + JNI. Más info: http://www.nacho-alvarez.es/index.php/blog/2012/05/02/ conectar-programas-cc-con-aplicaciones-android/ El sobreimpresionado de elementos debe hacerse manualmente Se centra en visión por computador, así que no tenemos la parte GPS Hace falta una formación específica en visión artificial para utilizarla correctamente Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 10 / 28
  11. . . . . . . RA en Android OpenCV

    . . OpenCV for Android: recursos ▶ OpenCV4Android: http://opencv.org/platforms/android.html ▶ Quick Start: http://docs.opencv.org/doc/tutorials/ introduction/android_binary_package/O4A_SDK.html ▶ Android development with OpenCV: http://docs.opencv.org/doc/tutorials/introduction/ android_binary_package/dev_with_OCV_on_Android.html ▶ Java API: http://docs.opencv.org/java/ Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 11 / 28
  12. . . . . . . RA en Android Vuforia

    . . Vuforia ▶ Biblioteca que permite reconocer y hacer el seguimiento de imágenes planas (Image Targets) y objetos 3D simples ▶ Desarrollo de Qualcomm Austria Research Center Gmbh ▶ Disponible para Android, iOS y Unity ▶ Incluye la parte NDK + JNI pre-compilada. Sólo tenemos que incluir las bibliotecas y llamar a los métodos nativos. ▶ Targets disponibles: Image, Cylinder, Text-Word, User-defined, Cloud Recognition, Multi-Targets, Frame markers y Virtual buttons. Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 12 / 28
  13. . . . . . . RA en Android Vuforia

    . . Vuforia: Cloud Recognition Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 13 / 28
  14. . . . . . . RA en Android Vuforia

    . . Vuforia: ventajas e inconvenientes ▶ Ventajas: Licencia QTL: gratuito y puede usarse en apps comerciales. Aunque NO es libre. Gran rendimiento Posibilidad de reconocimiento en la nube Clases más sencillas que en OpenCV ▶ Inconvenientes: Dependencia de NDK + JNI. Si se quiere ampliar, se amplían los métodos nativos. Cloud recognition no es totalmente gratuito y no podemos montar nuestro propio server Se centra en visión por computador, así que no tenemos la parte GPS Foro de debate, con menor orientación a comunidad Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 14 / 28
  15. . . . . . . RA en Android Vuforia

    . . Vuforia: recursos ▶ Descarga SDK: https://developer.vuforia.com/resources/sdk/android ▶ Instalación SDK: https://developer.vuforia.com/resources/dev-guide/ step-2-installing-vuforia-sdk ▶ Target Manager: https://developer.vuforia.com/targetmanager/project/ checkDeviceProjectsCreated?dataRequestedForUserId= ▶ Sample apps: https://developer.vuforia.com/resources/sample-apps ▶ Plan de precios Cloud: https://developer.vuforia.com/cloud-recognition-service Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 15 / 28
  16. . . . . . . RA en Android Metaio

    . . Metaio ▶ Fundado en 2003 en Munich por Thomas Alt y Peter Meier ▶ Se estructura en canales ▶ Ofrecen un conjunto de productos: metaio SDK + metaio Cloud: SDK de desarrollo para metaio con cuenta de acceso a Cloud. metaio Creator + metaio Cloud: aplicación de escritorio para crear AR channels y visualizarlo en junaio. junaio: navegador de realidad aumentada. ▶ Los canales pueden gestionarse online: http://dev.junaio.com/index/mychannels ▶ Disponible para Android, iOS y Windows Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 16 / 28
  17. . . . . . . RA en Android Metaio

    . . Metaio: ventajas e inconvenientes ▶ Ventajas: Posibilidad de reconocimiento en la nube Posibilidad de montar tu propia servidor de recursos SDK muy sencillo y bien documentado Buen soporte orientado a comunidad de desarrolladores ▶ Inconvenientes: Pequeño lag a veces Eliminar la marca de agua es caro No es libre La plataforma web es demasiado compleja Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 17 / 28
  18. . . . . . . RA en Android Metaio

    . . Metaio: recursos ▶ Planes de precios: http://www.metaio.com/pricing/software-and-licensing/ ▶ Descarga demo metaio Creator: http://dev.metaio.com/creator/ ▶ Tutoriales: http://dev.metaio.com/sdk/tutorials/hello-world/ ▶ Channels manager: http://dev.junaio.com/index/mychannels Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 18 / 28
  19. . . . . . . RA en Android Layar

    . . Layar ▶ Fundado en 2009 en Amsterdam por Raimo van der Klein, Claire Boonstra y Maarten Lens-FitzGerald ▶ Se estructura en campañas ▶ También proporciona acceso a su propia nube privada https://www.layar.com/creator/ ▶ Disponible para Android e iOS ▶ Utilizado por Nissan, Ford, Philips, WWF Panda, Dan Brown... Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 19 / 28
  20. . . . . . . RA en Android Layar

    . . Layar: ventajas e inconvenientes ▶ Ventajas: Reconocimiento de imágenes por encima de la media Posibilidad de reconocimiento en la nube Web perfectamente preparada para la creación de campañas ▶ Inconvenientes: Pobre soporte y documentación Eliminar la marca de agua es más caro incluso que Metaio (7000e/año) No es libre No permite montar un servidor de recursos propios Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 20 / 28
  21. . . . . . . RA en Android Layar

    . . Layar: recursos ▶ Descarga SDK: https: //www.layar.com/products/custom-solutions/sdk/request/ ▶ Target Manager: https://www.layar.com/creator/ ▶ Foro de desarrolladores: http://devsupport.layar.com/home ▶ Planes de precios: https://www.layar.com/pricing/ Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 21 / 28
  22. . . . . . . RA en Android Wikitude

    . . Wikitude ▶ Lanzamiento inicial en 2008 en Austria por la empresa Wikitude Gmbh ▶ Se estructura en worlds ▶ También proporciona acceso a su propia nube privada http://studio.wikitude.com ▶ Disponible para Android, iOS, BlackBerry, Windows Phone, Phonegap y Titanium ▶ Ganador del premio Best Augmented Reality Browser, Augmented Planet en 2009, 2010, 2011 y 2012, entre muchos otros Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 22 / 28
  23. . . . . . . RA en Android Wikitude

    . . Wikitude: ventajas e inconvenientes ▶ Ventajas: Documentación muy completa Más barato que Metaio y Layar (600e), incluyendo geolocalización Versión educacional con marca de agua a 0e Posibilidad de reconocimiento en la nube Web perfectamente preparada para la creación de campañas Soporte muy orientado a comunidad ▶ Inconvenientes: No es libre No permite montar un servidor de recursos propios Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 23 / 28
  24. . . . . . . RA en Android Wikitude

    . . Wikitude: recursos ▶ Descarga SDK: http://developer.wikitude.com/download ▶ Construir worlds con Google Maps: http://www.wikitude.com/ build-wikitude-world-google-collaborative-maps/ ▶ Publicar world: http://devzone.wikitude.com/web/forum/tools/ publish-in-wikitude ▶ Target Manager: http: //developer.wikitude.com/tools/target-manager/?level=0 ▶ Foro de desarrolladores: http://developer.wikitude.com/developer-forum ▶ Ejemplos Android: http://developer.wikitude.com/documentation/android Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 24 / 28
  25. . . . . . . Mi elección . .

    Mi elección personal ▶ Vuforia es buena herramienta gratis total para desarrollar una aplicación de realidad aumentada con reconocimiento de imágenes ▶ Sin embargo, la parte de geolocalización habría que desarrollarla manualmente, y el tándem JNI + NDK es más engorroso para desarrollar ▶ Wikitude tiene una versión Edu gratuita con marca de agua, y es realmente sencillo, casi todo se hace con Javascript ▶ Para aplicaciones comerciales de peso, la inversión de Wikitude es de 600e en un único pago y de 9e/mes por el uso de 3 imágenes en su nube. Si usamos la herramienta Target Manager nos sale gratis, pero desarrollaremos la parte Javascript manualmente Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 25 / 28
  26. . . . . . . Demo . . Demostración

    Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 26 / 28
  27. . . . . . . Demo . . Vídeos

    ▶ IR simple matching: Wikitude Examples -> 1. Image Recognition -> 1.1. Image On Target -> http://youtu.be/wbz0N7TQRCA ▶ IR multiple targets: Wikitude Examples -> 1. Image Recognition -> 1.2. Multiple Targets -> http://youtu.be/lIA3YItmO80 ▶ IR con playback de video: Wikitude Examples -> 6. Video -> 6.2. Playback States -> http://youtu.be/XZCaRuSka_k ▶ IR mostrando vídeo transparente: Wikitude Examples -> 6. Video -> 6.4. Bonus-Transparent Video -> http://youtu.be/VfavE33ZSnk ▶ Gestión de POIs en geolocalización: Wikitude Examples -> 5. Browsing POIs -> 5.5. Native Detail Screen -> http://youtu.be/OEyqvsoExDA ▶ Integración en aplicación propia: My own app -> http://youtu.be/nscPzcGQfQ8 Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 27 / 28
  28. . . . . . . Material . . Material

    y preguntas ▶ Presentación Latex/Beamer: https://bitbucket.org/jialvarez/androidra ▶ Código de la aplicación: https://bitbucket.org/jialvarez/wikitude-example ▶ Enlace directo al apk: http: //nacho-alvarez.es/descargas/gdgdevfest-wikitude.apk ▶ ¿Preguntas? Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 28 / 28