realidad aumentada en android: reconocimiento de imágenes y geolocalización usando google maps

28
. . . . . . . . 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

Upload: jose-ignacio-alvarez-ruiz

Post on 22-Apr-2015

4.796 views

Category:

Technology


1 download

DESCRIPTION

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.

TRANSCRIPT

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

. . . . . .

.

......

Realidad aumentada en AndroidReconocimiento 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

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

. . . . . .

Í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

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

. . . . . .

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

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

. . . . . .

¿Realidad aumentada?

.. Definición de realidad aumentada

▶ Superposición de información virtual sobre entornos reales a partirde una aplicación informática

▶ ¿Qué necesitamos?Una pantalla donde poder ver esta información añadidaUn software que, controlando una cámara, un sensor o un GPS einterpretando 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

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

. . . . . .

Aplicaciones

.. Aplicaciones de realidad aumentada

Educación Marketing / Publicidad

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 5 / 28

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

. . . . . .

Aplicaciones

.. Aplicaciones de realidad aumentada

Eventos Videojuegos

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 6 / 28

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

. . . . . .

RA en Android

.. ¿Qué opciones hay?

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 7 / 28

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

. . . . . .

RA en Android

.. Demostración

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 8 / 28

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

. . . . . .

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

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

. . . . . .

RA en Android OpenCV

.. OpenCV for Android: ventajas e inconvenientes

▶ Ventajas:Licencia BSDBuen rendimientoMultiplataformaSoporte de la comunidad. Multitud de snippets.

▶ Inconvenientes:La API de Java es un subconjunto mínimo. Para obtener un conjuntomayor, 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 manualmenteSe centra en visión por computador, así que no tenemos la parte GPSHace falta una formación específica en visión artificial para utilizarlacorrectamente

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 10 / 28

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

. . . . . .

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

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

. . . . . .

RA en Android Vuforia

.. Vuforia

▶ Biblioteca que permite reconocer y hacer el seguimiento de imágenesplanas (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

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

. . . . . .

RA en Android Vuforia

.. Vuforia: Cloud Recognition

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 13 / 28

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

. . . . . .

RA en Android Vuforia

.. Vuforia: ventajas e inconvenientes

▶ Ventajas:Licencia QTL: gratuito y puede usarse en apps comerciales. Aunque NOes libre.Gran rendimientoPosibilidad de reconocimiento en la nubeClases más sencillas que en OpenCV

▶ Inconvenientes:Dependencia de NDK + JNI. Si se quiere ampliar, se amplían losmétodos nativos.Cloud recognition no es totalmente gratuito y no podemos montarnuestro propio serverSe centra en visión por computador, así que no tenemos la parte GPSForo de debate, con menor orientación a comunidad

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 14 / 28

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

. . . . . .

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

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

. . . . . .

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 concuenta de acceso a Cloud.metaio Creator + metaio Cloud: aplicación de escritorio para crearAR 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

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

. . . . . .

RA en Android Metaio

.. Metaio: ventajas e inconvenientes

▶ Ventajas:Posibilidad de reconocimiento en la nubePosibilidad de montar tu propia servidor de recursosSDK muy sencillo y bien documentadoBuen soporte orientado a comunidad de desarrolladores

▶ Inconvenientes:Pequeño lag a vecesEliminar la marca de agua es caroNo es libreLa plataforma web es demasiado compleja

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 17 / 28

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

. . . . . .

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

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

. . . . . .

RA en Android Layar

.. Layar

▶ Fundado en 2009 en Amsterdam por Raimo van der Klein, ClaireBoonstra 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

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

. . . . . .

RA en Android Layar

.. Layar: ventajas e inconvenientes

▶ Ventajas:Reconocimiento de imágenes por encima de la mediaPosibilidad de reconocimiento en la nubeWeb perfectamente preparada para la creación de campañas

▶ Inconvenientes:Pobre soporte y documentaciónEliminar la marca de agua es más caro incluso que Metaio (7000e/año)No es libreNo permite montar un servidor de recursos propios

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 20 / 28

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

. . . . . .

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

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

. . . . . .

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

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

. . . . . .

RA en Android Wikitude

.. Wikitude: ventajas e inconvenientes

▶ Ventajas:Documentación muy completaMás barato que Metaio y Layar (600e), incluyendo geolocalizaciónVersión educacional con marca de agua a 0ePosibilidad de reconocimiento en la nubeWeb perfectamente preparada para la creación de campañasSoporte muy orientado a comunidad

▶ Inconvenientes:No es libreNo permite montar un servidor de recursos propios

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 23 / 28

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

. . . . . .

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

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

. . . . . .

Mi elección

.. Mi elección personal

▶ Vuforia es buena herramienta gratis total para desarrollar unaaplicación de realidad aumentada con reconocimiento de imágenes

▶ Sin embargo, la parte de geolocalización habría que desarrollarlamanualmente, y el tándem JNI + NDK es más engorroso paradesarrollar

▶ Wikitude tiene una versión Edu gratuita con marca de agua, y esrealmente sencillo, casi todo se hace con Javascript

▶ Para aplicaciones comerciales de peso, la inversión de Wikitude es de600e en un único pago y de 9e/mes por el uso de 3 imágenes en sunube. Si usamos la herramienta Target Manager nos sale gratis, perodesarrollaremos la parte Javascript manualmente

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 25 / 28

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

. . . . . .

Demo

.. Demostración

Nacho Álvarez (WUL4) Realidad aumentada en Android 31 de octubre de 2013 26 / 28

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

. . . . . .

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

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

. . . . . .

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