21
Visión Artificial Accesibilidad y Android MVRLab, & Neosistec Visión Artificial, Accesibilidad y Android

Visión Artificial, Accesibilidad y Android

Embed Size (px)

DESCRIPTION

Ponencia ofrecida por Juan Manuel Sáez Martínez, profesor de la Universidad de Alicante. Sinopsis: En esta charla descubriremos una herramienta de desarrollo en android, el entorno Qt. Una biblioteca multiplataforma de código abierto para desarrollo GUI, bajo licencia LGPL. Además del FrameWork, Qt proporciona un completo entorno de desarrollo, denominado QtCreator. Junto a ello la visión estéreo y android permitirán dar forma a software de detección de obstáculos aéreos.

Citation preview

Page 1: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

Visión Artificial,Accesibilidad y Android

Page 2: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

Contenido

1. Introducción

2. Qué es Qt?

3. Necessitas

4. Visión estéreo y Android

5. Detección de obstáculos aéreos

Page 3: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

1. IntroducciónAplicaciones de alto rendimiento en Android

C Nativo

JDK

NDK

NEON Intrinsics

Page 4: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

2. Qué es Qt?- Biblioteca multiplataforma de código abierto para desarrollo GUI, bajo licencia LGPL.

NecessitasBodgan Vatra et al.

Page 5: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

2. Qué es Qt?- Lo que hace único a Qt son sus cualidades multiplataforma

- Soporta lenguajes nativos C++ y QML y bindings Java, PERL, PHP, Phyton, …

Page 6: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

2. Qué es Qt?- Además del FrameWork, Qt proporciona un completo entorno de desarrollo, denominado QtCreator:

- Además de los servicios de documentación y ayuda de Digia, al ser un proyecto de código abierto posee una extensa comunidad de usuarios.

Page 7: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

2. Qué es Qt?-Qt proporciona un conjunto de objetos (QImage, QPixmap, QPainter…) acelerados por hardware para el tratamiento de imágenes.

J.M. Sáez, A. Úbeda, M. Alejandro, José R. Díaz, ECOPEZON (Análisis computerizado de ecografías del pezón), 2012

Page 8: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

3. Necessitas-Variación de Qt para desarrollo de aplicaciones Android

- Incorporado recientemente a Qt 5.1 por Digia

JDK

NDK

SDK en C/C++ nativo optimizado con NEON

Page 9: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

3. Necessitas- El SDK es muy voluminoso

Necessitas Libs

Ministro

Page 10: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

3. Necessitas-Ejemplo de desarrollo: TouchTheSound

- Audiograma

- Conversión a vibración

- Orientado a personas con sordera

Page 11: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

3. Necessitas-Visión con Necessitas: QtMultimediaKit aún no está desarrollado

-Además hay que salvar dos cuellos de botella:

- Acceso a cámara lento en Java -> buffer de cámara y procesado a JNI

- Representación lenta en pantalla -> representación directa con OpenGl ES

JNIJDK

QtCameraPatch.cppQtCameraPatch.h

QtCameraPatch.java

Page 12: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Visión estéreo y Android- Móviles 3D (HTC Evo 3D y LG Optimus 3D): teléfonos 3d basados

en lo que se denomina “3d sin gafas”

- Contienen dos cámaras frontales paralelas con disparo global, rectificadas y alineadas para evitar la aberración.

Page 13: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Visión estéreo y Android- La pantalla se basa en parallax barrier.

- Cada ojo recibe la imagen de una cámara, creando la ilusión de profundidad.

- La disparidad (separación de los objetos en ambas imágenes) es inversamente proporcional a la distancia.

L R

Page 14: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Visión estéreo y Android- La pantalla se basa en parallax barrier.

- Cada ojo recibe la imagen de una cámara, creando la ilusión de profundidad.

- La disparidad (separación de los objetos en ambas imágenes) es inversamente proporcional a la distancia.

- A menor disparidad mayor distancia.

L R

Page 15: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Visión estéreo y Android- Para lograr separar las imágenes y que

cada ojo observe una imagen distinta, se muestran ambas imágenes entrelazando sus columnas (impares de L con pares de R).

- Para ocultar la visión frontal, se utiliza una malla microperforada.

- En modo 2D se muestra la misma imagen dos veces.

- Por esta razón, el efecto 3D solo se consigue desde un determinado punto de vista

L R L R L R L R L R

Page 16: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Visión estéreo y Android- Herramientas: Necessitas Qt, OpenCV, OpenGL ES, Neon

- Lenguajes: Java (android), C++, C

- Algoritmos:

- Block Matching (K. Konolige) -> correspondencia

- Camera Calibraton (Y. Zhang) -> calibración estéreo

- Kanade-Lucas-Tomasi Tracker (KLT) -> medidas

+ =

Page 17: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

- Sistema complementario integrado en un smartphone 3D

4. Detección de obstáculos aéreos

- Obstáculos que no pueden ser detectados por el bastón o el perro guía, al no tener proyección contra el suelo.

Page 18: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Detección de obstáculos aéreos- Basado en visión estéreo:

L R

IBERAMIA (2002),

ICRA (2004)

CVPR (2005),

ECCV (2008)

3D smartphones

(2010-2011)

Page 19: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Detección de obstáculos aéreos

Clasificación (Mean-Shift)

Observación 3D

Proyección del cuerpo

Dirección demovimiento

(K-Means)

Page 20: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

4. Detección de obstáculos aéreos

Aerial Obstacles Testing (front-end de test)

Aerial Obstacles (front-end para ciegos)

Premio Vodafone a la Innovación

en Telecomunicaciones 2013

Page 21: Visión Artificial, Accesibilidad y Android

Visión Artificial Accesibilidad y AndroidMVRLab, & Neosistec

Vídeos de la presentación:

http://www.youtube.com/watch?v=T9PDkLhdAuw

http://www.youtube.com/watch?v=4pEw6YPFYAQ

Más vídeos relacionados en:

http://www.youtube.com/user/jmsaez1974/videos

Contacto:

Juan Manuel Sáez (MVRLab): [email protected]

Javier Pita (Neosistec): [email protected]