You are on page 1of 5

Anlisis de Marcha mediante Plataforma Kinect

Celina Osorio Ochoa, Jess Vzquez Valencia, Javier Luna Cordova, Arturo Olvera Lpez, Manuel Martn Ortz. Facultad de Ciencias de la Computacin. Benemrita Universidad Autnoma de Puebla, Mxico. mmartin@cs.buap.mx

Resumen En la actualidad las tcnicas de evaluacin y estudio de las anormalidades de la marcha (movimiento de las piernas) han mejorado mucho con respecto a las tcnicas tradicionales debido al avance en los dispositivos de captura y los mtodos de procesamiento de datos. En ste trabajo se presenta una plataforma para la captura y anlisis del movimiento de las extremidades inferiores. Esta se compone de dos herramientas una para realizar la captura utilizando la cmara Z de un dispositivo MS Kinect y la segunda para procesar los datos y visualizar las curvas de flexin de las articulaciones de la rodilla y el taln de un sujeto real. Se realizaron capturas frontales y laterales en un ambiente medianamente controlado. Se realizaron capturas de movimiento usando mtodos basados en visin por computadora y el sensor de profundidad de un dispositivo MS Kinect. Palabras clave MoCap, Captura de Movimiento, Kinect, Kinect SDK, OpenNI, Anlisis de Marcha.

I. INTRODUCCIN

os estudios de la captura de movimiento se iniciaron de manera formal en 1897 por Edward Muybridge con su trabajo Animal Locomotion. Desde esas fechas el campo del estudio del movimiento animal y humano se ha desarrollado en diversas vertientes. De cualquier manera los trabajos de investigacin y las aplicaciones relacionadas con la animacin tipo humano y la recuperacin del movimiento esta lejos de ser satisfactoria [1]. El modelado, seguimiento y comprensin del movimiento humano basado en secuencias de video como campo de investigacin se ha incrementado y vuelto relevante en particular en las dos ltimas dcadas debido a los requerimientos impuestos por las aplicaciones en las ciencias del deporte, la medicina, la biomecnica, la animacin orientada a los juegos de entretenimiento, serios y el cine, la vigilancia y la seguridad. Los progresos en el anlisis del movimiento humano dependen de los enfoques empricos y la investigacin bsica en las reas de la Visin por Computadora, Grficos por Computadora y la Biomecnica. Debido a que en general estos tres campos se tratan de manera independiente, el anlisis del movimiento humano obliga a una integracin de ellos y sus metodologas. En particular la inclusin de las restricciones impuestas por la Biomecnica mejora la robustez de este enfoque integrado. Existen diferentes enfoques y metodologas para el estudio del movimiento del cuerpo humano. Cada uno de estos utiliza

herramientas diferentes y se enfoca en el modelado a diferentes niveles. As tambin se han creado reas de inters en diferentes partes del cuerpo, como son el rostro, las extremidades superiores o inferiores y el tronco entre otras. En particular el estudio de la marcha (gait) es de especial inters por su relacin con los diferentes mbitos antes mencionados deporte, medicina y animacin a nivel terico y prctico. Este trabajo se centra en dicho problema orientado al movimiento de los humanos, se entiende el anlisis de la marcha como el estudio sistemtico de la marcha, asistido por el ojo y el cerebro como observadores experimentados y aumentado por instrumentacin para la medicin de los movimientos del cuerpo, la mecnica cinemtica y dinmica del cuerpo y actividad de los msculos. En personas con condiciones que afectan sus habilidades para caminar, el anlisis de la marcha puede ser utilizado para realizar diagnsticos detallados y planear tratamientos adecuados a cada caso [2]. La marcha humana es producto de procesos complejos que involucran al cerebro, la espina dorsal, los nervios perifricos, los msculos, los huesos y las articulaciones; as como la voluntad y necesidad de realizar movimientos especficos en cada contexto de forma voluntaria e involuntaria. Esto involucra en general a la anatoma, la fisiologa y la biomecnica. Una discusin detallada de este aspecto se puede consultar en [2]. Es posible diferenciar entre marcha normal y patolg ica, los patrones para la marcha patolgica se entienden como desviaciones de los correspondientes a la marcha normal. Los patrones de normalidad se deben crear considerando diversas variables, algunas de stas son: el gnero, la edad, el tipo de actividad que desarrolla el individuo, la geometra del cuerpo y el tipo de marcha propiamente dicha (caminar, trotar, correr, carga, vestuario, tipo de calzado, entre otros). Lo cual obliga a crear patrones de normalidad para diferentes situaciones y grupos. Donde dichos patrones se deben especificar utilizando rangos de variabilidad en los parmetros que la describen. El anlisis y modelado matemtico de la marcha ha tenido contribuciones importantes en las ltimas dcadas, una revisin a fondo de la literatura relacionada ha sido realizada por Sutherland [3, 4, 5], en estos trabajos el autor realiza una descripcin exhaustiva de estudios y normas para la marcha normal y anormal en el contexto clnico y los mtodos cuantitativos de diagnstico moderno auxiliado por herramientas de hardware y software, as como los modelos matemticos correspondientes. Los mtodos para el estudio de la marcha se pueden dividir en dinmicos y cinemticos y en conjunto ofrecen una vista inte-

La Investigacin y las Aplicaciones en Ciencias de la Computacin 2011 - FCC BUAP ISBN 978-607-487-521-8

17

gral de la misma. Los mtodos dinmicos se basan en la medicin de las fuerzas y torques que los pies crean sobre plataformas en forma de tapete, stas miden la fuerza y ngulo que se ejercen por la planta del pi en celdas cuadradas tpicamente. Otro mtodo dinmico muy utilizado es aquel en cual se colocan elastmetros alrededor de las articulaciones y se miden las elongaciones y fuerzas en las articulaciones al mover las extremidades en alguna rutina de marcha. En ambos casos los dispositivos eventualmente son capaces de digitalizar los datos y luego estos son procesados mediante aplicaciones de software especficas. Los mtodos cinemticos por otro lado ubican las posiciones de las articulaciones mediante marcadores o sensores. Estos se pueden agrupar en tres clases: pticos, de radiofrecuencia y sonoros; y los mecnicos. Los primeros son los ms difundidos debido a la fcil captura de los datos y a los algoritmos de visin por computadora que permiten la localizacin de los marcadores, los segundos, si bien ms precisos, son menos utilizados debido al costo de la plataforma de hardware requerida, normalmente son utilizados en laboratorios o estudios con alto presupuesto; y finalmente los ltimos son capaces de entregar ms informacin que los dos primeros, pero solo se encuentran en laboratorios de investigacin e instalaciones de diagnstico mdico de alta tecnologa y presupuesto. Un camino alterno no orientado a los marcadores o sistemas de emisores-receptor es el correspondiente a las cmaras-Z o range-cameras. Estos mtodos se basan en la identificacin de las articulaciones mediante el anlisis de la imagen de profundidad y su correspondencia con patrones fijos y dinmicos. El lanzamiento del dispositivo MS Kinect permite de manera econmica realizar estudios de la cinemtica de la marcha mediante la cmara-Z que l contiene. Ya que es posible recuperar la coordenada de las articulaciones mediante algoritmos de reconocimiento de patrones y plantillas. A pesar de que la resolucin de la imagen-Z no es muy alta si es suficiente para identificar las articulaciones (joints) en 3D respecto a la posicin del sensor del Kinect. II. HERRAMIENTAS A continuacin se describen en trminos generales las herramientas de Software y Hardware utilizadas en ste proyecto. A. Software Microsoft Kinect SDK [6] Incluye drivers para los sensores del Kinect, APIs e interfaces del dispositivo, documentacin tcnica y documentacin de ayuda para la instalacin y configuracin. Adems permite la exploracin y experimentacin de las siguientes funciones principales: Skeletal Tracking; acceso a la cmara RGB y a los datos de profundidad que indican la distancia de un objeto al sensor Kinect por medio de la cmara de profundidad; procesamiento de audio para el arreglo de cuatro micrfonos con cancelacin de ruido acstico y de eco y tambin la integracin con la API de Windows Speech Recognition. OpenNI [7] Se trata de un Framework de cdigo abierto que permite manejar el perifrico Kinect. Permite comunicarse con los

sensores de audio, video y sensor de profundidad del Kinect, y proporciona una API que sirve de puente entre el hardware del equipo, NITE Middleware y las aplicaciones e interfaces del S. O. Visual Studio 2010 Es un entorno de desarrollo integrado (IDE) para sistemas operativos Windows. Soporta lenguajes de programacin como Visual C#, Visual C++, Visual J#, ASP.NET, entre otros a travs de extensiones. Es el IDE recomendado para desarrollar con el Kinect SDK y con OpenNI. Delphi 2007 Lite Es un IDE para desarrollar aplicaciones grficas, en consola y web entre otras. En el proyecto se ha utilizado para construir fcilmente programas que permitan un anlisis preliminar de los datos obtenidos por el Kinect. GLScene [8] Una librera de cdigo abierto basada en OpenGL para el lenguaje Delphi. Proporciona componentes que permiten renderizar escenas en 3D de un modo no tan complejo. B. Hardware Kinect Es un controlador de juego desarrollado por Microsoft para la consola Xbox 360, permite a los usuarios interactuar con la consola a travs de gestos, comandos de voz e imgenes. El dispositivo cuenta con diversos sensores, pero la configuracin ptica es la de inters en este trabajo y est constituida por un proyector y una cmara de infrarrojos VGA. El rebote del haz de laser en el Kinect permite obtener un campo de profundidad (Z-range). A partir de esto se puede hacer la identificacin de una persona con tcnicas de reconocimiento de patrones. Y una vez identificadas las partes del cuerpo el software del dispositivo es capaz de construir el esqueleto como un conjunto de articulaciones en movimiento. III. DESARROLLO A. Escenario para Captura Para realizar la captura de movimiento se utiliz un solo montaje para el mtodo ptico y para el que utiliza la cmaraZ del Kinect. Para el mtodo ptico se utiliz una cmara de video operando a 30fps. El montaje se muestra en la Figura 1.

Fig. 1. Montaje para la captura de datos de MoCap

B. Aplicacin para obtener los datos del MoCap Para el desarrollo de la aplicacin que captura el movimiento de una persona y obtener las posiciones de las articulacio-

La Investigacin y las Aplicaciones en Ciencias de la Computacin 2011 - FCC BUAP ISBN 978-607-487-521-8

18

nes de su esqueleto como coordenadas (x, y, z) se cre una Aplicacin WPF en C#, sta permite visualizar lo que el sensor Kinect est capturando y a partir de estos datos el esqueleto de la persona a analizar. Para controlar el Kinect a travs de la aplicacin se us la librera de Microsoft Research Kinect SDK y se inicializan los elementos del Kinect que se requieran; en este caso se utilizaron los sensores de profundidad, el de video y adems los mtodos de seguimiento para esqueletos humanos como se observa en la Figura 2. En la lnea 49 se incializa la variable de control del Kinect pasandole algunos parmetros: UseColor para la cmara RGB, UseDepthAndPlayerIndex para la profundidad del video y finalmente UserSkeletalTracking para la deteccin de posturas. VideoFrameReady (lnea 54) y SkeletonFrameReady (lnea 52) son eventos que permiten obtener imgenes del sensor y el manejo del esqueleto, respectivamente. El mtodo Open de la propiedad VideoStream (lnea 56) permite abrir el flujo de la cmara de vdeo pasndole una serie de parmetros. En primer lugar el tipo del flujo que se abre, la resolucin de la imagen y el tipo de imagen. De forma similar ocurre con DepthStream (lnea 59).

Fig. 3. Localizacin de los Joints (articulaciones) del esqueleto que se obtiene a travs del Kinect

Por el momento hay parmetros importantes que se ajustan en el cdigo, en la interfaz slo es posible cambiar el ngulo del sensor para subir o bajar.

Fig. 2. Declaracin e inicializacin de los elementos del Kinect a utilizar.

La siguiente etapa consiste en utilizar el esqueleto (grafo de articulaciones) que el Kinect est construyendo para cada frame a partir de la captura. Para esto se hace uso de la funcin SkeletonFrameReady, adems de mostrar los datos obtenidos, stos se guardan en un archivo para que se pueda verificar que se han capturado correctamente. Los datos del esqueleto, antes de ser almacenados se encuentran en una estructura de datos llamada SkeletonData, se utiliza la misma instancia de sta para todos los frames, se accede a sus Joints que representan a cada nodo del esqueleto y se obtienen sus coordenadas (x, y, z), un ejemplo del esqueleto obtenido puede verse en la Figura 3 y la implementacin del procedimiento en la Figura 4. La interfaz grfica contiene secciones en las que se puede visualizar la imagen RGB y tambin el esqueleto que se est capturando.

Fig. 4. Seccin de cdigo en la que se accede a los nodos del esqueleto y se almacenan.

C. Captura de Movimiento y Visualizacin Se realiz la captura de ms de 100 individuos para analizar los datos, las primeras capturas incluyeron a personas de perfil caminando en una zona delimitada; pero las siguientes se realizaron de frente, dado que Microsoft Research utiliz tcnicas de reconocimiento frontal para las personas, lo cual implica un mejor desempeo del dispositivo en las ltimas capturas. El anlisis se hizo a travs de otra aplicacin desarrollada en Delphi y la librera GLScene. Contiene dos paneles para la visualizacin de los datos, en 2D y en 3D; y dos ms en los que se observan las grficas de los ngulos de flexin de las articulaciones de las piernas (rodilla y pie) y otra grfica en la que se describe la continuidad de los datos con respecto a uno

La Investigacin y las Aplicaciones en Ciencias de la Computacin 2011 - FCC BUAP ISBN 978-607-487-521-8

19

de los puntos nodales de la cadera y los frames por segundo, as se tiene una forma de comprobar que se estn obteniendo datos veraces.

2.0 1.5 1.0 0.5 0.0 -0.5 -1.0 -1.5 -2.0

X-hip

20

40

60

80 100 120 140

Fig. 6. Comportamiento de la posicin horizontal de la cadera (hip)

Fig. 4. Vista general del sistema

En la parte superior derecha pueden verse parmetros de inters como el frame en curso con su ngulo theta de rodilla y pie tanto derecho como izquierdo. En la parte inferior derecha se tiene el control de la cinemtica de la marcha de la persona: reproducir, pausar, avanzar un frame, retroceder un frame, cantidad de frames por segundo. Tambin se implement una aplicacin para obtener las posiciones de las articulaciones de manera directa sin utilizar la informacin que regresa el Kinect para realizar una verificacin cruzada. Esta se debe entender como un sistema de captura manual basado en el video grabado por la cmara a 30 fps. D. Anlisis de Datos En la siguiente grfica (Figura 5) se muestra el comportamiento de las posiciones de las articulaciones en funcin del tiempo, cada punto corresponde a la coordenada (X,Y) de cada frame. La captura se realizo de forma manual. Se muestra solo un ciclo de marcha. El eje horizontal est dado en unidades escaladas al pixel.
700

En la Figura 6 se muestra el comportamiento de la posicin horizontal de la cadera (medida en metros). Esta se utiliza para identificar el inicio y fin del proceso de marcha. Se puede notar que el movimiento se inici a partir del frame 40 y termin en el 90 de la secuencia de datos. Donde el personaje se desplazo a partir de la posicin +1.60m hasta -1.85m y luego dio la media vuelta y regres a la posicin de partida. Partiendo de ste intervalo en la Figura 7 se muestran los datos para el conjunto de frames asociados al estado de movimiento correspondientes a los ngulos de flexin (ThR: RodillaKnee, ThP: Pie-Ankle) de cada pierna (i: izquierda, d: derecha). Para la pierna izquierda la grfica superior slida en verde corresponde al ngulo de flexin del taln y la curva slida inferior en amarillo al ngulo de flexin de la rodilla. Las curvas punteadas superior (aquamarina) e inferior (azul) corresponden a los ngulos de flexin del taln y de la rodilla de la pierna derecha. El eje vertical representa los ngulos en grados sexagesimales. La lnea punteada inferior corresponde a la posicin horizontal de la cadera.
120 100 80

600 Xhip 500 Yhip XKnee 400 YKnee Xankle Yankle 300 Xfoot Yfoot 200

X-Hip 60 40 20 0 -20 60 70 80 90 Fig. 7. ngulos de Flexin de la rodilla (R) y del pie (P) para cada pierna. ThR-i ThP-i ThR-d ThP-d

100 50 100 150 200

Fig. 5. Grficos de las posiciones (X, Y) de cada articulacin (se indica a la derecha la articulacin). El eje horizontal corresponde al nmero de frame.

En la Figura 7 se indican los ngulos de flexin que fueron calculados a partir de los datos (x, y, z) de cada articulacin. La frmula utilizada para calcular los ngulos es la siguiente:

La Investigacin y las Aplicaciones en Ciencias de la Computacin 2011 - FCC BUAP ISBN 978-607-487-521-8

20

IV. CONCLUSIONES Donde Las tcnicas utilizadas para la cuantificacin de los parmetros de la marcha correspondientes a los ngulos de flexin de las rodillas y pies utilizando la plataforma de captura basada en el Kinect y el SDK de Microsoft no nos parecen satisfactorias. Consideramos que es necesario realizar una captura directa sin el uso de plantillas para los esqueletos. Proponemos desarrollar un esquema de anlisis basado en la matriz-Z de profundidades - se compararn las libreras de OpenNI y las Microsoft - y no utilizar los datos que el SDK est regresando, si bien esto puede ser un proceso laborioso resulta necesario a nuestro criterio. Cuando se refine el procedimiento de captura y se verifique en un conjunto mediano (100-200 individuos) ser posible confiar en los datos obtenidos para ser utilizados en la determinacin de patrones de normalidad para nuestro contexto. Y a partir de estos patrones poder proponer una herramienta orientada a especialistas para auxiliar en los procesos de diagnstico y poder determinar el avance, xito o fracaso de terapias aplicadas para la rehabilitacin y as tomar decisiones con respecto a las mismas. V. ACRNIMOS Y ABREVIATURAS API. Interfaz de Programacin de Aplicaciones (del ingls Application Programming Interface) IDE. Entorno de Desarrollo Integrado (del ingls, Integrated Development Enviroment) MS. Multi-Sensor RGB. Modelo de Color (del ingls: Red, Green y Blue) SDK. Kit de Desarrollo de Software (del ingls, Software Development Kit) VGA. Video Graphics Adapter WPF. Windows Presentation Foundation REFERENCIAS
[1] [2] [3] [4] [5] [6] [7] [8] Bodo Rosenhahn, Reinhard Klette, Dimitris Metaxas. Human Motion, Computational Imaging and Vision, Vol. 36. Springer, 2008. Michael W. Whittle, Gait Analysis an Introduction, Butterworth Heinemann Elsevier, 4th. Ed., 2007. Sutherland, D. H. The evolution of clinical gait analysis Part I. Kinesiological EMG. Gait and Posture, 24, 61-70, 2001. Sutherland, D. H. The evolution of clinical gait analysis Part II. Kinematics. Gait and Posture, 16, 159-179, 2002. Sutherland, D. H. The evolution of clinical gait analysis Part III. Kinetics and energy assessment. Gait and Posture, 21, 447-461, 2005. Sitio Kinect for Windows. http://www.microsoft.com/en-us/kinectforwindows/ Sitio Oficial de OpenNI http://openni.org Sitio Oficial de GLScene http://www.glscene.org

En la Figura 8 se indican los puntos considerados para la evaluacin del ngulo de flexin.

P1 - Hip

P1 Knee

ThR

P0 Knee P0 - Ankle P2 - Ankle P2 - Foot ThP

Fig. 8. Puntos utilizados para el clculo de los ngulos de flexin.

Dado que los puntos son conocidos para cada pierna y cada frame, entonces se pueden determinar los ngulos de flexin de la rodilla y el pie. Debe recalcarse que dichos ngulos se estn evaluando en 3D y no en 2D, debido a que manejan las coordenadas 3D de cada articulacin. E. Resultados Es patente que se ha logrado obtener los ngulos de flexin de las articulaciones lo cual implica que el problema ms importante es en realidad la verificacin de los datos obtenidos por el Kinect. Tambin se registraron con base en pruebas- los requerimientos para poder hacer capturas con personas, entre ellos el espacio de captura, la perspectiva desde la cual se captura a la persona, la ropa de la persona y la iluminacin, en este caso se observ que no se puede capturar al aire libre con una iluminacin media o intensa. Los datos obtenidos hasta el momento requieren ser estudiados ms a fondo. Puede observarse en la Figura 7 que la regularidad en los datos no es clara para los ngulos de flexin. Consideramos que la funcin del SDK del Kinect para determinar las posiciones de las articulaciones introduce un esqueleto de 200 plantillas precargados y no regresa de manera correcta las coordenadas de las articulaciones (joints) como se esperara, en algunos de los frames esto ocasiona un problema grave en los valores obtenidos y en consecuencia en su comportamiento.

La Investigacin y las Aplicaciones en Ciencias de la Computacin 2011 - FCC BUAP ISBN 978-607-487-521-8

21