Conteo de Vehiculos Mediante Camaras para El Control Vehicular

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 78

11 CAPITULO 1: INTRODUCCIN

CAPITULO 1:
INTRODUCCIN


















12
MEMORIA
1.1.- Objetivos
El objetivo de este proyecto es desarrollar un prototipo capaz de controlar el trfico en
funcin del flujo de vehculos que circulan por la va, y no solo en funcin del tiempo
que es cmo funcionan actualmente, donde los tiempos son fijos y se juega con el
sincronismo respecto a otras intersecciones para mejorar la fluidez del trfico.
Adems las intersecciones estarn comunicadas entre s, informndose en todo
momento de la cantidad de trfico que regulan para as anticiparse a situaciones de
atascos y crear un sincronismo entre la red de intersecciones.
Para cuantificar el flujo de vehculos, se pretende desarrollar un software que aplique el
procesado necesario para la deteccin de stos a partir de las imgenes capturadas por
una cmara instalada in situ.

1.2.- Motivacin y justificacin
Con el objetivo de probar el sistema antes de implementarlo, en primer lugar se decidi
hacer un simulador donde se pueden visualizar hasta 6 intersecciones eligiendo entre 4
tipos diferentes para as comprobar su funcionamiento y su eficacia.
Una vez se verific que el funcionamiento de ste se ajustaba a las especificaciones, el
siguiente paso fue la implementacin. Estudiando las diferentes posibilidades para
hacerlo, se lleg a la conclusin de que el trabajo a realizar abarcaba demasiado as que
hubo que separarlo en bloques y elegir uno, que en este caso fue el diseo del sensor
que detectar los vehculos que estn circulando por la va.
Incluso habiendo decidido implementar el sensor, surgi aun otra dificultad ya que
segua siendo un concepto muy amplio, tan importante era el diseo y la
implementacin de la cmara para adaptarla al ordenador como el diseo del algoritmo
encargado de realizar el procesado. Estudiando alternativas, se observ que el proyecto
se podra realizar con una webcam USB y centrarse en el procesado, descartando as la
implementacin de una cmara hardware que cumpliera las especificaciones del
sistema.



13 CAPITULO 1: INTRODUCCIN
Una vez encaminado el proyecto, quedaba determinar el tipo de sensor a utilizar.
Teniendo en cuenta que tiene que soportar condiciones extremas de calor y frio,
constantes cambios en condiciones ambientales, tiene que tener un coste barato ya que
una ciudad est repleta de intersecciones y tiene que ser fiable, se eligi una cmara de
video y aplicarle un procesado de imgenes para as hacer la cuantificacin de
vehculos.
Para comenzar a desarrollar la implementacin del dicho sensor, haba que decidir bajo
que lenguaje de programacin se hara el procesado. Se seleccion Matlab, utilizando la
versin R2008a y sus toolbox de adquisicin de imgenes y procesamiento de
imgenes.
La caracterstica fundamental de Matlab es la facilidad que aporta su estructura
matricial de datos. Todas las operaciones las realiza a partir de matrices (tipo base
mxArray), lo que convierte a Matlab en una herramienta idnea para trabajar con
imgenes. A su vez, Matlab aporta un amplio conjunto de herramientas para la creacin
de interfaces grficas. La creacin de cdigo resulta sencilla, ya que no es necesario
preocuparse por reserva de memoria o compatibilidad de formatos entre cada una de las
variables Sin embargo, la limitacin ms importante de la programacin en Matlab es
el tiempo de ejecucin de algunas de las rutinas, fundamentalmente las que utilizan
bucles, muy frecuentes en procesado de imagen para recorrer imgenes.

1.3.- Antecedentes
Hoy en da resultara imposible circular por una gran ciudad sin la regulacin de los
semforos. A lo largo de los aos, se han ido probando diferentes sistemas, como los
semforos con botn para los peatones prcticamente en desuso, donde una vez pulsado
el botn haba que esperar largos tiempos para poder cruzar; o tambin se han
conseguido mejorar los semforos de los vehculos hasta el punto de poder cruzar una
ciudad entera por una calle con un trfico fluido encontrando todos los semforos en
verde.
Hasta la fecha en nuestro pas, la medida ms innovadora ha sido sincronizar los
semforos y la posibilidad de aplicarle remotamente diferentes modos de

14
MEMORIA
funcionamiento, es decir, en funcin de la hora del da y el trfico previsto, establecer
unos tiempos u otros. Aun as, todas estas medidas se basan en histricos y suposiciones
sobre el trfico previsto.
Actualmente en Barcelona se estn cambiando los semforos de la ciudad y instalando
unos llamados semforos inteligentes [1], bsicamente han conseguido reducir el
consumo de stos, instalarles bateras para evitar que dejen de funcionar en caso de
corte en el subministro elctrico y dotarlos de cmaras para enviar informacin a tiempo
real va wifi sobre el trfico al centro de control y as gestionarlo correctamente. El
problema que presentan estos semforos es que no toman decisiones. An y tomando
imgenes constantes sobre el trfico actual, siguen basndose en la espera de
instrucciones enviadas desde el centro de control por un operario el cual gestiona y
decide.
Cientficos norteamericanos y rumanos han desarrollado un modelo informtico basado
en informacin real para optimizar la gestin del trfico [2]. Han comprobado que
reduce un 28% el tiempo de espera en los cruces y un 6.5% las emisiones de CO
2
. El
problema es que el modelo exige incorporar en los automviles un software especifico
que avise a los conductores tanto de las velocidades recomendables en funcin del
trafico como en funcin de las luces de los semforos. De manera que constantemente
los vehculos y los semforos se envan informacin y tambin los dos regulan su
funcionamiento en funcin del otro (los coches regulan su velocidad para que este verde
y los semforos regulan sus luces sabiendo cuantos coches vienen por cada lado para
que tambin lo encuentren verde).
Si miramos en otros pases de Europa, encontramos tambin otras soluciones. Por
ejemplo Holanda, un pas pionero en semforos inteligentes aun teniendo en cuenta que
all todos los semforos regulan vehculos, bicis y peatones. Tanto para bicis como para
peatones, todos los semforos estn dotados de un botn para pedir paso, ponindose
rpidamente en verde una vez pulsado, mientras que si nadie lo pulsa, no llega a ponerse
en verde permitiendo circular a los vehculos. Respecto a los semforos que controlan
los vehculos que circulan por la calzada, tienen unos tiempos de conmutacin muy
rpidos, que son regulados en funcin del trfico.
En el sistema holands, para cuantificar el trfico, la mayora de vas cuentan con
sensores del tipo radar, que a partir del movimiento detectan cuantos coches hay de



15 CAPITULO 1: INTRODUCCIN
camino hacia cada interseccin, informacin que es enviada al correspondiente
semforo y este, en funcin de unas cantidades establecidas, decide cuanto tiempo tiene
que dejar abierto o cerrado el trafico para evitar aglomeraciones. Es tan simple como
fijar unos tiempos y partir de un umbral de vehculos, duplicar o triplicar los tiempos de
conmutacin. Este sistema de semforos no es tan eficaz como el propuesto por los
cientficos americanos, pero funciona mucho mejor que el que tenemos actualmente. Sin
embargo, la idea de instalar dispositivos en los vehculos es una idea a muy largo plazo,
ya que ahora mismo podra considerarse muy poco viable.
Esta es una medida muy eficiente para gestionar el trfico, pero la implantacin de esta
tecnologa en nuestras ciudades equivaldra un coste muy alto, debido a que deberamos
remplazar todas las infraestructuras para el control de trfico.
Otra alternativa sera la sustitucin del sensor utilizado (el radar) por otro de bajo coste,
como por ejemplo podra ser una simple espira como la que encontramos en los
parkings. Pero el problema sigue siendo el mismo, porque aunque el sensor sea barato,
la implementacin de este equivaldra a levantar la calzada de toda la ciudad para ser
instalado.
Por tanto, para la realizacin de este proyecto, se pretende adaptar esta idea
aprovechando lo que ya tenemos hecho sin la necesidad de hacer obras en la ciudad, es
decir, utilizar las cmaras ya instaladas para darles inteligencia de verdad a nuestros
semforos y utilizar la red wifi que cubre toda la ciudad para permitirles comunicarse
entre ellos. De esta manera el semforo de la interseccin anterior informa al siguiente
sobre cuntos vehculos se dirigen hacia l y que medidas debe tomar sin tener que
haber un operario para decidirlo.




16
MEMORIA





17 CAPITULO 2: ARQUITECTURA DEL SISTEMA





CAPITULO 2:
ARQUITECTURA DEL
SISTEMA

18
MEMORIA
2.1.- Introduccin.
Puesto que el proyecto abarca ms de un concepto, para hacer ms fcil la conexin
entre ellos, se pretende introducir previamente la arquitectura del sistema, indicando
desde la estructura principal a todas las subestructuras utilizadas.
La informacin detallada sobre los diferentes bloques se podr encontrar en los
captulos consiguientes que conforman la memoria del proyecto.

2.2.- Arquitectura general.
La funcin principal del sistema consiste en controlar un semforo. Para ello podemos
diferenciar el conjunto en dos grandes bloques que son dependientes entre ellos.
- Control de trfico.
- Conteo de vehculos.

Ilustracin 1: Arquitectura general del sistema
El control de trfico se encarga de gestionar los semforos y de presentarlos en un
simulador por medio de una interfaz grafica, mientras que la cuantificacin de vehculos
se encarga de detectar los vehculos que circulan por la va para enviar la informacin al
control de trfico y que as este pueda tomar las medidas pertinentes.
Control
de
Trfico
Conteo
de
vehculos



19 CAPITULO 2: ARQUITECTURA DEL SISTEMA

2.3.- Arquitectura del Control de trfico.

Ilustracin 2: Arquitectura del Control de Trfico
Este bloque presenta una estructura bastante simple, que se puede descomponer en dos.
El bloque ms importante sera la aplicacin, el cual contiene todos los algoritmos de
control que se encargan de gestionar el estado de cada semforo dentro de una
interseccin.
El segundo bloque, se encarga de la presentacin de la informacin al usuario. Esto lo
hace mediante una interfaz grafica o GUI (Graphical User Interface). Por medio de esta
GUI se puede simular el funcionamiento de este sistema, para as ver su funcionalidad y
eficacia.
Juntando estos dos bloques, se ha implementado un simulador el cual por medio de la
interfaz grfica, el usuario puede ir introduciendo vehculos en el contador y de esta
manera los semforos se regulan en funcin de sus especificaciones.
Fijndose concretamente en la aplicacin, a su vez se puede descomponer en ms
bloques, que estn comunicados entre s por medio de un protocolo de comunicacin
mediante el cual se envan informacin actual sobre el estado de las diferentes
intersecciones.

20
MEMORIA

Ilustracin 3: Esquema de la aplicacin del control de trfico
La aplicacin est formada por clulas independientes que a su vez cuentan con
constante comunicacin entre ellas. Hay que definir un control central, el cual se
encarga de recoger la informacin de todas las intersecciones para realizar un histrico
que se podr reproducir posteriormente, a la vez que para dar rdenes comunes
impuestas por el usuario delante de alguna causa en concreto. Las intersecciones
tambin se comunican entre s, comunicndose siempre con la interseccin posterior
para as poder prever el trfico que se les acerca.

2.4.- Arquitectura del conteo de vehculos.
Esta aplicacin permite la introduccin del video a procesar ya sea en tiempo real a
partir de una webcam o un video previamente grabado almacenado en el disco duro.
Estos elementos se encuentran en la capa de adaptacin de hardware o HAL(Hardware
abstraction layer). La presentacin consiste en la visualizacin de las imgenes
almacenadas. La aplicacin contiene una serie de algoritmos basados en segmentacin
en movimiento para realizar el conteo de vehculos.




21 CAPITULO 2: ARQUITECTURA DEL SISTEMA

Ilustracin 4: Arquitectura del bloque de cuantificacin.

2.4.1.- HAL

El bloque de adquisicin se encarga de capturar frames en tiempo real, mientras que el
de conversin se encarga de extraerlos de un video avi. Para poder exportar la
informacin a la aplicacin por igual, ambos guardan la informacin en una misma
variable tipo estructura, donde se encuentra la imagen en color y el nmero de frames.

Ilustracin 5: HAL adquisicin de imagenes


22
MEMORIA
2.4.2.- Presentation.

Este bloque es el responsable de visualizar las imgenes grabadas. El sistema permite
ver en cualquier momento las imgenes sobre las que se est trabajando, con el objetivo
de poder comprobar visualmente que el algoritmo funciona correctamente.

Ilustracin 6: Visualizacin de imgenes almacenadas

2.4.3.- Application.

La aplicacin est formada por dos grandes bloques, que a su vez contienen diferentes
procesos.

Ilustracin 7: Estructura de la aplicacin
En la ilustracin 8, se muestran los diferentes pasos realizados para la cuantificacin de
vehculos por la aplicacin, siguiendo la estructura de adaptacin y procesado. Adems
se puede observar la evolucin de la imagen en funcin de la etapa en que se encuentra.
A final de todo, el detector de flanco es el encargado de cuantificar cuantos vehculos
hay y enviar esa informacin al control de trfico para tomar las medidas pertinentes.









23 CAPITULO 2: ARQUITECTURA DEL SISTEMA





Ilustracin 8: Diagrama adaptacin y procesado
Lectura de la
imagen
Conversin a
escala de grises
Definicin ROI
Creacin ADI
CTG
Edge detector

24
MEMORIA




25


CAPITULO 3: CONTROL
DE TRFICO

26
MEMORIA
3.1.- Introduccin
Para comprobar la viabilidad de diversos sistemas de control de trfico y as poder
comparar su funcionalidad, se decidi implementar un simulador capaz de mostrar el
funcionamiento de diversos sistemas de control.
A su vez, ya que se hacia un simulador, era interesante elegir un lenguaje de
programacin idneo para una vez seleccionado un funcionamiento, tener la posibilidad
de exportar el cdigo dejando de ser nicamente un simulador y pudiendo ser utilizado
para programar dispositivos reales bajo una interfaz grfica fcil de utilizar y comprobar
su funcionamiento.
Por ese motivo, el cdigo del programa se realiz con Borland C++, ya que ste
programa permite una sencilla conversin. Otra ventaja del programa elegido, es el
aspecto de la interfaz grfica creada, ya que sigue las estructuras tpicas de las
aplicaciones de Windows con los que prcticamente cualquier usuario est
familiarizado.
Antes de realizar el programa, se definieron una serie de especificaciones funcionales y
no funcionales, para as no tener dudas sobre los requisitos mnimos que debe incluir,
adems de su funcionamiento bsico.
Tanto la interfaz grfica del simulador como su cdigo, estn implementados en ingles
debido a que este proyecto fue realizado en Holanda como proyecto de un programa de
movilidad.

3.2.- Especificaciones.
A continuacin se detallarn las especificaciones sobre las cuales se ha trabajado en el
proyecto. Se dividirn segn los diferentes bloques del proyecto y se detallarn las
funcionales y no funcionales para cada caso.






27 CAPITULO 3: CONTROL DE TRFICO

3.2.1.- Especificaciones generales.

- Especificaciones funcionales
- Utilizar rojo, mbar y verde para el control de vehculos.
- Utilizar rojo y verde para control de peatones.
- El simulador tiene que tener hasta 4 intersecciones diferentes.
- El simulador tiene que poder combinar hasta 6 intersecciones.
- Tiene que ser capaz de contar vehculos y cambiar su modo de funcionamiento
en funcin de cuantos haya.
- Se generar un histrico (logfile) con la informacin de todas las intersecciones
que se podr volver a reproducir para test.
- Las intersecciones estarn comunicadas entre s.
- El control central enviar y recibir datos de cada interseccin.

- Especificaciones no funcionales
- Aspecto de los semforos.
- Color de fondo en la interfaz grfica.
- Que programa usar para la implementacin.
- El sistema y el funcionamiento del simulador tiene que ser fcilmente entendible
por cualquier persona.

3.2.2.- Control principal

- Especificaciones funcionales.
- Tiene que ser capaz de controlar todas las intersecciones.
- Tiene que poder comunicarse tanto individualmente con cada interseccin como
con varias o incluso todas a la vez.

- Especificaciones no funcionales
- La interfaz grfica tiene que ser fcil de utilizar

28
MEMORIA

3.2.3.- Intersecciones

- Especificaciones funcionales.
- El trfico podr ser introducido por un sensor o aleatoriamente ser generado por
el programa.
- Los peatones tendrn un botn para que su semforo se les ponga en verde.

3.2.4.- Comunicaciones

- Especificaciones funcionales.
- Las intersecciones pueden enviar y recibir informacin entre ellas.
- Las intersecciones y el control principal pueden enviar y recibir informacin
entre ellos.
- El control principal tendr prioridad a la hora de enviar mensajes.
- El mensaje tiene que contener como mnimo:
o Receptor.
o Sensor receptor (siendo 0 el control central y del 1 al 8 en sentido de las
agujas del reloj los diferentes sensores de las intersecciones).
o Emisor.(mismo protocolo que receptor).
o Sensor emisor (mismo protocolo que sensor receptor).
o Modo de funcionamiento (siendo 1 normal, 2 trfico y 3 noche).
o Data (nmero de coches en almacenado en el sensor).
o Estado del semforo (siendo 1 verde, 2 ambar, 3 rojo).

- Especificaciones no funcionales
- El protocolo tiene que ser lo ms simple posible.





29 CAPITULO 3: CONTROL DE TRFICO
3.3.- Main control (control principal)
El main control es el encargado de recoger la informacin de las diferentes
intersecciones y a su vez es capaz de controlarlas. Cada interseccin es independiente en
el sentido de que toma las decisiones pertinentes en funcin de los datos recogidos,
pero a su vez, desde el main control se pueden controlar todas las intersecciones.
El control principal desarrolla las siguientes funciones:
- Enviar la orden de inicio o parada a todas las intersecciones.
- Recibir y guardar la informacin de todas las intersecciones en un logfile.
- Enviar los datos almacenados en un logfile a las intersecciones pertinentes as
como controlar los semforos acorde al logfile.
- Forzar el modo de regulacin de trfico, es decir, modo normal (la condicin de
trfico es normal y se desarrolla cumpliendo los tiempos estndar) modo trfico
(algn punto de la interseccin se encuentra congestionado y como medida se
duplicarn los tiempos de verde en la interseccin afectada) y modo noche
(todos los semforos se pondrn en mbar en seal de precaucin)

Los diferentes modos de funcionamiento se activan automticamente en funcin
de diversas condiciones, pero el control principal puede forzar estas situaciones.


30
MEMORIA
3.4.- Intersecciones.
3.4.1.- Interseccin tipo 1

Este tipo de interseccin no incluye paso de peatones y permite desde cada direccin,
seguir en el mismo sentido o cambiar a una direccin perpendicular a la inicial en
cualquier sentido.


Ilustracin 9: Interseccin 1
Los semforos se ponen en verde de tres en tres, aunque sean diferentes partes del cruce
en ningn momento hay situaciones de riesgo. En la ilustracin 9 podemos ver un
ejemplo, donde hay tres semforos activos y se puede apreciar las trayectorias posibles
con las flechas verdes. Los semforos se van poniendo en verde de 3 en 3 siguiendo el
orden de las agujas del reloj. Las cajas blancas situadas delante de cada semforo,
corresponden al sensor que cuantifica los vehculos, pudiendo incrementarlo clicando en
el (modo manual) o de forma aleatoria (modo aleatorio) en funcin del modo
seleccionado. Una vez los vehculos han pasado la interseccin, la informacin es
enviada al siguiente semforo.





31 CAPITULO 3: CONTROL DE TRFICO

3.4.2.- Interseccin tipo 2

Esta interseccin incluye dos pasos de peatones en el carril vertical. Para que el
semforo de peatones se ponga en verde, el peatn tiene que pulsar el botn

Ilustracin 10: Interseccin tipo 2
Esta interseccin da prioridad a la va principal que es la horizontal. Su modo de
funcionamiento es en primer lugar, permitiendo el paso a los vehculos que se desplazan
horizontalmente en el mismo sentido o girando a la derecha para los dos sentidos
horizontales (representado en verde). Una vez estos estn en rojo, los siguientes en
ponerse en verde son los horizontales que permiten girar a la izquierda (representado en
rojo). Y por ltimo, cuando estos estn en rojo, se ponen en verde los dos verticales
(representado en azul).

3.4.3.- Interseccin tipo 3

Esta interseccin esta formada por 4 carriles con la misma importancia y con
posibilidad de girar en cualquier direccin. Por este motivo, la regulacin de este tipo de
interseccin ser secuencial solo habr un semforo en verde cada vez. Para los
peatones no se pondr nunca en verde hasta que se pulse el botn.

32
MEMORIA


Ilustracin 11: Interseccin tipo 3

3.4.4.- Interseccin tipo 4

Esta interseccin es la mas simple, donde tenemos una via principal horizontal y se le
aade otra via verticalmente. En este caso, los peatones tendrn el semforo en rojo
siempre y cuando no se haya pulsado el botn. Si el botn esta pulsado, como podemos
ver en la imagen, el sensor de los peatones cambia de color a amarillo y espera al
prximo cambio de semforo para ponerse en verde.

Ilustracin 12: Interseccin tipo 4



33 CAPITULO 3: CONTROL DE TRFICO

En este caso, los semforos tambin se regulan individualmente como en el anterior, ya
que desde cualquier punto de la interseccin se puede girar en todas direcciones.
3.5.- Comunicaciones
Por tal de establecer un sistema de comunicaciones, se tuvo que disear un protocolo
para que no se produjeran malentendidos, estableciendo al control principal prioridad
absoluta a la hora de enviar mensajes.
Toda la informacin detallada en las especificaciones funcionales, se almacenar en un
vector que presenta la siguiente estructura:

- IR (Intersection reciver): Dice para quien se envia el mensaje. Siendo 0 el
control principal y 1,2,3,4,5,6 las intersecciones.
- SR (Sensor reciver): Dice que parte de la interseccin tiene que recibir el
mensaje. Siendo 0 en control principal y de 1 a 8 para los sensores en orden de
las agujas del reloj.
- IS (Intersection sender): Dice quien envia es el mensaje. Mismo criterio que IR
- SS (Sensor sender): Dice que parte de la interseccin enva el mensaje. Mismo
criterio que SR
- WM (Work Mode): Dice el modo de trabajo actual. Siendo 1 normal, 2 trfico y
3 noche.
- DATA: Numero de vehculos.
- B(Bussy): Indica si la comunicacin est actualmente en uso o no. Siendo 0
libre y 1 ocupado.
En el momento que se activa la grabacin del logfile (en el men LogfileRecord),
todas las intersecciones envan regularmente con tiempos fijados la informacin que
tienen en cada momento, para as crear el histrico y poderlo reproducir posteriormente.
IR (0) SR (1) IS (2) SS (3) WM (4) DATA (5) B (6)
Ilustracin 13: Protocolo de comunicaciones

34
MEMORIA
Igualmente, para reproducir los datos del logfile, el proceso a utilizar es el mismo pero
opuesto. A continuacin se muestra un esquema de cmo grabar y reproducir mediante
la comunicacin previamente establecida.

Ilustracin 14: Almacenamiento y reproduccin del Logfile

3.6.- GUI
La interfaz grfica o GUI (Graphical User Interface) consiste en la creacin de una
aplicacin que permita la interaccin con el sistema de una manera grfica, es decir, que
podr ser utilizado por cualquier persona tenga o no conocimientos sobre el tema. Tiene
que ser lo ms simple posible y fcil de utilizar.
Cuando ejecutamos el programa, ste comienza con una pantalla en negro y el men de
opciones arriba. Este men, como se puede observar, tiene una estructura tpica de
aplicacin Windows.

Ilustracin 15: Barra de mens



35 CAPITULO 3: CONTROL DE TRFICO

3.6.1.- Simulacin

3.6.1.1.- Cargar el mapa de intersecciones
Existen 3 maneras diferentes de comenzar una simulacin:
- Iniciar una nueva simulacin. Para ello, se clicar en la pestaa Add del men
superior. Una vez clicado, se desplegar una ventana como la de la ilustracin
16, la cual permite seleccionar que tipo de interseccin se quiere y en qu
orden se colocar.


Ilustracin 16: Seleccion de intersecciones
Cmo podemos observar, los tipos de intersecciones a elegir son intersecciones
comunes en cualquier ciudad, pudiendo as estudiar cmo funciona el sistema
para diferentes casos.
La GUI representa las intersecciones en diferente tamao en funcin de la
cantidad que haya siempre mostrndolas lo ms grandes posible. Por ejemplo, si
seleccionamos solo una, esta aparecer en pantalla completa mientras que si
seleccionamos todas estarn divididas entre 6. Por ese motivo, el sistema obliga
a seleccionar las intersecciones consecutivamente, es decir, no podremos
seleccionar la 5 si aun no hemos seleccionado la 4.

36
MEMORIA
- Iniciar una simulacin cargando la configuracin inicial. Para cargar un archivo
de simulacin ya existente, habr que clicar en la pestaa de FileOpen. De
esta manera se abrir la tpica ventana de Windows para abrir un archivo. Una
vez seleccionado, el sistema cargar las intersecciones pertinentes previamente
guardadas en ese archivo y estar listo para una nueva simulacin.

Con la opcin abrir, el sistema solo carga el nmero y el tipo de intersecciones,
no carga informacin relevante a la cantidad de coches.


Ilustracin 17: Cargar un archivo
Si se quisiera guardar el mapa de intersecciones utilizado, en el men File
encontramos tambin la opcin Save, donde aparecer una ventana parecida
con la opcin de guardar la informacin en un archivo txt.
A su vez, si se quiere borrar el mapa de intersecciones, clicando en New dentro
del mismo men, surgir este efecto.
- Iniciar una simulacin a partir de un log file existente. Este simulador tiene una
opcin que es guardar un histrico sobre la cantidad de coches que han pasado
por cada semforo y como han actuado los semforos en funcin de esto.




37 CAPITULO 3: CONTROL DE TRFICO
Para permitir el estudio de casos particulares que han sido problemticos, se
permite la opcin de reproducir una simulacin grabada previamente,
reproduciendo exactamente la cantidad de vehculos en cada punto y cmo han
evolucionado cada semforo e interseccin para afrontar la situacin.

Para ello se ir a LogfileLoad en el men principal y aparecer una ventana
similar a la anterior. (esta funcin esta detallada en el punto 6.2.- Logfile)

3.6.1.2.- Iniciar la simulacin
Una vez tenemos cargado el mapa de intersecciones a utilizar, el siguiente paso es
comenzar la simulacin. Para ello, utilizaremos la funcin start que encontraremos en
SimulationStart. En el momento que se active, los semforos comenzaran a
funcionar.

Ilustracin 18: Iniciar la simulacin

3.6.1.3.- Seleccin de Modo
Para introducir vehculos, debemos seleccionar el modo. En la pestaa del men Mode,
se encuentra Manual o Random (aleatorio). Si seleccionamos manual, para
incrementar el nmero de coches, se tendr que ir clicando encima de la ventana que
muestra el nmero de vehculos, mientras que si se selecciona random, el sistema los
incrementa manualmente.

Ilustracin 19: Seleccin de modo


38
MEMORIA

3.6.1.4.- Zoom
Si se quiere el funcionamiento de una interseccin en concreto ms detalladamente, se
le puede aplicar un zoom. Para ello, se tiene que clicar la pestaa ViewZoom in (para
desactivarlo Zoom out), donde nos aparecer una ventana para seleccionar la
interseccin a amplificar.
La ventana que se abre al clicar Zoom in, solo nos permitir seleccionar aquellas
intersecciones que actualmente estn en uso. En la imagen a continuacin se muestra la
opcin de zoom habiendo cargado anteriormente 3 intersecciones para simular.


Ilustracin 20: Zoom in

3.6.1.5.- Modo de regulacin
El sistema est previsto de un modo de regulacin automtico, donde pasa de modo
normal a modo trfico en funcin del trfico registrado. Cuando el sensor registra un
nmero de vehculos superior a un umbral, este cambia de modo y amplia el tiempo en
verde del semforo afectado. De esta manera se pretende descongestionar ese semforo
si los dems presentan condiciones de trfico normales. En caso que todos los
semforos de la interseccin estn colapsados, se regulara con tiempos normales.



39 CAPITULO 3: CONTROL DE TRFICO
El modo noche, entra en funcionamiento a las 12 de la noche de cada dia laborable,
aunque la hora se podra definir en funcin de las condiciones de trfico de cada ciudad,
ya que se supone que el trfico habr disminuido mucho. Si los sensores detectarn una
actividad superior a la estimada, estos volveran a modo normal o trfico en funcin de
la cantidad. Los das laborables y festivos, la hora se retrasa, incluso en zonas
transitadas como el centro de las ciudades, no llegara a entrar en modo noche nunca.
El simulador a parte, ofrece la posibilidad de forzar los modos de regulacin para ser
testeados. Para ellos se tiene que ir a la pestaa del men Regulation y all escoger
entre Normal, Rush (Trfico) y Night (Noche). Para poder utilizar estos comandos, la
simulacin tiene que en modo manual, ya que si esta en modo aleatorio esto se regulara
automticamente.

Ilustracin 21: Seleccin modo regulacin

3.6.1.6.- Ayuda
La GUI est dotada de un men de ayuda, donde se explica detalladamente la funcin
de cada comando del men. Una vez clicamos en Help, se abre una ventana con las
mismas pestaas que el men. Clicando en estas pestaas, se va explicando
detalladamente cmo funciona cada opcin.

40
MEMORIA

Ilustracin 22: Men ayuda

3.6.2.- Logfile

Cmo se ha comentado anteriormente, el programa ofrece la opcin de guardar la
informacin que estamos visualizando para un estudio detallado.
Para ello, se tiene que utilizar la funcin Record que encontramos en Logfile y para
pararla Stop Record. De esta manera, el sistema guarda automticamente en un archivo
txt la informacin previamente visualizada. Si se quieren hacer varias es importante una
vez almacenada la primera, cambiarle el nombre. De forma contraria se sobrescribir.

Ilustracin 23: Logfile



41 CAPITULO 3: CONTROL DE TRFICO
Si por el contrario lo que se quiere es reproducir un archivo anteriormente guardado,
dentro del mismo men se ir a la funcin Load. Se abrir una ventana de carga y se
seleccionar el archivo deseado. Automticamente el sistema cargar el mapa de
intersecciones y esperar instrucciones. Dentro del men, tenemos la opcin play and
pause. Para iniciar la simulacin debemos pulsar play. Se abrir una nueva venta modo
reproductor donde adems de reproducir y pausar, podremos variar la velocidad de
reproduccin.

Ilustracin 24: Reproductor logfile

3.7.- Algoritmo de control
A continuacin se detallar el algoritmo encargado del control de los semforos en
funcin de los vehculos. En caso que se quiera tener ms informacin, el cdigo
completo puede encontrarse en el anexo 1.
El algoritmo podra separarse en dos grandes bloques:


Ilustracin 25: Estructura algoritmo de control






42
MEMORIA
3.7.1.- Algoritmo para control de semforos. Regulacin de modo.
El funcionamiento de los semforos tiene tres modos de regulacin diferente:
- Funcionamiento normal: Los semforos tienen asignados unos tiempos estndar de
23 segundos en verde y amarillo 3 segundos. El rojo depender de si se trata de la
va principal o de las secundarias de la va en concreto.

- Funcionamiento modo trfico: El tiempo en verde aumenta, permitiendo as
descongestionar la via afectada. En el caso del sistema implantado, el tiempo
aumenta la mitad de su valor, aproximando se estima en 33segundos.

- Funcionamiento nocturno. A partir de una hora determinada en funcin de las
condiciones de cada ciudad zona, los semforos entran en modo noche. Este modo
consiste en que todos los semforos estn en mbar parpadeando.

En condiciones iniciales, todas las intersecciones se encuentran en modo normal. En el
momento que alguno de los sensores registra ms coches que un umbral determinado,
fuerza al semforo de la interseccin entrar en modo trfico. De esta manera,
aumentando el tiempo en verde y disminuyendo el rojo, se consigue descongestionar la
va ms fcilmente. Si por el contrario alguna otra va dentro de la misma interseccin
tambin esta congestionada, entonces seguir funcionando normalmente ya que cambiar
a modo trfico solo conseguira congestionar an ms alguna de las vas.



43 CAPITULO 3: CONTROL DE TRFICO

Ilustracin 26: Diagrama de flujo para la regulacin de trfico
Si observamos el diagrama anterior, car es la variable que almacena los datos recibidos
por el sensor equivalentes al nmero de vehculos en la va. Cuando este es superior a
20 (20 porque el tiempo en verde son 20 segundos y se supone que flujo de trfico tiene
una velocidad aproximada a 1 vehculo por segundo).
La segunda condicin (Any flag Rush==1) viene dada ya que en el momento que alguna
parte de la interseccin entra en Rush mode, antes de cambiar los tiempos activa un
marcador llamado flagA, flagB, flagC o flagD (en funcin de que parte de la
interseccin lo haya activado) y de esta manera se puede comprobar que solamente una
va tiene un trfico denso.
En intersecciones como la tipo 2, donde se activan los dos semforos de la misma
direccin a la vez, estas condiciones son algo diferentes, ya que si el flag es activado por
las dos intersecciones paralelas, an as se entra en rush mode porque en este caso no
congestionara ms ninguno de los dos carriles sino que sera beneficioso para ambos.


44
MEMORIA
3.7.2.- Algoritmo control semforo de peatones.
El semforo de peatones no se pone nunca en verde excepto en ocasiones en las que por
la situacin de los semforos, se tiene la seguridad que ningn vehculo puede circular
en ese momento.

Ilustracin 27: Diagrama de flujo regulacin peatones

El sistema de regulacin para peatones consiste en un vez pulsado el botn, este solicita
paso. En el siguiente cambio de semforo (como mximo 23 segundos en modo normal
o 33 en modo trfico) se pondr en verde el de peatones durante un tiempo de
aproximadamente 10 segundos, este tiempo tiene que ser definido previamente en
funcin del tipo de va para optimizar al mximo el tiempo que se tiene parado a los
vehculos.




45 CAPITULO 3: CONTROL DE TRFICO

3.7.3.- Algoritmo de simulacin
El algoritmo de simulacin esta realizado bajo un entorno visual, es decir, programando
objetos. Cada objeto tiene unas funciones asignadas y se podra decir que actan
independientemente en funcin de estas. Por ese motivo, la opcin de hacer explicacin
general del contenido del programa, creando un diagrama de flujo se hace muy difcil ya
que cuesta diferenciar los diferentes bloques.


46
MEMORIA






47
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES




CAPITULO 4: DETECCIN
DE VEHCULOS MEDIANTE
PROCESADO DE
IMGENES

48
MEMORIA
4.1.- Introduccin
Los seres humanos confiamos fundamentalmente en el sentido de la vista. Recogemos
un 99% de la informacin del medio que nos rodea a partir de los ojos. El
procesamiento de imgenes es un proceso que pretende extraer informacin visual de
una imagen o un conjunto de imgenes para un propsito concreto.
Para este propsito por medio de algoritmos, se le ensea al ordenador a interpretar la
informacin de las imgenes y distinguir los datos vlidos del fondo para un propsito
concreto, como en el caso de este proyecto, cuantificar el nivel de trfico.
Esta reciente tecnologa est cada vez ms implantada en la sociedad. Una utilidad que
cada vez es ms frecuente la podemos encontrar en el sector de la automatizacin. El
procesamiento de imgenes se usa para inspeccin y supervisin automtica en lneas de
produccin de grandes empresas. Este sistema reduce mucho el error humano a la vez
que proporciona estabilidad y precisin ofreciendo continuos controles de calidad para
todas las piezas, sustituyendo los controles estadsticos [3].

Tambin cada vez es ms frecuente encontrar sistemas de procesamiento para
seguridad. Cualquier otro sensor es mucho ms fcil de engaar que una cmara
inteligente que detecta cualquier variacin en la imagen, sustituyendo al tpico operario
delante de diversos monitores.

Para implementar el algoritmo se ha escogido la herramienta Matlab, debido a que con
la utilizacin de las toolbox Image acquisition y Image Processing, encontramos
una gran variedad de funciones tpicas de este mbito previamente definidas, de manera
que para utilizarlas hay que aplicar una instruccin y no desarrollar un algoritmo para la
implementacin de cada una.
Adems Matlab ofrece una funcin de ayuda muy completa, con manuales y ejemplos
prcticos con los que se puede conseguir la autoformacin. Para la realizacin del
proyecto se ha consultado constantemente la ayuda. Para ms informacin sobre algn
comando utilizado en el siguiente captulo, se recomienda la utilizacin de la
mencionada ayuda tanto desde el programa como por internet [4].



49
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES
4.2.- Adquisicin de imgenes.
4.2.1.- Introduccin.

El proceso de adquisicin de imgenes se podra diferenciar en dos partes: una
encargada de adquirir las imgenes y otra encarga de de ir almacenando los distintos
frames ya adquiridos en forma de imgenes.
La idea es crear un sistema que capaz de tomar imgenes en directo as como utilizar
videos previamente grabados para poder ser procesados. Este punto se interesante ya
que las imgenes a tiempo real sern necesarias para su uso prctico contando vehculos
en aplicaciones reales y adems poder reproducir videos, servir para la puesta a prueba
y optimizacin del funcionamiento, pudiendo ser utilizado en sistemas de validacin
automtica.

4.2.1.1.- Diagrama de flujo

Ilustracin 28: Diagrama Adquisicin de imagenes
En la ilustracin 28 podemos observar el diagrama correspondiente a las operaciones a
realizar en este apartado de adquisicin de imgenes. El objetivo, es adaptar las seales

50
MEMORIA
de entrada con el objetivo de tener una seal de salida comn para poder utilizar ambas
entradas por igual.

4.2.2.- Adquisicin con webcam.

Matlab ofrece una toolbox muy til llamada Image Acquisition que se encarga de
adquirir videos en tiempo real de cualquier tipo de cmara.
El objetivo de esta etapa es conseguir cargar en una variable llamada mov, los frames
grabados por la cmara en forma de imgenes.

4.2.2.1.- Configuracin de la cmara.
Primero de todo, hay que configurar la cmara para que sea reconocida por Matlab.
Con el comando imaqhwinfo, Matlab ira ofreciendo la informacin detallada necesaria.
Primero de todo, poniendo solo imaqhwinfo, se podrn ver adaptadores instalados en el
ordenador adems de informacin relacionada a las versiones del programa.

Ilustracin 29: Configuracin del adaptador.
Cmo la cmara utilizada es una webcam, utilizaremos el adaptador winvideo. A
continuacin se observar como implementar la funcin y la siguiente informacin que
encontramos.



51
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Ilustracin 30: Seleccin de la cmara
En este caso, podemos observar que hay dos cmaras en el equipo como se ve en
DeviceIDs. El siguiente paso consiste en seleccionar la cmara a utilizar.

Ilustracin 31: Informacin sobre la cmara
Lo que interesa de la Ilustracin 31, son los formatos soportados a parte del nombre de
la cmara para saber cual estamos utilizando. Para conocer los formatos, realizaremos el
siguiente procedimiento.

Ilustracin 32: Informacin sobre los formatos soportados por la cmara


52
MEMORIA
Para seleccionar un formato, seguimos utilizando el comando videoinput,
seleccionaremos el formato deseado y dejaremos la cmara preparada para grabar.

Ilustracin 33: Seleccin del formato de grabacin
La informacin que nos da esta funcin es importante, ya que da informacin sobre el
nmero de frames por segundo, el estado de la cmara (si esta parada, en pausa o
funcionando) y el nmero de frames almacenados en GETDATA.
Si se desea cambiar el nmero de frames del trigger, se puede hacer con el siguiente
comando: set(video,'FramesPerTrigger',N),donde video es la variable de
entrada y N el nmero de frames deseados. De la misma manera se puede cambiar
cualquier parmetro.

4.2.2.2.- Capturar y almacenar una imagen.
Una vez tenemos la cmara configurada, el siguiente paso es hacer una captura. Siendo
video la variable configurada con el comando videoinput mostrado anteriormente, para
activar la cmara hay que usar la funcin start(video) y para pararlo stop(video).
La informacin captada se va almacenando en el buffer y puede ir siendo leida cuando
se quiera. Para guardar la captura existe el comando save captura. Con esta funcin
save, Matlab crea un archivo de extensin .mat donde puede guardar la informacin.




53
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Para cargar un fichero .mat, se tiene que utilizar la funcin getdata. Esta funcin, carga
las imgenes y las deja almacenadas en el buffer para ser ledas. Una vez tenemos las
imgenes, se guardaran en una variable llamada mov.
El programa realizado es capaz de procesar aproximadamente 50 imgenes por segundo
ejecutado desde un ordenador, pero como se pretende que pueda ser usado por otros
sistemas como microcontroladores, se definirn 20 frames por segundo, ya que el
sistema est pensado para vehculos en uso urbano y por tanto con este nivel tendremos
una buena captura del vehculo.
Con esta reduccin se ha comprobado que el procesado de imagen no sufre ningn tipo
de penalizacin en cuanto a la calidad de deteccin de vehculos. Reducir a ms de la
mitad el nmero de imgenes a procesar representa aplicar este mismo factor a la
complejidad y coste de la electrnica que dara solucin a este problema.

Ilustracin 34: Captura y almacenamiento de una imagen



54
MEMORIA
4.2.3.- Extraccin de imgenes a partir de un video AVI.

La segunda opcin de cargar videos en este sistema es mediante un video formato avi.
Matlab ofrece una funcin llamada aviinfo, la cual aporta informacin a tener en cuenta
antes de cargar el video.

Ilustracin 35: Informacin video avi
Los datos que nos van a hacer falta son sobretodo el nmero de frames total, ya que se
tiene que saber cuntos frames debemos procesar. Las dimensiones de la imagen para
definir los bucles que recorrern la imagen buscando informacin. Tambin el tipo de
imagen, para adaptarla a las necesidades del proyecto.
Una vez conocida la informacin bsica, se procede a cargar la imagen. Matlab tiene
definida la operacin aviread que se encarga de cargar toda la informacin del video a
una estructura preparada para su manipulacin mediante Matlab. Con esta funcin, se
obtiene una estructura de dimensin igual al nmero de frames (en el caso del ejemplo
anterior 125) dividida en dos, cdata, que contiene los niveles de intensidad de la imagen
y colormarp que en el caso de nuestro video vale 0.
Una vez se tenga el video cargado en forma de imgenes RGB en una estrcutura mov,
ya estar listo para ser procesado.



55
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES
4.2.4.- HAL and Application

Cmo se ha mencionado anteriormente, se pretende que el sistema tanto pueda
funcionar captando imgenes a tiempo real como trabajar sobre videos previamente
grabados. Para no tener que adaptar el programa principal, se ha creado una estructura
dividida en dos partes, en la capa de abstraccin de hardware o HAL(Hardware
abstraction layer) y la aplicacin.
El HAL consiste en una interfaz entre el software y el hardware del sistema, haciendo
compatible para una misma aplicacin, diferentes tipos de hardware. Para conseguir
esto, se ha conseguido adquirir las imgenes por vas diferentes pero guardando el
resultado en la misma variable y en el mismo formato. De esta manera, la aplicacin no
tendr que preocuparse de que fuente provienen las imgenes porque estarn en el
mismo formato.

Ilustracin 36: HAL - Application
Esta opcin tambin se ha considerado para que el proyecto pueda ser adaptado en un
futuro pudindole aplicar diferentes tipos de entrada a la aplicacin y as ningn cambio
en la aplicacin sera requerido.



56
MEMORIA
4.3.- Adaptacin de la imagen.
4.3.1.- Introduccin.
La adaptacin correcta de las imgenes es un paso fundamental en toda aplicacin de
visin artificial. Realizar esta fase de manera adecuada permite simplificar el
tratamiento posterior de las imgenes en gran medida e incluso, definir el xito o
fracaso de la aplicacin.
Una vez tenemos las imgenes, debemos adaptarlas a nuestras necesidades eliminando
toda la informacin innecesaria. El objetivo consiste en encontrar la imagen ms simple
y de menor tamao para que el procesado sea ms rpido, ms eficiente y evitar posibles
errores causados por el ruido que la imagen pueda tener.
A continuacin se detallaran las diferentes operaciones aplicadas a la imagen por tal de
satisfacer las necesidades de este caso concreto.
4.3.1.1.- Diagrama de flujo
Algunas de las operaciones detalladas en este apartado de adaptacin de la imagen se
aplican ms de una vez. Para hacer un diagrama ms detallado, se incluir en el
siguiente apartado (4.- Procesamiento de imgenes) para as tener una visin completa
del proceso realizado.

4.3.2.- Conversin de RGB a escala de grises.
La imagen capturada por la cmara se encuentra en formato RGB (red, green, blue), es
decir se trata de una matriz de 3 dimensiones NxMxP, donde se tiene una matriz NxM
que representa el numero de pxeles de la imagen y su intensidad. P asigna el color a
esta imagen. Los valores de M y N varan entre 0 y 255, siendo 0 ausencia de intensidad
(negro) y blanco mxima intensidad (blanco) mientras que P puede valer 1, 2 o 3 siendo
1 rojo, 2 verde y 3 azul. A continuacin podemos ver un esquema detallado que
representa la estructura de la imagen RGB.



57
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Ilustracin 37: Estructura imagen RGB
El objetivo de esta transformacin consiste en simplificar a una dimensin de la matriz,
eliminndole el color, de manera que obtenemos una matriz NxM. De esta manera, en
vez de tener para un mismo pxel tres niveles de intensidad diferentes, tendremos uno
solo compuesto a partir de la suma ponderada de los 3.
El nico objetivo no es solamente reducir el tamao, tambin hay que tener en cuenta
que podramos perder informacin vital para el procesado. Con escala de grises se
consigue eliminar el color sin perder prcticamente informacin, pudiendo distinguir
claramente todas las formas de la imagen as como sus contornos y diferentes
tonalidades que an siguen variando entre 0 y 255.
Hay que tener en cuenta que la estrategia seguida para hacer la deteccin de vehculos
no utiliza la caracterstica del color para sacar informacin de la imagen. De este modo,
se concluye que la componente de color de la imagen es informacin no relevante para
el sistema y su conversin a una sola componente de intensidad simplifica enormemente
la arquitectura del sistema.
Matlab ofrece el comando rgb2gray para implementar esta funcin. A continuacin se
muestra un ejemplo de la dicha transformacin, donde podemos observar la imagen
inicial im y sus valores de RGB (a la izquierda) y a la derecha la imagen en escala de
grises y sus valores de intensidad una vez realizada la conversin.

58
MEMORIA

Ilustracin 38: Conversin de RGB a escala de grises
Esta operacin consiste en aplicar una operacin matemtica a cada pxel, aadiendo el
30% de la intensidad de rojo, ms el 59% de verde y finalmente sumndole el 11% de
azul. El resultante nivel de intensidad corresponde al nivel de grises. Estos porcentajes
han sido elegidos a partir de estudios que determinan la sensibilidad de el ojo humano
para detectar colores primarios, donde ste detecta con ms facilidad los verdes y menos
los azules [4]. A continuacin se muestra un ejemplo real para apreciar las diferencias.



59
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Ilustracin 39: Conversin de una imagen real RGB a escala de grises

4.3.3.- Binarizacin.

El objetivo de esta operacin es convertir los valores de intensidad de la imagen solo en
0s i 1s, de manera que la imagen resultante estar en blanco y negro. El proceso consiste
en que a partir de un umbral determinado, todos los valores de intensidad por debajo de
ste sern 0s, es decir negros, y por lo contrario, todos los que queden por encima sern
1s o blancos.
Es importante fijar un umbral acorde a nuestra imagen, ya que si no se podra perder
mucha informacin que podra ser imprescindible, por tanto, a pesar de que es una
operacin muy til, hay que elegir cuidadosamente cuando utilizarla.
Matlab ofrece la funcin llamada im2bw encargada de hacer este proceso. La
estructura a seguir para su aplicacin seria la siguiente:
bin = im2bw(im,thresh)
Donde im es la imagen a procesar y thresh el umbral a partir del cual se binarizar.
Este umbral vara entre 0 y 1. Utilizando la misma imagen que en el ejemplo anterior,
vamos a aplicarle el binarizado a la imagen con diferentes valores de umbrales para
apreciar la diferencia como a continuacin se puede observar.

60
MEMORIA

Ilustracin 40: Binarizacin

En la imagen de la derecha se aprecia que el umbral est situado al 40% de intensidad,
de manera que tanto el azul como el rojo han pasado a ser 0s o negros, mientras que el
verde, que tena un nivel de intensidad ms alto, ha pasado a ser 1 o blanco. En la
segunda, se ha puesto un umbral ms alto y como se ve todos los colores menos el
blanco han pasado a ser negros.
Una vez la imagen esta binarizada, resulta mucho ms fcil trabajar con ella ya que
pasamos de tener 256 posibles valores a solo 2. Vase un ejemplo real.

Ilustracin 41: Imagen real binarizada



61
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES
Cmo se ha comentado anteriormente y se puede apreciar en el ejemplo real, hay que
tener en cuenta en que punto de la adaptacin binarizar, ya que si no podemos perder
informacin necesaria como se observa en la imagen superior.

4.3.4.- Definicin de la regin de inters.

Normalmente, la informacin que deseamos extraer de una imagen no se encuentra
aleatoriamente por toda la imagen, se encuentra concentrada en un regin de la imagen.
Esta regin se denomina ROI (region of interest) o regin de inters [4]. De esta
manera, conseguimos reducir el tamao de la imagen, teniendo menos pxeles a
recorrer.
Matlab ofrece una funcin llamada imcrop, la cual se encarga de recortar un
rectngulo de la imagen. La funcin presenta la estructura siguiente:
roi = imcrop(im,area)
Donde im es la imagen a recortar, y area es el siguiente vector: area = [Xmin, Ymin,
ancho, alto]. Esta funcin tambin ofrece la opcin de dibujar el rectngulo
directamente en la imagen y el programa mismo se encarga de fijar las posiciones y
cortar la imagen.
A continuacin se podr observar un ejemplo real donde se define un corta la imagen
para buscar informacin solo en la regin de inters, que en este caso es un carril de la
va.

62
MEMORIA

Ilustracin 42: Definicin de ROI
Si se compara el tamao de las dos imgenes, se puede observar que la ROI es casi 3
veces ms pequea que la imagen original, lo que equivale a recorrerla 3 veces ms
rpido. Adems, en la imagen de la izquierda tenemos demasiada informacin que nos
sobra o ruido, ya que los vehculos que circulen por el carril izquierdo o los que circulan
en sentido contrario interferiran en la cuantificacin de vehculos que circulan por
nuestra ROI.

4.3.5.- Filtraje a partir de la mediana

Otra herramienta muy til es la mediana, ya que sirve para eliminar ruido de fondo. Esta
operacin permite eliminar pxeles sueltos o pequeas agrupaciones de pxeles
(dependiendo de la dimensin de pxeles seleccionados).
Este filtraje consiste para cada pxel, se compara con sus vecinos NxM y se realiza la
mediana, es decir, se ordenan los pxeles de menor a mayor en funcin de su nivel de
intensidad y se selecciona el que deja el mismo nmero de pxeles por encima que por
debajo, es decir, el valor central. Este valor ser el que tomara el pxel al que se le



63
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES
estaba aplicando la operacin. Esta operacin se repetir para todos los pxeles de la
imagen.
Matlab implementa esta funcin con el comando medfilt2, que funciona de la
siguiente manera:
mediana = medfilt2(im,[m n])
Donde im es la imagen a la que aplicar el filtrado y [m n] son las dimensiones de la
matriz de pxeles vecinos que se tendrn en cuenta a la hora del clculo de la mediana.

Ilustracin 43: Filtraje a partir de la mediana
Para realizar el ejemplo, a la imagen original se le ha aadido ruido para asi poder
filtrarlo y comprobar el funcionamiento de dicho filtro. Cmo se puede ver, el ruido
aadido son pxeles sueltos, de manera que al hacer la mediana con los valores de los
pxeles vecinos, estos tienden a desaparecer aunque alguno siempre queda. An y as la
imagen filtrada presenta unos resultados bastante aceptables.



64
MEMORIA
4.4.- Procesado de imgenes
4.4.1.- Introduccin

Esta etapa es la ms importante a la hora de extraer la informacin deseada. Consiste en
la aplicacin de diversos algoritmos a la imagen hasta que el computador es capaz de
interpretar la informacin extrada para realizar alguna operacin concreta con esta.
En este nivel, Matlab ya no ofrece funciones predefinidas ya que cada aplicacin tendr
una finalidad y unos medios diferentes para llegar al cumplimiento de sus
especificaciones. Matlab ofrece un lenguaje de programacin bastante parecido a los
ms comunes como C, aunque con pequeas modificaciones. Es decir las estructuras
condicionales como If, else son las mismas, con la diferencia que para cerrar la
condicin hay que acabar con un end. Los bucles for y while tambin tienen la misma
funcionalidad con el mismo requisito que el if, cerrndolos con el comando end. La
nica diferencia respecto a los bucles es que estos no se incrementan automticamente
como en la mayora de lenguajes.
A continuacin se detallaran las tcnicas utilizadas para realizar la cuantificacin de
vehculos una vez tenemos la imagen adaptada y reducida, consiguiendo as disminuir
los tiempos de procesado y validacin.




65
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES
4.4.1.1.- Diagrama de flujo

Ilustracin 44: Diagrama de flujo adaptacin y procesado de imgenes


4.4.2.- Accumulative Differential Image (ADI)

Una ADI o imagen diferencial acumulativa consiste en la creacin de una nueva imagen
a partir de la comparacin de una imagen de referencia con cada imagen consiguiente en
la secuencia [6]. Cada vez que la diferencia entre el mismo pxel en las dos imgenes es
superior a un umbral, un contador se incrementa y despus ese valor es traspasado a la
ADI. De esta manera, inicialmente tenemos una imagen en negro que poco a poco se va
pintando con el recorrido del movimiento.
La imagen acumulativa presenta un nivel de intensidad igual al nmero de veces que la
imagen nueva ha sido diferente a la de referencia en esa posicin en concreto. Existen
tres tipos de ADIs:
- ADI absoluta: capta tanto los niveles de intensidad mayores y menores al color
de fondo a partir de un umbral.
Lectura de la
imagen
Conversin a
escala de grises
Definicin ROI
Creacin ADI
Binarizado y
filtraje por
mediana
CTG
Binarizado y
filtraje por
mediana
Edge detector

66
MEMORIA

> +
=

otherwise y x A
T k y x f y x R if y x A
y x A
K
K
k
) , (
) , , ( ) , ( 1 ) , (
) , (
1
1
(1)
Donde ) , ( y x A
k
= ADI y k = numero de frame; ) , ( y x R = imagen de referencia;
) , , ( k y x f = frame actual a comparar y T = umbral


- ADI negativa: capta los niveles de intensidad inferiores al color del fondo.

| |

> +
=

otherwise y x A
T k y x f y x R if y x A
y x A
K
K
k
) , (
) , , ( ) , ( 1 ) , (
) , (
1
1
(2)
- ADI positiva: capta los niveles de intensidad superiores al color del fondo.
| |

> +
=

otherwise y x A
T y x R k y x f if y x A
y x A
K
K
k
) , (
) , ( ) , , ( 1 ) , (
) , (
1
1
(3)
En la realizacin del algoritmo que crea la ADI para el caso en especial que se estudia
en este proyecto, se ha una ADI absoluta, ya que tanto tenemos vehculos ms claros
que la calzada como ms oscuros, aunque hemos aplicado un pequeo cambio. En la
ADI absoluta, el umbral es el mismo tanto para los valores positivos como para los
negativos, por tanto este caso no se adaptaba exactamente a las necesidades del
proyecto, as que se utilizar a la vez tanto la positiva como la negativa, utilizando dos
umbrales diferentes Tlight y Tdark. En la ilustracin 45 se puede ver el algoritmo
encargado de crear esta funcin.
En la primera parte del algoritmo, inicializamos variables, definimos los tamaos de las
matrices para recorrerlas y extraer la informacin y definimos una matriz imADI del
mismo tamao que la imagen de referencia llena de ceros. Tambin fijamos los
umbrales Tdar y Tlight con los valores adecuados para esta aplicacin.
En la segunda parte, buscamos los puntos que sean ms oscuros que el umbral definido,
restando cada pxel del frame actual con el correspondiente en la imagen de referencia.
Cuando esta condicin se cumple, se le sumar una constante superior a la unidad al



67
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES
pxel de la ADI en ese punto, para as tener una imagen ms clara y posibilitar un filtraje
de ruido ms eficaz. Es importante fijar bien este umbral porque cuando pasa un
vehculo crea una sombra a su alrededor, que no es un gran problema porque as hay
mas superficie que detectar, pero si pueden aparecer sombras de objetos que no nos
interesan en forma de ruido y provocar falsas detecciones. Si no se cumple la condicin,
dejamos el pxel de la ADI con el valor que tena anteriormente.
La tercera, funciona igual pero detectando los pxeles que sean ms claros que el fondo.
La cuarta parte es la encargada de incrementar los frames para recorrer todo el video. La
ltima instruccin binariza la imagen para simplificarla con un umbral definido, a su
vez que aplica la mediana a la imagen binarizada para tapar huecos y pxeles sueltos. En
este caso se le aplica la mediana con una dimensin de 6x6 para ser ms eficaz en su
labor.

Ilustracin 45: Algoritmo de creacin de una ADI

68
MEMORIA
En las siguientes imgenes se mostraran ejemplos grficos para apreciar los diferentes
resultados y el porqu de las elecciones de los diferentes umbrales. Para ello, se
utilizarn las dos siguientes imgenes, en las que a la izquierda tenemos un coche
blanco y a la derecha uno negro para apreciar las diferencias.

Ilustracin 46: Frames a utilizar para la creacin de ADIs
El primer paso a realizar ser la aplicacin de la ADI positiva. Cmo se puede apreciar
en la ilustracin 47, el vehculo blanco que perfectamente representado, mientras que el
taxi, solo quedan representadas las luces y algn reflejo. Utilizando esta ADI, perdemos
demasiada informacin y los coches oscuros no se tendran en cuenta porque el sistema
los interpretara como ruido.
Para el segundo ejemplo usaremos la ADI negativa aplicada a las mismas imgenes.
Ahora, el vehculo blanco prcticamente no se puede apreciar, tan solo aparece una
parte del morro y la sombra que deja, mientras que para el negro, aparece bastante claro.
En la imagen tambin se puede apreciar la sombra que los vehculos provocan. Esta
sombra no supondr un problema ya que contra ms superficie se tenga a detectar mejor
funcionar el sistema.




69
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Ilustracin 47: ADI positiva

Ilustracin 48: ADI negativa
A partir de estas dos imgenes, si se juntan para crear una sola respetando los diferentes
umbrales, podemos crear una ADI como la mostrada en la ilustracin 49. Tanto los
vehculos claros como los oscuros son representados perfectamente en la ADI.

70
MEMORIA

Ilustracin 49: Suma de ADI positiva y negativa
A todas las imgenes anteriores ya se les ha aplicado la binarizacin y la mediana. A
continuacin se ensearn las mismas imgenes que en la ilustracin 49 sin aplicar
ninguno de estos dos filtrajes para poder apreciar la diferencia. Interesa tener cuantas
ms regiones en blanco sin negro mejor, y como se aprecia en las imgenes de abajo,
hay muchos pxeles sueltos negros que causarn molestias a la hora de realizar el
siguiente paso de extraccin de la informacin.



71
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Ilustracin 50: ADI sin mediana y ADI con mediana

4.4.3.- Car Tracking Generator (CTG)

El CTG o generador de rastreo de vehculos es un algoritmo que muestra k-frames en
una sola imagen. De esta manera, podemos comparar las trayectorias que los vehculos
han tomado dentro de nuestra regin de inters y en funcin de esto, realizar el conteo
de vehculos.
Para realizar este proceso, partimos de la ADI del frame y se suma el valor de todos los
pxeles de una lnea y se almacena en un vector y as para todas las lneas. De esta
manera se pasa de tener una imagen MxN a un vector CTG de tamao M (1). Este
vector, se utilizar para dibujar una imagen nueva, en la cual se colocaran los vectores
horizontalmente para formarla, teniendo como resultado una imagen de dimensin
KxM, es decir de numero de frames por largo de la imagen ADI (2). A continuacin se
mostrar un esquema detallado del proceso de creacin as como el algoritmo encargado
de ello y ejemplos prcticos de cada etapa.

72
MEMORIA

Ilustracin 51: Etapas de creacin de un CTG

El principio consiste a partir de la ADI creada, que va cambiando para cada frame,
aplicarle esta operacin para conseguir tener el objeto representado en una sola lnea. Si
el objeto avanza respecto a la anterior, ocurrir un efecto parecido al que observamos en
la imagen 2, es decir, cada lnea que bajemos, el objeto se ir desplazando ms hacia la
izquierda obteniendo una lnea diagonal.
A partir de esta imagen, ser mucho ms fcil establecer condiciones para determinar si
el objeto detectado se el deseado y contar. Por ejemplo, si la lnea es vertical, quiere
decir que el objeto no se est moviendo, de manera que no lo contaremos como vehculo
porque mientras est parado no nos interesa.



73
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Ilustracin 52: Algoritmo CTG
En el algoritmo anterior, los contadores i y j recorren toda la ADI creada
anteriormente y como observamos en 1, se busca que sea mayor que 0 (como es una
imagen binaria, que sea mayor que cero es lo mismo que decir que sea 1). Si esto
ocurre, se incrementa el valor de una variable contador llamada aux. De esta manera,
vamos sumando todos los valores de los pxeles de una lnea. Una vez se ha recorrido
horizontalmente, llegamos a 2, donde si el valor del contador aux es mayor que 15,
querr decir que no es ruido y por tanto dibujamos un 1 en el punto index (numero de
frame), i (lnea de la ADI).
Para acabar, se aplica el mismo procedimiento que con la ADI, es decir primero
binarizar con un umbral bajo y despus hacer la mediana. En este caso, la mediana
tendr dimensiones de 4x4, ya que nos interesa tener unas trayectorias de recorrido lo
ms uniformes posibles. En las siguientes imgenes veremos paso por paso como
evolucionan las imgenes por medio de un ejemplo.

74
MEMORIA
Como podemos comprobar en la ilustracin 53, en la posicin donde se encuentra el
vehculo encontramos una lnea blanca, aunque obtenemos un pequeo error en la zona
de la luna del coche, aunque no es significativo a la hora de la deteccin. La siguiente
imagen que se muestra corresponde a un fragmento de video en el cual, como se puede
observar, tenemos la trayectoria de 6 vehculos diferentes, pudiendo diferenciar
claramente coches, motos y autocares o camiones.


Ilustracin 53: Creacin de una imagen CTG

Si observamos la imagen CTG detalladamente en la ilustracin 54, se sabe que el 1, 2, 6
son coches, 3 y 5 son motos y 4 un autobs. Por tanto, en funcin del grosor de la
imagen podemos diferenciar entre el tipo de vehculo y descartar posibles errores.



75
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES

Ilustracin 54: Imagen CTG
El siguiente paso consiste en desarrollar un algoritmo capaz de detectar estas lneas y
realizar el conteo eliminando errores.

4.4.4.- Edge Detector

En electrnica digital, un detector de flanco es un circuito lgico que detecta los
cambios de flancos, es decir, cuando una seal pasa de bajo a alto o de alto a bajo.
Partiendo del mismo concepto, se ha llegado a la conclusin de que puede ser un buen
mtodo para detectar vehculo ya que procesar una imagen binaria equivale a una
funcin lgica.

Ilustracin 55: Detector de flancos
Para adaptarlo a este proyecto, se delimitan tres regiones de inters (ROI) de un tamao
diferente entre ellas para as poder regular el nivel de rigurosidad. Cada una calcula la

76
MEMORIA
media del valor de intensidad de los pxeles y utilizar esta informacin como seal de
entrada al detector de flancos.
Los flancos se irn contando y comparando con los resultados de las otras ROI y de esta
manera establecer las condiciones de deteccin. Seguidamente se podr ver el cdigo de
implementacin de la funcin separado por partes para una mejor explicacin.
4.4.4.1.- Definicin de la ROI

Ilustracin 56: Definicin de las dimensiones de la ROI
En esta primera parte se definen las tres regiones de inters en funcin de unas variables
para poder variar el acho de cada ROI. De esta manera se le podran aplicar algoritmos
de validacin y optimizacin como se explicar ms adelante.
Tambin dentro de cada ROI se suman los valores de cada pxel y se almacenan.




77
CAPITULO 4: DETECCIN DE VEHCULOS MEDIANTE PROCESADO DE
IMGENES
4.4.4.2.- Detector de flanco

Ilustracin 57: Detector de flanco
En la primera parte del algoritmo, hacemos la media del valor de los pxeles de cada
ROI y si es mayor que un umbral rig que define el porcentaje de rigurosidad
requerido, se pone una variable count. De esta manera, en la segunda comparando el
valor actual de count con el que vala el anterior se detectan los flancos.

4.4.5.- Condiciones de deteccin

El ltimo paso para detectar el paso de vehculos consiste en implementar una funcin
lgica que los requisitos necesarios a partir de tres seales de entrada equivalente a la
salida los detectores de flancos.
A continuacin se mostrara la tabla de la verdad y los casos particulares, donde A,B,C
son equivalentes a los flancos de las ROI y Y, ser igual al contador de coches.


78
MEMORIA

Ilustracin 58: Tabla de la verdad
Los casos particulares tienen que ser estudiados con ms detenimiento, as que vamos a
analizarlos:

Ilustracin 59: Casos particulares
El algoritmo de esta parte del programa puede consultarse en el ANEXO 2, pgina 6.
A partir de estas condiciones, el sistema es capaz de reconocer cuantos coches hay en
cada momento. Esta informacin sera enviada al control central para que el semforo
actuara en funcin a los datos.




79




CAPITULO 5:
VALIDACIN DEL
SISTEMA

80
MEMORIA

5.1.- Introduccin.
Todo sistema necesita una validacin antes de su puesta en funcionamiento. La
validacin es necesaria para saber si un proyecto cumple todos los requisitos y
especificaciones iniciales, si su funcionamiento se adapta a las necesidades del cliente y
si este funcionamiento es similar al esperado. Adems la validacin es un concepto muy
importante a la hora de establecer la calidad del sistema y puede ser muy til a la hora
de mejorarla.
Incluso una vez el sistema este establecido, sera interesante establecer un sistema de
validacin automtico, el cual fuera capaz de optimizarse automticamente a partir de
variar variables previamente definidas como por ejemplo variando los umbrales de la
creacin de la ADI explicada anteriormente para as no tener excepciones y ser mucho
ms fiable.

5.2.- Validacin del sistema de control de trfico.
La validacin de este sistema est implementada con el mismo diseo del simulador.
Una vez la GUI estuvo diseada y funcionando, se le aplic un control acorde con el
test plan definido previamente que revisaba el funcionamiento del sistema teniendo en
cuenta tanto las especificaciones funcionales como las no funcionales. El Test plan
documento puede encontrarse en el anexo 3.
La misma GUI, como se ha mencionado anteriormente, tiene la opcin de reproducir un
histrico previamente almacenado con el fin de estudiar atentamente unas condiciones
concretas. Esta parte de la GUI tiene el propsito de poder optimizar el sistema,
estudiando casos detenidamente para intentar buscar una solucin eficaz a dicho
problema sin que afecte despus al funcionamiento habitual de las intersecciones.






81 CAPITULO 5: VALIDACIN DEL SISTEMA

5.3.- Validacin del sensor de deteccin de
vehculos.
5.3.1.- Videos sintticos.

A la hora de validar el algoritmo de procesamiento de imgenes, se comenz utilizando
imgenes sintticas que pudieran encaminar que tcnicas podran utilizarse en el
algoritmo para cumplir los objetivos previstos.
Puesto que el conocimiento en la materia era ms bien escaso, esta etapa ha comportado
una gran parte del tiempo de diseo del sensor. El primer paso ha sido utilizar imgenes
muy simples y pequeas para poder apreciar a nivel de pxeles los cambios realizados,
ya que inicialmente cost asimilar el concepto de representar una imagen como una
matriz de nmeros. A su vez, el programa Matlab tambin fue un entorno nuevo al que
no se estaba acostumbrado, as que se invirti mucho tiempo en formacin.
Una vez se hicieron diferentes pruebas para familiarizarse tanto con el programa como
con las imgenes, se procedi a grabar varios video simples simulando una carretera y
un objeto en movimiento. Se grabaron diferentes videos para tratar una por una
diferentes posibilidades, como por ejemplo el hecho de que pase un vehculo blanco y
otro negro, que pasen muy seguidos, que pasen en paralelo, etc. De esta manera, se
trataron los problemas individualmente y fue ms sencillo encontrar las causas.

82
MEMORIA

Ilustracin 60: Imagen sinttica
Por ejemplo, la imagen superior fue utilizada para el desarrollo de la mayor parte del
cdigo. Una vez no hubo problemas en detectar este objeto en movimiento, se procedi
a grabar videos reales de vehculos en movimiento.

5.3.2.- Validacin real.

Para comprobar la robustez del sistema, se tomaron diferentes videos utilizando
diferentes inclinaciones y diferentes escenarios. Con ello se pretende encontrar los casos
ms desfavorables, estudiarlos atentamente y aplicarle soluciones.
Esta etapa ha sido una etapa laboriosa de muchas horas invertidas, debido a que una vez
establecido el algoritmo definitivo, hubo que ir ajustando diferentes parmetros para
poder tener en cuenta todas las especificaciones, la cual cosa comportaba mucha
experimentacin y mucho tiempo de prueba.
Los videos fueron grabados desde encima de un puente en la Gran Va de Les Corts
Catalanes, una va de Barcelona de dos carriles bastante transitada por todo tipo de
vehculos. En un principio fue un problema determinar diferentes umbrales para que
detectara tanto una moto como un autobs, ya que si contaba la moto contaba doble con
el autobs y si contaba bien el autobs no contaba la moto.



83 CAPITULO 5: VALIDACIN DEL SISTEMA
A partir de la aplicacin de diferentes videos, se ha llegado a concluir que el sistema es
fiable, ya que detecta en su totalidad todos los vehculos. Incluso por la noche, que
pareca una condicin muy adversa, no ha dado ningn problema, incluso le es ms
sencillo al sistema debido a que detecta muy fcilmente las luces de los vehculos.
Este sistema no est comprobado para casos que infrinjan las normas de circulacin,
como circular sin luces por la noche o el exceso de velocidad. Circulando sin luces por
la noche, un vehculo oscuro se hace prcticamente imperceptible incluso para el ojo
humano, aunque en condiciones de luminosidad adecuada como una ciudad, el sistema
s que lo detectara. Respecto al exceso de velocidad, si un vehculo circulara a ms del
doble de la velocidad permitida, seguramente el sistema lo interpretara como ruido
debido a la reduccin del video a 20 fps.



84
MEMORIA




85




CAPITULO 6:
FUTURAS
IMPLEMENTACIONES

86
MEMORIA
6.1.- Introduccin.
Tanto el tema de control de trfico como el tema de procesado de imgenes tratan de
dos mbitos en continua investigacin e innovacin por tal de conseguir resultados ms
eficientes ya que son una verdadera necesidad.
Respecto al control de trfico, las grandes ciudades empiezan a tener problemas
realmente serios, encontrando cada da a las mismas horas las arterias principales de la
ciudad completamente atascadas. Por tanto, existen dos soluciones: concienciar a la
gente para que utilice el transporte pblico o al menos el uso compartido de vehculos o
la segunda solucin consistente en desarrollar un sistema mucho mejor que el que
tenemos hasta la fecha que evite al mximo las paradas.
Respecto al procesamiento de imgenes se podra mejorar en dos aspectos. Uno
aumentando la eficacia de aciertos y el segundo optimizando el cdigo y reduciendo las
dimensiones de clculo para no necesitar un procesador muy potente.

6.2.- Control de Trfico.
El sistema descrito en el presente trabajo se hace funcionar mediante un ordenador. Por
tal de transferir el sistema a un embedded system, hara falta hacer una restructuracin
del cdigo, creando otra estructura HAL-ApplicatioN (como la explicada
anteriormente para adaptar la cmara al algoritmo de procesado), aunque en este caso
entre el hardware y la aplicacin se podra aadir otro nivel de presentacin.
La estructura a tener debera ser tipo la presentada en el esquema anterior, donde la
HAL contendr todos los elementos externos como los sensores (en este caso la cmara
y su software de procesado) los actuadores (como los rels que controlan los semforos)
de manera que de cara a la aplicacin, estos elementos son variables que aunque se
cambien no afecten a la aplicacin.



87 CAPITULO 6: FUTURAS IMPLEMENTACIONES

Ilustracin 61: HAL-Application-Presentation
La aplicacin vendra a ser el software de control, donde estn los algoritmos
encargados de gestionar los tiempos de los semforos y enviar la informacin y la
presentacin sera la interfaz grfica, con la que el usuario puede ver lo que est
pasando en cada momento, registrar datos, etc.
Adems, habra que seleccionar que tipo de embedded system seria el apropiado para
la implementacin de este sistema, teniendo en cuenta las caractersticas que este
presenta, debera ser potente y barato, ya que en una ciudad hay muchos semforos.
Otra manera de mejorar el presente sistema, seria la colocacin de otro sensor previo al
que hay actualmente, para as saber con antelacin el nmero de vehculos que se
aproximan y tener ms tiempo de reaccin.

6.3.- Procesamiento de imgenes.
La implementacin que optimizara el funcionamiento del algoritmo realizado, podra
conseguir cambiando el lenguaje de programacin. Un lenguaje tipo C, mucho mas
rpido y eficaz a la hora de procesado ahorrara tiempo y recursos. El problema est en
el proceso de transformacin del cdigo, ya que el periodo de depuracin seria complejo
y laborioso debido a que muchas de las funciones utilizadas estn implementadas
directamente por Matlab. De manera que la fase de correccin se hara engorrosa.

88
MEMORIA
Una alternativa a cambiar completamente el cdigo, seria tener el programa principal en
C y algoritmos concretos en Matlab. Matlab ofrece crear una librera para C a partir de
un archivo *.m (extensin tpica de Matlab). De esta manera se podra compensar la
velocidad con la calidad y as pudiendo crear un programa en C y poder integrarlo en un
embedded system.

6.4.- Sistema de validacin automtica
Durante la realizacin del trabajo se ha comprobado que a medida que se mejora la
eficacia del programa, requiere mucho ms trabajo continuar mejorndola. Llegar hasta
el 90% de eficacia no ha sido relativamente difcil pero llegar al 95% ha sido muy
costoso en tiempo. Partiendo de esta idea, sera interesante crear un algoritmo, que a
partir de unos modelos predefinidos, intentara mejorar el sistema.
En el caso del control de trfico, se podra crear una aplicacin que fuera variando el
tiempo de los semforos en funcin del trfico bajo un nmero definido de vehculos
siempre igual e ir buscando el valor que consigue una mxima eficiencia. Aplicable al
presente proyecto, se podra crear un algoritmo que variara los tiempos
automticamente y mediante la reproduccin del logfile, comprobar su eficacia.
Respecto al procesamiento de imgenes, se podra crear un algoritmo que fuera
variando el valor de los umbrales, desde la primera binarizacin hasta la ltima para
probar todas las combinaciones posibles. La idea consiste en grabar una serie de videos
bajo las condiciones ms adversas y contar manualmente todos los vehculos que
aparecen. Al video se le incluye esta informacin y se le aplica el algoritmo diseado.
Una vez acaba de procesar el video se compara el nmero total de vehculos captados
con el real y se mira su porcentaje de eficacia. En el momento que el porcentaje es
superior al que estaba anteriormente memorizado, se almacenan estos parmetros y se
utilizan en adelante hasta nuevas mejoras.
Este sistema permitira que el propio sistema vaya aprendido por si mismo y
mejorndose hasta rozar la perfeccin.

También podría gustarte