martes, 24 de marzo de 2009

Ficheros de log

Hola.

Hace unas semanas que no escribo, pero en estas semanas la cosa ha avanzado bastante.
Primero quiero decir que mi proyecto ya genera ficheros de log sobre los cambios de estado que se dan en las balizas virtuales. He decidido que haya un fichero de log por cada tipo de elemento, es decir, un log para velocímetros, otro para balizas. Aquí va un video de ejemplo:



Estos son los ficheros de log del video anterior:
balizas
velocimetros

Por otro lado también comentar que estoy haciendo un módulo de inicialización de tal forma que el experto lo primero que hace es ver el video o tomar una imagen de la cámara en tiempo real, y seleccionar el frame que desea para hacer el background subtraction. Luego con este mismo frame seleccionaría las diferentes zonas de la imagen.

Por último decir que gracias a la libreria "vector" de stl, he conseguido crear una estructura de datos que almacene todas las componentes de zonas, accesos, balizas y velocímetros, de tal forma que ya he automatizado todos los procesos de lectura de fichero de inicialización, como de dibujar regiones y generar ficheros de log.

Un Saludo

miércoles, 25 de febrero de 2009

Velocidad

Hola.
Desde la semana pasada lo que he hecho con mi proyecto ha sido desarrollar el velocímetro. Un velocímetro son dos balizas separadas por una distancia conocida en metros. Este es el resultado:



En el video, teóricamente mi amigo Sergio iba con el coche a 50 Km/h así que 48,214.. yo pienso que es un buen resultado.

Un Saludo.

miércoles, 18 de febrero de 2009

Balizas Virtuales

Después de los exámenes, me he vuelto a poner "a saco" con el PFC y he conseguido perfeccionar la detección de movimiento y sentido de éste.
Lo primero de todo es que he creado un medio con el cual medir movimiento y sentido en una zona concreta del video. Este medio son las Balizas Virtuales.
Una baliza virtual es un conjunto de dos zonas paralelas creadas a partir de dos puntos y que se pueden utilizar para crear Accesos al parking (tanto de entrada, como salida y bidireccionales), para crear Velocímetros Virtuales (que no he desarrollado todavía pero van a ser dos balizas virtuales separadas por una distancia conocida) o simplemente se puede poner una baliza virtual en un lugar concreto para observar los objetos que pasan por allí y el sentido que llevan. Además de las zonas de puntos, también contiene una variable estado que hay que comprobar en cada frame, e indica el estado de la baliza, es decir: esperando, pasa, pasando, finalizando, indeterminación.



En la imagen se puede observar que hay 5 Balizas Virtuales, una azul oscuro, que está definiendo una zona de entrada, una roja que está definiendo una zona de salida, dos amarillas que son un velocímetro, y de momento no hacen nada, y por último una azul cyan junto a la autovía que he utilizado para observar los vehículos que circulan por esa carretera.
A la derecha de la imagen se puede observar los resultados de las mediciones de las balizas de acceso y la de la autovía y simplemente comentar que en las de acceso, la baliza 1 es la azul, y la 2 es la roja. Además donde dice coches que entraron y coches que salieron se refiere a coches que pasaron de izquierda a derecha y coches que pasaron de derecha a izquierda respectivamente. También comentar que en la autovía (baliza A-5), hay muchas indeterminaciones porque los vehiculos van muy rápido y de momento cuando se cruzan los coches, esto provoca un estado indeterminado, que espero poder arreglar en unos días

miércoles, 14 de enero de 2009

Despues de Navidades

Hola.
Estas Navidades he estado dándole al proyecto, aunque no he podido hacer todo lo que se me mandó, ya que me he pillado una gripe de campeonato que me ha tenido enfermo casi 2 semanas.

En primer lugar, las regiones ya las leo desde un fichero de texto, aunque no soy capaz de leer el fichero con etiquetas como me indicaron Juanjo y Antonio.

Por otro lado, dada una región, puedo recorrerla y saber el número de pixeles blancos que hay en ella, lo cual nos puede indicar si hay movimiento o no en esa región concreta y por tanto detectar objetos en ella, aunque de una manera muy simple.

Por último también he estado estructurando un poco el código, ya que era un poco caótico. He creado funciones para crear zonas y zonas de acceso.

Un Saludo

martes, 16 de diciembre de 2008

Background Subtraction

"Background Subtraction" (o Substracción de Fondo) es una técnica que consiste en que a todos los frames de un video se le va restando el primero (u otro que elijamos), de tal forma que en el vídeo resultado, lo que se vea sea un fondo negro, y en blanco lo que ha cambiado.

Aquí muestro un vídeo de ejemplo:


En la imagen superior izquierda, tengo el vídeo original, en la superior derecha está el original en escala de grises. En la parte inferior izquierda está la resta del video en escala de grises y el fotograma seleccionado y en la parte inferior derecha está la resta en binario.