Sistema 3D de detección de movimientos para discapacitados
Sistema 3D de detección de movimientos para discapacitados
Tesis de investigación presentada como requisito parcial para optar al título de:
Magíster en Ingeniería – Ingeniería de Sistemas
Director:
Ph.D. Jovani Alberto Jiménez Builes
Línea de Investigación:
Inteligencia Artificial
Resumen
Hoy en día el desarrollo de nuevos productos enfocados a individuos que presentan
alguna limitación es un punto clave en el proceso de inclusión y aprendizaje, ya que gran
parte de la información se encuentra en medios virtuales. En la actualidad existen
diversos dispositivos alternativos de entrada para computador entre los cuales se
encuentran los denominados Free-hand, los cuales permiten interactuar de forma directa
sin utilizar los medios tradicionales como lo son el teclado y el ratón.
Dado este contexto, a pesar de que existe una gran cantidad de dispositivos capaces de
detectar el movimiento y reconocer gestos, no se cuenta con muchos desarrollos
específicos sobre el área de la inclusión social a personas con limitaciones motoras, las
cuales permitan el acceso de forma sencilla a los medios de aprendizaje y comunicación.
En esta investigación se propone diseñar un sistema de detección de movimientos
usando técnicas de visión artificial 3D, con el fin de mejorar la interacción de personas
con movilidad reducida.
Abstract
Nowadays the development of new products focused on individuals that present some
limitation is a key point in the process of inclusion and learning, since much of the information
is found in virtual media. At present there are several alternative computer input devices
among which are the so-called Free-hand, which allow direct interaction without using
traditional media such as the keyboard and mouse.
Given this context, although there is a large number of devices capable of detecting movement
and recognizing gestures, there are not many specific developments in the area of social
inclusion for people with motor limitations, which allow easy access to the means of learning
and communication. In this research it is proposed to design a movement detection system
using 3D artificial vision techniques, in order to improve the interaction of people with reduced
mobility.
Contenido
Pág.
Resumen...........................................................................................................................VII
Lista de figuras...................................................................................................................1
Introducción........................................................................................................................2
3. Solución Propuesta...................................................................................................13
3.1 Subsistema de sensado...................................................................................13
3.1.1 Cámara RGB. ........................................................................................14
3.1.2 Sensor de profundidad...........................................................................14
3.2 Subsistema computacional...................................................................................16
3.3 Características y Especificaciones Técnicas Para la Elección del Sensor......20
3.3.1 Características del Kinect, Fabricante Microsoft y PrimeSense............20
3.3.2 Características del ASUS Xtion PRO LIVE, Fabricante Asus y
PrimeSense..........................................................................................................22
3.3.3 Elección del sensor................................................................................23
3.3.4 Requerimientos de hardware y software: .............................................23
3.4 Esquema De Diseño.............................................................................................24
3.4.1 Posicionamiento del cursor....................................................................24
3.4.2 Reconocimiento de gestos.....................................................................25
3.4.3 Interfaz de Usuario.................................................................................26
4. Resultados.................................................................................................................27
4.1 Resultados De Los Test De Funcionamiento De La Integración Del Hardware
Y Software...................................................................................................................28
4.2 Interfaz final......................................................................................................32
4.3 Validación de resultados.......................................................................................34
5. Conclusiones y recomendaciones..........................................................................35
5.1 Conclusiones.........................................................................................................35
5.2 Recomendaciones.................................................................................................36
Bibliografía........................................................................................................................43
Lista de figuras
Pág.
Figura 2-1: Teclado en pantalla [9]. ................................................................................. 10
Figura 2-2: Array de micrófonos. CrispMic [10]................................................................ 10
Figura 2-3: Dispositivo de fijación en la cabeza con sensor de posición y distancia [11].11
Figura 2-4: Configuración del dispositivo de entrada por medio del movimiento de los
ojos [12]............................................................................................................................. 12
Figura 3-1: sensor Kinect [15].......................................................................................... 14
Figura 3-2: Patrón de puntos emitidos por el sensor Kinect [15]..................................... 15
Figura 3-3: Capas del OpenNI [18].................................................................................. 18
Figura 3-4: Coordenadas del sistema usadas por OpenNI SDK......................................24
Figura 3-5: Coordenadas del sistema usadas por C++....................................................25
Figura 4-1: Imagen de profundidad dada por el sensor Kinect........................................ 31
Figura 4-2: Imagen de profundidad integrada con el SkeletonTraking dada por el sensor
Kinect............................................................................................................................... 31
Figura 4-3: Imagen a color integrada con el SkeletonTraking dada por el sensor Kinect.
.......................................................................................................................................... 32
Figura 4-4: Interfaz de usuario desarrollada en C++........................................................33
2 Introducción
Introducción
El desarrollar nuevos productos, que puedan satisfacer las necesidades de individuos,
que presentan limitaciones las cuales interfieran con la capacidad para acceder a los
computadores, constituye un factor clave en el proceso de inclusión y aprendizaje, ya que
gran parte de l información se encuentra a través de medios virtuales y para interactuar
con estos medios se debe acceder por lo menos a un computador y tener la capacidad
de manipularlo con el fin de realizar las tareas de estudio e investigación que cada
individuo desee. Estos dispositivos de entrada alternativos tienen unas características
muy específicas de funcionamiento, por lo que a la hora de elegir que dispositivo es más
conveniente con respecto al tipo de limitación que se presenta se requiere tener un previo
conocimiento acerca de los dispositivos existentes, sus características, y el tipo de
tecnología que emplean.
A pesar de que existe una gran cantidad de dispositivos capaces de detectar el movimiento
y reconocer gestos, no se cuenta con muchos desarrollos específicos sobre el área de la
inclusión social a personas con limitaciones motoras, las cuales permitan el acceso de forma
sencilla a los medios de aprendizaje y comunicación, solo el 10.6% de los colombianos con
discapacidad usan los medios escritos, como la prensa, libros, revistas y el 2.2% de las
personas discapacitadas en Colombia usan el internet [8], siendo este último
6 Diseño de un sistema detector de movimientos usando técnicas de visión artificial
3D para la interacción de personas con movilidad reducida con el computador
medio de comunicación uno de los más importantes en la última década, para el cual se
requiere interactuar de forma física con un computador.
1.1 Justificación
En esta investigación se diseñó un sistema capaz de detectar movimientos usando
técnicas de visión artificial 3D para la interacción entre el computador y personas con
movilidad reducida. La principal función del desarrollo de este sistema es el de incentivar
la participación y la inclusión de personas con discapacidad, brindando un mayor acceso
a la información y la comunicación e impulsar proyectos que promuevan principios de
respeto a la diferencia por medio de estrategias pedagógicas de enseñanza activa en las
que el estudiante se sienta parte del conocimiento y pueda interactuar con los diferentes
conceptos en las áreas básicas como lo son la comprensión de la materia, el movimiento,
la fuerza, el espacio, las estructuras y demás.
Figura 2-3: Dispositivo de fijación en la cabeza con sensor de posición y distancia [11].
· Dispositivos que usan los ojos: El dispositivo de entrada por el movimiento del ojo
es generalmente operado por la dirección de la mirada y en algunos casos por el
movimiento de la cabeza. Consta generalmente de una cámara y un led infrarrojo que
capta los movimientos de la pupila [12] (Ver Figura 2-4) y convierte estos en un vector de
posición con el cual se podría desplazar el puntero del mouse en un computador.
12 Diseño de un sistema detector de movimientos usando técnicas de visión
artificial 3D para la interacción de personas con movilidad reducida con
el computador
3. Solución Propuesta
El sistema para la detección de movimientos a partir de visión artificial 3D se divide en
dos subsistemas principalmente: el de sensado (sensor 3D), el computacional (Interfaz
de usuario enfocada a personas con movilidad reducida).
Para objetos fijos, en las cuales se estudiarán los límites de tamaño, resolución y calidad,
entre estos objetos físicos se pretende también que logre modelar con buena precisión
rostros humanos de diferentes tipos y a diferentes distancias, todo en tiempo real
permitiendo visualizar gestos realizados de forma precisa.
Para objetos en movimiento: en estas pruebas el dispositivo debe ser capaz de recrear el
modelo 3d del lugar por donde se vaya desplazando el usuario e ir guardando estos
datos para su posterior análisis y procesamiento.
14 Diseño de un sistema detector de movimientos usando técnicas de visión
artificial 3D para la interacción de personas con movilidad reducida con
el computador
La figura 3-2 muestra un patrón de puntos claros y oscuros proyectados por el sensor
Kinect. Según ROS (Robot Operating System), el algoritmo comienza calculando la
profundidad de un plano de referencia a partir de los nueve puntos que aparecen muy
marcados y guarda el patrón para ese plano. Posteriormente, la profundidad para cada
pixel se calcula eligiendo una ventana de correlación pequeña (9x9 ó 9x7) y se compara
el patrón local en ese píxel con el patrón memorizado en ese píxel y los 64 píxeles
vecinos en una ventana horizontal [17].
Dadas la profundidad del plano y la disparidad, se estima una profundidad para cada píxel
la cual puede ser calculada por triangulación, de acuerdo a la expresión utilizada por un
sistema estéreo normal. Por otro lado, la resolución en la dimensión z es de
aproximadamente un centímetro, mientras que la resolución espacial (ejes x e y) es del
orden de milímetros. La información de profundidad se devuelve en un mapa de píxeles a
16 Diseño de un sistema detector de movimientos usando técnicas de visión
artificial 3D para la interacción de personas con movilidad reducida con el
computador
una frecuencia de 30 frames por segundo. Cada pixel está representado por dos bytes
(16 bits), cuyo valor representa teóricamente la distancia del objeto al sensor.
· Máxima (mínima) distancia del objeto al sensor: 3.5 (1.2) metros estos valores
varían dependiendo del tipo de sensor seleccionado.
· Los objetos deben estar dentro del ángulo de visión: ±43° verticalmente y de ±57°
horizontalmente.
Si el valor de un píxel del mapa es cero, significa que el sensor no pudo estimar la
profundidad para esa región por no cumplirse alguna de estas condiciones [17][8].
El proceso completo de visión estéreo está compuesto por 6 partes fundamentales [16]:
1. Adquisición de imágenes
2. Modelado de la cámara (geometría del sistema)
3. Extracción de las características
4. Correspondencia de las imágenes (características)
5. Determinación de la distancia (profundidad)
6. Interpolación
Solución Propuesta 17
Las dos primeras pertenecen al dispositivo de sensado 3D: la primera adquiere la imagen
y la envía al computador y la segunda corresponde a los parámetros intrínsecos de la
cámara como distancia focal y modelo de distorsión.
El resto de partes del proceso de la visión estéreo están conformadas por el software el
cual realiza las tareas de extracción de características como: bordes, áreas, conectividad,
entre otros, luego compara las imágenes de ambas cámaras y calcula las diferencias
entre una y otra, luego de tener estos valores y los parámetros de la camera determina el
mapa de profundidad de cada pixel a través de triangulación y por último realiza una
interpolación para corregir la imagen si es necesario [16].
Kinect SDK
SDK, Framework para sensores o modulos que proveen depth maps, color maps, scene
maps, gesture recognition, user pose (skeleton). La figura 3-3 muestra una vista de tres
capas del concepto de OpenNI el cual es el mismo implementado en el SDK de Kinect,
con cada capa representando un elemento integral:
Abajo: Muestra los dispositivos de hardware que capturan los elementos visuales y de
audio de la escena.
18 Diseño de un sistema detector de movimientos usando técnicas de visión
artificial 3D para la interacción de personas con movilidad reducida con
el computador
Módulos de sensor
· sensor 3D
· cámara RGB
· cámara IR
· dispositivo de audio (micrófono o una matriz de micrófonos)
Componentes de
Solución Propuesta 19
· análisis del punto de la mano: un componente de software que procesa los datos
sensoriales y genera la ubicación de un punto de la mano
Estos son los aspectos más relevantes del Framework, para utilizar este framework se
requieren los drivers para el Kinect; creado por PrimeSensor driver (open source) se
obtiene en: github.com/avin2/SensorKinect.
Especificaciones
técnicas [19]:
Sensores
· Lentes de color y sensación de profundidad
· Microfono multi-arreglo
· Ajuste de sensor con su motor de inclinación
· Totalmente compatible con las consolas existentes de Xbox 360
Solución Propuesta 21
Campo de visión
· Campo de visión horizontal: 57 grados
· Campo de visión vertical: 43 grados
· Rango de inclinación física: ± 27 grados
· Rango de profundidad del sensor: 1,2 - 3,5 metros
Sistema de Seguimiento
· Rastrea hasta 6 personas, incluyendo 2 jugadores activos
· Rastrea 20 articulaciones por jugador activo
Sistema de audio
· Sistema de cancelación de eco que aumenta la entrada de voz
· Reconocimiento de voz múltiple
OS Support
• Win 32/64: XP, Vista, 7, 8
• Linux Ubuntu 10.10: X86,32/64 bit
Softwar
• Software development kits (OpenNI SDK bundled)
Programming Language
· C++/C# (Windows)
· C++(Linux)
· JAVA
22 Diseño de un sistema detector de movimientos usando técnicas de visión
artificial 3D para la interacción de personas con movilidad reducida con el
computador
Sensores
· RGB
· Depth
· Microphone*2
Campo de
• 58° H, 45° V, 70° D (Horizontal, Vertical, Diagonal)
· Campo de visión horizontal: 58 grados
· Campo de visión vertical: 45 grados
· Campo de visión Diagonal: 70 grados
· Rango de profundidad del sensor: 0,8 - 3,5 metros
Interfaz
· USB2.0/ 3.0
Solución Propuesta 23
OS Support
• Win 32/64: XP, Vista, 7, 8
• Linux Ubuntu 10.10: X86,32/64 bit
· Android
Software
· Kit de desarrollo de software (OpenNI SDK bundled)
Lenguaje de programación
· C++/C# (Windows)
· C++(Linux)
· JAVA.
Para utilizar los datos del SDK para mover el cursor en la pantalla, los datos deben
convertirse ya que la interfaz diseñada en C++ sólo es capaz de trabajar con un sistema
de coordenadas, donde el centro del sistema de coordenadas está situado en la parte
superior Izquierda de la pantalla. Una ilustración del sistema de coordenadas utilizado por
C++ para un 1920 x 1080 Se muestra en la Figura 3-5.
· Seguimiento de usuarios
Seguimiento de un usuario para poder recuperar datos del usuario ubicado en el
Vista del Kinect. Esto se hace a través de un componente en la capa de OpenNI, a este
objeto lo llamaremos UserGenerator.
· Seguimiento de la mano
Seguimiento de la mano derecha del usuario para recuperar coordenadas de la posición
de las manos. Esto es necesario para poder mover el cursor en la pantalla de acuerdo
con la posición actual de la mano derecha. Esto se hace usando componente en la capa
de OpenNI, a este objeto lo llamaremos HandGenerator.
NuiCreateSensorByIndex: Crea una instancia del sensor Kinect con un especifico index
para que una aplicación pueda abrir y usar
HRESULT NuiCreateSensorByIndex(
int index,
INuiSensor **ppNuiSensor
)
Tipo: HRESULT
Retorna S_OK si fue exitoso; en otro caso retorna un código de error
void NuiImageResolutionToSize(
NUI_IMAGE_RESOLUTION res,
DWORD &refWidth,
DWORD &refHeight
)
Parametros
public:
HRESULT NuiImageStreamOpen(
NUI_IMAGE_TYPE eImageType,
NUI_IMAGE_RESOLUTION eResolution,
DWORD dwImageFrameFlags,
DWORD dwFrameLimit,
)
§ Parámetros
eImageType Tipo: NUI_IMAGE_TYPE [in] un NUI IMAGE TYPE valor que especifica el
tipo de imagen que va a recibir los valores dependen del dwFlags parámetro del
INuiSensor::NuiInitialize metodo.
30 Diseño de un sistema detector de movimientos usando técnicas de visión artificial
3D para la interacción de personas con movilidad reducida con el computador
public:
HRESULT NuiSkeletonGetNextFrame(
DWORD dwMillisecondsToWait,
NUI_SKELETON_FRAME *pSkeletonFrame
)
§ Parameters
dwMillisecondsToWait Tipo: DWORD [in] El tiempo en milisegundos que espera antes de
regresar sin un frame.
Los resultados de las pruebas se pueden observar en las figuras 4-1, 4-2 y 4-
Resultados 31
Figura 4-2: Imagen de profundidad integrada con el SkeletonTraking dada por el sensor
Kinect.
32 Diseño de un sistema detector de movimientos usando técnicas de visión artificial
3D para la interacción de personas con movilidad reducida con el computador
Figura 4-3: Imagen a color integrada con el SkeletonTraking dada por el sensor Kinect.
Ya teniendo las coordenadas de los puntos de las manos solo se necesita hacer el
escalamiento de las coordenadas del Kinect a las coordenadas de la interfaz que
controlara el mouse en C++, como se observa en las figuras 3-4 y 3-5.
En la interfaz (Ver Figura 4-4) aparecen 3 indicadores, y un botón, los indicadores son: el
label de estado del sensor, el cual Indica si el sensor está conectado, desconectado o
iniciando. El label de Coneccion ID que indica el ID del sensor conectado, y el label que
indica la posición X y Y de la mano en las coordenadas del sensor.
Resultados 33
1 10
5 5
0 0
15-35 Hombre 15-35 Mujer Mayor a 35 15-35 Hombre 15-35 Mujer Mayor a 35
Mouse Prec. Kinect
Mouse Prec. Kinect
Prec.
Mouse Vel. Kinect Vel
5.1 Conclusiones
Como resultado de todo el proceso de aprendizaje que genera un proyecto de
investigación, queda La sensibilidad de identificar una necesidad en un grupo poblacional
con discapacidad en miembros superiores, la Adquisición de conocimientos durante la
consulta de Bibliografía y la vigilancia tecnológica, la satisfacción de aplicar los
conocimientos adquiridos durante el desarrollo del proyecto con el fin de satisfacer las
actividades y objetivos planteados
Se valido el funcionamiento del sistema con diferentes usuarios dando como resultados
valores de desempeño aceptables
5.2 Recomendaciones
Como trabajo futuro a todo aquel que este interesado en este tema, se recomienda
primero: hacer una revisión de la tecnología existente en el momento, ya que día a día se
presentan nuevos desarrollos en este tipo de tecnologías debido al gran avance
tecnológico que se presenta en esta era.
Para todo aquel que desee trabajar con el Kinect se recomienda utilizar la versión de
Kinect optimizada para Windows, aunque es un poco mas costoso brinda una gran
cantidad de herramientas que podrían facilitar el desarrollo de trabajos futuros o mejoras
del mismo propuesto en esta investigación.
A. Anexo: Fragmentos de código
utilizados en el desarrollo de la
interfaz
Parte principal del código de la interfaz:
namespace kinectv2
Form {
public frmKinect()
InitializeComponent();
EventArgs e) {
if (btnStream.Text == "Conectar")
this.btnStream.Text = "Desconectar";
38 Diseño de un sistema detector de movimientos usando técnicas de visión artificial
3D para la interacción de personas con movilidad reducida con el computador
if (KinectSensor.KinectSensors.Count
> e) {
kSensor =
KinectSensor.KinectSensors[e];
KinectSensor.KinectSensors.StatusChange
d +=
KinectSensors_StatusChanged;
this.lblConnectionID.Text = kSensor.DeviceConnectionId;
kSensor.ColorStream.Enable(ColorImageFormat.RgbResolution64ex48eFps3e);
Smoothing = e.75f,
Correction = e.ef,
JitterRadius = e.e5f,
MaxDeviationRadius = e.e4f,
Prediction = e.ef
};
kSensor.DepthStream.Enable();
kSensor.DepthStream.Range =
DepthRange.Default; kSensor.AllFramesReady +=
kSensor.SkeletonStream.Enable(parameter);
kSensor.SkeletonStream.TrackingMode =
SkeletonTrackingMode.Seated;
else
this.btnStream.Text = "Conectar";
this.pbStream.Image = null;
{
using (var frame = e.OpenColorImageFrame())
40 Diseño de un sistema detector de movimientos usando técnicas de visión artificial
3D para la interacción de personas con movilidad reducida con el computador
if (frame != null)
pbStream.Image = CreateBitmapFromSensor(frame);
if (frame != null)
frame.CopySkeletonDataTo(skeletons);
if (TrackedSkeleton != null) {
var position =
TrackedSkeleton.Joints[JointType.HandRight].Position;
var colorPoint =
coordinateMapper.MapSkeletonPointToColorPoint(position,
ColorImageFormat.InfraredResolution640x480Fps30);
this.lblPosition.Text = string.Format("Posicion de la
Mano X: {ø}, Y: {1}", colorPoint.X, colorPoint.Y);
}
}
StatusChangedEventArgs e) {
this.lblStatus.Text = kSensor.Status.ToString();
//Funcion que crea un mapa de bits con los frame del sensor y los pone en
la imagen del formulario
frame) {
var pixelData = new
byte[frame.PixelDataLength];
frame.CopyPixelDataTo(pixelData);
42 Diseño de un sistema detector de movimientos usando técnicas de visión artificial
3D para la interacción de personas con movilidad reducida con el computador
}
}
Anexo A. y Bibliografía 43
Bibliografía
[1] Calhoun G. L.; G. R. McMillan. "Hands-free input devices for wearable computers",
Human Interaction with Complex Systems, 1998. Proceedings, Fourth Annual
Symposium on, page(s): 118 – 123.
[2] Reney, D., Tripathi, N. "An Efficient Method to Face and Emotion Detection",
Communication Systems and Network Technologies (CSNT), 2015 Fifth International
Conference on, page(s): 493 – 497.
[4] Villaverde de la Nava I., “On Computational Intelligence Tools for Vision Based
Navigation of Mobile Robots”, University of the Basque Country, Department of Computer
Science and Artificial Intelligence, 2009.
[5] Bautista L., Archila J., ”Visión Artificial aplicada en sistemas de Realidad
Aumentada”, 3er Congreso Internacional de Ingeniería Mecatrónica – UNAB, 2011, Vol
2, No 1.
[7] Song Y., Demirdjian D., “Continuous Body and Hand Gesture Recognition for
Natural Human-Computer Interaction”, Massachusetts Institute of Technology, ACM
44 Diseño de un sistema detector de movimientos usando técnicas de visión artificial
3D para la interacción de personas con movilidad reducida con el computador
[10] Hae-Duck J. Jeong; Sang-Kug Ye; Jiyoung Lim; Ilsun You; Wooseok Hyun; Hee-
Kyoung Song. "A Remote Computer Control System Using Speech Recognition
Technologies of Mobile Devices", Innovative Mobile and Internet Services in Ubiquitous
Computing (IMIS), 2013 Seventh International Conference on, page(s): 595-600.
[11] Nakazawa N.; Matsui T.; Yamada K. "Welfare Support-equipment for Operations
of Personal Computer with Head Tilting and Mouth Open-Close Motions", Systems, Man
and Cybernetics, 2006. SMC '06. IEEE International Conference on, page(s): 4046 -
4051, Vol 5.
[12] Oyabu Y; Takano H; Nakamura K. " Development of the eye input device using
eye movement obtained by measuring the center position of the pupil", Systems, Man,
and Cybernetics (SMC), 2012 IEEE International Conference on, page(s): 2948-2952.
[13] Hongyong T; Youling Y. "Finger Tracking and Gesture Recognition with Kinect",
Computer and Information Technology (CIT), 2012 IEEE 12th International Conference
on, page(s): 214-218.
[14] Zhengyou Z., “Microsoft Kinect Sensor and Its Effect”, Multimedia at Work, IEEE
Computer Society, pag 4-10 2012.
Anexo A. y Bibliografía 45
[15] Daniel Ramos Gutiérrez, Estudio Cinemático Del Cuerpo Humano Mediante
Kinect, Trabajo De Grado en Telecomunicaciones, Universidad Politécnica De Madrid,
Escuela Técnica De Telecomunicaciones, 2013.
[17] Martin Morales, Jorge Osio, Juan Eduardo Salvatore, Detección de objetos
utilizando el sensor Kinect, Twelfth LACCEI Latin American and Caribbean Conference
for Engineering and Technology (LACCEI’2014). “Excellence in Engineering To Enhance
a Country’s Productivity”, Guayaquil, Ecuador, July 22 - 24, 2014.
[19] Microsoft. (18/08/2016). Kinect for Windows SDK. [Online]. Disponible en:
http://msdn.microsoft.com/en-us/library/hh855355.aspx
[20] Christian Kerl, Odometry from RGB-D Cameras for Autonomous Quadrocopters,
Tesis de Maestria en Robotica, Der Technischen Universitat Munchen, Fakultat Fur
Informatik, 2012.
[21] Asus. (18/08/2016). Asus Xtion Pro Live. [Online]. Disponible en:
http://www.asus.com/Multimedia/Motion_Sensor/Xtion_PRO_LIVE/#specifications