Sunteți pe pagina 1din 6

1

Estudio del funcionamiento del sensor Kinect y aplicaciones para bioingeniera


Ladislao Mathe, Daro Samban, Gabriel Gmez (dariosamban@ gmail.com)

Abstract El Grupo Robtica y Sistemas Integrados de la


Universidad Nacional de Crdoba est llevando adelante un proyecto financiado por el Ministerio de Ciencia y Tecnologa de la provincia de Crdoba y la SeCyT-UNC de un brazo robtico para Laparoscopa Para las operaciones quirrgicas mnimamente invasivas, es de gran ayuda disponer de un brazo robtico que sostenga al endoscopio. Sin embargo, tambin es de gran importancia que este brazo robtico afecte lo menos posible a las operaciones que necesite realizar el cirujano. Por tal motivo, se propuso y se inici el estudio de un sensor ptico que permita ubicar espacialmente a los brazos del cirujano y, de esta manera, planificar la trayectoria del brazo robtico a los efectos de evitar colisiones entre ellos. El sensor Kinect se presenta como una excelente posibilidad dado que permite adquirir las imgenes en el espectro visible y, con la informacin del espectro infrarrojo, armar un plano tridimensional de los objetos. En este caso, se desarrollaron dos aplicaciones que servirn como punto de inicio para el proyecto del Brazo Robtico. La primera aplicacin proporciona un entorno de ensayos capaz de evaluar todos los componentes del sensor en tiempo real. La segunda aplicacin permite registrar y guardar trayectorias del cuerpo de una o varias personas pudiendo reproducirlas luego en cualquier momento. Index Terms Sensor ptico Kinect colisiones determinacin 3D

Se desarrollaron dos aplicaciones necesarias para el proyecto general del brazo de laparoscopa. La primera aplicacin es un entorno de prueba capaz de confirmar el buen funcionamiento del sensor y todos sus componentes internos. La segunda aplicacin, se entiende como una herramienta capaz de captar y guardar todas las trayectorias que realice el cuerpo de una o varias personas, pudiendo reproducirlas luego en cualquier momento. Adems de este proyecto general, tambin se prev la utilizacin del sensor Kinect para dirigir un robot mvil que tenga visin tridimensional II. EL SENSOR KINECT Y SU COMPOSICIN El sensor de Kinect es un equipo alargado conectado a un pivote, diseado para estar en una posicin horizontal. El dispositivo tiene una cmara RGB, un sensor de profundidad y un micrfono multi-array bidireccional que, en conjunto, capturan imgenes y movimientos de los cuerpos en 3D, adems de ofrecer reconocimiento facial y aceptar comandos de voz.

I. INTRODUCCIN ESDE el ao 2007, se est desarrollando en el GRSI Grupo Robtica y Sistemas Integrados de la Universidad Nacional de Crdoba, el proyecto Brazo Robtico para Laparoscopa cuyo objetivo es el de asistir al cirujano en las operaciones laparoscpicas. Este proyecto nace a raz de un pedido del Servicio de Ciruga Peditrica - Hospital de Nios de la Santsima Trinidad de Crdoba. Uno de los sub-proyectos consiste en incorporar al sistema Robtico un sensor de imgenes que permita utilizar las mismas para planificar los desplazamientos del brazo robtico de manera de evitar colisiones entre el brazo robot y los brazos del cirujano. A tal efecto, se adquiri un sensor Kinect. En el presente trabajo, se detallan las actividades realizadas con el sensor Kinect orientadas a determinar las capacidades tcnicas y de funcionamiento del sensor de manera de poder disear luego aplicaciones para detectar movimientos o superficies tridimensionales con el objetivo de asegurar la correcta planificacin de las trayectorias del Brazo Robtico de modo de no colisionar con los brazos del cirujano.

Fig. 1 Dimensiones del sensor Kinect

El sensor de Kinect adquiere imgenes de video con un sensor CMOS de colores a una frecuencia de 30 Hz, en colores RGB de 32-bits y resolucin VGA de 640480 pixeles. El canal de video monocromo CMOS es de 16-bit, resolucin QVGA de 320240 pixeles con hasta 65,536 niveles de sensibilidad (Fig. 2.). Para calcular distancias entre un cuerpo y el sensor, el sensor emite un haz lser infrarrojo que proyecta un patrn de puntos sobre los cuerpos cuya distancia se determina. Una cmara infrarroja capta este patrn y por hardware calcula la profundidad de cada punto. El rango de profundidad del sensor de Kinect est entre 0.4 y 4 mts (Fig. 3.) Existen 2

2 modos (Default y Near) para determinar distancias. Se ha elegido el modo Default ya que permite medir hasta 4 metros de distancia con respecto al sensor El ngulo de vista (FOV) es de 58 horizontales y 45 verticales. Por otro lado el pivote permite orientar en elevacin, hacia arriba o hacia abajo incrementando el FOV hasta en 27. El array del micrfono tiene cuatro cpsulas, y opera con cada canal procesando en 16-bit de audio con un ratio de frecuencia de 16 kHz. La cmara de Kinect funciona con hardware y software propios para el reconocimiento de imagen. En un amplio campo visual con objetos, la cmara Kinect trata de reconocer a qu distancia estn los distintos objetos, distinguiendo movimientos en tiempo real. El sensor Kinect puede llegar a distinguir la profundidad de cada objeto con una resolucin de 1 centmetro y las estimaciones de la altura y anchura con una exactitud de aproximadamente 3 milmetros. El hardware de Kinect est compuesto por la cmara y el proyector de luz infrarroja, aadido al firmware y a un procesador que utiliza algoritmos para procesar las imgenes tridimensionales.

Fig. 4 Funcionamiento del sensor monocromtico Fig. 2. Composicin interna del sensor Kinect.

La cmara tiene dos funciones principales: generar un mapa en 3D de la imagen que tiene en su campo visual y reconocer humanos en movimiento entre los objetos de la imagen a partir de diferentes segmentos de las articulaciones del cuerpo y un esquema en escala de grises.

El procesador es capaz de interpretar los movimientos que se registran de los objetos capturados por la cmara de Kinect en eventos con significado que aparecen en pantalla. Los movimientos buscados por el algoritmo son contextualizados. Por ejemplo, si se est aplicando el sensor Kinect a un juego como Kinect Adventures, donde una balsa desciende por la corriente del ro, dado que este juego requiere movimientos tales como agacharse o tumbarse, el algoritmo buscar la identificacin de estos movimientos en tiempo real para producir eventos en pantalla. Si el usuario navega por el men con interface grfica de Netflix entonces se buscarn movimientos con las manos horizontales y verticales que sern registrados en los fenmenos de pantalla. (GetLab) III. DETECCIN DE ARTICULACIONES MEDIANTE EL SENSOR
KINECT

Fig. 3 Rango de distancias admitidas por el sensor Kinect. Existen 2 modos (Default y Near).

Normalmente, el flujo de datos crudos que suministra el sensor Kinect proporciona la informacin de 20 puntos de una persona cuando est dentro del rango visual admisible (Fig. 5). De esta manera, es posible obtener la informacin posicional en tiempo real y en los 3 ejes cartesianos de estos 20 puntos por persona. Cabe destacar que la informacin recolectada est en un formato imagen de 640x480 pixeles tomada a una velocidad de 30 FPS (Frames per Second o Cuadros por segundo). Con el fin de obtener todas las trayectorias que realiza una persona, es necesario registrar y archivar los 20 puntos que entrega el dispositivo. Cabe destacar que esta es la

3 funcionalidad ms importante que tiene el sensor para la aplicacin buscada, dado que otorga la posibilidad de tener la posicin tridimensional en cada instante de tiempo. Si se toma una sucesin dinmica de estas entregas, se podr obtener todas las trayectorias de todos las partes del cuerpo de una persona. IV. ELECCIN DEL KIT DE DESARROLLO DE SOFTWARE - SDK
PARA PROGRAMAR EL KINECT

Antes de iniciar el desarrollo de la primera aplicacin se realiz un estudio y anlisis de distintos kits de desarrollo con el objetivo de decidir con que SDK (software development kit) programar las aplicaciones. Esta instancia es crucial ya que una vez comenzado el desarrollo de las aplicaciones, hubiese sido un gran problema tener que dar marcha atrs y cambiar la SDK si hubiese surgido algn problema de compatibilidad con los equipos o bien con las aplicaciones a realizar

Fig. 5 Conjunto de 20 puntos detectado por el sensor Kinect.

Entre las opciones, se encontraron dos posibles libreras: libreras libres o libreras oficiales (Fig. 6). Dentro de las primeras, la ms conocida y la ms utilizada es la llamada OpenNi que guarda compatibilidad con las libreras de OpenKinect. Para el desarrollo de la aplicacin se seleccion la librera OpenNi debido a su mayor difusin en Internet y por lo tanto, existir ms informacin con distintas aplicaciones. En cuanto a la oficial, Microsoft lanz la SDK 1.0 para Kinect la cual cuenta con una ordenada documentacin y amplia informacin en la web. A pesar de que las libreras OpenNi presentaban ms ventajas, al haber mucha ms informacin por parte de la SDK oficial, se decidi utilizar la librera oficial para desarrollar las primeras aplicaciones.

Fig. 6. Comparacin entre Microsoft SDK for Kinect 1.0 y el OpenNi

V. DESARROLLO DE LA APLICACIN PARA ENSAYOS DEL SENSOR TEST KINECT Primero se establecieron los requerimientos funcionales del proyecto y para esto fue necesario diferenciar todos los dispositivos que existen dentro del sensor Kinect.

4 Cmara RGB Cmara Monocromtica D con IR Motor Acelermetros Micrfono ambiental LED Se realiz una interface grfica (Fig. 7.) simple y amistosa para que el usuario tenga la posibilidad de probar que todos los componentes del sensor funcionen de manera correcta. VI. DESARROLLO DE LA APLICACIN DE GRABADO Y REPRODUCCIN DE TRAYECTORIAS IOSKELETON La otra aplicacin desarrollada consiste en la realizacin de una aplicacin capaz de identificar los puntos ms importantes del cuerpo humano (clase Skeleton de SDK) grabndolos todo el tiempo que desee el usuario con la opcin de guardarlos en un archivo TXT. Esto es, grabar y guardar trayectorias del cuerpo de una persona en un archivo comn. Posteriormente, en la misma aplicacin, se tendr la opcin de cargar el archivo generado y reproducir las trayectorias de manera grfica. Para lograr la generacin de un archivo es necesario la creacin de un protocolo de archivo. Es decir, una forma de guardar los datos para que luego puedan ser reproducidos respetando la forma. Es importante comprender el funcionamiento y la forma de las seales captadas para luego entender el protocolo que se va a crear detallado ms adelante en este documento. Esta aplicacin es de gran importancia para el proyecto general ya que conforma el Input / Output de archivos que representan la trayectoria de personas. De esta forma, se podr alojar en archivos todos los movimientos que se registren para luego reproducirlos y analizarlos permitiendo manipular sistemas robticos en funcin de los puntos de las trayectorias captadas. El guardado de datos se realiza mediante la escritura de la posicin tridimensional de todos los puntos en cada instante en un archivo TXT. Para lograr este objetivo fue necesaria la elaboracin de un protocolo de escritura y lectura de datos. Cada imagen ser representada por una lnea de texto de tipo String con el siguiente formato:

Se dise un software que captura las seales de un sensor Kinect conectado a una entrada USB y los exhibe en una pantalla simple donde se puede observar el funcionamiento de todos los dispositivos nombrados anteriormente. De esta manera se logra asegurar que la conexin est lograda y el equipo est funcionando correctamente. Las libreras del SDK de Kinect estn disponibles para los lenguajes C++ y C#. Se eligi el segundo (C#) para desarrollar las aplicaciones. Las imgenes de ambas cmaras del Kinect se obtuvieron mediante los componentes WPF KinectColorViewer y KinectDepthViewer, que ofrece la SDK. Para obtener los cuadros por segundo simplemente se calcula en funcin de las imgenes captadas en cmara monocromtica Depth. Se obtienen los tiempos en cada instante y en funcin de stos, se calcula la cantidad de cuadros en un segundo. Por ltimo se presenta el resultado como un dato en el cuadro de visualizacin. Para cambiar el ngulo utilizando el motor del sensor, se dise un simple cuadro de texto en donde el usuario ingresa por teclado el ngulo deseado respecto a la horizontal (no respecto a la base) y luego presionando en botn SET con el mouse, se comanda el movimiento del motor cambiando el parmetro ElevationAngle del objeto Sensor. En cuanto al grabador y reproductor de audio, cuando el usuario oprime el botn grabar, se activa una bandera la cual permite el ingreso a un bucle que toma los datos entregados por el Audiosource del objeto Sensor y los guarda en un simple array. Este mismo bucle est dentro de otro bucle que permite determinar de dnde proviene el sonido muestreado por el micrfono ambiental determinando el parmetro BeamAngle. Cuando el usuario presiona el botn Reproducir, simplemente, se abre el archivo de sonido .MP3 guardado anteriormente.

fps: primero se coloca el nmero de fps actual del cuadro escaneado. #: indica que comienza a describir los puntos de una persona (esqueleto) Id: id del esqueleto a grabar Sucesin de coordenadas x y z de cada punto en el siguiente orden: Por ejemplo:
20 # 0 0,691704 0,4166231 21224 0,6856822 0,3888395 21408 0,6675547 0,2409311 21312 0,6683985 0,1429283 21200 0,6130065 0,2980414 21272 0,5938133 0,4018739 21640 0,5701469 0,4764952 21352 0,5687516 0,503214 21176 0,7293036 0,2940527 21472 0,7549853 0,3960381 21856 0,7716017 0,4639662 20608 0,7719545 0,5019765 19968 0,6706141 0,4530297 21104 0,6450689 0,7161486 21264 0,6435035 0,8764954 21432 0,6385844 0,9064202 20984 0,722645 0,4507132 21264 0,7384559 0,7030128 20848 0,7608178 0,883681 20832 0,766999 0,918592 20512 ff

Fig. 7. Interface grfica TestKinect diseado

5 De esta manera, y siguiendo este protocolo, se logra la escritura y lectura de todas las trayectorias que realiza una o varias personas en frente del sensor Kinect. Por supuesto, la aplicacin dispone de una interface grfica simple y amigable (Fig. 8.) para lograr una conexin segura entre el usuario y el software. datos obtenidos tanto por los sensores Kinect como por las celdas de carga de la plataforma de fuerza, se obtienen los vectores de fuerza que realiza el paciente en cada instante de la marcha permitiendo al profesional mdico realizar algn tipo de diagnostico en el caso de que el paciente presente alguna patologa del marcha. Como vemos, el sensor Kinect presenta un gran potencial en cualquier tipo de aplicaciones. Por ello consideramos que es necesario aplicar este potencia al campo de la medicina integrando el sensor a dispositivos biomdicos. VIII. CONCLUSIONES Con este desarrollo se logr dar un gran paso en el proyecto general ya que se estableci una forma de Entrada / Salida de archivos que contienen trayectorias, lo cual hace tiempo se estuvo buscando. Por otro lado, se adquirieron conocimientos de nivel avanzado acerca del funcionamiento del sensor y la generacin de aplicaciones en C# con el mismo Se adquirieron conocimientos acerca del funcionamiento general del Sensor Kinect adems de las aplicaciones que se pueden llegar a desarrollar. A partir del desarrollo de la aplicacin de prueba Test Kinect se comenz la familiarizacin con el Sensor Kinect que permite evaluar el funcionamiento general. Con el desarrollo de la aplicacin IOSkeleton, se adquirieron los conocimientos acerca del formato de las seales recibidas desde el sensor adems de crear un protocolo de entrada y salida de los mismos. Respecto al aspecto tcnicos se logr hacer funcionar el sensor Kinect conectado a una PC obteniendo las seales captadas por todos los dispositivos que posee el Kinect tales como la cmara VGA, cmara monocromtica de distancia, micrfono ambiental, motor vertical y acelermetros. Mediante el desarrollo del Test Kinect se logr una excelente aplicacin de ensayos que permite verificar el buen funcionamiento de todos los componentes que integran el sensor y al mismo tiempo una herramienta muy til para el usuario en general. La otra aplicacin desarrollada, el IOSkeleton registra los puntos de una o varias personas en el espacio cartesiano tridimensional siendo capaz de grabar las trayectorias del mismo, guardarlas y cargarlas en un archivo de texto estndar. Esto representa un gran avance dado que permite usarlo como punto de partida para construir otras aplicaciones.

Fig. 8 Interfaz grafica de IOSkeleton

Es de destacar que la aplicacin ofrece dos posibilidades de grabado: manual y automtico. La primera brinda la posiblidad de iniciar y terminar la grabacin oprimiendo un simple botn. La segunda opcin permite que el usuario configure el tiempo de grabado en segudnos y al oprimir el botn de grabado, la aplicacin registra las trayectoras captados en ese periodo de tiempo. VII. APLICACIONES PARA BIOINGENIERA Actualmente, el sensor Kinect es utilizado en mltiples campos tales como la publicidad o el entretenimiento entre otros. La idea fundamental es incluir mayor participacin de dicho sensor en el campo de la salud mediante la inclusin del sensor en dispositivos o desarrollos de bioingeniera. Como se menciono anteriormente, las aplicaciones descriptas anteriormente se encuentran dentro del marco de un proyecto mayor el cual consiste en la construccin de un brazo de laparoscopia monitoreado con el sensor Kinect. A grandes rasgos, el proyecto se basa en controlar el brazo de laparoscopia utilizando el sensor Kinect, quien controla todas los movimientos alrededor del brazo movindolo si es necesario. Evitando as, cualquier tipo de colisin que pueda causar algn dao en el paciente. Sin embargo, el proyecto anterior es solo uno de miles que se pueden realizar. La idea principal es ir incluyendo paulatinamente el sensor Kinect a dispositivos biomdicos. Otro proyecto en marcha actualmente en el cual se utilizan las aplicaciones descriptas anteriormente, es un estudio de fuerzas de la marcha. En el mismo, se hace caminar al paciente por una plataforma de fuerza obteniendo el peso que se ejerce en cada instante de la marcha. Al mismo tiempo, se escanea el paciente con dos sensores Kinect escaneando cada trayectoria que realiza el paciente. Luego sincronizando los

AGRADECIMIENTOS

El mbito profesional y de investigacin reinante en el Grupo Robtica y Sistemas Integrados de la Facultad de Ciencias Exactas, Fsicas y Naturales de la Universidad Nacional de Crdoba facilitaron de gran modo el trabajo desarrollado, destacndose por el muy buen ambiente de trabajo basado en el respeto y la confianza. Este punto es de gran importancia para formar experiencia y realizar prcticas profesionales supervisadas para la capacitacin laboral y profesional, mbito en el que nos vamos a mover en un futuro no muy lejano. Por otra parte, se tuvo permanentemente en

6 cuenta la futura aplicacin de este sensor. Esto es, en Quirfano del Hospital de Nios de la Provincia de Crdoba. Para finalizar reconocemos que el tiempo de trabajo en el Grupo Robtica y Sistemas Integrados de la Facultad de Ciencias Exactas, Fsicas y Naturales de la Universidad Nacional de Crdoba fue justificado con creces y dej una enseanza muy rica en todos los sentidos. Es realmente importante contar con laboratorios de este tipo dentro de una facultad de ingeniera ya que se brindan herramientas y espacios ideales para que los alumnos de la institucin puedan desarrollar sus trabajos e investigaciones de la manera correcta. Finalizando, se agradece a toda la gente que hizo posible la realizacin de este proyecto, especialmente a los integrantes del Grupo de Robtica y Sistemas Integrados (GRSI). A su director Ing. Ladislao Mathe, al Ing. Gabriel Gmez, al Ing. Oscar Cceres y al Ing. Juan Pedroni como as tambin a los otros alumnos ayudantes de investigacin quienes colaboraron con gran entusiasmo

REFERENCIAS [1] (SlideShare) Juan Pablo Arbelez (2011, March). Kinect, Como Funciona. Available: http://www.slideshare.net/ArbelaezGroup/kinectcomo-funciona-7228721 (Visual Studio Developer Center) Microsoft. Get started with Visual Studio. Available: http://msdn.microsoft.com/en-us/vstudio/ff431702 (Kinect for Windows) Microsoft. Kinect SDK. Available: http://www.microsoft.com/en-us/kinectforwindows/develop/ (Coding4Fun) Microsoft. Project Gallery. Available: http://channel9.msdn.com/coding4fun/kinect/

[2] [3] [4]

Sambn Daro (M11M12) 1989, nacido en, Argentina donde cumpli con todos sus estudios. En el ao 2006 completo los estudios secundarios en el instituto San Jos de su ciudad natal. En el ao siguiente, comenz la carrera de Ingeniera en Computacin en la Universidad Nacional de Crdoba. En el ao 2012 comenz su proyecto final de carrera adems de insertarse en el mercado laboral en QAustral S.A. como analista funcional de Software. (email: dariosamban@ gmail.com)

S-ar putea să vă placă și