procedimientos sistema con kinect maestria

Download Procedimientos Sistema Con Kinect Maestria

If you can't read please download the document

Upload: joe-black

Post on 25-Nov-2015

10 views

Category:

Documents


1 download

TRANSCRIPT

AVANCES EN SOFTWARE ---------------------------------------------------------------------------------------------- 1.- Captura en 3D / RGB con el Kinect

2.- Deteccin de rostros con el Haar Classifier

3.- Segmentacin de piel

4.- Segmentacin de profundidad -- informacin con histograma

5.- Modelo Geomtrico en 3D

6.- Imagen Umbralizada en glpclview

7.- Acceso al Buffer de profundidad con OpenGL

NO TENEMOS EN SOFTWARE ------------------------------------------------------------------------------------------------ 1.- Pruebas con el Background sustraction

2.- Ajustar el modelo geomtrico en 3D a la imagen que tenemos

3.- Partir del reconocimiento del rostro para de ah auto ajustar el modelo geomtrico

4.- Definir los atributos de postura y movimiento que vamos a utilizar

5.- Implantacin de los modelos ocultos de Markov para el reconocimiento del brazo derecho

6.- Darle el seguimiento y prediccin de los movimientos al brazo con el filtro de partculas y realizar pruebas

7.- Arreglar el modelo geomtrico porque se confunde el gesto de apuntar y parar

REDACCION

- Escribir captulo I (Avances) --------------------------------------------------------------------------------------------------

PROCEDIMIENTO DEL SISTEMA DE RECONOCIMIENTO DE GESTOS DEL BRAZO DERECHO DEL USUARIO

1.-Posicionamos el kinect con la ayuda de un tripode para kinect con una altura de 1.50 metros 2.-El rea de ubicacin se debe considerar con un espacio mnimo de 3 metros de distancia de profundidad hasta topar con pared 3.-El usuario realiza un prueba de ubicacin en una posicin de 2 metros, de frente, sin objetos que obstruyan la visibilidad hacia el kinect 4.-Ubicamos la laptop a un lado del kinect 5.-Conectamos la alimentacin de corriente del Kinect 6.-Conectamos el cable usb que viene con el Kinect a la laptop 7.-Despus de haber hecho la conexin fsica procedemos a abrir la terminal del sistema operativo linux ubuntu 12.04 LTS 8.-Nos metemos a la carpeta donde se encuentra el programa principal que vamos a ejecutar 9.-Ejecutamos el programa principal (Enter)

En el momento en que se ejecuta el sistema el Kinect se activa cambiando una luz de sealizacin de verde a rojo indicando que esta en funcionamiento.

Al ejecutarse el sistema el Kinect inicia la captura de 2 tipos de imgenes de forma secuencial: Una imagen RGB y una imagen de valores crudos de profundidad (cuyos valores de pixeles van de 0 a 2048).

En base a esta informacion el prgrama glpclview ques estamos utilizando puede proyectar tres imagenes: rbg, profundidad y cruda pero colorizada.

como se pasa de la imagen de profundiad cruda a la imagen de profundidad colorizada?

La tercer imagen nos despliega la informacin de profundidad proyectada en un espacio en 3D

De que manera se realiza la proyeccin?

Cual imagen es en la que vamos a utilizar el algoritmo background subtraction?

Al momento que se despliegan las imgenes el sistema comienza a aprender el entorno sin la presencia del usuario. Para dicho aprendizaje, se utiliza un algoritmo tipo background subtraction.

Que algoritmo de background subtraction vamos a usar?

El proceso del algoritmo de backgound subtraction en general es como sigue:

En el aprendizaje se indican dos pasos: a) las condiciones que se deben de cumplir para que la escena pueda aprenderse y b) Entrada a escena del usuario. Dichos pasos se describen enseguida:

a) al iniciar el sistema el usuario no debe encontrarse dentro de la escena, se asume constancia de iluminacin, que no existan objetos en movimiento y que la camara se mantenga fija. Enseguida se le da un determinado tiempo al sistema para que empiece a aprender. Una ves aprendido dicho entorno, los pxeles son eliminados de la escena apareciendo la imagen en color negro.

b) Posteriormente el usuario entra al campo visual del kinect de la siguiente manera:

En suposicin de que el usuario se encuentra de frente al Kinect, con un entorno controlado de iluminacin, con un fondo blanco para facilitar el reconocimiento de la imagen, con vestimenta contrastante con el fondo y como primera aproximacin color verde, sin obstrucciones entre el usuario y el Kinect con una distancia de 2 metros entre el Kinect y el usuario con una altura de 1.50 metros

El sistema reconoce la variacin en los pxeles de color identificando ese cambio como un objeto en movimiento diferente del fondo y se transforman en pxeles de color blanco generando una imagen binaria de la silueta del usuario que se supone corresponde a la silueta del usuario.

Modeliza la imagen sin el usuario, y hace la resta entre la imagen actual y la imagen modelizada

definir un umbral. Si la resta es mayor a 50 se considera como usuario y si la resta es menor a 50 lo considero como fondo.Checar articulo...

Entender la idea del backgroudn subtraction en 3D, primero hacer una funcion que modelice los datos en 3D pero sin el usuario, modelizar una sola imagen sin el usuario,,, despues se resta la imagen con el usuario

Como funciona el algoritmo de background subtraction que vamos a utilizar? Cuanto tiempo tardar el algoritmo en aprender el entorno ?Porque grabe una imagen sin el usuario y esa imagen va a ser modelizada, yo mismo modelizo la imagen sin el usuario. Y el umbral se define deacuerdo a los resultados.Condicion ... la primera imagen siempre va a ser la del fondo...imagen del fondo capturada...luego se pone el usuarioEmpezar con el metodo de First Frame Subtractionlo hago apartir de la imagen en 3D

obtener una silueta que no haya ruido. No debe de haber ningun tipo de ruido. Porque sera un ambiente muy controlado.

Hacer en paralelo la parte del modelo en 3D y el background subtraction... hacer que correspondan con el filtro de particulas

hace resumen del articulo que me envio el Dr. David

Habr una sealizacin que nos diga cuando el proceso de reconocimiento del entorno termine?

En apoyo a reforzar la segmentacin del usuario se considera el uso de tres opciones las cuales son:a) deteccin y localizacin del rostro del usuario en la imagen de color RGB, b) deteccion o clasificacion de pixeles de color de piel en la imagen de profundidad y c) deteccin de profundidad en base a distancia.

El funcionamiento del algoritmo de deteccin de rostros en general es como sigue:

Existen diversos tipos de detectores, en el caso particular de los detectores de rostros, estos se dividen en dos arquitecturas: a) los que se basan en caractersticas especficas en objeto de deteccin. En nuestro caso caractersticas de rasgos faciales tales como ojos, boca, nariz, etc. y b) los que se basan en imgenes identificando que contengan o no rostros sin buscar rasgos concretos.

El algoritmo de deteccin de rostros puede combinar las arquitecturas anteriores con la implementacin de multiples clasificadores de identificacin muy sencilla y especfica, conectandolos en un algoritmo tipo cascada y formando un clasificador mas robusto. El procedimiento de deteccin del algoritmo tipo cascada sigue varias etapas en los clasificadores de manera secuencial desde detecciones simples, pasando por detecciones cada ves mas rigurosas, hasta llegar al clasificador final que identifica la region de la imgen como rostro, solamente en el caso de que haya pasado por todas las etapas de verificacin del detector de rostros.

La comparacin de rostros consiste en datos de entrenamiento que contienen cientos de imagenes que el algoritmo de deteccin de rostros usa para su correcta clasificacin. Mientras mas clasificadores se usen en cascada mayor es el porcentaje de veracidad, pero se incrementa la demanda computacional, es por eso que se deben hacer varias pruebas de ajuste.

Como funciona el algoritmo clasificador? Que clasifica?Cuantos clasificadores en cascada usar?

Para localizar el rostro del usuario en la imagen de Color RGB usamos el algoritmo clasificador de rostros de Viola & Jones Haar classifier y el Ada Boost. La indicacin visual en pantalla al momento de la detecteccin es el contorno de un cuadro de color rojo posicionado alrededor del rostro del usuario en la imagen RGB. Enseguida se copia la posicin de los pxeles del cuadro donde se detecto el rostro en las imagenes concernientes a profundidad, imagen en 3D e imagen donde se encuentra la silueta obtenida con el algoritmo background sustraction.

Cmo funciona el algoritmo clasificador de Viola and Jones?Que busca el Ada Boost?

Es conveniente usar piel y profundidad de apoyo?

El funcionamiento del algoritmo de piel en general es como sigue:

Revisar el algoritmo de deteccion de piel a utilizar

Se verifica el valor RGB del pixel, este valor se compara con una base de datos que deacuerdo a alguna medida de simulitud que va a indicar si es piel o no es piel. Si es piel se va a estiquetar este pixel como piel y se le va a asignar un color blanco dentro de la imagen temporal que se forme apartir de esta clasificacin. Este proceso va a continuar con cada pixel de la imagen hasta terminar. El resultado es una imagen en blanco y negro donde el color blanco corresponde a los pixeles de piel y el color negro correspondea los pixeles de no piel.

Donde se debe aplicar el clasificador de piel, en la imagen reconocida del rostro o en toda la imagen?

Otra tecnica de apoyo es la obtencin de informacin de profundidad basada en distancia de los pxeles que se encuentran en toda la imagen correspondiente a la imagen de profundidad que se despliega en paralelo con las otras imagenes.

En apoyo a la visualizacin de los niveles de deteccin de pixeles de ambas imagenes (de piel y profundidad basada en distancia) se generan dos histogramas, uno de piel y otro de profundidad los cuales nos indican .... Que nos indican?

Posteriormente comienza la interaccin entre el usuario y el Kinect de la siguiente manera:

Tomando como base la localizacin del rostro se ajusta el modelo geomtrico

Como se ajusta el modelo geomtrico a la informacin obtenida de las imgenes del usuario? mis suposiciones estn bien?

- Se ajusta el cuadro superior del modelo geomtrico identificado como cabeza al cuadrodetectado en el clasificador de rostros - Se toma como base la cabeza del modelo geomtrico para ajustarlo a la imagen en 3D Se toma informacin de los pxeles que se encuentran en posicin x,y,z limitando el rastreo dentro del cubo correspondiente al brazo derecho (informacin de profundidad con OpenGL)

Como cambiar la posicion del brazo en el modelo geomtrico, que parmetros cambiar?Cuales son las articulaciones y las posibles configuraciones del brazo que se pueden obtener?Que parmetros se deben de mover?Como se va a representar la informacion del modelo geomtrico en el sistema?Los cubos ya estan hechos en OpenGL o se tienen hacer?Como se ajustar el modelo geomtrico al tamao de la persona desde la cabeza?Cuales son las proporciones que vamos a utilizar del rostro con respecto a la altura del torso del modelo geomtrico?Como se escanear el espacio en 3D para buscar la mejor configuracin del modelo geomtrico a lo que esta viendo el Kinect?Que parmetros modificar, los puros angulos de las articulaciones o se necesitan conocer los 8 angulos del cubo que me representa el brazo en el modelo geomtrico en 3D?

Se da el seguimiento al brazo derecho del usuario:Utilizando el filtro de partculas

Cual mtodo de filtro de partculas se va a implementar?(NO SE QUE METODO AUN) - Kalman, multiplicacin, remuestreo....

Como voy a implementar el filtro de partculas?Que requiere el filtro de partculas para implementarse?

Esta parte va antes del filtro de particulas?

Se determina con los atributos de postura y movimiento, el principio y fin de la ejecucin de un gesto Cuales atributos definir bien? Que algoritmo detecta el principio y fin de la ejecucin de un gesto?

Se consulta en una base de datos de gestos cual gesto es el mas probable que se haya ejecutado

Como se realizar la base de datos y la consulta?

Se enva la orden respectiva del gesto que esta asociado, al robot de servicio para que ejecute una accin Estas son pruebas a realizar en fsico, se hacen con el puerto serial con arduino y que software va a asociarse a nuestro sistema para interpretar un gesto reconocido como un comando que se envia al arduino?