Mostrando entradas con la etiqueta practica inovadora. Mostrar todas las entradas
Mostrando entradas con la etiqueta practica inovadora. Mostrar todas las entradas

miércoles, 5 de mayo de 2010

Juego de RA, primeros pasos

Hola, ya que digamos que hemos conseguido hacer funcionar de manera medianamente decente el facedetect para tomarnos las imágenes e incluso los programas de haatraining, createsamples y performance, nos hemos metido en serio con el juego de RA, bueno, al menos con la parte gráfica, ya que el núcleo del juego ya lo empezó hace tiempo mi compañero y empezó ha hablar de el en un post anterior...

Bueno, ahora metiéndonos más en faena, cuando empezamos a mirar como hacer el seguimiento de las manos para poder jugar al pong, primero pensamos en hacer un haartraining para poder localizar la mano, pero vistos todos los problemas que nos ha causado el crear nuestros modelos para el reconocimiento, y visto que obtener las imágenes positivas y negativas se podía complicar hasta la saciedad, decimos desechar esta idea, ya que también, descubrimos un método que nos permitía mostrar en una imagen en blanco y negro, una imagen de la cámara siendo el blanco el color de la piel, lo cual nos resultaría muy útil para localizar la mano, pero ya que 'jugaba' con los colores, pequeñas modificaciones de la luminosidad, que podían incluso venir dadas por el simple hecho de mover la mano, hacía que se perdiera la representación de la mano como blanco provocando graves fallos en el 'tracking' de esta....

Finalmente, navegando por la red, y con las ideas adquiridas de las pruebas anteriores, encontramos este código libre que hemos modificado para que en vez mover el ratón por la pantalla mientras mueves el objeto a seguir muestre en la posición adecuada una raqueta para jugar a nuestro pong, así como para que en vez de necesitar que el usuario seleccione con el ratón el objeto a seguir, que el propio usuario haga que el sistema le siga la mano al 'coger' la raqueta que se encuentra en una posición fija. Para ello, ya que el sistema simplemente se basa en reconocer colores, y define su seguimiento en función de su variación, hemos optado por usar unos guantes rojos para así lograr que el sistema pueda seguirlos con facilidad.

Por otro lado, para mejorar el sistema de seguimiento, decidimos optar por, en la zona de búsqueda, quitar todos los canales de los otros colores dejando solo el rojo, lo cual lo logramos con el siguiente método:

void cogeRojos( IplImage* src, IplImage* dst )
{
CvScalar s;
for( int i = 0; i <>height; i++ )
{
for( int j = 0; j <>width; j++)
{
s = cvGet2D( src, i, j ); // coge el valor del pixel (i,j)
s.val[0] = 0;
s.val[1] = 0;

cvSet2D( dst, i, j, s );

}
}
}

Cabe destacar que este método nos ha ayudado a lograr un mejor tracking, menos dependiente de la iluminación, pero aun así, sigue teniendo fallos, como que por ejemplo, si el fondo es blanco, da un falso positivo, ya que al quitar los canales B y G de un blanco, este se convierte en rojo, aunque ahora estamos buscando una posible solución.

Finalmente, cabe destacar que estamos aunando la parte física con la parte gráfica, por lo que en cuanto lo tengamos, subiremos un vídeo de ejemplo.

jueves, 29 de abril de 2010

Video demostrativo

Hola, ya que el Jueves 29 tuvimos que presentar el estado del proyecto, hemos grabado un vídeo de prueba (sin audio) en el que se ven 3 procesos de identificación frente a los cuales el sistema siempre se va a encontrar.



Al principio del vídeo, salgo yo y, tras tomarme 20 imágenes, el sistema me identifica correctamente en las 20 fotos.
Después, sale un compañero que no aparecía como modelo para las muestras negativas y al que tras las 20 fotos, detecta en 2 que soy yo, y en las otras 18 dice que no soy yo, y ya que el sistema está pensado para que solo de por válida una identificación positiva, si al menos 17 de las 20 muestras tomadas son positivas, el sistema no lo identifica.
Por último, sale mi compañero, Alejandro, al cual, tras hacerle las 20 fotos de muestra, en ninguna de ellas da 'acierto' contra mi modelo, por lo que el sistema también lo descarta de esta identificación.

Pese a estos números tan prometedores, por desgracia el sistema no funciona tan correctamente como esperábamos, por lo que nos hemos visto obligados a repetir mi modelo con distintas muestras negativas, para ver si así podríamos mejorar su fiabilidad, por lo que en los próximos días esperamos tener ya los dos modelos en su versión definitiva y con un alto grado de fiabilidad.

lunes, 8 de marzo de 2010

Quienes somos

Hola, somos Alejandro Martín y Jorge Pacheco, dos alumnos de la ETSIT-UPM que estamos realizando una práctica innovadora para la asingatura LSED del Departamento de Ingeniería Electrónica y nuestro profesor tutor es Fernando Fernández Martínez.

Nuestro proyecto va a consistir en el desarrollo de un sistema de reconocimiento visual de personas, el cual habilitará para que el mayordomo pueda interactuar con nosotros. Además, una vez logrado el reconocimiento, nuestro siguiente objetivo será el desarrollo de un pequeño juego en realidad aumentada en el que para jugar habrá que interactuar con el propio cuerpo, sin necesidad de mandos especiales. Finalmente, y si el tiempo nos lo permite, intentaremos añadir sistemas de reconocimiento de voz y habla, para poder interactuar con el mayordomo no solo de forma visual, así como poder entablar cierta conversación con él.

Finalmente, usaremos la cabeza animatrónica Groucho como elemento de interactuación física ya que nos permitirá mostrar emociones y favorecer la interactuación con los usuarios.

Esperamos que os gusten nuestras aventuras con dicho proyecto, las cuales intentaremos ir relatando asiduamente en este blog ;)