Está en la página 1de 7

Simulador con Captura de Movimiento ptica

Celina Osorio Ochoa 3, Manuel I. Martn Ortiz 1, J. Arturo Olvera Lpez 2 Facultad de Ciencias de la Computacin BUAP, Campus Puebla, Av. San Claudio y 14 Sur, Ciudad Universitaria,
1

mmartin@cs.buap.mx 2aolvera@cs.buap.mx - 3celina@cs.buap.mx

Puebla, Puebla. ,72570. Mxico.

Resumen. La Captura de Movimiento (MoCap) trata del muestreo y registro del movimiento de objetos o sujetos animados como datos en 3D. Existen diversos sistemas de deteccin a travs de dispositivos electrnicos u pticos. El trabajo que se presenta en este documento utiliza Captura de Movimiento ptica, se trata de un simulador de un vehculo de baja velocidad. Dicho simulador es manejado a travs de movimientos de la cabeza del usuario bien definidos. Para la implementacin del trabajo se utiliz HaarTraining para detectar la cara a travs de sus caractersticas. Una vez encontrada y con base en su localizacin en la imagen se le da un significado, con el cual puede moverse al Actor en una escena 3D. Palabras Clave: MoCap ptico, HaarTraining, Simulador con MoCap, Deteccin de rostros.

1 Introduccin
La Captura de Movimiento en general, no slo ptica- trata del muestreo y registro del movimiento de animales, humanos y objetos inanimados como datos en 3D. Los datos se pueden ser usar para estudiar el movimiento o para dar una ilusin de vida a modelos de computadora en 3D [1], ste es utilizado principalmente para la animacin, pero en muchos casos se aplica para fines mdicos. En este trabajo se presenta un simulador para un vehculo de baja velocidad, los controles de mando de ste son manipulados a travs del MoCap de la cabeza de un sujeto. Los movimientos son capturados por una cmara para luego ser identificados y dar las respectivas rdenes al mvil.

2 Estado del Arte


En la actualidad, existen muchos sistemas de deteccin y seguimiento de la cabeza a travs de dispositivos electrnicos u pticos, pero los ms desarrollados se basan en plataformas que involucran el movimiento de la cabeza y los que utilizan sensores infrarrojos y acelermetros. Tambin existen sistemas que no slo detectan la cabeza, sino que son capaces de encontrar una cara, con sus caractersticas como: ojos, boca u otras; estos son por lo general pticos.

Uno de los sistemas de MoCap para cabeza mediante dispositivos pticos es SIMOCAP [2], el cual captura movimientos del giro de la cabeza en diferentes ngulos, ste utiliza dos marcadores: uno sobre la cabeza (que es grande en forma de cubo y adems con patrones dibujados en varias de sus caras) y otro en el pecho. En ste sistema se puede modelar desde la cabeza hasta el pecho de un sujeto y sus movimientos. Un campo particular del MoCap actualmente es el relacionado a los videojuegos, utilizando las tecnologas de PrimeSense [3], las cuales adems de proporcionar un escenario de profundidad a partir de una imagen, contienen un portafolio de servicios, con los cuales se puede formar el esqueleto del sujeto que se est capturando.

3 Metodologa
Como se ha mencionado con anterioridad, para este proyecto se utilizarn tcnicas de MoCap ptico. Para encontrar la cabeza, primero se detecta la cara acotada en un rectngulo, se asume que las esquinas son los marcadores. Posteriormente los datos recopilados se utilizan para que sobre el simulador - se conduzca un vehculo mediante cdigos asociados a los movimientos bsicos de la cabeza. 3.1 Simulador Se utiliz la librera OpenGL Open Graphics Library [4] a travs de GLScene [5] para Delphi. De GLScene se usaron los componentes enumerados a continuacin, para desarrollar el simulador: GLScene: Es el componente principal de la librera GLScene, en ste se almacena la escena en s. Fue el primer componente aadido a la aplicacin. GLSceneViewer: Este es el nico componente visual de GLScene, en l se muestra la escena, desde el punto de vista de la cmara asociada. GLCadencer: Es el reloj de la escena, marca los tiempos en las animaciones, eventos y acciones que se produzcan. En l se maneja el movimiento del Actor en la escena, adems de la visualizacin del desplazamiento que sigue el mismo (ste ltimo se muestra en un TImage).

En el componente GLScene se agregaron diversos SceneObjects para el manejo del Actor (vehculo) en el escenario. Y finalmente se asociaron los movimientos del Actor a una variable que cambiar su estado dependiendo de los movimientos que se hagan con la cabeza. El manejo del Actor en el escenario se hace a travs del SceneObject, GLNavigator asociado al objeto TGLActor en el cual se cargan dos archivos importantes para la visualizacin del Actor: el archivo en formato MD2 (que se utiliza para manejar mode-

los animados, aunque tambin puede ser utilizado para modelos estticos) y una imagen en formato JPG con la textura del objeto modelado. 3.2 Captura de Video El simulador propuesto se puede manejar en dos modalidades: tiempo real y capturas grabadas (con la finalidad de hacer pruebas rpidamente). En la Figura 1 se presentan imgenes con los movimientos bsicos de la cabeza para asociar el movimiento del Actor en el simulador.

a) Estado avanzando o detenido

b) Movimiento a la izquierda

c) Movimiento a la derecha

d) Cambio de estado a avanzar o detener Figura 1. Captura de movimientos bsicos

e) Acelerar

3.3 Deteccin de la cara A partir de algunas capturas controladas se resolvi el problema de detectar la cara. En particular, para esta tarea se utilizaron las caractersticas de la cara. Como herramienta se utiliz la librera OpenCV [6] - Open Computer Vision, en su implementacin sobre VisionLab y VideoLab para Delphi [7], libreras desarrolladas por Mitov [8]. De sta se utiliz el componente VLHaarDetectObjects, el cual en este caso utiliza archivos HaarTraining [9] que describen las caractersticas de la cara y ojos. Tambin se hicieron pruebas con otros componentes que no utilizan caractersticas, pero los resultados de deteccin de stos ltimos no fueron satisfactorios.

Los archivos HaarTraining se utilizaron en formato XML, ya que as lo requiere el componente y su construccin est basada en las caractersticas Haar-like de la imagen. Cada objeto en el VLHaarDetectObjects tiene su propio archivo HaarTraining. De manera experimental, se adecuaron los valores para el HaarTraining tomados de OpenCV, resultando los abajo mostrados (Figura 2).
-data <dir_name> -vec <vec_file_name> -bg <background_file_name> [-npos <number_of_positive_samples = 2000>] [-nneg <number_of_negative_samples = 2000>] [-nstages <number_of_stages = 14>] [-nsplits <number_of_splits = 1>] [-mem <memory_in_MB = 200>] [-sym (default)] [-nonsym] [-minhitrate <min_hit_rate = 0.995000>] [-maxfalsealarm <max_false_alarm_rate = 0.500000>] [-weighttrimming <weight_trimming = 0.950000>] [-eqw] [-mode <BASIC (default) | CORE | ALL>] [-w <sample_width = 24>] [-h <sample_height = 24>] [-bt <DAB | RAB | LB | GAB (default)>] [-err <misclass (default) | gini | entropy>] [-maxtreesplits <max_number_of_splits_in_tree_cascade = 0>] [-minpos <min_number_of_positive_samples_per_cluster = 500>]

Figura 2. Valores para generar un HaarTraining

En la Figura 3 se muestra la estructura del componente que utilizado.

Figura 3. Estructura del VLHaarDetectObjects1

El HaarTraining que corresponde a la cara se utiliza en el objeto 0 - Cara (Ver Figura 3). Ntese que se pueden encontrar tantas caras como haya en la captura de video. Del conjunto de caras halladas, se toma la cara principal, la que manejar el simulador, que corresponde a la que est en el centro de la imagen o cerca de l. De esta forma se definieron diferentes condiciones para que el Actor inicie su movimiento, la principal de ellas es que se detecte una cara central (o cercana al centro) en la escena capturada. Esta tcnica adems de servir para diferenciar las caras, ayuda a que no se pierdan movimientos a causa de situaciones de captura fuera del campo de visin de la

cmara. Despus de encontrar la cara principal en el video, se definieron los lmites de movimiento, es decir, para cada rostro detectado habr lmites diferentes de movimiento hacia algn lado. Se puede ver dicho ajuste en la Figura 4, en la cual se muestra un Frame del video procesado donde se observan los lmites para esa cara especfica. Adems el marcador virtual de la izquierda excede los lmites centrales y cambia el estado a movimiento izquierdo.

Figura 4. Lmites de movimiento.

3.4 Sincronizacin Para hacer la sincronizacin entre el simulador y los movimientos de la cabeza se utiliz una variable global (G) y dos marcadores virtuales obtenidos del VLHaarDetectObject. Estos marcadores son almacenados en una variable local del mtodo VLHaarDetectObjects1DetectedObjects, que se ejecuta para cada Frame. Los movimientos del Actor estn definidos a travs de la variable global que se actualiza de acuerdo a las condiciones mostradas en la Figura 5 y su significado est definido en la Figura 6. La operacin suma que se menciona en la Figura 5 corresponde a los puntos inferiores del rectngulo de la cara que se ha reconocido.
Si el Marcador 1 excede el lmite izquierdo entonces G = 2 Si el Marcador 2 excede el lmite derecho entonces G = 3 Si los Marcadores 1 y 2 no exceden el lmite izquierdo, derecho y arriba entonces G = 1 Si los Marcadores 1 y 2 exceden el lmite superior entonces G = 0 Si la suma del valor del Marcador 1 y 2 y el largo y ancho de la cara reconocida (como rectngulo) exceden el lmite inferior entonces el Actor acelera y entonces G = 4 Figura 5. Condiciones para los Lmites de movimiento

Valor de G 0 1 2 3 4

Significado/Accin Cambiar de Avanzar a Detener (o viceversa) Avanzar o Detener Movimiento hacia la izquierda Movimiento hacia la derecha Aceleracin

Figura 6. Significado de la variable global

4 Resultados Experimentales
La interfaz desarrollada de acuerdo a la metodologa descrita en la seccin anterior se muestra en la Figura 7, en sta se muestra la simulacin sincronizada con los movimientos de la cabeza bsicos mostrados en la Figura 1 y un escenario de fondo virtual. Puede notarse que el movimiento del sujeto en el Frame de video corresponde con el movimiento del actor en el escenario.

a)

Movimiento hacia la c) Etiquetas de derecha la interfaz Figura 7. Interfaz con Sincronizacin entre Movimiento y Simulador

Avanzando

b)

En la Figura 7a se puede observar que en la imagen la cabeza de la persona esta dentro de los lmites, por lo que est avanzando el Actor dentro del escenario simulado. Sin embargo en la Figura 7b la cabeza de la persona excede el lmite derecho, por lo cual el Actor se mueve hacia la derecha. El desplazamiento que el Actor hace en el escenario puede verse en el TImage blanco que se encuentra en la parte inferior izquierda de la interfaz (Mini Mundo vista de planta). Las etiquetas en la interfaz con nombre Walk, Straffe y Boost (Figura 7c), pueden ser cambiadas manualmente mediante el botn Cambiar, para que se modifique la velocidad del actor.

5 Conclusiones y Trabajo a Futuro


Existen diversos problemas que requieren la deteccin de movimiento de un sujeto. Las Ciencias Computacionales proporcionan una solucin mediante las tcnicas de Captura de Movimiento. En este trabajo se presenta y propone un simulador con captura de movimiento orientado al manejo de un mvil mediante rdenes proporcionadas por movimientos de la cabeza de un usuario. En particular, el enfoque que se presenta se basa en la deteccin del rostro del usuario y el reconocimiento de los movimientos vlidos para que el mvil ejecute una orden especfica. En este contexto, se implement un sistema computacional, del cual, una de sus utilidades particulares est orientada, por ejemplo a personas que no tengan las capacidades fsicas completas (en manos y pies) para conducir un vehculo, por lo que este sistema es una alternativa til a tal tipo de problemas. Debido a que el sistema presentado se encuentra en fase de desarrollo, el trabajo futuro incluye continuar desarrollando una versin final y adems, trasladar el enfoque a un escenario real en el que se involucren mviles tales como: autos industriales de baja velocidad y robots de servicio.

Referencias
[1] KITAGAWA, Midori; MoCap for Artist, Workflow and Techniques for Motion Capture; Chennai, India; 2008 [2] GANDULLO VILA, Jos Alberto. Simple Motion Capture System. ETSII Universidad de Sevilla. Abril de 2010 [3] Pgina de PrimeSense http://www.primesense.com/ [4] Pgina de Oficial OpenGL http://www.opengl.org [5] Pgina Oficial de GLScene http://www.glscene.sourceforge.net/ [6] Pgina Oficial de OpenCV http://opencv.willowgarage.com/ [7] Pgina Oficial de Delphi http://www.embarcadero.com/ [8] Pgina Oficial de Mitov Software http://www.mitov.com/ [9] Construccin de un HaarTraining http://note.sonots.com/SciSoftware/haartraining/document.html