26 enero 2008

Atención Visual - movimiento (1.2.1)



[Ver el vídeo a resolución original]

En este otro vídeo, se puede observar el termino de atención visual y saliencia asociado al movimiento. Ahora nuestro esquema, muestra un alto interés por todo lo que se mueve en la imagen.

[*] En esta atención por el movimiento no está definido ningún tipo de difusión de saliencia (los pixeles con saliencia no influyen en la saliencia de los pixeles vecinos).
[*] Computamos la saliencia en una frecuencia de 150ms. Por tanto cada segundo somos capaces de calcular unas 5-6 veces la saliencia y decidir el movimiento del "ojo". (En un futuro la acción de calcular saliencia y decisión de movimiento tiene que desacoplarse e ir cada una a un ritmo independiente).
[*] El movimiento lo calculamos en base a la diferencia del valor del pixel entre 2 frames consecutivos. En esta y en muchas otros videos, puede existir ruido debido a la calidad del video, por ello para que "exista movimiento" el pixel debe variar como mínimo 15 unidades en terminos absolutos.

22 enero 2008

Capacidad de atención

Por medio de Ánibal (un ex-compañero de trabajo y amigo), me ha hecho llegar un link bastante interesante sobre la atención humana. Si quieres hacer la prueba y comprobar tu capacidad de atención te recomiendo que lo hagas.

http://www.oviedo.es/personales/comecoco/ilusiones%20opticas/prueba%20de%20atencion.htm

Una vez realizado el ejercicio, es interesante comprobar como somos capaces de concentrarnos en un aspecto en concreto y obviar la información restante. Para relacionarlo con el proyecto que tenemos entre manos, sería equiparable a implementar una saliencia parametrizada mediante el color blanco, de este modo solo atenderíamos a las personas de color blanco.

Intentaré, cuando tenga un rato, utilizar este video de demostración para nuestro sistema, a ver que tal se comporta utilizando la característica de color como saliencia principal.

17 enero 2008

Atención Visual ( v1.2.0 )



[Ver el vídeo a resolución original]

Esta es la primera demo funcional que tengo del proyecto. Como se observa, el sistema le llama la atención las cosas de color, en nuestro caso el color rojo. Podemos definir la saliencia como la característica que hace que nos llame más la atención cierto estímulo.

Aspectos añadidos al algoritmo:
* Únicamente tiene interés las cosas de color (en nuestro caso el rojo), y jugamos con 4 objetos: 3 del mismo tamaño y un cuarto más pequeño. A partir de ahora lo denominaremos "saliencia"
* Si un pixel tiene saliencia, afecta positivamente a la saliencia de los pixeles vecinos. De ahí que veamos que las figuras que genera el sistema (derecha) no son iguales que las figuras rojas de la izquierda. De ahora en adelante lo llamaremos "Difusión de Saliencia". Esta característica produce un rapido crecimiento en la saliencia de los objetos interesantes.
* Cuando visitamos un punto con nuestro "ojo", ese punto y todos los que conforman nuestro ojo pasan a tener saliencia 0. A partir de ahora llamaremos a este proceso "Inhibición de Retorno"

Teniendo una primera versión funcional, podemos ir ajustando y cambiando el algoritmo para dotar al sistema de un mayor número de características que produzcan atención (colores, bordes, movimiento, caras) y may

08 enero 2008

WebService en JDE

Desde hace unos años, los webservice se vienen utilizando bastante y en concreto en entornos .NET, ya que se basan en ellos para realizar la comunicación entre aplicaciones ( Microsoft Robotics Studio).
En la arquitectura de JDE, hace poco añadimos un nuevo driver capaz de ofrecer un servicio web. Dicho servicio web está implementado en c++ ayudándonos de GSOAP. Este paso es muy importante, ya que permite a la arquitectura JDE poder comunicarse con el mundo exterior mediante un protocolo estándar como es SOAP (XML+HTTP).
Más abajo veréis una pequeña demo, donde somos capaces de gobernar y obtener información de la pantilt, mediante un cliente SOAP programado en .NET corriendo sobre una PDA. La idea es que en un tercer ordenador que tiene comunicación fisica con la pantilt y gobernado por JDE, seamos capaces (gracias a una PDA y conexión wi-fi) de poder controlar el cuello mecánico.



[Ver vídeo a resolución original]

10 diciembre 2007

Ruta por Riolago de Babia

En uno de los viajes que he hecho recientemente con mi novia (Maria) y unos amigos (Juan Carlos y Rocío) acabamos en un pueblecito bastante bonito llamado Riolago de Babia. Justo desde lo mas alto del pueblo, donde estaba situada la casa rural donde nos alojamos (Mirador de Babia), salía el camino hacia la ruta que hicimos el primer día.

Distancia: 7km aprox. (ida y vuelta).
Duración: 3horas.
Dificultad: baja.

La ruta tiene unas vistas bastantes buenas, siempre con las montañas al fondo con la cumbre nevada. Además durante la travesía nos acompaña un río a mano izquierda, con lo que el sonido del agua bajando se hace compañero de camino.

Unas fotos de las vistas que teníamos durante casi todo el trayecto.




Nuestro fin de ruta fué este, a mano izquierda en el punto B del mapa que encontrarás un poco más abajo, donde encontramos un refugio.


Aquí dejo reflejada la ruta sobre el mapa de Google Maps, para que veáis por donde discurre la ruta. Si os fijáis después del punto B hay como 1km más de ruta, pero la noche se acercaba y no dio tiempo a hacerla entera.


Ver mapa más grande

01 diciembre 2007

libcolorspaces

Del trabajo dedicado al proyecto y a hacer cosillas para JDE, de vez en cuando conseguimos que salga algo chulo y reutilizable para éste y demás proyectos.

libcolorspaces es una librería estática programada en C que es capaz de generar una tabla de traducción entre espacios de color. La versión actual crea una tabla de traducción RGB->HSV, de esta manera los cálculos para pasar de RGB a HSI se realizan una sola vez (para rellenar la tabla), y así las consultas se realicen simplemente consultarán un array.

La tabla que se construye tiene una resolución de 6 bits por componente R,G,B, de este modo se reduce considerablemente el tiempo de creación de la tabla. Por ahora esta resolución es suficiente, y la creación de la tabla supone un tiempo de 0.220 ms.

El algoritmo para traducir RGB a HSV lo hemos obtenido de las especificaciones de la wikipedia (http://es.wikipedia.org/wiki/HSV). La entrada son las componentes RGB entre 0 y 255, y la salida son las componentes HSV normalizadas tal cuál refleja la wikipedia.

Si te ha convencido, te la puedes descargar libcolorspaces de aquí, con licencia GPL. A disfrutarlo!!

25 septiembre 2007

[Video] Sigue Persona con Visión Direccional

Aquí os dejo el vídeo colgado en youtube de la presentación de mi proyecto de la técnica. En el vídeo podéis observar el robot pioneer realizando una navegación mediante VFF (Virtual Forces Fields) siguiendo un objetivo (mediante color) utilizando para ello el cuello mecánico o pantilt.



Links:
Sobre el proyecto
Sobre VFF

19 septiembre 2007

JDE: Jerarquía Dinámica de Esquemas

Mi intención es contar en este blog todo lo relacionado con la robótica que me incumbe, ya sea por parte del proyecto fin de carrera, o por los ratos trasteando que paso.

JDE es la arquitectura que ya utilicé en el proyecto de la técnica para conseguir un comportamiento sobre un robot, y también la utilizaré ahora para el proyecto de la superior. JDE es el resultado de un duro trabajo de tesis de Jose María Cañas Plaza (tutor y compañero).

JDE se basa en la interacción y ejecución simultanea de pequeños comportamientos (denominados esquemas), cuya fusión emula comportamiento complejos. JDE está actualmente en desarrollo y avanzando gracias a las ganas y esfuerzo de su creador y de los apoyos continuos de los alumnos. Se han llegado a conseguir comportamientos interesantes y avanzados como seguimiento y guia de personas, aplicaciones de video-vigilancia, reconocimiento de movimientos ...

Actualmente tiene soporte para: robot pionner, simuladores, láser, sonnars, cámaras firewire, cuello mecánico ...

Para más información:
Web principal JDE
Seguimiento de proyecto JDE

15 septiembre 2007

Iniciando PFC Superior

Bueno, al fin parece que tenemos algo de tiempo para pode empezar el proyecto de fin de carrera de la Ing. Inf. Superior.

Este proyecto lo realizaŕe con JoseMaria Cañas como tutor, y se implementará con comportamiento en el Pionner basado en técnicas como: VFF, flujo óptico, segmentación, memoria del escenario, representación en 3D.

Poco a poco iré añadiendo los avances y cosas curiosas que nos vamos encontrando en la implementación de este proyecto.

saludetes!!