martes, 19 de mayo de 2009

Identificación

Hola.

Uno de los objetivos principales para contabilizar las velocidades era hacer una identificación de los vehículos que atraviesan el velocímetro con el fin de que estemos seguros de que ese es el coche al que queremos medir la velocidad.




En la anterior animación se puede observar como el coche verde adelanta al amarillo entre las dos balizas de velocímetros. Pues bien es por eso por lo que es necesario introducir la identificación, ya que si no se medirían ambas velocidades mal (aunque serían muy parecidas)

La idea es tener un identificador de color en el que se tenga la media de pixeles de los canales rojo, verde y azul (RGB) y comparar en ambos velocímetros. Esta medición se tiene que hacer en la imagen de color, en aquellos pixeles que dentro de la baliza, después de aplicar la "Sustracción de Fondo" sean blancos.

Lógicamente estos valores tienen que estar entre 0 y 255 y tuve el problema de que me daban valores superiores a 255. Gracias a la ayuda de Antonio vi que lo que me pasaba es que no inicializaba las variables locales y entonces tenían un valor basura.

Después de que Antonio me solucionase el anterior problema ahora me surgen otros dos:
  • El identificador de color se toma en un cambio de estado de la baliza. Los cambios de estado en ambas balizas teóricamente deberían producirse justo a la vez , pero esto no es así, lo cual me supone que el trozo que se toma de coche en la baliza izquierda, no es la misma que en la derecha para tomar el identificador.
  • El otro problema es que debido a la luz, a la hora de pasar la imagen a escala de grises, en la carretera por la que van los coches de los que estoy midiendo la velocidad, se ve todo casi del mismo color, y entonces se detectan pocos pixeles de ese coche, de no ser que sea un coche bastante oscuro.
Un saludo y hasta la próxima.

lunes, 4 de mayo de 2009

Módulo de inicialización

Después de unas semanas sin escribir hoy por fin me he decidido hacerlo.

Primero comentar que ya tengo casi listo un módulo de inicialización. Este "mini"-programa tiene 3 fases:
  • Selección de modo: se elige entre si se va a conectar una cámara o se va a analizar un vídeo.
  • Selección de imagen de fondo: Se reproduce el video (o se activa la cámara) de tal forma que cuando se presiona escape, se selecciona ese frame para luego emplearlo para definir zonas y posiblemente sea el que se utilice para la substracción de fondo.
  • Selección de regiones de interés: en este apartado se crean las balizas, los velocímetros y demás regiones.
El siguiente vídeo muestra el funcionamiento del módulo de inicialización:



El fin de este módulo es crear un fichero de configuración en el que se plasmen todas las regiones de interés que existen en el parking. Este fichero que se crea es de texto llano (txt) pero creo que puedo seguir estudiando otras posibilidades como XML o RDF

Por otro lado sigo en mi intento de perfeccionar mi velocímetro (sobre todo para que pueda ser bidireccional e identifique vehículos) pero sigo sin hacer que las STL hagan lo que tengan que hacer. Seguiré intentándolo.

Un Saludo