detección de objetos y reconocimiento esquelético utilizado por kinect

17
Detección y Reconocimiento Esquelético utilizado por KINECT Paute Nieves, Andrés Geovanny Escuela de Ingeniería de Sistema y Telemática - Universidad del Azuay - Cuenca, Ecuador

Upload: andres-paute

Post on 24-May-2015

962 views

Category:

Documents


3 download

DESCRIPTION

Kinect, desarrollado por PrimeSense y distribuido por Microsoft, es un dispositivo diseñando con el propósito de realizar captura de movimiento, a través de una serie de algoritmos como son: Randomized Decision Forests [1], algoritmo capaz de aprender ciertas características de un conjunto de imágenes de profundidad con el fin de clasificar los pixeles de una imagen para obtener la pose de un objeto. Mean-Shift [2], algoritmo capaz de estimar la posición correspondiente de las articulaciones del esqueleto. Aplicando dichos algoritmos se pretende demostrar como la tecnología Kinect es capaz de realizar el reconocimiento esquelético de un individuo en tiempo real.

TRANSCRIPT

Page 1: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Detección y Reconocimiento Esquelético utilizado por KINECT

Paute Nieves, Andrés Geovanny

Escuela de Ingeniería de Sistema y Telemática - Universidad del Azuay - Cuenca, Ecuador

Page 2: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Abstract

Kinect, desarrollado por PrimeSense y distribuido por Microsoft, es un dispositivo diseñando con el propósito de realizar captura de movimiento, a través de una serie de algoritmos como son: Randomized Decision Forests, algoritmo capaz de aprender ciertas características de un conjunto de imágenes de profundidad con el fin de clasificar los pixeles de una imagen para obtener la pose de un objeto. Mean-Shift, algoritmo capaz de estimar la posición correspondiente de las articulaciones del esqueleto.

Aplicando dichos algoritmos se pretende demostrar como la tecnología Kinect es capaz de realizar el reconocimiento esquelético de un individuo en tiempo real.

Page 3: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

KINECT

Kinect es un dispositivo de control que permite a los usuarios controlar e interactuar con la consola sin necesidad de tener contacto físico con un controlador de videojuegos tradicional, sino con el cuerpo, es decir con movimientos físicos. Esto se realiza mediante una interfaz natural de usuario que reconoce gestos, comandos de voz, objetos e imágenes. Los cuales son interpretados como órdenes.

Page 4: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Apariencia

El Kinect cuenta con una cámara RGB, un sensor de profundidad, un micrófono de múltiples matrices y un motor de inclinación. Todos estos componentes hacen del Kinect un dispositivo muy completo y potente.

Page 5: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Funcionamiento

Mientras los sensores reconocen y capturan el entorno del juego, Kinect utiliza una serie de filtros para procesar la información. Los cuales son:

Page 6: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Captura de Profundidad

La cámara RGB permite generar una imagen tridimensional de lo que tiene por delante. Para ello, el sensor de profundidad, que permite ver una habitación en 3D, emite rayos infrarrojos que se proyecta sobre la escena con un patrón de 50.000 puntos, invisibles al ojo humano, con el fin de marcar las líneas de profundidad, deducir el tiempo que tarda en rebotar el haz de luz con respecto al dispositivo y calcular distancia al objeto identificado.

Page 7: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Sustracción de Fondo

Permite extraer, de una imagen, aquellos elementos de interés para ser analizados de forma aislada.

Por ejemplo, se utiliza para extraer únicamente los pixeles del individuo de las imágenes producidas por Kinect.

Page 8: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Sustracción de Fondo (Algoritmos)

Existen varias aproximaciones para tratar el problema de sustracción de fondo, entre las que se pueden nombrar a:

Estimación basada en Mean-Shift.

Diferencia de cuadros.

Promedio de fondo.

Mezcla de Gaussiana

Page 9: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Mean-Shift

Es un método para encontrar extremos o picos locales en la distribución de densidad de un conjunto de datos. Este algoritmo puede verse, además, como una técnica no paramétrica de agrupación o clustering que no requiere conocimiento previo sobre el número de agrupación a utilizar.

Se dice, que es un método robusto ya que no toma en cuenta aquellos puntos fuera de lugar de los datos. El algoritmo opera procesando solo los puntos que se encuentren dentro de una ventana local. La idea consiste en estimar el vector de medias que indica el desplazamiento de la ventana hasta converger a la moda (valor con una mayor frecuencia en una distribución de datos) de la distribución.

Para estimar la distribución de los datos, el algoritmo emplea técnicas de estimación de densidad por kernel (núcleo de una función). Por lo general, se utiliza un Kernel Gaussiano para estimar la media ponderada de los puntos vecinos xi a un punto fijo x dentro de la ventana, con el fin de obtener el vector de desplazamiento que recibe el nombre de MEAN SHIFT.

Page 10: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Mean-Shift

El cálculo de dicho vector viene dado por la ecuación:

Donde G es la función de Kernel Gaussiano y son las muestras de entrada.

Se llama mean shift, ya que es la diferencia entre la media ponderada de los vecinos xi alrededor de x y el valor actual de x.

Page 11: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Bosques de Decisión Aleatoria - Randomized Decision Forests

Consiste en una agrupación de varios árboles de decisión que crecen con alguna forma de aleatorización. Son rápidos, robustos y relativamente fáciles de entrenar.

Para la clasificación de los pixeles de la imagen de profundidad es necesario definir una medida numérica que permita diferenciar de alguna manera a qué parte del cuerpo pertenece un pixel determinado. Para esta clasificación se emplea la siguiente fórmula:

Donde (x) es la profundidad del pixel x en la imagen I y los parámetros Ɵ = (u, v) 𝑑𝐼son desplazamientos que se le aplican al pixel x para reposicionarlo en otra parte de la imagen.

Page 12: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Clasificación de un pixel

Para clasificar un pixel x por cada árbol t se empieza desde la raíz y por cada nodo interno se calcula la función de atributo 0 y se envía el pixel a la derecha o a la 𝑓izquierda del árbol dependiendo de la comparación dada con el umbral Ƭ. Al llegar a un nodo hoja se tiene una distribución de probabilidades referente a la parte del cuerpo a la que pueda pertenecer el pixel x en cada árbol t. Para conocer la clasificación del pixel x se promedian las distribuciones de probabilidades de la siguiente forma:

Page 13: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Compresión de Imágenes

Para que el algoritmo pueda operar de forma óptima en tiempo real, es necesario reducir la carga de procesamiento correspondiente a aplicar el clasificador sobre todos los pixeles de la persona en la imagen. Para ello se propone un método de compresión que consiste en clasificar solo algunos pixeles correspondientes a la persona en vez de clasificarlos todos. Para ello, se fijan saltos de n pixeles en la imagen, es decir, para cada pixel, el próximo vecino con información será aquel que se encuentra a n pixeles de distancia.

A partir de esto se obtiene una imagen de la persona más segmentada, la cual es comprimida uniendo los pixeles que poseen información, obteniendo así una imagen de menor dimensión que es más rápida de procesar.

Page 14: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Definición de las articulaciones del esqueleto

Para ello, se utiliza el algoritmo Mean-Shift sobre el conjunto de puntos clasificados de la imagen. El algoritmo es utilizado para estimar los puntos correspondientes a las propuestas finales de las articulaciones de cada parte del cuerpo. Mean-Shift [2] utiliza las probabilidades de clasificación de los pixeles y desplaza la ventana hacia el punto donde se tengan los mayores porcentajes de clasificación. Con este algoritmo es posible ignorar aquellos puntos fuera de lugar que puedan dañar la estimación final de la articulación.

El algoritmo es aplicado en cada parte del cuerpo. Como posición inicial para la ventana del algoritmo, se utiliza el promedio de los puntos cuyo porcentaje de clasificación sea mayor que un valor umbral aprendido Ƭ. Con ello se garantiza que el algoritmo empiece en una zona donde pueda converger a una buena solución. En la figura 1 se observa la solución del Mean-shift aplicada a una imagen.

Page 15: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Definición de las articulaciones del esqueleto

Una vez obtenidos los puntos de la imagen correspondientes a cada articulación, con sus respectivos valores de profundidad, es necesario obtener la posición en el espacio 3D de los mismos para obtener los puntos finales del esqueleto.

Para ello se realiza la transformación de los parámetros intrínsecos, encargados de definir el modelo de distorsión de los lentes y el modelo de geometría de la cámara, a partir de la cual se obtienen las coordenadas 3D en espacio euclidiano de las articulaciones del esqueleto, figura 2.

Page 16: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Definición de las articulaciones del esqueleto (Resultado)

“Fig. 1. Mean - shift sobre imagen clasificada”

Fig2. Esqueleto sobre imagen clasificada.

Page 17: Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT

Referencias

[1] Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, and Andrew Blake. Real-Time Human Pose Recognition in Parts from Single Depth Images. 2013, 22 de Junio. [En línea]. Disponible: http://research.microsoft.com/pubs/145347/BodyPartRecognition.pdf

[2] Richard Szeliski. (2013, 23 de Junio). Computer Vision: Algorithms and Applications. [En línea]. Disponible: http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf

[3] David de la Fuente. (2013, 20 de Junio). Aplicaciones de Kinect para Neurohabilitación, [En línea]. Disponible: http://upcommons.upc.edu/pfc/bitstream/2099.1/15334/1/memoria.pdf

[4] Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, and Andrew Blake. Real-Time Human Pose Recognition in Parts from Single Depth Images. 2013, 22 de Junio. [En línea]. Disponible: http://research.microsoft.com/pubs/145347/BodyPartRecognition.pdf

[5] Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, and Andrew Blake. Real-Time Human Pose Recognition in Parts from Single Depth Images. 2013, 22 de Junio. [En línea]. Disponible: http://research.microsoft.com/pubs/145347/SupplementaryMaterial.pdf