El documento describe cómo Kinect utiliza algoritmos como Randomized Decision Forests y Mean-Shift para realizar detección y reconocimiento esquelético en tiempo real. Randomized Decision Forests clasifica los pixeles de una imagen de profundidad para obtener la pose de un objeto, mientras que Mean-Shift estima la posición de las articulaciones del esqueleto. Estos algoritmos permiten que Kinect capture el movimiento a través del reconocimiento esquelético de individuos.
Detección de Objetos y Reconocimiento Esquelético utilizado por KINECT
1. 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
2. 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.
3. 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.
4. 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.
5. 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:
6. 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.
7. 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.
8. 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
9. 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.
13. 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.
14. 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.
15. 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.
16. Definición de las articulaciones del
esqueleto (Resultado)
“Fig. 1. Mean - shift sobre imagen clasificada”
Fig2. Esqueleto sobre imagen clasificada.
17. 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