• No se han encontrado resultados

Framework para desarrollar aplicaciones móviles con reconocimiento de gestos

N/A
N/A
Protected

Academic year: 2020

Share "Framework para desarrollar aplicaciones móviles con reconocimiento de gestos"

Copied!
142
0
0

Texto completo

(1)

Universidad Nacional del Centro de

la Provincia de Buenos Aires

Facultad de Ciencias Exactas

Framework para desarrollar aplicaciones

móviles con reconocimiento de gestos

Trabajo Final de la Carrera de Ingeniería de Sistemas

Alumno

Jorge Andrés Mangeruga

Director

Dr. Álvaro Soria

Co-director

(2)

II

Agradecimientos

En primer lugar quiero dar las gracias a mis padres, quienes me dieron la posibilidad de estudiar esta carrera y siempre fueron el empuje necesario para llegar al final de esta etapa. En segundo lugar pero no menos importante, destaco al resto de familiares y amigos que me soportaron en los buenos y malos momentos, alentándome para seguir adelante durante el desarrollo de este trabajo.

(3)

III

Índice general

Índice de figuras ... VI

Índice de tablas ... 10

Índice de algoritmos ... 11

Resumen ... 12

1. Introducción ... 1

1.1. Motivación ... 2

1.2. Solución propuesta ... 3

1.3. Organización ... 4

2. Estado del arte ... 7

2.1. Enfoques para la captura de datos ... 8

2.1.1.Enfoque basado en visión ... 8

2.1.2.Enfoque basado en sistemas de medición inercial ... 9

2.1.3.Enfoque basado en pantallas táctiles ... 11

2.1.4.Enfoque basado en señales eléctricas corporales ... 12

2.1.5.Resumen ... 13

2.2. Dispositivos basados en visión ... 14

2.2.1.The eye tribe ... 14

2.2.2.Microsoft Kinect ... 15

2.2.3.LeapMotion ... 15

2.2.4.Proyecto Tango ... 16

2.2.5.Resumen ... 17

2.3. Dispositivos basados en sistemas de medición inercial ... 18

2.3.1.Smartphones ... 18

2.3.2.Control wii (Wiimote) ... 19

2.3.3.Motion Node ... 20

2.3.4.Resumen ... 20

2.4. Dispositivos basados en pantallas táctiles ... 21

(4)

IV

2.4.2.Tabletas de dibujo... 22

2.4.3.Resumen ... 23

2.5. Dispositivos basados en señales eléctricas corporales ... 23

2.5.1.EPOC ... 23

2.6. Herramientas de reconocimiento de gestos con dispositivos móviles ... 25

2.6.1.Nuidroid ... 25

2.6.2.Android Gesture Recognition Tool ... 26

2.6.3.BitGym Motion SDK ... 28

2.6.4.Resumen ... 29

2.7. Técnicas de reconocimiento ... 30

2.7.1.Dynamic time warping ... 30

2.7.2.Procrustes ... 31

2.7.3.Modelos ocultos de Márkov ... 31

2.7.4.String matching ... 32

2.7.5.Resumen ... 33

2.8. Conclusiones ... 33

3. Enfoque de reconocimiento de gestos ... 37

3.1. Fase de entrenamiento ... 42

3.1.1.Captura de movimiento ... 42

3.1.2.Extracción de movimientos y normalización ... 45

3.1.3.Entrenamiento de técnicas de reconocimiento ... 51

3.1.4.Definición de gestos ... 61

3.2. Fase de reconocimiento ... 62

3.2.1.Captura de movimientos y normalización ... 62

3.2.2.Reconocimiento de gestos ... 64

4. Diseño de DronGR ... 71

4.1. Arquitectura general ... 71

4.2. Diseño de la fase de entrenamiento ... 73

(5)

V

4.2.2.Normalización y entrenamiento ... 80

4.3. Fin de la etapa de entrenamiento y comienzo de la etapa de reconocimiento . 86 4.3.1.Definición de gestos ... 86

4.3.2.Configuración del reconocimiento ... 87

4.4. Diseño de la fase de reconocimiento ... 93

4.4.1.Captura y normalización ... 93

4.4.2.Reconocimiento ... 97

5. Resultados experimentales ... 101

5.1. Ambiente de experimentación ... 101

5.1.1.Datasets ... 101

5.1.2.Métricas empleadas ... 103

5.1.3.Plataforma utilizada ... 106

5.2. Precisión de las técnicas de reconocimiento ... 106

5.3. Rendimiento y consumo de batería ... 116

5.4. Lineamientos para la selección de técnicas ... 119

5.5. Conclusiones ... 121

6. Conclusiones ... 124

6.1. Contribuciones ... 124

6.2. Limitaciones y trabajos futuros ... 125

(6)

VI

Índice de figuras

Figura 1-1: Esquema conceptual del framework propuesto. ... 3

Figura 2-1: Clasificación de gestos en dinámicos (Izq.) y estáticos (Der.). ... 8

Figura 2-2: Captura de imagen del sensor de profundidad de Kinect ... 9

Figura 2-3: Control remoto de la Nintendo Wii (Wiimote) ... 10

Figura 2-4: Ejemplos de gestos realizados sobre una pantalla táctil ... 11

Figura 2-5: Puntos específicos de la cabeza donde identificar señales EEG. ... 12

Figura 2-6: Campo de acción del dispositivo que captura el movimiento de los ojos .. 14

Figura 2-7: Kinect capturando el cuerpo de una persona delante de la cámara ... 15

Figura 2-8: Tecnología Leap Motion utilizada para el rastreo de las manos ... 16

Figura 2-9: Habitación digitalizada por un dispositivo del Proyecto Tango ... 17

Figura 2-10: Usuario de Android utilizando un juego cuyos controles son el acelerómetro del dispositivo ... 19

Figura 2-11: Dos usuarios de la consola Wii utilizando el control Wiimote en un juego ... 19

Figura 2-12: Demostración de uso del MotionNode conectado a una computadora .... 20

Figura 2-13: (a) Cuadrado realizado sobre la pantalla de un smartphone por el usuario. (b) El smartphone abre la aplicación de calculadora luego de reconocer el comando mediante el dibujo realizado por el usuario. ... 22

Figura 2-14: Tableta de dibujo Wacom Intuos Pen & Touch Small... 23

Figura 2-15: (a) Neuroheadset EPOC y el receptor inalámbrico USB. (b) Muestra con colores intuitivos los lugares de contacto del neuroheadset y la cabeza del usuario. .. 25

Figura 2-16: Aplicación de entrenamiento de gestos de Takg Framework, pantalla principal (izq) y menú de edición de gestos (der) ... 27

Figura 2-17: Usuario de una tablet utilizando un juego construido con Motion SDK .... 28

Figura 3-1: Enfoque conceptual de DronGR basado en un proceso de machine learning supervisado. ... 38

Figura 3-2: (a) Capturas del movimiento que realiza el jugador para doblar el auto hacia la derecha. (b) Gráfico de los valores que el acelerómetro mide durante el movimiento del usuario en el juego. ... 42

Figura 3-3: Estructura conceptual de una secuencia de frames. ... 43

Figura 3-4: Secuencia de frames con varias repeticiones del giro a derecha. ... 45

Figura 3-5: Obtención de una nube de puntos a partir de una instancia de movimiento. ... 46

Figura 3-6: Efecto del centrado sobre una nube de puntos del giro a derecha. ... 48

(7)

VII Figura 3-8: Frames de la captura de dos personas distintas antes y después del

uniformado de cuerpo. ... 50

Figura 3-9: Obtención de nubes de puntos del acelerómetro y giroscopio a partir de instancias normalizadas del giro a derecha ... 52

Figura 3-10: Alineación del eje Y de dos nubes de puntos de manera lineal (a). Alineación del eje Y de dos nubes de puntos mediante DTW (b). ... 54

Figura 3-11: (a) Nubes de puntos centradas y escaladas. (b) Nubes de puntos A y B luego de aplicar la rotación a B. ... 56

Figura 3-12: Aplicación del algoritmo K-Means ... 58

Figura 3-13: Modelo de Márkov de cuatro estados ocultos y cuatro estados observables ... 58

Figura 3-14: Proceso de entrenamiento de String Matching... 60

Figura 3-15: Estructura lógica para el gesto entrenado del giro a derecha ... 61

Figura 4-1: Descomposición de DronGR en paquetes. ... 73

Figura 4-2: Diagrama de clases de alto nivel para la etapa de captura. ... 74

Figura 4-3: Diagrama de clases para el diseño del enfoque de captura. ... 75

Figura 4-4: Diagrama de clases para los buffers de almacenamiento. ... 76

Figura 4-5: Diagrama de secuencia para el proceso de captura. ... 77

Figura 4-6: Diagrama de secuencia del proceso de guardado de una secuencia de frames. ... 78

Figura 4-7: (a) Estructura de una secuencia de frames del acelerómetro persistida en un archivo de texto. (b) Estructura de una secuencia de frames con múltiples sensores persistida en un archivo de texto. ... 79

Figura 4-8: Diagrama de clases para la etapa de normalización. ... 81

Figura 4-9: Diagrama de clases de las técnicas de reconocimiento. ... 82

Figura 4-10: Diagrama de secuencia que muestra cómo se recuperan las instancias de movimiento desde un archivo. ... 83

Figura 4-11: Diagrama de secuencia para el proceso de la etapa de normalización. .. 84

Figura 4-12: Diagrama de secuencia para el proceso de la etapa de entrenamiento. . 85

Figura 4-13: Archivo de contexto para definir la configuración del reconocimiento de un gesto. ... 87

Figura 4-14: Archivo de configuración de propiedades de DronGR. ... 88

Figura 4-15: Beans del archivo de contexto de DronGR. ... 88

Figura 4-16: Diagrama de clases de una aplicación que utiliza el framework DrongGR. ... 90

(8)
(9)
(10)

Índice de tablas

(11)

11

Índice de algoritmos

Algoritmo 3-1: Armado de valor de referencia para DTW. ... 53

Algoritmo 3-2: Cálculo de distancia de DTW. ... 54

Algoritmo 3-3: Cálculo de distancia con Procrustes ... 56

Algoritmo 3-4: Entrenamiento de la técnica HMM ... 59

Algoritmo 3-5: Entrenamiento de la técnica String Matching ... 61

(12)

12

Resumen

El avance tecnológico ha permitido embeber en los dispositivos móviles una amplia variedad de interfaces naturales, impulsando la investigación en el campo del reconocimiento de gestos en los recientes años. Un ejemplo evidente son los sensores como el acelerómetro o el giroscopio, incluidos en los más comunes dispositivos móviles actuales. También se encuentra muy avanzado el desarrollo de dispositivos móviles que incorporan cámaras de profundidad semejantes a Kinect de Microsoft. En todos los casos, es posible interpretar la información que provee la interfaz para extraer lo relativo al movimiento de una persona. Contar con esa información, permite imaginar su uso en diversos tipos de aplicaciones, por ejemplo, para posibilitar el manejo de dispositivos móviles a personas con alguna discapacidad, para recuperación motriz o simplemente juegos. Sin embargo, no existen herramientas que engloben el problema completo de reconocimiento de gestos en dispositivos móviles. Esto provoca que implementar aplicaciones de interfaz natural involucre la propia creación de mecanismos de reconocimiento por parte de los desarrolladores.

(13)

13

(14)

1

1. Introducción

Históricamente, la comunicación hombre-máquina se ha determinado principalmente por las limitaciones tecnológicas y los humanos han sido quienes tuvieron que adaptarse [1]. Sin embargo, hoy en día es posible fabricar máquinas capaces de adaptarse a los lenguajes de los humanos. Esto se debe gracias al avance en el estudio de HCI (del inglés Human Computer Interaction) que estudia el trasfondo psicológico que existe cuando una persona intenta interactuar con una computadora.

La investigación en HCI tiene como objetivos el diseño e implementación de sistemas de software, que sean eficientes y fáciles de usar permitiendo a los usuarios aprovechar al máximo los beneficios potenciales que ofrecen las computadoras. El estudio por encontrar técnicas para este tipo de interacción tomó sus inicios en el año 1963 con la utilización del monitor de tubo de rayos catódicos (conocido del inglés como Cathode Ray Tube o CRT) y del lápiz óptico. Un ejemplo es el caso de Iván Sutherland que desarrolló el Sketchpad1 [2] para su tesis doctoral, un programa capaz de dibujar gráficos por computadora.

Desde entonces, nuevos intereses se despertaron en búsqueda de software y hardware capaces de llevar el realismo de las máquinas a niveles superiores y más interactivos. Esto produjo el surgimiento de nuevos campos de aplicación dentro del estudio del HCI, que se enfocan en alguna forma particular de interacción.Los enfoques actuales están apuntados al desarrollo de NUI (del inglés Natural User Interface). En este nuevo paradigma se intenta dar a los usuarios una forma de interacción con la computadora de manera directa e intuitiva.

(15)

2

1.1. Motivación

El vertiginoso aumento en la capacidad de los dispositivos móviles y la variedad de sensores que ofrecen, posibilitan el desarrollo de novedosas aplicaciones en el campo del reconocimiento de actividades humanas. El uso de dispositivos móviles en la vida cotidiana de las personas ha crecido rápidamente [3], en consecuencia se encuentran presentes en todas las actividades que las personas realizan y el contexto en donde se mueven. Los sensores con los que ahora cuentan los dispositivos móviles logran transformar esa información en diferentes medidas cuantificables, tales como la aceleración de un movimiento del teléfono, la temperatura ambiente, o las posiciones de las partes del cuerpo al estilo Kinect. Gracias a la actual capacidad de cómputo se puede procesar esa información en tiempo real, por ejemplo, para realizar reconocimiento de gestos en aplicaciones tales como juegos, monitoreo de la salud, nuevas formas de interacción, robótica, entre otras [4].

Actualmente, existen algunos enfoques orientados a implementar este tipo de aplicaciones, pero no brindan una solución completa al problema. Los enfoques académicos presentados en [3], [4], [5] y [6], plantean diversos algoritmos, mediante los cuales se puede realizar el reconocimiento de gestos en dispositivos móviles a partir de la información que brindan sus sensores. Aunque, estos enfoques no prevén su uso en el marco de aplicaciones desarrolladas por terceros y no brindan facilidades para su uso. Esta problemática fue abordada por [7], una herramienta que permite entrenar y reconocer gestos en aplicaciones de terceros, con mucho menor esfuerzo por parte del desarrollador. Sin embargo, no brinda el soporte para obtener información de variados sensores. En este camino, se encuentran los SDK’s como MotionSDK1 o Nuidroid2. Ambos brindan una capa de abstracción para obtener información de alto nivel de las cámaras de los dispositivos, dispositivos de visión externos conectados o los sensores del propio dispositivo. Pero, no proveen algoritmos de reconocimiento para aprovechar esa información de alto nivel. Esto, nuevamente conlleva que el desarrollador necesite tener conocimientos en el área.

(16)

3

1.2. Solución propuesta

En este contexto, se propone un framework que simplifica, principalmente en los aspectos más complejos, la labor de desarrolladores de aplicaciones que interactúan por medio de gestos en dispositivos móviles. El framework tiene dos grandes fases: entrenamiento y reconocimiento, basadas en el concepto de machine learning, que por medio de distintas técnicas de reconocimiento de gestos dotan de inteligencia al framework. A lo largo de ambas fases, el framework soluciona los siguientes aspectos: obtención de información de un variado espectro de sensores; entrenamiento y reconocimiento de gestos mediante implementaciones de diversos algoritmos, que pueden amoldarse a distintas necesidades; y estructuras de datos acordes para soportar todo el proceso. Además, se prevén distintos puntos de extensión, desde los cuales un desarrollador puede adecuar diversos comportamientos del framework.

Figura 1-1: Esquema conceptual del framework propuesto.

En la Figura 1-1 se puede ver un esquema conceptual que resume el enfoque propuesto de DronGR. En primer lugar, durante la fase de entrenamiento, algún sensor capta los

movimientos que realiza un entrenador. Con un conjunto de estos movimientos, el

(17)

4 aplica la configuración que crea necesaria para personalizar el reconocimiento. Una vez que se han entrenado algunos gestos y DronGR se encuentra embebido en una aplicación, comienza la fase de reconocimiento. Cuando un usuario utiliza la

aplicación, sus movimientos también son captados por algún sensor. Contando con un movimiento del usuario, el framework procede a reconocerlo, mediante una comparación con los gestos entrenados previamente. Cuando se produce una detección, se notifica a la aplicación con el gesto reconocido y esta ejecuta un evento en consecuencia con algún efecto detectable para el usuario.

1.3. Organización

Hasta aquí se presentó un resumen del campo de aplicación que ha facilitado la interacción entre los humanos y las computadoras a lo largo del tiempo. Se prestó especial énfasis en las interfaces naturales ya que son el tipo de interfaz utilizado en esta tesis. También en el dispositivo Kinect y los sensores de dispositivos móviles, dado que son los utilizados para la captura de datos del ambiente. Por otro lado, se analizó cuál es la problemática que un desarrollador debe afrontar a la hora de hacer una aplicación que reconozca gestos corporales. Y finalmente, se describió el objetivo del enfoque propuesto que busca dar soporte a la integración del reconocimiento de gestos en aplicaciones de terceros para dispositivos móviles.

En el capítulo 2 se presenta el estado del arte en que se encuentra la investigación de NUI. En primer lugar se explican los conceptos de gesto y reconocimiento de gestos. Luego se hace un relevamiento de los diferentes dispositivos NUI. Entre estos, se hace hincapié en mostrar los relacionados al enfoque del framework. Por último, se concluye el capítulo con un nuevo relevamiento acerca de los trabajos relacionados que aplican reconocimiento de gestos en dispositivos móviles, comentando sus características y mencionando los inconvenientes que se notaron.

El capítulo 3 es considerado el más importante ya que muestra la solución al enfoque propuesto desde un punto de vista abstracto. Aquí se detalla principalmente el funcionamiento de la herramienta y los aspectos tomados en cuenta sin entrar en detalles técnicos. Un ejemplo motivador es presentado al inicio del capítulo a modo de guía para explicar la solución desarrollada.

(18)

5 tales como diagramas de paquetes, diagramas de secuencia y diagramas de clases. Además, cada diagrama es complementado con descripciones textuales para posibilitar el entendimiento detallado de los mismos.

(19)
(20)

7

2. Estado del arte

La aparición de nuevos y baratos dispositivos de interfaz natural atrajo más atención en la investigación del reconocimiento de gestos cambiando la forma en que las aplicaciones se comunican con el usuario [8]. El reconocimiento de gestos tiene como objetivo definir un sistema el cual pueda identificar gestos humanos específicos y usarlos para transmitir información o para controlar dispositivos.

Un gesto es un término que se encuentra cada vez más frecuente en el área de Human

Computer Interaction (HCI). La mayoría de las definiciones de gestos derivan de la

hecha en [9], "Un gesto es un movimiento del cuerpo que contiene información. El saludo de “adiós con la mano” es un gesto. Presionar una tecla en un teclado no es un gesto,

porque el movimiento de un dedo en su camino a golpear la tecla no es ni observado ni

significativo. Todo lo que importa es qué tecla se ha presionado." En [10], analizan esta

definición y agregan que la información transmitida por un gesto debe contribuir a un objetivo específico y por lo tanto mover la mano a la posición de inicio de un gesto no es un gesto propiamente dicho. Mover la mano a esa posición es una necesidad pero no contribuye al producto final. La forma de mover la mano para llegar a ese punto no es relevante.

En cuanto al reconocimiento de gestos, el término toma distintos significados dependiendo del campo de investigación. En este trabajo se adopta la siguiente definición: reconocimiento de gestos es la tarea de identificar movimientos específicos realizados con el cuerpo humano mediante una determinada computadora. Básicamente esto involucra el procesamiento de la información mediante diversas técnicas para lograr que la computadora “entienda” cómo es un gesto y luego esas mismas técnicas sean capaces de identificar el gesto en base a su conocimiento. Las expresiones significativas comprendidas como gestos que provienen del movimiento de un humano en general involucran las manos, la cara, y/o todo el cuerpo [11].

(21)

8 En general, estos gestos se agrupan en estáticos y dinámicos. Los gestos estáticos son cuando el usuario asume una posición o configuración fija del cuerpo, mientras que los gestos dinámicos involucran movimientos. Comúnmente para mayor simplicidad, los gestos dinámicos son simplemente llamados “gestos” (parte izquierda en la Figura 2-1) y los gestos estáticos “posturas” [11] (parte derecha en la Figura 2-1).

Luego de describir diferentes aspectos relacionados, en la sección 2.6 se plantea un resumen que detalla cuáles y cómo se combinan estos aspectos para dar forma a la motivación de la tesis y de qué manera contribuyen al enfoque adoptado.

Figura 2-1: Clasificación de gestos en dinámicos (Izq.) y estáticos (Der.).

2.1. Enfoques para la captura de datos

Interpretar gestos humanos mediante una computadora es una tarea compleja que requiere descomponerse en tareas más pequeñas. La primera tarea es analizar qué enfoque se usará para capturar la información deseada del ambiente. La elección del enfoque define las características y capacidades de un sistema de reconocimiento de gestos. En las siguientes secciones se presentan algunos enfoques para la captura de información.

2.1.1. Enfoque basado en visión

(22)

9 modelo 3D de la escena del mundo real. Incluso existen cámaras especiales que miden profundidad, dando información acerca de la distancia que existe entre los objetos y la propia cámara. Una imagen tomada del sensor de profundidad de Kinect se muestra en la Figura 2-2. Allí se aprecia la identificación de un usuario y otros elementos en la habitación.

En este tipo de enfoques el proceso de reconocimiento consta de realizar las siguientes etapas: pre procesamiento, segmentación, extracción de características, modelación y clasificación. Usualmente en el pre procesamiento se aplican filtros y transformaciones que modifican la imagen para que satisfaga con ciertas asunciones que serán aplicadas por los métodos siguientes del proceso. En la etapa de segmentación se busca delimitar regiones en la imagen que sean relevantes para el reconocimiento. Una vez que la imagen fue segmentada, la etapa de extracción de características se encarga de encontrar zonas del cuerpo humano, como por ejemplo el contorno del usuario completo, la ubicación de las manos, brazos y piernas; para formar patrones característicos que serán usados por el núcleo del reconocedor de gestos. Los pasos finales de modelado y clasificación, que forman parte de cualquiera de los enfoques, se busca extraer patrones comunes en todas las muestras para poder reconocer gestos.

Figura 2-2: Captura de imagen del sensor de profundidad de Kinect

2.1.2. Enfoque basado en sistemas de medición inercial

El enfoque utiliza dispositivos electrónicos que son capaces de medir e informar aceleración, velocidad, orientación y fuerzas gravitacionales. Principalmente usando una

(23)

10 sobre tres ejes (x, y, z). Estas medidas deben ser procesadas para encontrar patrones en ellas que permitan reconocer gestos. El acelerómetro estima la aceleración de cada eje a partir del desplazamiento que sufre una masa contenida dentro del sensor. Por su lado, giroscopio entrega la rotación que se produce en cada uno de los tres ejes. Estos dispositivos, pueden ser ubicados en el cuerpo de distintas maneras.

Existen dos variantes principales para disponer un sistema de medición inercial en el campo del reconocimiento de gestos. La primera de ellas consiste en contar con un dispositivo portable con las manos, de manera que la persona lo sostenga y realice los movimientos. Un ejemplo es el control de la Nintendo Wii, el Wiimote. Dicho controlador, que puede verse en la Figura 2-1, posee un acelerómetro que envía las mediciones a la consola de juegos a través de Bluethoot. Además, entrega medidas de rotación que son estimadas en base a los datos obtenidos por el acelerómetro. La otra variante, propone colocar varios sensores en distintas partes del cuerpo de la persona, por ejemplo, dispersos en prendas de vestir o en piezas adheribles a brazos y piernas. De esta manera se obtienen medidas más específicas y variadas.

Figura 2-3: Control remoto de la Nintendo Wii (Wiimote)

(24)

11

2.1.3. Enfoque basado en pantallas táctiles

Este tipo de tecnología utiliza pantallas táctiles como dispositivo de entrada, capaces de detectar el contacto de un dedo o ciertos lápices especiales sobre ella. En general se reconocen dos tipos de pantallas táctiles, las resistivas y las capacitivas. Las pantallas resistivas están formadas por varias capas. Cuando presionamos sobre la pantalla, hay

dos capas que entran en contacto, se produce un cambio en la corriente eléctrica y se detecta la pulsación. Las pantallas táctiles capacitivas están cubierta con un material que conduce una corriente eléctrica. Dado que el cuerpo humano es también conductor de corriente, al presionar sobre el material de las pantallas capacitivas se produce un cambio de corriente análogo al de las pantallas resistivas y es detectada la pulsación. Estas últimas son las más difundidas en la actualidad, y las podemos encontrar en smarphones, tablets, cajeros automáticos, computadoras de a bordo, GPS y muchos otros dispositivos.

El reconocimiento de gestos, en este caso, se basa en identificar patrones en los movimientos que se realizan con dedos o lápices haciendo contacto con la pantalla, e incluso, combinaciones con varios toques en distintas regiones de la pantalla. Es por lo tanto determinante la región dentro de la pantalla donde se realizan estas acciones, para poder realizar un reconocimiento correcto. En la Figura 2-4 se aprecian diversos movimientos realizables con los dedos sobre una pantalla, y que podrían identificarse mediante reconocimiento de gestos.

(25)

12

2.1.4. Enfoque basado en señales eléctricas corporales

Tanto los músculos, los nervios como el cerebro emiten señales que pueden medirse, actualmente, con métodos poco o nada intrusivos. Principalmente hay dos tipos de señales: electromiográficas (EMG) y electroencefalográficas (EEG). Las primeras involucran las señales que producen los músculos al moverse, las segundas en cambio, son producidas por la actividad cerebral. Todas ellas pueden capturarse con electrodos correctamente ubicados.

La medición de las señales de EMG asociados con la activación de un músculo se realiza generalmente cerca de él. Pero el alto poder relativo de las señales EMG, las hacen propagarse lejos de los músculos. Señales EMG de los músculos de la mandíbula, lengua, ojos, cara, brazos y piernas se pueden medir en puntos específicos de la superficie del cuero cabelludo [13].

Las señales de EEG relacionadas con la actividad cerebral también se pueden medir en la superficie del cuero cabelludo, tal como se puede ver en la Figura 2-5. Debido a la alta potencia de las señales EMG, la medición de las señales de EEG a menudo está contaminada por artefactos EMG, que señalan EMG presentes en los registros de EEG. Para lograr que las señales de EEG sin interferencias de EMG: el usuario debe evitar mover músculos durante la adquisición de la señal EEG; y se pueden aplicar algunos algoritmos de procesamiento de señal para eliminar las interferencias partir de las señales de EEG adquiridos [13].

(26)

13 Una vez adquirida la señal EMG o EEG por medio de electrodos, se realiza el procesamiento de esas señales para obtener información sobre el estado del usuario y finalmente se ejecuta la acción prevista. El análisis estadístico, los enfoques bayesianos, las redes neuronales, los procedimientos de tiempo de frecuencia, y el modelado paramétrico son técnicas habituales empleadas en el bloque de procesamiento de señales, y durante la estimación de la condición del usuario. Esta es la parte más compleja de los enfoques basados en EMG, porque tiene que procesar en forma conjunta las señales adquiridas de todos los electrodos. Además, cada señal del electrodo está compuesto a su vez por la suma de un gran número de señales en el mismo y en diferentes frecuencias, que llega a cada electrodo de diferentes partes del cuerpo del usuario o el cerebro. On-off switch, derivada integral proporcional, y el control de la lógica difusa son los tipos de control empleadas habitualmente en la etapa final de control del dispositivo.

2.1.5. Resumen

Hasta aquí se presentaron diversos enfoques para la captura de datos, cuyas ventajas y desventajas se evaluaron comparando sus principales características. La evaluación de los enfoques, tuvo en cuenta 3 características de comparación: aplicabilidad, libertad, variedad de gestos. La aplicabilidad, es el potencial que tiene el enfoque para utilizarse con diversos objetivos. Por otro lado, la libertad define si el usuario debe portar dispositivos en su cuerpo para que el enfoque pueda utilizarse. En último lugar, la variedad de gestos determina qué tan amplios pueden ser los gestos realizados mediante el enfoque en cuestión.

Enfoque \ parámetro Aplicabilidad Libertad Variedad de gestos Visión Alta SI Grande

Medición inercial Alta NO Media

Pantallas táctiles Media NO Pequeña

Señales eléctricas corporales Alta NO Media Tabla 2-1: Resumen comparativo entre enfoques para la captura de datos.

(27)

14 conectado al cuerpo de los usuarios, es el enfoque de visión. Esto significa, que es el único que brinda libertad a los usuarios. Además, el enfoque de visión es el que más posibilidades de realizar gestos distintos tiene. Dado que puede utilizarse todo el cuerpo de cualquier forma. En el caso de los enfoques de medición inercial y señales eléctricas, la variedad de gestos se designó como media. Porque la cantidad de gestos que pueden lograrse es buena, pero siempre acotados al dispositivo que deben llevar los usuarios. Por último, para las pantallas táctiles, la variedad de gestos se designó como baja. Porque se encuentra todo concentrado en la pantalla, reduciendo considerablemente la posibilidad de variar los gestos.

2.2. Dispositivos basados en visión

2.2.1. The eye tribe

Eye tracking es el proceso de utilización de sensores para localizar las características de los ojos y hacer una estimación en la que alguien está mirando (el punto de la mirada). The eye tribe3 se basa en la iluminación de infrarrojos y sofisticados algoritmos matemáticos para determinar el punto de la mirada. Posee un SDK disponible para desarrollar en varios lenguajes actuales, y se puede conectar en distintos dispositivos. En la figura Figura 2-6 puede verse el campo de acción que tiene el dispositivo.

El seguimiento de los ojos puede utilizarse en una amplia variedad de aplicaciones típicamente clasificadas como activa o pasiva. Aplicaciones activas implican el control de dispositivos, por ejemplo, apuntar en los juegos, el ojo activando el inicio de sesión o de manos libres para escribir. Aplicaciones pasivas incluyen el análisis de rendimiento de diseño, presentación y publicidad. Otros ejemplos son la seguridad del vehículo, el diagnóstico médico y la investigación académica.

Figura 2-6: Campo de acción del dispositivo que captura el movimiento de los ojos

(28)

15

2.2.2. Microsoft Kinect

Kinect es un dispositivo desarrollado por la compañía Microsoft junto con PrimeSense especialmente para los videojuegos de la consola Xbox 360. Este sensor de movimiento es una barra horizontal de aproximadamente 23 cm conectado a una pequeña base circular con un eje de articulación de rótula, y está diseñado para ser colocado longitudinalmente por encima o por debajo de la pantalla de video.

El dispositivo cuenta con una cámara RGB, un sensor de profundidad, un micrófono de múltiples matrices y un procesador personalizado que ejecuta el software patentado el cual proporciona captura de movimiento de todo el cuerpo en 3D, reconocimiento facial y capacidades de reconocimiento de voz. La Figura 2-7 muestra a un usuario que es capturado por la cámara de la Kinect y visualizado en la pantalla de una computadora. Existen otros dispositivos similares a Kinect que han sido lanzados posteriormente, entre los cuales se destacan los desarrollados por las empresas Asus4 y SoftKinectic5.

Figura 2-7: Kinect capturando el cuerpo de una persona delante de la cámara

2.2.3. LeapMotion

LeapMotion6 representa una forma de interactuar con la computadora mediante el uso de las manos y los dedos. Consiste en un dispositivo pequeño que se sitúa frente al monitor. Este crea un espacio de interacción 3D que se comunica directamente con un software de control instalado en la computadora. Luego, el usuario realiza movimientos

4 http://www.asus.com/Multimedia/Motion_Sensor/Xtion_PRO/

5 http://www.softkinetic.com/en-us/store.aspx

(29)

16 por encima del aparato dentro del espacio 3D y estos son captados y traducidos a acciones dentro de la aplicación actualmente ejecutando. El gesto básico que trae el software de control es el “swipe”, frecuentemente utilizado para desplazar objetos gráficos de forma horizontal (por ejemplo, avanzar en una diapositiva). En la Figura 2-8 se aprecia la digitalización que hace este dispositivo sobre la mano de un usuario.

Figura 2-8: Tecnología Leap Motion utilizada para el rastreo de las manos

2.2.4. Proyecto Tango

El Proyecto Tango7 en el que actualmente trabaja Google, tiene como objetivo dotar a los smartphones actuales con la capacidad de reconocer su entorno y formar mapas 3D del mismo. Los dispositivos del Proyecto Tango contienen componentes de hardware y software específicamente diseñados para realizar el seguimiento del movimiento 3D completo del dispositivo, creando al mismo tiempo un mapa del entorno. Estos sensores permiten al dispositivo hacer más de un cuarto de millón de mediciones 3D por segundo, actualizando su posición y orientación en tiempo real, combinando esos datos en un único modelo en 3D del espacio a su alrededor.

La integración de diversos sensores hace posible formar un mapa como el que puede verse en la Figura 2-9. Entre ellos, cámaras semejantes a las provistas por Kinect, con las que no solo se obtienen imágenes, sino que al mismo tiempo es posible estimar la profundidad de los objetos.

(30)

17 Figura 2-9: Habitación digitalizada por un dispositivo del Proyecto Tango

2.2.5. Resumen

Hasta aquí se presentaron algunos dispositivos para la captura de datos basados en el enfoque de visión. Para comparar estos dispositivos, se utilizaron los siguientes atributos: costo, uso masivo potencial y soporte para el desarrollo. El costo es el valor en dólares aproximado que tiene el dispositivo. En segundo lugar, el uso masivo determina qué tanta llegada al público común tiene o puede cada dispositivo. Por otro lado, el soporte para el desarrollo indica con qué tipo de herramientas cuentan los desarrolladores que quieran utilizar estos dispositivos para incorporarlos en sus aplicaciones. Por último, la portabilidad evalúa que tan fácil es contar con cada dispositivo en situaciones de la vida cotidiana.

Costo Uso masivo Soporte para el desarrollo

Portabilidad

The eye tribe U$S 142 Pequeño SDK Pequeña

Microsoft Kinect U$S 149.99 Grande SDK Pequeña

LeapMotion U$S 80 Pequeño SDK Pequeña

Proyecto Tango NA Grande SDK Grande Tabla 2-2: Resumen comparativo entre dispositivos para la captura de datos basados en visión.

(31)

18 de un proyecto experimental, no tiene un valor definido al público. El uso masivo, para dispositivos como The eye tribe y LeapMotion es muy limitado. Actualmente no son dispositivos que el común de la gente conozca, y probablemente no lo sean. La Kinect es un caso conocido de éxito, por lo tanto su uso masivo es alto. Por otro lado, potencialmente el proyecto Tango tiene muchas chances de ser utilizado y conocido por volúmenes importantes de gente, dado que en definitiva es un dispositivo móvil como los que hoy son masivamente utilizados por todos. El soporte para el desarrollo que brindan las empresas dueñas de los dispositivos es pareja, porque todos los casos existe un SDK complementario. Por último, para analizar la portabilidad, se pensó en las chances que tiene cada dispositivo de ser usado en situaciones de la vida real, donde se puedan aprovechar sus características para ser usadas en aplicaciones de terceros. De los dispositivos presentados, el que más chances de estar presente en la vida cotidiana es el dispositivo móvil del proyecto Tango. Esto está nuevamente validado por la tendencia actual, que nos muestra la masividad del uso de dispositivos móviles.

2.3. Dispositivos basados en sistemas de medición inercial

2.3.1. Smartphones

Los smartphones poseen un sistema de medición inercial, cuya completitud varía dependiendo de la gama del dispositivo. Generalmente cuentan con uno o más acelerómetros, con los cuales además se estiman otras medidas. Es común también que desde los modelos más simples se incluya un magnetómetro. En los dispositivos más avanzados, puede encontrarse un giroscopio, con el cual obtener datos sobre las rotaciones del dispositivo.

(32)

19 Figura 2-10: Usuario de Android utilizando un juego cuyos controles son el acelerómetro del dispositivo

2.3.2. Control wii (Wiimote)

El Wiimote es el principal dispositivo de entrada de la consola Wii de Nintendo, no utiliza cables y tiene una concepción distinta respecto a los controladores que se usaban en consolas previas. Con forma de mando de televisión, el Wiimote puede medir el movimiento que está produciendo el jugador en él.

El controlador tiene la capacidad de detectar la aceleración a lo largo de tres ejes mediante la utilización de un acelerómetro ADXL330. También cuenta con un sensor óptico PixArt, lo que le permite determinar el lugar al que el Wiimote está apuntando; además de agregar una brújula electrónica en el WiiMotionPlus.

La información recolectada por este control es enviada a la consola de video juegos, mediante una conexión Bluethoot, donde se la procesa y se realiza la interacción con el juego, tal como puede verse en la Figura 2-11.

(33)

20

2.3.3. Motion Node

MotionNode8 es una unidad de medición inercial 3-DOF (IMU) para su uso en el seguimiento 3D de movimiento, detección, y aplicaciones de captura. EL hardware IMU proporciona datos de orientación, acelerómetro, giroscopio, magnetómetro y en tiempo real. En la Figura 2-12, se puede ver el MotionNode conectado a una computadora, a la cual está transfiriendo las mediciones y las mismas se representan en la interfaz gráfica como señales y un modelo virtual del dispositivo.

El dispositivo incluye software embebido que provee ciertas funcionalidades, por ejemplo, para ajustar la sensibilidad de los sensores, obtener pre visualización de datos, realizar grabaciones, exportar datos, entre otros. Además, MotionNode provee un SDK para acceso en tiempo real a todos los sensores del dispositivo. El SDK es código abierto, y se encuentra disponible en diversos lenguajes de programación para su uso.

Figura 2-12: Demostración de uso del MotionNode conectado a una computadora

2.3.4. Resumen

Hasta aquí se presentaron algunos dispositivos para la captura de datos basados en el enfoque de medición inercial. Para comparar estos dispositivos, se utilizaron los siguientes atributos: costo, uso masivo potencial y soporte para el desarrollo. El costo es el valor en dólares aproximado que tiene el dispositivo. En segundo lugar, el uso masivo determina qué tanta llegada al público común tiene o puede cada dispositivo. Por otro lado, el soporte para el desarrollo indica con qué tipo de herramientas cuentan los desarrolladores que quieran utilizar estos dispositivos para incorporarlos en sus

(34)

21 aplicaciones. Por último, la portabilidad evalúa que tan fácil es contar con cada dispositivo en situaciones de la vida cotidiana.

Costo Uso masivo Soporte para el desarrollo

Portabilidad

Smartphones ≥U$S 150 Grande SDK Grande

Wiimote U$S 54 Mediano Bibliotecas no oficiales

Pequeña

Motion Node U$S 1000 Pequeño SDK Pequeña Tabla 2-3: Resumen comparativo entre dispositivos para la captura de datos basados en medición

inercial.

La comparación de la Tabla 2-3, resume las diferencias que existen entre estos dispositivos. Entre los dispositivos analizados, los smartphones y el Wiimote tienen precios accesibles. Sin embargo, hay que destacar que la variedad en los precios de smartphones es muy grande, por lo tanto, el valor es únicamente una referencia mínima. De los tres tipos de dispositivo, los smartphones son los más populares. El Wiimote, es un dispositivo conocido, pero no posee la cobertura que si tienen los smartphones. Más lejos aún se encuentra el Motion Node, con muy baja popularidad. Los tres dispositivos proveen soporte para el desarrollo, sin embargo, el soporte existente para el Wiimote no es oficial de los fabricantes. En cuanto a la portabilidad, de los tres tipos de dispositivos, los smartphones son los predominantes. Principalmente porque están al alcance de las personas y su uso está completamente incorporado en el día a día de sus usuarios. Los otros dispositivos, en cambio, no se encuentran entre los elementos con los que las personas interactúan a menudo durante un día tradicional.

2.4. Dispositivos basados en pantallas táctiles

2.4.1. Smartphones

Desde algunos años atrás hay disponibles en el mercado smarphones con pantallas táctiles a través de las cuales los usuarios interactúan parcial o completamente con la funcionalidad del dispositivo. Actualmente, la gran mayoría de los smartphones son de este tipo, y en general no cuentan con un teclado físico.

(35)

22 Luego surgieron las del tipo capacitivo, aportando varias características de interés. El uso de este tipo de pantallas es más suave, ya que no es necesario presionar la superficie. Debido a que las pantallas capacitivas trabajan con la capacitancia de los dedos. El tipo de tecnología permite también reconocer múltiples contactos a lo largo de la superficie, lo que expande las posibilidades de acciones que se pueden realizar con ella.

Las pantallas capacitivas son las elegidas por los fabricantes de smartphones actuales, y este tipo de pantallas permite por sus características obtener información muy interesante de las acciones del usuario sobre ellas para realizar reconocimiento de gestos. En la Figura 2-13, se ve como luego de realizar un dibujo sobre la pantalla del Smartphone, el sistema del mismo interpreta que debe abrir la calculadora.

Figura 2-13: (a) Cuadrado realizado sobre la pantalla de un smartphone por el usuario. (b) El smartphone abre la aplicación de calculadora luego de reconocer el comando mediante el dibujo realizado por el

usuario.

2.4.2. Tabletas de dibujo

Las tabletas de dibujo permiten realizar dibujos y bocetos sobre fotografías como principales funciones. Existen en diversas dimensiones y son un instrumento de uso frecuente para dibujantes, ilustradores, diseñadores.

Estos dispositivos proveen alguna forma de conexión a computadoras, generalmente mediante una interfaz USB inalámbrica. Son acompañados además, de lápices especiales capaces de trazar sobre la superficie táctil del dispositivo.

(36)

23 2-14 se ve una tableta de dibujo comercial, con su lápiz especial capaz de realizar trazos sobre la superficie.

Figura 2-14: Tableta de dibujo Wacom Intuos Pen & Touch Small

2.4.3. Resumen

En esta subsección, se han visto dispositivos que implementan el enfoque basado en pantallas táctiles. Entre estos dispositivos, las tabletas de dibujo hacen foco en cumplir un objetivo en particular. Es decir, proveer una interfaz para digitalizar los trazos que se realicen sobre su superficie, para lograr una representación digital de un dibujo. En cambio, los smartphones son dispositivos de uso general y con mayor cantidad de aplicaciones. La pantalla táctil de los smartphones, es un medio de interacción mediante la cual los usuarios dan instrucciones al dispositivo. Además, los smartphones son mucho más populares y de uso frecuente, en comparación a las tabletas de dibujo.

2.5. Dispositivos basados en señales eléctricas corporales

2.5.1. EPOC

EPOC9 es un HCI de bajo costo que se compone de: un dispositivo de hardware (neuroheadset) para adquirir y procesar previamente las señales cerebrales EEG y EMG del usuario, y un SDK para procesar e interpretar estas señales. Este dispositivo es comercializado por la empresa Emotiv10.

El neuroheadset adquiere neuro-señales cerebrales con 14 sensores salinos situados en el cuero cabelludo del usuario. También integra dos giroscopios internos para

(37)

24 proporcionar información de la posición de la cabeza del usuario. La comunicación de este dispositivo con un PC se produce de forma inalámbrica por medio de un receptor USB. En la Figura 2-15 (a) se ve el dispositivo neuroheadset, y en la Figura 2-15 (b) se aprecian las zonas de contacto de donde el neuroheadset toma mediciones de las señales que ocurren en la cabeza del usuario.

Emotiv proporciona software de dos formas: algunas suites, o aplicaciones desarrolladas, con interfaz gráfica para procesar las señales del cerebro, para entrenar al sistema, y para probar el neuroheadset; y una interfaz de programación de aplicaciones para permitir a los usuarios desarrollar software C o C ++ para ser utilizado con el neuroheadset.

El Emotiv EPOC puede capturar y procesar ondas cerebrales en las bandas Delta (0,5-4 Hz), Theta ((0,5-4-8 Hz), Alfa (8-1(0,5-4 Hz), y Beta (1(0,5-4-26 Hz). Con la información de las señales en estas bandas, se pueden detectar acciones expresivas, emociones afectivas, acciones cognitivas.

Las acciones expresivas corresponden a movimientos de la cara. La mayoría de los movimientos tienen que ser entrenado inicialmente por el usuario, y como el usuario proporciona más datos de entrenamiento, la precisión en la detección de estas acciones normalmente mejora. El ojo y expresiones relacionadas con los párpados (parpadear, guiño, mirar a la izquierda, y mirar a la derecha) no se puede entrenar porque la información sobre estas expresiones se basa en el software de Emotiv.

Las emociones afectivas detectables por el Emotiv EPOC son el compromiso, la emoción instantánea, y la emoción a largo plazo. Ninguno de los tres tiene que ser entrenado.

(38)

25 Figura 2-15: (a) Neuroheadset EPOC y el receptor inalámbrico USB. (b) Muestra con colores intuitivos los

lugares de contacto del neuroheadset y la cabeza del usuario.

2.6. Herramientas de reconocimiento de gestos con dispositivos

móviles

En esta sección se analizan los frameworks, bibliotecas o herramientas que dan soporte al reconocimiento de gestos. Para cada una de ellas, se brinda una pequeña descripción de su funcionamiento y se mencionan sus falencias más notorias.

2.6.1. Nuidroid

Nuidroid es un middleware para reconocimiento de gestos 3D desarrollado por 3DiVi, que permite realizar aplicaciones controladas por movimiento al estilo de Kinect para ARM/Android y otras plataformas embebidas. Particularmente ha sido probado con la consola de video juegos OUYA11 y el Nexus 7 de Google.

Posee distintos módulos con los que provee reconocimiento de rostro y captura del cuerpo. El reconocimiento de rostro involucra la orientación de la cabeza, el reconocimiento de género, edad, emociones, entre otras cosas. Dichas características son soportadas a través de una cámara RGB tradicional. La captura del cuerpo consiste en la captura y segmentación completa del cuerpo de una persona, traduciéndolo a un formato de esqueleto similar a la Kinect. La obtención del esqueleto es lograda mediante un sensor de profundidad que combinado a la cámara logran la captura del cuerpo humano.

(39)

26 El funcionamiento de estos módulos tiene dos grandes dependencias, el hardware adicional y los requerimientos del dispositivo que procese la información. En primer lugar, la utilización de este middleware implica la incorporación de la cámara/sensor de profundidad. Es decir se requiere tener conectado algún dispositivo tales como ASUS Xtion PRO o la misma Kinect. Además, tiene grandes restricciones de performance12, reduciendo la variedad de dispositivos que realmente pueden utilizar al middleware.

2.6.2. Android Gesture Recognition Tool

El trabajo realizado en [7], presenta un conjunto de herramientas para la clasificación automática de gestos. Permite grabar gestos de movimientos de las manos, aprovechando los acelerómetros de smartphones con Android. Una herramienta de aprendizaje de gestos hace posible la creación de conjuntos de entrenamiento de gestos. Estos conjuntos de gestos de entrenamiento contienen grabaciones del acelerómetro, con mediciones que describen gestos, y cada una se etiqueta de manera que indica a qué clase de gesto pertenece.

El servicio de reconocimiento de gestos puede reconocer nuevos gestos realizados y proporcionar el resultado del reconocimiento a las aplicaciones de Android que se suscriben a este servicio. El resultado contiene la etiqueta y la distancia al gesto entrenado más similar. Cuanto menor sea la distancia mayor será la similitud. El servicio soporta diferentes conjuntos de entrenamiento que permiten personalizar los gestos grabados o definir conjuntos de entrenamiento de gesto específicos para aplicaciones particulares. Para el reconocimiento de gestos el servicio utiliza el algoritmo Dynamic Time Warping, que se ha ampliado para clasificar señales multidimensionales.

(40)

27 Figura 2-16: Aplicación de entrenamiento de gestos de Takg Framework, pantalla principal (izq) y menú

de edición de gestos (der)

El otro componente es la aplicación de entrenamiento de gestos, que proporciona una manera sencilla de crear conjuntos de entrenamiento de gestos, gestionarlos y probar el reconocimiento de gestos con ellos. Al iniciar la aplicación, se verá una pantalla tal como se muestra en la parte derecha de la Figura 2-16. Desde esa sencilla interfaz, se puede acceder a la mayor parte de la funcionalidad, tal como la definición de conjuntos de entrenamiento, iniciar el entrenamiento, detenerlo, entre otras cosas. En la parte derecha de la Figura 2-16, se ve otra pantalla de la aplicación, donde se pueden editar los gestos ya definidos.

Sin embargo, el conjunto de herramientas es limitado en algunos aspectos como extensibilidad, configuración y cobertura de sensores. La herramienta provee una interfaz AIDL13, mediante la que acceder al servicio de reconocimiento que reside conjuntamente con la aplicación de entrenamiento. Al tratarse de un producto empaquetado, genera imposibilidad de incorporar comportamiento personalizado, ampliar su funcionalidad, etc. A la hora de realizar el entrenamiento desde la aplicación, no brinda la posibilidad de variar la forma de capturar los gestos, o de enviar parámetros para la misma causa, y el algoritmo utilizado para entrenar/reconocer gestos es fijo. Además, únicamente aprovecha la información que genera el acelerómetro de los smartphones. Si bien es el sensor de movimiento más común y con el que la gran

(41)

28 mayoría de los dispositivos cuentan, falta una estrategia para aprovechar los restantes sensores cuando estén presentes en el dispositivo en cuestión.

2.6.3. BitGym Motion SDK

Es una herramienta de desarrollo que captura la posición e inclinación de uno o dos jugadores delante de la cámara de un dispositivo móvil. El caso de uso estándar es que el jugador coloque el dispositivo móvil en posición vertical y luego retroceda hasta 4-10 metros de distancia. El SDK de BitGym utiliza la cámara frontal del dispositivo para rastrear el pecho del jugador, devolviendo la posición (x, y, z) y la inclinación del torso de los jugadores.

El SDK está disponible para utilizar en aplicaciones Android, iOS y Unity, y las aplicaciones desarrolladas deben subscribirse a eventos de actualización de posiciones provistos por el SDK, que se producen cuando un jugador se mueve. Una vez recibida la información de posición e inclinación, cada aplicación debe decidir cómo interpretarla. Dicho comportamiento puede apreciarse en la Figura 2-17, donde una usuario de una tablet utiliza un juego desarrollado con el soporte de Motion SDK y salta para darle movimiento al personaje del mismo.

Figura 2-17: Usuario de una tablet utilizando un juego construido con Motion SDK

(42)

29 puede utilizarse la cámara frontal y solamente entrega información asociada a procesamiento de imágenes de la cámara, no así de los sensores de movimiento.

2.6.4. Resumen

En esta sección se han mostrado algunas herramientas que dan soporte al reconocimiento de gestos. De estas herramientas, se analizan las principales características de interés: múltiples enfoques de captura, extensión de enfoques de captura, variedad de algoritmos y conocimientos requeridos. La característica múltiples enfoques de captura, se focaliza en la posibilidad de utilizar la herramienta para reconocer gestos en distintas circunstancias con distintos mecanismos para capturar datos. De manera relacionada, la extensión de enfoques de captura, es la posibilidad qe brinda la herramienta de incorporar enfoques adicionales a la herramienta en cuestión. Por otro lado, la variedad de algoritmos, mide cuántos algoritmos para reconocer gestos provee la herramienta. En último lugar, los conocimientos requeridos, son los conocimientos que un desarrollador requiere para utilizar la herramienta para reconocer gestos. Múltiples enfoques de captura Extensión de enfoques de captura Variedad de algoritmos Conocimientos requeridos

Nuidroid NO NO Ninguno Altos

Android Gesture Recognition Tool

NO NO Solo uno Bajos

BitGym Motion SDK

NO NO Ninguno Altos

Tabla 2-4: Resumen comparativo entre herramientas para dar soporte al reconocimiento de gestos.

(43)

30 detalle cómo es el proceso necesario para realizarlo. En cambio, las restantes herramientas facilitan el acceso a los datos que el enfoque de captura provee, pero cada desarrollador debe saber cómo utilizarlos para realizar el reconocimiento de gestos con esos datos.

2.7. Técnicas de reconocimiento

Independientemente de donde se capturen los datos y qué mecanismo se utilice para lograrlo, se tienen que emplear técnicas de reconocimiento de gestos para interpretar esos datos. Esta es una tarea que involucra aspectos que varían desde el modelado, análisis y reconocimiento del movimiento hasta estudios psicolingüísticos. Varias técnicas y modelos matemáticos han sido aplicados al área entre las cuales se pueden mencionar: Dynamic Time Warping (DTW) y Hidden Markov Models (HMM). A continuación se muestra un relevamiento de las técnicas más conocidas y aplicadas. Se explica brevemente cada una y se citan algunos autores científicos que han hecho uso de las mismas para el reconocimiento de gestos, donde en algunos casos se ha usado Kinect para la toma de datos, y en otros, sensores habituales en dispositivos móviles.

2.7.1. Dynamic time warping

Dynamic Time Warping o Alineamiento Temporal Dinámico, es un algoritmo utilizado para medir las similitudes entre dos secuencias de datos las cuales pueden variar en tiempo o velocidad. Por ejemplo, dadas dos personas que caminan por un sendero, tomando de esta actividad una secuencia de pasos seguidos por cada persona, mediante DTW se puede determinar qué tan parecidos fueron sus recorridos, incluso también si una persona caminó más rápido o más lento que la otra, o si en el recorrido se produjeron aceleraciones o desaceleraciones de velocidad.

(44)

31 [16], clasificándolo en dos categorías dependiendo del comportamiento medido con variados sensores de un dispositivo móvil. En [17] por otro lado, se diseñó un algoritmo basado en DTW cuya entrada es tomada desde un acelerómetro. Se enumeran dos posibles aplicaciones, la autenticación de usuarios, e interfaces de usuario de dispositivos móviles basadas en gesto en tres dimensiones.

2.7.2. Procrustes

En estadística, el análisis de Procrustes es una forma de análisis de figuras estadístico usado para analizar la distribución de un conjunto de figuras. Para comparar la forma de dos o más objetos, los objetos deben primero ser óptimamente superpuestos. Este proceso de superposición de Procrustes es llevado a cabo mediante la óptima traslación, rotación y escalado uniforme de los objetos. Luego de realizar estos tres pasos, los objetos coincidirán exactamente si sus formas son idénticas.

El análisis Procrustes ha sido aplicado en el reconocimiento de gestos mediante la superposición de las figuras formadas por distintas zonas del cuerpo o incluso todo el cuerpo. En [18] se utiliza este análisis para el reconocimiento de la forma de caminar de una persona. Este trabajo basa los principios de Procrustes para producir un algoritmo mejorado de reconocimiento. Por otro lado, en [19] usaron Procrustes para la detección de gestos realizados con la cara. También, en [20] proponen un novedoso framework para el reconocimiento del lenguaje con señas. En este enfoque aplican una alineación del conjunto de entrenamiento utilizando el análisis de Procrustes.

2.7.3. Modelos ocultos de Márkov

(45)

32 problema se resuelve con el algoritmo de Viterbi. Tercero, dada una secuencia de salida o un conjunto de tales secuencias, encontrar el conjunto de estados de transición y probabilidades de salida más probables. En otras palabras, entrenar a los parámetros de HMM dada una secuencia de datos. Este problema se resuelve con el algoritmo de Baum-Welch.

En [21] utilizaron el modelo en dos etapas para estimar la posición de las manos del usuario. En la primera, una vez identificadas las manos, ejecutaron HMM para mapear la posición de dichas manos a una posición más precisa. La información resultante fue la entrada a la segunda etapa, donde nuevamente usaron estos modelos de Márkov para discriminar entre todas las posturas de las manos posibles. Otro enfoque fue presentado en [22] para la creación de una técnica basada en el reconocimiento de los gestos con las manos. En este trabajo usaron las trayectorias descritas por el movimiento y luego HMM para la clasificación. De manera semejante, en [23] se emplearon los modelos de Markov para reconocer actividad humana basada en las mediciones que provee el acelerómetro de un dispositivo móvil. El reconocimiento se dividió en dos partes, primero se utilizaron HMM de bajo nivel para reconocer acciones desde las mediciones en bruto. Luego una capa de HMM de más alto nivel evaluando la secuencia de acciones, reconocía una actividad específica.

2.7.4. String matching

En informática, los algoritmos de String Matching son aquellos que intentan encontrar un patrón o cadena de caracteres dentro de un texto o dentro de otra cadena más larga. Existen distintos tipos de algoritmos, donde cada uno resuelve cierta particularidad del problema con diferentes complejidades y costos computacionales.

(46)

Knuth-Morris-33 Pratt, que pertenece al conjunto de algoritmos de String Matching, para acelerar el reconocimiento de gestos.

2.7.5. Resumen

Con las cuatro técnicas presentadas es posible interpretar gestos a partir de las trayectorias que describen las partes del cuerpo de una persona o las mediciones físicas que provee un sensor inercial. La elección de las mismas se basó en los relevamientos científicos estudiados, donde se han implementado adaptaciones de las técnicas para ser usadas en el reconocimiento de gestos obteniendo buenos resultados.

En esta tesis serán implementadas las cuatro técnicas con el fin de evaluar el desempeño de cada una y obtener conclusiones que permitirán determinar bajo qué condiciones conviene utilizar cada técnica. Para esto, se realizarán experimentos que comparen la eficiencia y eficacia que tienen para interpretar gestos como así también analizar la facilidad con que las mismas pueden ser adaptadas y utilizadas en el contexto del reconocimiento de gestos.

2.8. Conclusiones

A lo largo de las secciones anteriores, se han mostrado distintas variantes para cada aspecto que esta tesis abordará durante su desarrollo. Algunos de los enfoques existentes para capturar datos se mencionan en la sección 2.1. Para cada enfoque de captura se describen luego distintos dispositivos que los implementan en las secciones 2.2, 2.3, 2.4 y 2.5. Luego, en la sección 2.6, se mencionan herramientas de distinta envergadura que brindan soporte al desarrollo de software con reconocimiento de gestos. Por último, en la sección 2.77, se mencionan las técnicas de IA más conocidas, cuya función es entrenar una base de conocimiento a partir de la información capturada de los gestos y luego reconocer gestos con ella.

(47)

34 principalmente por la aplicabilidad que tienen ambos enfoques y la variedad de gestos que permiten. Además, el enfoque basado en señales eléctricas corporales posee también características muy prometedoras, sin embargo, su utilización en el reconocimiento de gestos no está aún tan difundido.

Luego, para cada enfoque de captura, se analizaron diversos dispositivos actuales que implementan esos enfoques, mostrando que los dispositivos móviles son los más prometedores. Por un lado, la mayoría de los enfoques de captura están contenidos nativamente por dispositivo móviles. Esto significa, que los propios dispositivos móviles ya proveen varios de los mecanismos encargados de capturar datos. En los casos que esto no sucede, por ejemplo, para las señales eléctricas corporales, existen adaptadores que permiten conectar el dispositivo de captura a dispositivos móviles. Esta posibilidad de conexión a dispositivos móviles, en general se repite para todos los dispositivos de captura. Además, es fundamental valorar la popularidad y aceptación que los dispositivos móviles tienen en la actualidad por las personas. Esto permite pensar, que su uso seguirá extendiéndose, produciendo un mercado interesante para el reconocimiento de gestos. Estas circunstancias, son las principales motivaciones para orientar esta tesis al contexto de los dispositivos móviles

Más adelante, se evaluaron herramientas que dan algún soporte al reconocimiento de gestos, en las cuales se notaron algunas falencias. En primer lugar, como puede verse en la sección 2.6.4, ninguna de las herramientas evaluadas soporta múltiples enfoques de captura. Esta característica, como se explicó, es bastante importante en el contexto actual. En segundo lugar, el soporte que brinda la mayoría de las herramientas simplifica el uso de la información provista por algún enfoque de captura, de manera que pueda utilizarse en el reconocimiento de gestos. Por ejemplo, brindando la inclinación que toma el cuerpo de una persona delante de una cámara o las posiciones de ciertas partes del cuerpo en un momento dado. Sin embargo, esa información de alto nivel respecto al movimiento de las personas, no es un enfoque de reconocimiento de gestos. Por lo tanto, estas herramientas requieren que los desarrolladores tengan conocimientos suficientes para implementar dicho enfoque en sus aplicaciones. Por otro lado, Android Gesture Recognition Tool provee un enfoque de reconocimiento de gestos. Aunque, es un enfoque que no puede personalizarse, por ejemplo, para optar por distintos algoritmos de reconocimiento. Además, posee el inconveniente de estar orientada a un solo enfoque de captura de datos.

(48)

35 primer lugar, brindar soporte para reconocer gestos a partir de múltiples enfoques de captura. Esto significa, que el reconocimiento de gestos pueda alimentarse por diversos enfoques de captura de una manera uniforme. Por lo tanto, se puede amoldar a las necesidades particulares que tenga cada desarrollador en sus aplicaciones. Complementariamente, se debe poder incorporar al reconocimiento de gestos nuevos enfoques de captura, para posibilitar que el enfoque de reconocimiento mantenga vigencia a medida que surgen nuevas tecnologías para capturar datos. Además, se deben proveer facilidades a los desarrolladores que no tienen conocimientos en el campo del reconocimiento de gesto. Es decir, que no tengan necesidad de implementar algoritmos complejos ni tampoco de entender cómo manejar la información provista por los enfoques de captura. Estas características, del mismo modo que los enfoques de captura, deben tener la suficiente flexibilidad para que los desarrolladores las acomoden según sus necesidades y así poder aplicar el reconocimiento de gestos en distintas circunstancias.

(49)
(50)

37

3. Enfoque de reconocimiento de gestos

Del análisis de los enfoques existentes, se desprende la dificultad de combinar diferentes tipos de datos de entrada provenientes de los sensores para reconocer gestos de un usuario. Hay sensores de movimiento como el acelerómetro o el giroscopio y otros que brindan posiciones del cuerpo como la cámara Kinect. Cada tipo de dato entregado por un sensor es a priori distinto del resto y tiene sus particularidades. Por lo tanto, combinar estas variabilidades en la estructura y tipo de datos para identificar un gesto determinado es un problema abierto en el área de reconocimiento de gestos.

A partir de esta problemática, se propone el framework DronGR, cuyo enfoque tiene como objetivo proveer soporte para implementar aplicaciones NUI en dispositivos móviles. Para lograrlo el enfoque de DronGR encapsula distintas cuestiones comunes del reconocimiento de gesto y brinda una interfaz a través de la cual los desarrolladores pueden comunicar su aplicación con el framework. Esta característica permite que los desarrolladores puedan dedicar mayor tiempo a la lógica de negocio de su aplicación y no tengan necesidad de profundizar sus conocimientos en el campo del reconocimiento de gestos. Además el enfoque soporta distintos sensores de captura de datos, pero lo más importante es que permite incorporar nuevos. También posibilita distintas opciones de configuración para lograr el mejor reconocimiento de gestos según las necesidades del desarrollador. La Figura 3-1 muestra la visión general del enfoque planteado. El enfoque del framework sigue el proceso clásico de machine learning que consta de una fase de entrenamiento y una fase de reconocimiento. La fase de entrenamiento tiene la meta de procesar a lo largo de distintas etapas los movimientos que realiza un entrenador para obtener un gesto entrenado. Estos movimientos son acciones

realizadas con una o varias partes del cuerpo y pueden ser medidas con algún sensor. Cada una de las etapas por las que atraviesan los movimientos aporta algún cambio en dichos movimientos. Estos cambios logran datos homogéneos y refinados que describen digitalmente un movimiento en particular del mundo real. Estos datos refinados reciben el nombre de gesto entrenado. Luego comienza la fase de reconocimiento, cuya principal responsabilidad es procesar los movimientos que

realiza un usuario de la aplicación implementada sobre DronGR para realizar una predicción. Esta predicción está constituida por el gesto entrenado que el proceso de reconocimiento encuentra más similar al movimiento del usuario.

Referencias

Documento similar