Maestr´ıa en Ingenier´ıa de Sistemas y Computaci´
on
Facultad de Ingenier´ıa
Dise˜
no y Desarrollo de Prototipo de Habitaci´
on
Hospitalaria Interactiva con Kinect
TESIS QUE PRESENTA:
Juli´an Esteban Arcos Argoty
PARA OBTENER EL T´ITULO DE Magister en Ingenier´ıa de Sistemas y
Computaci´on
DIRECTOR DE TESIS: Ph.D. Pablo A. Figueroa Forero
ii
Agradecimientos
Agradezco de manera formal a la Universidad de los Andes quien fue part´ıcipe de mi
segunda etapa de desarrollo profesional a trav´es de la carrera de Maestr´ıa en Ingenier´ıa
de Sistemas y Computaci´on. La formaci´on recibida ha sido de la m´as alta calidad
acad´emica y personal.
Un agradecimiento a mis tutores y evaluadores quienes sin su apoyo y consejos este
proyecto no se hubiera podido convertir en realidad: Pablo Figueroa, Henry Gallardo,
Juan Carlos Brice˜no, Tiberio Hern´andez y Pilar Navas.
Tambi´en a mi familia, compa˜neros de clase y al grupo IMAGINE que estuvieron en
Resumen
Una visita hospitalaria puede generar varios sentimientos negativos, en donde se
incluyen ansiedad y falta de confort por parte de los pacientes.
El presente trabajo hace uso del dise˜no de interacciones y del dise˜no centrado en
el usuario para indigar sobre sus requerimientos y necesidades en la consecuci´on de
la creaci´on de una habitaci´on interactiva con un dispositivo de interacci´on natural
-Kinect, que pueda reducir los sentimientos descritos previamente.
Esto permitir´a que las personas utilicen su voz y una serie de gestos corporales para
controlar los elementos b´asicos del mobiliario de una habitaci´on hospitalaria, haciendo
de su estad´ıa una experiencia diferente, m´as c´omoda y m´as aut´onoma.
Los prototipos desarrollados fueron evaluados por personas que podr´ıan ser
usuar-ios potenciales de esta aplicaci´on, obteniendo resultados prometedores tanto en el
iv
Abstract
When patients visit hospitals, they tend to develop negative feelings such as anxiety
and lack of comfort.
This thesis uses the techniques of Interaction Design and User-Centered Design
with the main objective to ask users about their needs and requirements to develop
an interactive hospital room with a natural interaction device like Kinect, so we could
achieve a reduction on those negative feelings described previously.
This will allow that people could use their voices and a set of body gestures to
control basic devices that could be find in a hospital room, making the hospitalization
process a different, more comfortable and with more autonomy.
Prototypes were developed and evaluated into two stages by people that could use
the application potentially. The results show that people agree to use this form of
´
Indice General
Agradecimientos ii
Resumen iii
Abstract iv
´Indice General v
´Indice de Tablas ix
´Indice de Figuras xi
1 Introducci´on 1
1.1 Contexto y caracterizaci´on del problema . . . 1
1.2 Formulaci´on del Problema . . . 2
1.3 Justificaci´on . . . 3
1.4 Objetivos . . . 4
1.4.1 Objetivo General . . . 4
1.4.2 Objetivos Espec´ıficos . . . 4
2 Marco Contextual 5 2.1 Trabajo Previo . . . 5
3 Marco Te´orico 9 3.1 Dise˜no de Interacciones . . . 9
3.1.1 Enfoque Centrado en el Usuario . . . 9
vi ´INDICE GENERAL
3.2 Objetivos de usabilidad . . . 10
3.3 Tipos de interfaces naturales . . . 12
3.3.1 Interfaces de Voz . . . 12
3.3.2 Interfaces Basadas en Gestos . . . 13
3.3.3 Interfaces Multimodales . . . 13
3.4 Dispositivo Kinect . . . 14
3.5 Uso del arreglo de micr´ofonos del Kinect . . . 16
3.5.1 La arquitectura del SDK de Kinect para Audio . . . 16
3.5.2 El arreglo de micr´ofonos de Kinect . . . 18
3.5.3 Procesamiento de audio en el Kinect . . . 19
3.5.4 Procesamiento de los datos de audio . . . 20
3.5.5 Nivel de Confianza . . . 21
3.6 Reconocimiento de Voz . . . 21
3.6.1 Como funciona el reconocimiento de voz . . . 21
3.7 Construcci´on de Aplicaciones Controladas por Gestos . . . 24
3.7.1 Qu´e es un Gesto . . . 24
3.7.2 Enfoques para el reconocimiento de Gestos . . . 25
3.7.3 Reconocimiento de Gestos B´asicos . . . 26
3.7.4 Calcular la distancia entre dos articulaciones . . . 28
4 Metodolog´ıa 31 4.1 Levantamiento de requerimientos y necesidades . . . 31
4.1.1 Dise˜no para el Desarrollo y Evaluaci´on de Prototipos . . . 33
4.2 Fase II . . . 33
4.3 Fase III . . . 33
5 Descripci´on Experimento No. 1 35 5.1 Estrategia de Evaluaci´on . . . 35
6 Resultados Experimento No. 1 41 6.1 Reconocimiento de Palabras . . . 41
7 Descripci´on Experimento No. 2 45
7.1 Estrategia de Evaluaci´on . . . 45
8 Resultados Experimento No. 2 51 8.1 Descripci´on y Resultados . . . 51
9 Conclusiones y Trabajo Futuro 59 9.1 Conclusiones. . . 60
9.2 Trabajo futuro . . . 61
9.2.1 A corto plazo . . . 61
9.2.2 A largo plazo . . . 61
A Protocolo de TV LG [11] 63
B Protocolo de Usuario 69
´
Indice de Tablas
7.1 Lista de tareas que se pueden realizar con comandos de voz . . . 47
7.2 Lista de tareas que se pueden realizar con comandos por gestos. . . 48
7.3 Lista de tareas a realizar de forma libre . . . 49
´
Indice de Figuras
3.1 El dispositivo Kinect de Microsoft [13]. . . 14
3.2 Una muestra de una imagen tomada con la c´amara RGB [13]. . . 15
3.3 Una proyecci´on de la matriz de puntos en Infrarojo [13]. . . 15
3.4 Diagrama de flujo de la distribuci´on de las aplicaciones desde los micr´ofonos de Kinect hasta su aplicaci´on [16]. . . 17
3.5 Imagen de la descripci´on de la distancia entre micr´ofonos del circuito de Kinect [16]. . . 19
3.6 Descripci´on del modelo ac´ustico que realiza Kinect para reconocer voz [16]. . . 23
3.7 Diagrama del nivel de interacci´on entre los usuarios y la aplicaci´on [16]. 26
3.8 Ubicaci´on de los ejes corporales que usa Kinect [16]. . . 27
3.9 Diagrama utilizado para ilustrar el ejemplo del teorema para calcular la distancia entre dos puntos [16]. . . 28
5.1 Montaje del prototipo de la habitaci´on realizado en condiciones de lab-oratorio. En la parte superior de la imagen se observa la disposici´on del Kinect y en la parte inferior un computador port´atil para indicar los resultados de Voz. . . 36
5.2 La figura muestra el ejemplo de la ejecuci´on del gesto de llevar la mano izquierda hacia la izquierda. Se ense˜na el esquema de distancia que sigue el sistema. . . 38
xii ´INDICE DE FIGURAS
5.3 Montaje de la combinaci´on de Kinect con Arduino Leonardo y LED, registradas con una c´amara de 60fps. En la imagen de la izquierda se observa la aplicaci´on esperando el comando, y en la imagen de la derecha el LED queda completamente encendido. . . 39
6.1 N´umero de palabras reconocidas positivamente (azul) vs. falsos positivos (rojo). Se observa su tendencia positiva en la gran cantidad de palabras reconocidas con ´exito . . . 42
6.2 Nivel de confianza para el reconocimiento de cada una de las 7 palabras. Cinco de las siete palabras poseen un nivel de confianza superior a 0.90. Las dos restantes se encuentran alrededor de 0.87 lo cual se considera un buen nivel de confianza en reconocimiento. . . 43
6.3 Nivel de reconocimiento para los 6 gestos. Se observa su tendencia posi-tiva al reconocer eficientemente la mayor´ıa de los gestos ejecutados. . . 44
8.1 Imagen de la interfaz de la aplicaci´on. El dise˜no muestra un men´u de ayuda que se encuentra activo en una entrada de video del televisor. . . 52
8.2 Montaje de la combinaci´on del televisor controlado interactivamente a trav´es del Kinect. Estos controles se realizan con comandos de voz y gestos corporales. . . 53
8.3 Captura de pantalla de una de las pruebas realizadas a una de las per-sonas que particip´o en la evaluaci´on. . . 54
8.4 Resultados de como fueron activados los comandos del televisor. Se observa la tendencia de que se realizan mayores comandos de voz que de gestos, excepto en la ´ultima funci´on de prender y apagar el televisor. . 55
8.5 Resultados del nivel de confianza de los comandos de voz. En este caso se manifiesta la fiabilidad del sistema en reconocer con un alto nivel de confianza las frases utilizadas. . . 56
8.6 Resultados de reconocimiento y no reconocimiento de los comandos de voz. Se observa una tendencia a un reconocimiento positivo en color azul, lo que indica la baja tasa de error del nuestra aplicaci´on. . . 56
8.7 Resultados de reconocimiento y no reconocimiento de los gestos. Las per-sonas que participaron en la evaluaci´on tambi´en tuvieron un alto grado de ´exito al ejecutar las funciones con un alto grado de recocimiento positivo. 57
8.8 Evaluaci´on de la forma en la que desarrollaron las tareas. En color azul y con un valor de 59%, la forma de interacci´on m´as utilizada fue la de la combinaci´on Voz+Voz. . . 58
8.9 Resultados de las pruebas cualitativas siguiendo la escala Likert. Pun-tajes de 1 son negativos y de 7 son positivos. Se nota cierta tendencia de que los valores superan la barrera de 5.0, lo cual se considera que las calificaciones fueron positivas. . . 58
Cap´ıtulo 1
Introducci´
on
1.1
Contexto y caracterizaci´
on del problema
El grado de satisfacci´on en t´erminos del confort que reflejan los visitantes a un hospital,
ha sido el objeto de estudio de Baker et al., (2000). ´El encontr´o que las personas que
visitan estos lugares no se encuentran del todo satisfechas debido principalmente, a
la falta de comunicaci´on al momento de tomar decisiones m´edicas entre el personal
asistencial y los pacientes. Esto provoca una disminuci´on considerable en percepci´on
de confort de las personas [1, 3].
Esto concuerda con el reporte hecho por Karlsson et al., (1995) quien narra sobre la
alta prevalencia de s´ıntomas como depresi´on, ansiedad y estr´es en pacientes que visitan
frecuentemente cl´ınicas y hospitales [15, 17].
Por ejemplo, Derogatis et al., (1983) [8] report´o que casi la mitad de pacientes de c´ancer ambulatorios quienes hab´ıan sido admitidos en tres centros diferentes, hab´ıan
desarrollado alg´un tipo de desorden no-psiqui´atrico, principalmente depresi´on. De
man-era similar, la depresi´on ha sido identificada como un factor de riesgo que puede llegar
a aumentar la morbilidad en pacientes que se recuperan de un infarto al miocardio
agudo [8, 15, 17]. De esta manera, los m´edicos tienden a subestimar el grado de estr´es que pueden a llegar a presentar los pacientes haciendo que los tratamientos resulten
inadecuados en ocasiones [15].
Por otra parte, a los hospitales se les ha otorgado el inc´omodo t´ıtulo de ser un lugar
poco placentero para visitar, tal y como asegura Shelley Taylor (1979) [28]. La principal raz´on radica en que los hospitales crean un ambiente de despersonalizaci´on, que obliga
al paciente a renunciar al control de su autonom´ıa e independencia para realizar sus
tareas diarias. Taylor reporta que cuando esto sucede, los pacientes tienden a
depen-der de sus acompa˜nantes o de otros m´etodos como asumir roles de comportamientos
de ”buenos pacientes” o ”malos pacientes” [28]. Los primeros pueden llegar a obtener cierto tipo de privilegios que har´an m´as llevadera su estad´ıa, mientras que los
segun-dos experimentar´an ciertas incomodidades durante su recuperaci´on. Sin embargo, una
revisi´on de esos patrones de aquellos ”buenos pacientes” puede deberse a un estado
de ansiedad o b´usqueda de ayuda por depresi´on, mientras que los ”malos pacientes”
pueden llegar a exhibir inconformidad ante una remoci´on temporal de sus libertades
[28]. Este tipo de conductas que se han identificado en algunos estudios, confirma lo planteado por Taylor al se˜nalar que no es agradable visitar a un hospital.
Sumado a lo anterior, Mumford et al., (1982) reporta un conjunto de estudios que
demuestran que personas que fueron identificadas como depresivas y temerosas antes
de una intervenci´on quir´urgica, tienden a empeorar y aumentar sus tiempos de
re-cuperaci´on en aproximadamente dos d´ıas m´as en comparaci´on a quienes tuvieron un
mayor acompa˜namiento por parte del personal asistencial. [22]
Es por esto que el inter´es de mejorar el estado de ´animo del paciente a trav´es de
la recuperaci´on de su autonom´ıa para desarrollar tareas, es el gran objetivo que se
pretende alcanzar en este estudio.
1.2
Formulaci´
on del Problema
Este trabajo hace parte de un proyecto de expansi´on de la Fundaci´on Santa Fe de Bogot´a
se busca la construcci´on de nuevas habitaciones que puedan proveer un mayor grado
de autonom´ıa y confort a los pacientes que deban permanecer en parcial o completo
reposo.
1.3. JUSTIFICACI ´ON 3 dispositivo o herramienta a un paciente hospitalizado para que alcance un mayor grado
de autonom´ıa y confort sin comprometer su proceso de recuperaci´on?
1.3
Justificaci´
on
Una de las razones fundamentales para desarrollar este proyecto, es que generalmente
los pacientes hospitalizados deben mantenerse en parcial o completo reposo, lo que
gen-era malestar por la dependencia bajo la cual se encuentran sometidos al ver limitada
su movilidad y su autonom´ıa. Los estudios previamente introducidos en la
contextual-izaci´on del problema [15, 17, 22, 24, 28], mostraron que el grado de ansiedad que las personas presentan cuando visitan un hospital es elevado, ya que se hace una asociaci´on
entre la p´erdida de autonom´ıa y el acto quir´urgico al que uno ser´a sometido. Ese grado
de ansiedad tambi´en se puede ver reflejado en la falta de confort que pueden a llegar
a presentar algunos hospitales, lo cual es algo que se puede ver como un objeto
difer-enciador entre instituciones [1]. El uso de sensores de movimiento o de reconocimiento de voz, pueden abrirles una nueva opci´on para ser m´as aut´onomos y poder realizar
m´ultiples actividades de forma natural y segura sin necesidad de desplazarse. Estas
actividades incluir´ıan algunas funciones b´asicas como por ejemplo prender y apagar las
luces, abrir y cerrar cortinas, operar el timbre de llamado de enfermer´ıa, controlar las
funciones principales del televisor de la habitaci´on entre otras. O algunas m´as
avan-zadas a futuro como por ejemplo operar las diversas funciones para cambio de posici´on
de la cama hospitalaria, realizar y recibir llamadas telef´onicas y video llamadas, acceder
a informaci´on y noticias en Internet, controlar la temperatura de la habitaci´on, entre
otras actividades.
Adem´as de darle actividad y libertad al paciente, este servicio les podr´ıa generar una
percepci´on de confort al sentirse inmersos en lo que podr´ıa ser llamada una habitaci´on
inteligente. Todo esto tendr´a como fin mejorar la calidad del servicio hospitalario al
hacer de su estad´ıa una experiencia m´as agradable.
Es por esto, que nuestro objetivo es desarrollar un proyecto que permita aplicar
del personal m´edico como para los pacientes, con el fin de proveer una alternativa de
interacci´on entre el usuario y el hospital, reduciendo esa ansiedad y aburrimiento que se
tiene al visitar un hospital. Para comenzar, se pretende implementar esta tecnolog´ıa a
manera de prototipo que podr´ıa ser utilizado en el modelo de habitaciones hospitalarias
de la nueva unidad de la Fundaci´on Santa Fe de Bogot´a.
1.4
Objetivos
1.4.1
Objetivo General
Dise˜no e implementaci´on un prototipo de una herramienta interactiva mediante el uso
de interfaces de interacci´on natural (Kinect), para su aplicaci´on en ambientes de
habita-ciones hospitalarias.
1.4.2
Objetivos Espec´ıficos
• Enumerar un conjunto de requerimientos seg´un las especificaciones de los
intere-sados en el proyecto (stakeholders), para convertirlos en funciones.
• Desarrollar un conjunto de aplicaciones utilizando un sensor de interacci´on natural (Kinect) utilizando voz y gestos.
• Realizar una evaluaci´on de viabilidad del dispositivo a utilizar y especificar el grado de utilidad que puede llegar a tener seg´un la restricci´on tecnol´ogica.
• Dise˜nar un protocolo de uso de las aplicaciones dise˜nadas para el dispositivo de
interacci´on natural (Kinect).
• Aplicar en algunas personas o pacientes hospitalarios, el protocolo de pruebas de usuario del prototipo desarrollado.
Cap´ıtulo 2
Marco Contextual
2.1
Trabajo Previo
La dom´otica es un conjunto de sistemas que son capaces de automatizar una vivienda
aportando bienestar, confort y seguridad. Algunas corporaciones han desarrollado
pro-totipos intentando imaginar un hogar inteligente, conectado a m´ultiples dispositivos
para controlar de forma remota las luces, c´amaras y cerraduras, as´ı como tambi´en el
ajuste autom´atico de estas variables dependiendo de los factores ambientales externos
para hacer del hogar una experiencia agradable, f´acil y sencilla. Sin embargo, dotar un
espacio con esta caracter´ısticas es un importante reto tecnol´ogico y financiero, ya que
cada uno de estos dispositivos puede llegar a costar entre (USD)50−100 [9].
El inter´es de la automatizaci´on de hogares ha permitido la creaci´on de interfaces
usando dispositivos de control y dispositivos humano-computador para ayudar a las
personas en sus actividades diarias. Sin embargo, no hay reportes claros de que este
tipo de dispositivos hayan sido utilizados espec´ıficamente en habitaciones hospitalarias.
Mauri et al., (2006) [19], propone una soluci´on basada en Visi´on de Computadores para algunas personas con par´alisis y discapacidades motoras de orden neurol´ogico.
Estas personas poseen ciertas dificultades al momento de realizar una interacci´on con
dispositivos como controles remotos, controles de enfermer´ıa, botones de l´amparas o de
interacci´on cl´asica a trav´es de teclados y ratones para hablar de computadores de
man-era espec´ıfica [19]. Tambi´en propone y demuestra que hay soluciones interactivas para
personas en situaci´on de discapacidad y con limitaciones motoras como es el caso de las
personas hospitalizadas. La forma en la que Mauri plantea este modelo de interacci´on
a distancia, es a trav´es del reconocimiento de objetos o dispositivos similares a unos
apuntadores que se ajustan alrededor de la cabeza para ejecutar acciones que est´an
fuera del alcance del sujeto de forma no tradicional y as´ı puedan recuperar el hecho de
realizar distintas funciones por su propia cuenta. En el primer caso del reconocimiento
de objetos, implica el hacer uso de una c´amara conectada a un computador para que
cada vez que encuentre el patr´on configurado se desplieguen las funciones para las que
hab´ıan sido configurados [19]. Este trabajo hace el aporte de acercar a personas con discapacidades a usar herramientas computacionales. Los impedimentos asociados a
limitaciones motoras pueden llegar a desencadenar algunos sentimientos de estr´es,
de-presi´on y frustraci´on al no poder realizar algunas tareas que se consideran triviales.
Existe tambi´en un trabajo que concluye en que existe una relaci´on directa entre la
depresi´on y las discapacidades motoras y de orden neurol´ogico [2]. Aunque esto es un importante avance al querer incluir a esta poblaci´o´on con esta alternativa, el hecho de
usar un elemento adicional ya sea un objeto u otro dispositivo, hace que la persona no
sienta que esta interactuando de forma natural con su cuerpo ni su voz.
El proyecto realizado por Posada-G´omez et al., (2012) tuvo como su principal
ob-jetivo ayudarle a una poblaci´on que identifican como discapacitada mediante el uso de
un Kinect aplicado en el hogar, que hiciera un cierto tipo de tareas que el paciente
inmovilizado no era capaz de cumplir por su propia cuenta [25]. Este ´ultimo trabajo de Posada-G´omez, abre la puerta al potencial de Kinect como dispositivo de entrada para
realizar controles de una habitaci´on hospitalaria y poderle brindar a esa autonom´ıa
limitada una alternativa adicional, a diferencia de ahora en donde el paciente se somete
a la total dependencia de un tercero o de sus acompa˜nantes cuando visita una cl´ınica.
Sin embargo, el trabajo presenta una falta grande de informaci´on sobre la forma en
la que hicieron el levantamiento de requerimientos, en c´omo realizaron la evaluaci´on
de sus gestos, de la latencia de su aplicaci´on ni de la percepci´on de satisfacci´on que
tuvieron ya que no se encuentra en su escrito el hecho de haber realizado pruebas de
funcionalidad ni tampoco pruebas de usuario.
2.1. TRABAJO PREVIO 7 por primera vez como lo demuestran los trabajos de Ebert et al., (2012) Gallo et al.,
(2011) y Suelze et al.(2013)[10,12,27]. Los tres trabajos est´an enfocados al manejo de im´agenes radiol´ogicas a distancia sin necesidad de tocar las interfaces del computador
para poder navegar a trav´es de ellas. Esto hace que el uso de una interfaz basada en
interacci´on natural pueda ser apta para su uso en instituciones de salud para proveer
una experiencia diferente al personal m´edico. Sin embargo, el proyecto propuesto quiere
incluir a los pacientes en esta revoluci´on de este tipo de interfaces para que tambi´en
Cap´ıtulo 3
Marco Te´
orico
3.1
Dise˜
no de Interacciones
3.1.1
Enfoque Centrado en el Usuario
La propuesta de este trabajo esta basada en el dise˜no de una interacci´on centrada en
el usuario. Esto tiene un componente en el desarrollo de la aplicaci´on, ya que no s´olo
se enfocar´a en el desarrollo de la tecnolog´ıa sino que las solicitudes y caracter´ısticas
que el usuario final decida, ser´an las metas que el producto deber´a cumplir. Como
consecuencia de esta afirmaci´on, un sistema que tenga un buen dise˜no estar´a enfocado
en las habilidades y las percepciones de las personas que har´an uso del producto para
que sus limitaciones no se conviertan en una restricci´on de uso. Es por esta raz´on que
en 1985 se establecieron tres principios para que un sistema sea ´util y f´acil de hacer
[14].
• Enfoque primario en los usuarios y sus tareas. Esto implica que antes de empezar
a desarrollar una aplicaci´on se debe contar con la opini´on y el entendimiento de los
usuarios potenciales de la aplicaci´on. Esto quiere decir estudiar las caracter´ısticas
cognitivas, de comportamiento, antropom´etricas y aptitudes de los usuarios. Esto
requiere involucrar a las personas en esta etapa temprana de dise˜no para hacerlos
pasar por un proceso de observaci´on y recolecci´on de informaci´on para capturar
las posibles tareas que querr´an realizar.
• Mediciones emp´ıricas. En el desarrollo de los prototipos iniciales, las reacciones y
el desempe˜no de las personas debe ser observado y medido. Estas acciones ser´an
monitorizadas para estudiar el desempe˜no del prototipo en forma cuantitativa y
cualitativa.
• Dise˜no iterativo. Cuando se encuentran problemas en las pruebas de usuario, estos deben ser solucionados para posteriormente volver a ser ensayados. Esto
ser´a esencial para futuros prototipos que se quieran desarrollar intentando
adi-cionar funciones complementarias que minimicen los errores y potencien las
car-acter´ısticas positivas de la aplicaci´on.
3.2
Objetivos de usabilidad
La usabilidad se refiere en t´erminos generales a asegurar que los productos interactivos
son f´aciles de aprender, eficientes al momento de usarlos y que generen una agradable
desde la perspectiva del usuario. Esto involucra la optimizaci´on de las interacciones que
las personas tienen con los productos y as´ı permitirles que desarrollen sus actividades
en el trabajo, en la calle y en su vida diaria. De manera m´as espec´ıfica, la usabilidad
se puede dividirse en los siguientes objetivos [26]:
• Efectivos de usar (Efectividad).
• Eficientes de usar (Eficiencia).
• Seguros de usar (Seguridad).
• Tengan una buena utilidad (Utilidad).
• F´aciles de aprender (Facilidad de aprendizaje).
• F´aciles de recordar para usar (Facilidad de recordaci´on).
Los objetivos de usabilidad son t´ıpicamente manejados como preguntas. El prop´osito
es el de proveer el dise˜no de la interacci´on con un significado concreto de evaluar varios
3.2. OBJETIVOS DE USABILIDAD 11 trav´es de ir respondiendo las preguntas, los dise˜nadores pueden ser alertados de manera
temprana acerca de problemas de dise˜no y conflictos que no hab´ıan sido considerados.
Sin embargo, con el solo hecho de preguntar ”si el sistema es f´acil de aprender”, no
va a ser suficiente ni de mucha ayuda. Preguntar sobre la usabilidad, es una tarea
que implica tener ideas m´as detalladas, como por ejemplo, ”¿cu´anto tiempo le tomar´a
en usar las funciones m´as b´asicas de un nuevo navegador?; ¿en qu´e medida se pueden
ver beneficiados teniendo una experiencia previa?; ¿cu´anto tiempo le tomar´a al usuario
el aprender un completo conjunto de funciones?”. Esto puede llevar a obtener m´as
informaci´on m´as ´util [26].
Para cada objetivo de usabilidad se tiene un conjunto de preguntas as´ı:
Efectividad. Es un objetivo bastante general y se refiere a qu´e tan bueno es el
producto en lo que se supone tiene que hacer. Preguntas: ¿Es el producto capaz de
permitirle a las personas el aprender, llevar a cabo sus tareas en forma eficiente, acceder
a la informaci´on que necesitan o comprar lo que ellos quieran?
Eficiencia. Se refiere a la forma en la que el producto apoya a los usuarios en llevar
a cabo sus tareas. Preguntas: ¿Una vez que los usuarios han aprendido como usar el
producto para realizar sus tareas, pueden sostener un mismo nivel de productividad?
Seguridad. Involucra proteger al usuario de condiciones peligrosas y situaciones
indeseables. En relaci´on al primer aspecto ergon´omico, se refiere a las condiciones
externas en donde las personas trabajan. El segundo aspecto se refiere al hecho de
proveer una ayuda adicional para proteger al usuario en situaciones accidentales para
prevenirlo de situaciones potencialmente peligrosas. Preguntas: ¿Cu´al es el rango de
errores que son posibles utilizando el producto y qu´e medidas existen para permitirle
al usuario recuperarse f´acilmente de ellas?
Utilidad. Se refiere al grado en donde el producto provee la forma correcta de
funcionalidad para que los usuarios puedan hacer lo que necesitan o quieran hacer.
Preguntas: ¿El producto provee un conjunto apropiado de funciones que les puedan
permitir a los usuarios llevar a cabo todas sus tareas en la forma que ellos quieren
hacerla?
Facilidad de Aprendizaje. Se refiere en qu´e tan f´acil un sistema se puede usar. Es
c´omo utilizar un sistema. Ellos quieren empezar directamente y volverse r´apidamente
competentes en llevar a cabo sus tareas sin emplear mucho esfuerzo. Preguntas: ¿Es
posible para los usuarios resolver el c´omo usar el producto explorando su interfaz e
intentando algunas funciones?, ¿Qu´e tan dif´ıcil ser´a el aprender el conjunto completo
de funciones?
F´acil de recordar. Se refiere en qu´e tan f´acil de recordar a usar es un producto
despu´es de haberlo aprendido. Esto es especialmente ´util en productos interactivos que
uso poco frecuente. Si los usuarios no han usado una operaci´on por un par de meses,
ellos deber´ıan ser capaces de recordar o al menos saber c´omo realizar algunas tareas
principales. Preguntas: ¿Qu´e tipo de interfaces de apoyo han sido proporcionadas a
los usuarios para ayudarles a recordar c´omo llevar a cabo ciertas tareas, especialmente
para productos u operaciones de uso poco frecuentes?
3.3
Tipos de interfaces naturales
3.3.1
Interfaces de Voz
Una interfaz de voz es aquella en la que una persona le habla a un sistema que posee
una aplicaci´on de lenguaje hablado, como un servicio telef´onico para realizar reservas de
trenes o tiquetes a´ereos. Es com´unmente utilizado para realizar averiguaciones de horas
de vuelos, o realizar una transacci´on como comprar un tiquete o pagar una factura. Es
una forma espec´ıfica de interacci´on en lenguaje natural que se basa en el principio de
conversaci´on ya sea que un usuario le hable a una aplicaci´on o reciba instrucciones de
la misma. La tecnolog´ıa de reconocimiento de voz ha desarrollado aplicaciones que
pueden ser usadas por personas en situaci´on de discapacidad, tales como procesadores
de texto, lectores web y software para controlar las funciones de los dispositivos de un
hogar.
La dificultad que presentan estas interfaces es que su evoluci´on no ha estado a la
par del desarrollo de los dispositivos que acompa˜nan a estas aplicaciones. En ocasiones
presentan un alto n´umero de falsos positivos y de malas interpretaciones que no recogen
la intenci´on del usuario de forma adecuada lo cual se vuelve frustrante de usar. Esto
3.3. TIPOS DE INTERFACES NATURALES 13 Cuando se realiza este paso las opciones que puede tomar el usuario son m´as limitadas
haciendo que la tasa de errores se reduzca y su uso se vuelva m´as fluido y apropiado
[26].
3.3.2
Interfaces Basadas en Gestos
Investigadores y desarrolladores han experimentado con un amplio n´umero de
dispos-itivos de entrada diferentes a la cl´asica combinaci´on de teclado y rat´on que puedan
proveer una experiencia de interacci´on m´as fluida y natural, por ejemplo algo que
rep-resente acciones o gestos del mundo real y sean interpretadas por los dispositivos que
quieran controlar. Una de estas formas se conoce como interfaces basadas en gestos.
El uso de c´amaras que puedan capturar la informaci´on del mundo real a trav´es de
cier-tas t´ecnicas de visi´on de computadores puede realizar una lectura de los movimientos
corporales o gestos para ser interpretados como una intenci´on del usuario.
En la actualidad estos se encuentran representados en sistemas de juegos como el
Kinect de Xbox o el EyeToy de Sony. Estos dispositivos permiten usar el cuerpo como
interfaz de entrada en los videojuegos que permitan esta tecnolog´ıa, eliminando la forma
tradicional de usar un control [26].
3.3.3
Interfaces Multimodales
Las interfaces multimodales se basan en el principio en el que m´as es m´as para proveer
una experiencia m´as enriquecida y compleja a los usuarios [4]. Esto se explica por medio de la multiplicaci´on o redundancia del uso de la misma informaci´on para un
mismo fin usando diferentes modalidades como tacto, visi´on, sonido, voz, gestos o una
combinaci´on de ellos. Este tipo de interfaces puede proveer m´as libertad, eficiencia
y m´as expresividad a una interacci´on humano-computador. El uso de de diferentes
medios de comunicaci´on pueden otorgarle al usuario un conjunto de alternativas al
mismo tiempo, ya sea usando una forma de interacci´on a elecci´on o combinarlas en
Figura 3.1: El dispositivo Kinect de Microsoft [13].
3.4
Dispositivo Kinect
La principal raz´on de utilizar un dispositivo de interacci´on natural como el Kinect de
Microsoft, obedece a sus m´ultiples sensores trabajando en forma paralela para tener
m´as de una opci´on de interacci´on. Estos sensores incluyen el uso de c´amaras infrarojas,
RGB y micr´ofonos [13]. (Figura 3.1).
El Kinect fue anunciado por primera vez en 2009, con la capacidad de detectar
movimiento en un ambiente tridimensional usando un proyector infrarrojo, una c´amara
RGB (C´amara basada en los colores Rojo, Verde y Azul) y un sensor de profundidad
[13]. Presenta sus mejores caracter´ısticas cuando el objeto a localizar se encuentra entre una distancia de 0.8m y 3.5m desde el Kinect, y posee un ´angulo de visi´on de 57◦ en
el eje horizontal y de 43.5◦ en el eje vertical [21].
La c´amara RGB del Kinect tiene una tasa de 30 cuadros por segundo y una
res-oluci´on de 640 x 480 pixeles (Figura 3.2). Es usada principalmente para aislamiento de color e identificaci´on de piel humana. En seguimiento de objetos, el RGB es
com´unmente conocido por realizar rastreo de localizadores posicionados sobre un fondo
oscuro monocrom´atico. Por otra parte, la limitaci´on del RGB es que esta solo es usada
ante ciertas condiciones de iluminaci´on y se puede volver inestable cuando se usa en
exteriores [13,21].
El Kinect est´a equipado tambi´en con un proyector Infrarrojo que funciona a trav´es
de un sensor CMOS que captura toda la informaci´on en un ambiente 3D (Figura 3.3). El rango del sensor de profundidad es ajustable y el software de Kinect es capaz de
3.4. DISPOSITIVO KINECT 15
Figura 3.2: Una muestra de una imagen tomada con la c´amara RGB [13].
Figura 3.3: Una proyecci´on de la matriz de puntos en Infrarojo [13].
calibrarlo autom´aticamente basado en el ambiente f´ısico [13].
El siguiente sensor es considerado como uno de los m´as importantes; el sensor de
Profundidad. Esta imagen tambi´en puede ser visualizada a trav´es de gradientes de
color, expresando azul como uno de los puntos m´as lejanos desde el Kinect y blanco
como uno de los m´as pr´oximos. Aunque la resoluci´on de este sensor es igual a la de la
c´amara RGB, este posee una salida de 11-bit de profundidad, resultando un total de
2048 niveles de profundidad [13].
Adicional a las c´amaras, el Kinect cuenta tambi´en con un arreglo de cuatro (4)
micr´ofonos que ayudan a detectar la ubicaci´on de la persona que lo origina, as´ı como
voz [16].
3.5
Uso del arreglo de micr´
ofonos del Kinect
El Kinect cuenta con un arreglo de micr´ofonos que soporta un conjunto de
carac-ter´ısticas de audio. El Kinect tiene cuatro (4) micr´ofonos ubicados en la parte inferior
del dispositivo y apuntando hacia la misma direcci´on del mismo en una forma lineal
[16].
El arreglo de micr´ofonos permite lo siguiente:
• Capturar la mejor calidad de sonido al proveer un m´odulo de procesamiento de se˜nales incorporado el cual incluye supresi´on de ruidos y cancelaci´on de ecos.
• Identifica la direcci´on de la fuente del sonido entrante.
• Basado en el sonido de cada micr´ofono en el arreglo, puede autom´aticamente
encontrar la direcci´on de donde proviene el sonido y puede escuchar a un micr´ofono
de forma espec´ıfica al suprimir los otros ruidos
Una vez la direcci´on de la fuente de sonido es encontrada, el Kinect es lo
suficiente-mente inteligente para cambiar la direcci´on de la misma forma que la fuente se mueve.
Uno de los ejemplos m´as comunes de tal escenario es cuando se juega un juego
uti-lizando comandos de voz. Si el jugador se mueve, la direcci´on de la fuente de sonido se
mueve autom´aticamente.
El Kinect, tiene un m´odulo incorporado de procesamiento de audio que se encarga
proveerle de todas sus funciones ac´usticas. Sin embargo, uno de los aspectos m´as
im-portantes es su capacidad de reconocimiento de voz. Este arreglo es capaz de reconocer
el lenguaje humano de una forma bastante clara al enfocarse espec´ıficamente en una
direcci´on al cancelar los ruidos del ambiente.
3.5.1
La arquitectura del SDK de Kinect para Audio
El SDK instala el componente de Audio quien es el que en realidad interact´ua con el
3.5. USO DEL ARREGLO DE MICR ´OFONOS DEL KINECT 17
Figura 3.4: Diagrama de flujo de la distribuci´on de las aplicaciones desde los micr´ofonos
de Kinect hasta su aplicaci´on [16].
voz, el Kinect utiliza el API de lenguaje subyacente en el sistema operativo de Windows.
Aunque el Kinect utiliza internamente sus m´odulos de captura y procesamiento de
audio, es el API del sistema operativo el que se encarga del reconocimiento del lenguaje,
el cual se soporta en los componentes de audio existentes [16].
Del siguiente diagrama (Figura3.4), se puede ver que el audio capturado del arreglo de micr´ofonos del Kinect se pasa a la aplicaci´on a trav´es del Kinect y de los componentes
de audio de Windows.
En compa˜n´ıa de los manejadores del dispositivo, los siguientes tambi´en son
consid-erados como componentes esenciales.
• DirectX Media Object (DMO).
La mayor´ıa de las funcionalidades de audio, tal y como lo son la Supresi´on de Ruidos
(Noise Suppression - NS), la Cancelaci´on de Eco Ac´ustico (Acoustic Echo Cancellation
- AEC), y el Control Autom´atico de Ganancia (Automatic Gain Control - AGC) es
controlado por el DMO. Sin embargo, estas no son funcionalidades nuevas del DMO;
el SKD expone un conjunto de APIs que pueden controlar las caracter´ısticas
anterior-mente mencionadas a trav´es de la aplicaci´on de Kinect. Cuando existe la necesidad de
procesar alg´un tipo de datos utilizando la aplicaci´on de Kinect, se necesitar´a invocar
es-tos m´etodos desde el SDK de Kinect haciendo que sean llamados los m´etodos existentes
en el DMO para ejecutar esta acci´on [16].
3.5.2
El arreglo de micr´
ofonos de Kinect
El arreglo de micr´ofonos es el coraz´on del audio de Kinect. Para lograr hacer esto se
tienen en cuenta las siguientes ´areas de inter´es y retos que tiene el sistema.
La mayor ´area de inter´es para contar con un m´odulo de procesamiento de audio, era
el de proveer reconocimiento de voz humano y el de reconocer la voz de los jugadores
cuando estos se est´an moviendo y pueden variar su posici´on.
• El primer reto era el de identificar audio con un sonido fuerte. Considerando la situaci´on de que se est´e jugando un videojuego y sonidos fuertes van a provenir
desde distintas partes, como el televisor. Esto crea una dificultad al momento de
reconocer la voz de los jugadores, por el ruido del televisor y los ecos y ruidos de
la habitaci´on.
• El segundo reto era el de identificar el lenguaje dentro de un ´area de rango din´amica. Mientras se est´a jugando, el jugador puede cambiar su posici´on o
varios jugadores pueden estar hablando desde distintas direcciones.
Para sobreponerse a estos problemas y para proveer una de las mejores soluciones
en el reconocimiento de voz, el arreglo de micr´ofonos del Kinect puede obtener voz y
sonido de alta calidad.
El sensor de Kinect tiene cuatro micr´ofonos; tres se ubican en el lado derecho y uno
en el lado izquierdo. La siguiente imagen muestra la forma en la que se encuentran
3.5. USO DEL ARREGLO DE MICR ´OFONOS DEL KINECT 19
Figura 3.5: Imagen de la descripci´on de la distancia entre micr´ofonos del circuito de
Kinect [16].
La l´ogica al ubicarlos en diferentes lugares es para identificar lo siguiente:
• El origen del sonido.
• La direcci´on del sonido entrante.
Ya que todos los micr´ofonos se ubican en distintas posiciones, el sonido llegar´a a
cada uno de ellos en diferentes intervalos de tiempo, lo que significa que deber´ıa existir
alg´un retardo en la recepci´on del sonido de cada micr´ofono. De esta manera, el Kinect
puede entender la direcci´on desde donde proviene el sonido. El Kinect tambi´en es lo
suficientemente inteligente para calcular la distancia aproximada del origen del sonido
basado en la onda y la diferencia de tiempo, tal y como lo logran los o´ıdos y el cerebro
humano.
3.5.3
Procesamiento de audio en el Kinect
El Kinect tiene incorporado su propio m´odulo de procesamiento de audio para filtrar
los datos. Una vez la fuente y la posici´on del sonido son calculadas, este m´odulo une las
se˜nales de todos los micr´ofonos y producen una se˜nal sonora de alta calidad. El Kinect
Ya que el Kinect es el responsable del reconocimiento de voz humana, el m´odulo
de procesamiento de audio aplica un filtro pasabandas para ajustarse a las frecuencias
de la voz humana que se encuentra entre 80Hz y 1100Hz. Sumado a esto, el m´odulo tambi´en es responsable de filtrar otros tipos de ruidos, remover ecos y producir una
versi´on amplificada de la voz [16].
El m´odulo de procesamiento de audio utiliza varios Procesadores de Se˜nales
Digi-tales (Digital Signal Processors - DSP), que poseen algoritmos complejos que producen
mejores reconocimientos de voz.
3.5.4
Procesamiento de los datos de audio
La clase KinectAudioSource, no solo ayuda a capturar los datos de audio de los sensores,
sino que adem´as ofrece el control de muchos aspectos del procesamiento del audio al
interactuar con el DMO subyacente.
Cancelaci´on de Eco: La cancelaci´on de eco ayuda a incrementar la calidad del
sonido. El componente de Cancelaci´on Ac´ustica de Ecos (Acoustic Echo Cancellation
- AEC) dentro del m´odule de procesamiento de audio, es el responsable de remover los
ecos que son enviados a los micr´ofonos.
Supresi´on de Ruidos: El ruido es el sonido que el Kinect no entiende, o el cual no
pretende ser usado. Mientras usamos el audio puede haber diferentes posibilidades de
sonidos, haciendo que los ruidos puedan provenir de diferentes fuentes. El supresor
de ruidos es usado por el m´odulo de procesamiento de audio, y suprime las se˜nales de
audio no deseadas e los ignora para niveles futuros de procesamiento.
Control de Ganancia Autom´atico: El Kinect, posee un m´odulo de Controlador
Au-tom´atico de Ganancia (Automatic Gain Controller - AGC) ubicado sobre el final, es
usado como un amplificador para fuente de sonido entrante. Esto permite obtener
mayor ganancia a la voz independiente de qu´e tan alejado se encuentre el jugador y del
3.6. RECONOCIMIENTO DE VOZ 21
3.5.5
Nivel de Confianza
El nivel de confianza de la fuente de sonido, es usado para determinar la exactitud del
sonido que fue capturado por el sensor. El valor del nivel de confianza posee rangos
que van desde 0.0 y 1.0, en donde 0.0 es que no hay confianza y 1.0 es confianza total.
El mejor escenario para usar este nivel de confianza, es el de reconocimiento de voz. Se
puede aceptar o rechazar fragmentos de lenguaje basados en el nivel de confianza.
3.6
Reconocimiento de Voz
Una de las claves de las Interfaces de Usuario Naturales es la de reconocimiento de
voz. La aplicaci´on de reconocimiento de voz les permite a los usuarios el decir cualquier
tipo de comandos frente al micr´ofono para que usando una aplicaci´on para ejecutar
varias acciones dependiendo del comando reconocido. El arreglo de micr´ofonos del
Kinect funciona como un excelente dispositivo de entrada para usarlas en aplicaciones
habilitadas para lenguaje. Esto provee una mayor calidad en la captura de audio,
comparado con un micr´ofono sencillo al proveer supresi´on de ruidos, cancelaci´on de
ecos y el hecho de escuchar en una direcci´on particular con la ayuda del localizador de
la fuente de sonido.
3.6.1
Como funciona el reconocimiento de voz
Una aplicaci´on puede tener diferentes tipos de Interfaces de Usuario (User Interfaces
-UI), y controlar una UI utilizando el lenguaje es un enfoque de las interacciones con
usuarios. Usando el sistema de reconocimiento de voz, los usuarios dicen lo que ello
quieren y as´ı el computador ejecuta el comando haciendo que los resultados se reflejen
en la UI.
Se pueden categorizar los patrones de reconocimiento de voz en las siguientes formas:
• Modo de comando: Este modo es en donde se puede usar un comando y el motor de reconocimiento de voz reconoce la palabra. A manera de ejemplo, se puede
empezar o detener un juego utilizando simplemente las palabras ”empezar” y
• Modo de frase o de orden: En este modo se puede utilizar una frase para ejecutar
una operaci´on. Como ejemplo para rotar una l´ınea se utilizar´ıa el comando ”rotar
la l´ınea”.
Como una primera mirada, el reconocimiento de voz pareciera como una simple
l´ogica de emparejamiento, pero no. El motor de reconocimiento de voz consiste en los
siguientes dos grandes m´odulos:
• Modelo ac´ustico.
• Modelo de lenguaje.
Cada uno de los m´odulos tiene una sola responsabilidad para el reconocimiento de
voz. El reconocimiento de voz, es una tarea de reconocimiento de patrones, el cual se
lleva a cabo en diferentes pasos con el motor de reconocimiento de voz. La siguiente es
la lista de operaciones que se realiza para reconocer el discurso del usuario:
1. Los micr´ofonos capturan el flujo de audio y en un primer paso convierten esa se˜nal
an´aloga en una se˜nal digital, la cual puede ser entendida por el computador. Esta
operaci´on es hecha por la primera etapa del m´odulo de procesamiento de audio
ya que este requiere una mejor representaci´on ac´ustica para poder ser usada por
el motor de reconocimiento de voz.
2. En un siguiente paso, las se˜nales sonoras de audio son enviadas al motor de
reconocimiento de voz para que reconozca el audio.
3. El modelo ac´ustico del motor de reconocimiento de voz, analiza el audio y
con-vierte el sonido en un n´umero de elementos b´asicos de discurso; estos son llamados
fonemas. Los fonemas son unidades de discurso, los cuales son usados para
em-parejar con la voz. El modelo ac´ustico es uno de los mayores componentes del
motor de reconocimiento de voz. Esto incluye algunos algoritmos internos de
aprendizaje.
4. El modelo de lenguaje es el segundo mayor componente del motor de reconocimiento
3.6. RECONOCIMIENTO DE VOZ 23
Figura 3.6: Descripci´on del modelo ac´ustico que realiza Kinect para reconocer voz [16].
la palabra al combinar los fonemas dentro de un diccionario digital incorporado.
Entonces lo que hace es que combina los fonemas creados por el modelo ac´ustico
con una palabra y lo compara con el diccionario digital incorporado.
5. Si la palabra existe en el diccionario, el motor de reconocimiento de voz identifica
lo que el usuario intent´o decir.
La siguiente figura3.6 muestra un ejemplo b´asico del proceso de reconocimiento de voz utilizando diferentes m´odulos en el reconocimiento.
Por ejemplo, la palabra ”welcome”, la cual es capturada por el micr´ofono, es
con-vertida a una se˜nal digital. El modelo ac´ustico del motor de reconocimiento de voz
divide la palabra en fonemas como”wel”,”co” y ”me”. Despu´es el modelo de lenguaje
el diccionario hay muchas palabras que pueden caer bajo la combinaci´on del mismo
conjunto de caracteres. Ya que se defini´o desde antes la palabra ”welcome”, el motor
de reconocimiento de voz retornar´a un valor exitoso que la palabra que concordaba [16].
3.7
Construcci´
on de Aplicaciones Controladas por
Gestos
El reconocimiento de gestos es uno de los hitos de Kinect. La cantidad de innovaci´on
e investigaci´on que se est´a desarrollando en tecnolog´ıa de gestos es bastante amplia.
Los gestos puestos en t´erminos simples, pueden ser descritos como acciones corporales
que conllevan un mensaje. Pueden ser acciones simples como saludar con las manos,
mover las mu˜necas, o una acci´on complicada que involucre m´ultiples partes del cuerpo.
La tecnolog´ıa usada para identificar gestos y convertirlos a una forma que pueda ser
reconocida por un dispositivo basado en gestos se llama reconocimiento de gestos. El
reconocimiento de gestos recae en una mezcla de algoritmos matem´aticos y rastreo de
esqueletos para reconocer y clasificar los gestos. Cuando se habla de interfaces naturales
de usuario, el reconocimiento de gestos es la primera idea que se viene a la mente. El
reconocimiento de gestos provee una integraci´on transparente entre un ambiente natural
y el dispositivo [16].
3.7.1
Qu´
e es un Gesto
Un gesto es una acci´on o movimiento corporal humano que tiene la intenci´on de
comu-nicar un mensaje, y estos gestos le permiten a nuestra aplicaci´on saber lo que nosotros
queremos hacer. En el contexto del SDK del Kinect para Windows, un gesto pude ser
interpretado por una acci´on corporal por la cual el jugador transmite algunos mensajes
o informaci´on hacia la aplicaci´on. Es similar al concepto de escribir en un teclado, o
dibujar con la ayuda de un monitor y un l´apiz t´actil o utilizar un dispositivo t´actil.
En todos estos casos la entrada fue dise˜nada para un prop´osito particular, el cual el
dispositivo debe entender y as´ı proveer la salida deseada al interactuar con la aplicaci´on.
3.7. CONSTRUCCI ´ON DE APLICACIONES CONTROLADAS POR GESTOS 25 Kinect. Basado en esta entrada, la aplicaci´on necesita realizar ciertas funciones. No
existe ninguna conexi´on f´ısica entre los usuarios y el dispositivo. Por ende, esta
tec-nolog´ıa es la piedra angular de la interacci´on natural para Kinect [16].
3.7.2
Enfoques para el reconocimiento de Gestos
El reconocimiento de gestos es una de los procesos m´as interesantes que involucra
difer-entes c´alculos, algoritmos, enfoques y metodolog´ıas. El SDK del Kinect para Windows
no provee ning´un API incorporado para el reconocimiento de gestos. Por ende, depende
completamente del desarrollador el definir estos enfoques y escribir su propia l´ogica para
reconocer y jugar con sus gestos.
Los enfoques pueden variar dependiendo de si los gestos que se escojan y de c´omo
estos se van a aplicar a la aplicaci´on, convirtiendo los gestos de simples a complejos. Se
puede clasificar los enfoques para el reconocimiento de gestos de las siguientes maneras
[16].
• Reconocimiento de gestos b´asicos.
• Enfoque algor´ıtmico.
• Enfoque de red de pesos.
• Enfoque basado en plantillas.
El escoger entre estos enfoques depende completamente de los desarrolladores y de
los requerimientos de la aplicaci´on. En algunas ocasiones, un gesto para una aplicaci´on
puede ser simple, por ejemplo, juntar las dos manos, medir distancias entre
articula-ciones; o algo m´as avanzado como el movimiento de barrido con las dos manos. Por
otra parte, puede ser tan complejo como realizar ejercicios de saltos o abanicando una
raqueta.
Refi´erase al siguiente diagrama (Figura 3.7) para entender el completo nivel de interacci´on que sucede entre los usuarios y la aplicaci´on [16].
El usuario interact´ua con el sensor de Kinect, el que se encarga de capturar las
Figura 3.7: Diagrama del nivel de interacci´on entre los usuarios y la aplicaci´on [16].
Las aplicaciones basadas en gestos tendr´an un componente llamado el motor de
re-conocimiento de gestos, el cual reconoce el gesto basado en las acciones de los usuarios
y el enfoque definido en la aplicaci´on. Al reconocer los gestos, la aplicaci´on pueden
entonces la acci´on necesaria y as´ı notificar al usuario. El motor de reconocimiento
t´ıpicamente realiza las siguientes tareas:
• Acepta las acciones del usuario en forma de datos de esqueleto.
• Empareja los puntos de los datos con la l´ogica predefinida para un gesto espec´ıfico.
• Ejecuta las acciones si el gesto es reconocido.
3.7.3
Reconocimiento de Gestos B´
asicos
El enfoque fundamental de un reconocimiento de gestos es el de jugar con los puntos
de las articulaciones del esqueleto y aplicar una l´ogica b´asica para realizar algunas
ac-ciones [6]. La detecci´on b´asica de gestos b´asicos depende en un conjunto de condiciones predefinidas conocidas como el conjunto resultado. Si la acci´on realizada es emparejada
3.7. CONSTRUCCI ´ON DE APLICACIONES CONTROLADAS POR GESTOS 27
Figura 3.8: Ubicaci´on de los ejes corporales que usa Kinect [16].
con el conjunto resultado, se puede decir que el usuario ha realizado cierto gesto, de lo
contrario no.
La detecci´on depende del rastreo de las articulaciones del esqueleto humano porque
se definen las condiciones de los gestos basados en las articulaciones. Estas
articula-ciones se representan de la siguiente manera. Cada articulaci´on del esqueleto es medida
en un plano tridimensional (X, Y, Z). Las coordenadasX yY especifican la localizaci´on de la articulaci´on en el plano, y laZ es la distancia del usuario hacia el Kinect. (Figura
3.8)
Si la articulaci´on se mueve desde el lado de la mano derecha hacia el lado de la
mano izquierda o viceversa, el eje X de la articulaci´on cambiar´a. Es similar para las articulaciones que se mueven de forma vertical hacia arriba o hacia abajo para el eje
Y. Cambios en el ejeZ se ver´an reflejados si la articulaci´on se mueve hacia adelante o hacia atr´as del sensor.
Los c´alculos para los gestos b´asicos se pueden hacer de dos maneras.
• Calcular la distancia entre las diferentes articulaciones
• Comparando las posiciones de las articulaciones y la desviaci´on entre las posiciones de las articulaciones
Figura 3.9: Diagrama utilizado para ilustrar el ejemplo del teorema para calcular la
distancia entre dos puntos [16].
3.7.4
Calcular la distancia entre dos articulaciones
La representaci´on de datos del esqueleto es tridimensional; sin embargo, antes de mirar
el plano de coordenadas 3D, se consideran los puntos en un plano de coordenadas 2D
con solo los ejes X y Y para as´ı poder calcular la distancia entre dos puntos. En matem´aticas generales, para calcular la distancia entre dos puntos necesitamos hacer
uso del Teorema de Pit´agoras. El teorema dicta que: Para un tri´angulo rect´angulo,
el cuadrado de la hipotenusa es igual a la suma del cuadrado de los otros dos lados.
Seg´un el siguiente diagrama (Figura3.9) que ilustra el teorema puede ser aplicado para calcular la distancia entre dos puntos.
Considere que tiene un punto A(X1, Y1) y un punto B(X2, Y2) en un plano
coor-denado bidimensional Se quiere calcular la distancia d entre los puntos A y B. Para calcular la distancia usando el Teorema de Pit´agoras, se debe dibujar una l´ınea paralela
al eje X desde el punto A, y otra l´ınea desde el punto B paralela al eje Y. Considere las dos l´ıneas intersectadas en el punto C(X2, Y1). Como se sabe, los ejes X y Y son
perpendiculares entre s´ı; los cuales forman un tri´angulo rect´angulo entre los puntosA,
3.7. CONSTRUCCI ´ON DE APLICACIONES CONTROLADAS POR GESTOS 29 formado entre A, B y C. La distancia se calcula con la siguiente f´ormula (3.1) [16]:
d=p(distance of A, C)2+ (distance of B, C)2
d=p(X2−X1)2+ (Y2−Y1)2
(3.1)
El mismo teorema funciona de igual manera para un plano tridimensional, y la
distancia entre dos puntos (X1, Y1, Z1) y (X2, Y2, Z2) puede ser calculada con la siguiente
f´ormula (3.2):
Cap´ıtulo 4
Metodolog´ıa
Este proyecto cuenta con tres fases de desarrollo para crear una aplicaci´on que hace uso
de dispositivo de interacci´on natural que bien se adapta a los lineamientos propuestos
en el dise˜no de interacciones con el principal objetivo de aumentar el sentimiento de
bienestar en pacientes y usuarios de hospitales [5, 26]. Las tres fases se dividen princi-palmente en encontrar las necesidades, desarrollo del primer prototipo y evaluaci´on en
primera iteraci´on y desarrollo del segundo prototipo y evaluaci´on en segunda iteraci´on.
4.1
Levantamiento de requerimientos y necesidades
La primera fase consiste en un levantamiento de requerimientos y necesidades, mediante
el uso de la t´ecnica de observaci´on, a un n´umero determinado de pacientes que se
encuentren internados en las habitaciones de una instituci´on de salud. Con esta visita de
observaci´on, se establece un n´umero inicial de posibles aplicaciones seg´un lo conversado
con estas personas.
Con los requerimientos de los usuarios se captura las caracter´ısticas b´asicas de los
pacientes que llevar´an a cabo las tareas de interacci´on, considerando cuatro escenarios
recurrentes, ya sean novatos, casuales, expertos o frecuentes. Esto tiene un efecto
decisivo para determinar un buen dise˜no en t´erminos de qu´e tan f´acil de recordar algo
que ya se hab´ıa aprendido.
Esta etapa hace uso de las t´ecnicas de observaci´on anteriormente nombradas. En
relaci´on a la observaci´on, se hizo una visita exploratoria a las instalaciones de una
reconocida Instituci´on de Salud de la ciudad, en la unidad de maternidad y pediatr´ıa.
La escogencia de esta unidad es debido a las limitantes de las maternas cuando llegan
a ser internadas y que por su condici´on, presentan baja movilidad y alta dependencia
para desarrollar cierto tipo de actividades a menos que sean asistidas.
Durante esta etapa se visitaron dos (2) cuartos que estaban ocupados por algunos
pacientes. En t´erminos ambientales, los cuartos cuentan con una ventana grande que
da hacia la parte posterior de otro edificio y permit´ıa algo de iluminaci´on natural.
En cuanto al ruido, la cl´ınica se present´o silenciosa y la temperatura era controlada y
constante para todo el piso.
En el primer cuarto se visit´o a un ni˜no menor de 10 a˜nos acompa˜nado por su
madre y su t´ıa. El ni˜no no pronunci´o ning´un tipo de palabra mientras estuvimos
acompa˜n´andolo. El ni˜no estuvo sentado en la cama con algunos juguetes en ella y su
movilidad era completa, sin ning´un tipo de restricci´on en sus movimientos ni en sus
capacidades de comunicaci´on verbal. Con respecto a los elementos de interacci´on que
se hab´ıan, la madre nos coment´o que ellas eran las que lo utilizaban y que el menor no
tocaba ninguno de ellos.
La segunda visita se hizo con una materna en sus ´ultimas semanas de gestaci´on,
completamente acostada mientras se le hac´ıa un ultrasonido. El ruido del ultrasonido
proven´ıa del latido del coraz´on del beb´e y era un poco abrumador en toda la habitaci´on.
Sin embargo, s´ı manifest´o el tener cierto tipo de inter´es en la aplicaci´on que se desea
realizar ya que en ciertos momentos perd´ıa del alcance de las manos los controles que
ella manejaba.
Posterior a esta observaci´on, el equipo considera en que se debe proponer una
primera alternativa de poder controlar los diferentes elementos que tiene actualmente
esa habitaci´on hospitalaria espec´ıficamente, conociendo que son elementos que se pueden
llegar a encontrar en una cantidad considerable de instituciones prestadores de salud
en el pa´ıs. Dentro de estos elementos a controlar, se establecieron los siguientes: El
controlar las funciones b´asicas del televisor, el control de las luces, el abrir y cerrar las
cortinas y el llamado a enfermer´ıa con la finalidad de entregar un prototipo que sirva
4.2. FASE II 33
4.1.1
Dise˜
no para el Desarrollo y Evaluaci´
on de Prototipos
Para dise˜nar las posibles aplicaciones, se recolect´o la informaci´on de la visita a la
habitaci´on hospitalaria, en donde se observ´o cierto tipo de herramientas a los que los
pacientes se ve´ıan limitados de utilizar. Este dise˜no va enfocado a hacer aplicaciones
para los ´ıtems descritos en el posible levantamiento de requerimientos.
4.2
Fase II
La segunda fase tendr´a una divisi´on en dos partes las cuales ser´an explicadas en los
cap´ıtulos 5 y 6. La primera realizar´a una versi´on inicial del prototipo que controlar´a
los elementos del mobiliario de la habitaci´on de una manera interactiva. En la segunda
parte, se realizar´a una evaluaci´on t´ecnica del prototipo, con el fin de adquirir la
in-formaci´on necesaria sobre el desempe˜no de las aplicaciones y poder saber qu´e puntos
pueden ser sujetos a revisi´on o correcci´on.
4.3
Fase III
Una vez se haya decidido de que los sistemas son aptos, entrar´a una ´ultima fase de
gen-eraci´on de una segunda iteraci´on en el prototipo funcional para establecer la percepci´on
de los usuarios, con el fin de retribuir esa primera fase de dise˜no y as´ı poder realizar el
levantamiento de un manual de usuario para cuando un paciente realice una visita al
Cap´ıtulo 5
Descripci´
on Experimento No. 1
5.1
Estrategia de Evaluaci´
on
La segunda fase tendr´a una divisi´on en dos partes. La primera realizar´a una versi´on
inicial del prototipo que controlar´a los elementos del mobiliario de la habitaci´on de
una manera interactiva. En la segunda parte, se realizar´a una evaluaci´on t´ecnica del
prototipo, con el fin de adquirir la informaci´on necesaria sobre el desempe˜no de las
aplicaciones y poder saber qu´e puntos pueden ser sujetos a revisi´on o correcci´on.
Para su desarrollo se debe tener en cuenta la posici´on del paciente, que en estos
casos puede llegar a ser de total reposo, haciendo que el Kinect deba ser ubicado en
una posici´on no tradicional. Esto implica que su disposici´on se realizar´a desde el techo
de la habitaci´on mirando hacia abajo directamente sobre la cama (altura promedio de
cama hospitalaria de 80cms) y sobre el paciente a una altura de 2.30m [23]. Esto le da al paciente un rango de interacci´on un espacio de 1.50m entre ´el y el Kinect. Para esto
se dispuso en el laboratorio un montaje que se encuentra representado en la Figura5.1. El desarrollo de la aplicaci´on consta de dos formas de interpretar al paciente. Un
primer escenario se puede dar en que un paciente que tiene cierto tipo de movilidad
reducida en sus miembros superiores y es incapaz de realizar gestos. El segundo paciente
es el que tiene la imposibilidad de usar su voz y debe estar en total reposo de su garganta
por un tiempo.
Para el primer grupo se tiene el desarrollo de un software con capacidad de
Figura 5.1: Montaje del prototipo de la habitaci´on realizado en condiciones de
labora-torio. En la parte superior de la imagen se observa la disposici´on del Kinect y en la
5.1. ESTRATEGIA DE EVALUACI ´ON 37 conocimiento de los comandosabrir, cerrar, apagar, prender, enfermera, m´as y menos.
La escongencia de estas siete (7) palabras se da por la intenci´on de agregar unos
ac-tuadores perif´ericos que se puedan incluir en la futura habitaci´on y as´ı realizar estas
actividades de forma interactiva. El control de las cortinas se har´ıa con los comandos
abrir y cerrar, el encendido del televisor con prender y apagar, el control de la luz se
har´ıa con un regulador y controlado con las palabras m´as y menos y por ´ultimo un
llamado a enfermer´ıa a trav´es de enfermera.
Esta funci´on se hace gracias al uso de la librer´ıa Microsoft.Speech v.1.6.0.293,
es-pec´ıficamente con el motor de b´usqueda del modelo del lenguaje, que representa la
manera en que las letras de una palabra se combinan en el idioma Espa˜nol [20].
Para comprobar sus capacidades se realizan una pruebas t´ecnica para comprobar su
rendimiento y confiabilidad. Las pruebas de voz se realizaron a ocho (8) personas en una
habitaci´on cerrada de 2.50mt x 2.30mt x 2.20mt y un bajo nivel de ruido. La fuente de
voz (sujeto), se ubica a unos 100cms de los micr´ofonos del Kinect. Las pruebas de cada
palabra (abrir, cerrar, enfermera, prender, apagar, m´as y menos), se hacen repiti´endola
5 veces. Posteriormente se espera su tasa de reconocimiento para anotar su resultado.
Para este nivel de confianza se establece un piso de 0.0 (no hay confianza) y un techo
de 1.0 (total confianza). Se obtiene un total de 40 repeticiones por palabra, para un
total de 280 palabras en total.
Para el segundo grupo se tienen las mismas actividades pero esta vez con los gestos
de mover el brazo izquierdo en tres direcciones (arriba(MIArriba), adelante(MIFrente),
izquierda (MIIzquierda)) y el brazo derecho en tres direcciones (arriba(MDArriba),
ade-lante(MDFrente), derecha(MDDerecha)). Ya que se tienen 7 palabras y tan solo 6
gestos, prender y apagar se pueden realizar con un mismo gesto, por ejemplo el de
llevar la mano derecha hacia adelante.
Esto se hizo siguiendo la metodolog´ıa reportada por [16], de gestos simples, en donde los ´unicos que se requiere de la persona es saber la posici´on de las articulaciones
a utilizar. En este caso, se cuentan con varias condiciones para que el gesto sea adecuado
sin depender de la altura de la persona. Para el gesto de levantar la mano derecha, la
condici´on que se debe cumplir es que tanto la mano como la cabeza de la persona est´en
Figura 5.2: La figura muestra el ejemplo de la ejecuci´on del gesto de llevar la mano
izquierda hacia la izquierda. Se ense˜na el esquema de distancia que sigue el sistema.
por encima de la cabeza una distancia de 10cms. Para el gesto de llevar la mano derecha
hacia al frente, la condici´on del registro de las articulaciones se mantiene, pero ahora el
eje en donde ahora se calcula la distancia cambia; ahora la mano debe estar en frente
de la cabeza unos 30cms.
Para el gesto de llevar la mano derecha hacia la derecha, nuevamente la condici´on
del registro de las articulaciones es constante, pero el eje del c´alculo de las distancias
ser´a pararelo al eje del cuerpo, y la mano debe estar ubicada al menos 35cms a la
derecha de la cabeza (Figura 5.2). Se maneja una analog´ıa similar para los gestos del lado izquierdo del cuerpo.
En los dos prototipos, cada respuesta positiva se identifica mediante el uso de una
salida del sistema est´andar, que en este caso se trata de un cuadro de texto indicando
que la actividad ha sido ejecutada con ´exito, sumado a un elemento visual representado
por un LED conectado a un Arduino.
Este ´ultimo dispositivo es un hardware basado en un microcontrolador especialmente
5.1. ESTRATEGIA DE EVALUACI ´ON 39
Figura 5.3: Montaje de la combinaci´on de Kinect con Arduino Leonardo y LED,
reg-istradas con una c´amara de 60fps. En la imagen de la izquierda se observa la aplicaci´on
esperando el comando, y en la imagen de la derecha el LED queda completamente
encendido.
servomotor que ser´a el control de las persianas y de unos LED’s que indicar´an el uso
de las l´amparas y de los llamados a enfermer´ıa de una forma visual m´as representativa
hacia las personas.
Para probar su capacidad de rendimiento, se produce un montaje consistente con
un Kinect, una tarjeta Arduino Leonardo con un LED y una c´amara de alta velocidad
Pointgrey Firefly MV FFMV-03M2M/C-CS, con una tasa de 60 im´agenes por segundo.
Las im´agenes tienen una dimensi´on de 640x480 p´ıxeles (Figura 5.3). Haciendo una prueba durante 15000ms se obtiene el resultado estimado que requiere la aplicaci´on
para recibir el gesto o comando y ejecutar su acci´on. En esta prueba se obtiene que
la latencia es de 1062ms, lo que es aproximadamente 1 segundo, que aunque parezca
un tiempo considerablemente grande, es lo suficiente para poder mover unas cortinas o
prender una luz.
Finalmente, el control del televisor se realiz´o mediante una comunicaci´on serial entre
este y el computador. El dispositivo utilizado fue un TV LG 3D-LCD 42”, que cuenta
con un puerto de servicio RS232, que est´a dise˜nado para comprobar la funcionalidad
de este sin necesidad de contar con un control remoto. El manual presenta una gu´ıa
sobre los c´odigos infrarojos que se pueden sustituir por una cadena de caracteres [11] (Anexos A). Los par´ametros de comunicaci´on que se deben seguir son: Tasa de Tasa
de transmisi´on: 9600 bps. Longitud de los datos: 8 bits. Bit de paridad: None. Bit de
parada: 1 bit. C´odigo de comunicaci´on: c´odigo ASCII. Usar un cable serial cruzado.
El protocolo de transmisi´on dicta que se deben aplicar los siguientes c´odigos para
reemplazar el control remoto. Estos se encuentran en el manual del usuario del