Art í Culo Accident Es

download Art í Culo Accident Es

of 25

Transcript of Art í Culo Accident Es

  • 7/25/2019 Art Culo Accident Es

    1/25

    Desarrollo de un sistema de Visin Artificial para la

    deteccin de accidentes y/o congestionamiento vehicular

    Andrs Armijos, Pedro Aponte

    Carrera de ingeniera de Sistemas, Universidad Nacional de Loja

    [email protected], [email protected]

    Resumen.Este artculo es el resultado de la investigacin exhaustiva de tcnicas y algoritmosde procesamiento digital de imgenes, adems del correspondiente trabajo de campo y diferentesherramientas para el diseo y programacin. La visin artificial o visin por computador juegaun papel muy importante para la consecucin de los objetivos planteados, as mismo el avance

    tecnolgico ha permitido que la misma permita en cierta forma recrear o simular las funcionesdel ojo humano.Palabras Clave:Visin artificial, clasificador, vehculo.

    Abstract.This article is the result of exhaustive research of techniques and algorithms of digitalimage processing, in addition to the corresponding fieldwork and different tools for design andprogramming. Computer vision or computer vision plays an important role in achieving theobjectives, also the technological advancement has allowed it allows somehow recreate or

    simulate the functions of the human eye.Keywords:Machine Vision, classifier, vehicle.

    1 Introduccin

    El mundo actual en el que vivimos, est lleno de dispositivos capaces de realizar

    capturas de imgenes a grandes distancias, vigilar sectores especficos, cmaras deseguridad para grandes empresas, ojos de guila, etc. Todos estos dispositivos resultan

    de gran utilidad al momento de tomar una decisin por el ser humano, pero este no

    puede estar presente 24 horas, 365 das al ao, es ah donde entra la visin artifi cial,

    misma que juega un papel fundamental, haciendo que los dispositivos mencionados se

    conviertan en herramientas de capturas de imgenes pasivos a activos por si solos,

    capaces de tomar una decisin como lo hara un ser humano pensante e inteligente.

    En la actualidad, es necesario determinar el trnsito vehicular de un determinado lugardonde con frecuencia existe congestionamiento de vehculos donde el trnsito es

    controlado por semforos con temporizadores que se sitan en intersecciones viales

    para regular el normal trfico vehicular y peatonal, pero que resultan ineficientes al

    momento de la aglomeracin vehicular, horas pico, provocando as una serie de

    problemas de contaminacin ambiental accidentes de trnsito, contaminacin por el

    ruido, etc..

    De manera general en las grandes ciudades se encuentran los siguientes problemas:

  • 7/25/2019 Art Culo Accident Es

    2/25

    El control de trnsito se realiza mediante semforos con temporizadores

    sincronizados.

    En horas pico se necesita la intervencin un agente de trnsito para el control

    vehicular.

    El congestionamiento vehicular en las intersecciones en un intervalo de tiempo

    provocan posibles riesgos de colisiones.

    La aglomeracin de vehculos provoca desesperacin en los conductores y por

    ende tienden a utilizar en exceso las bocinas, provocando contaminacin por

    ruido.

    2 Herramientas utilizadas.

    Al momento de desarrollar aplicaciones que estn basadas en Visin Artificial es muy

    importante saber elegir una librera como herramienta de desarrollo, aunque no sera

    muy recomendable utilizar solo una. Es probable que las deficiencias de una puedan

    ser resueltas por otra, o que para un problema concreto resulte aconsejable usar unalibrera especfica como es el caso de Opencv.

    A continuacin se detallan algunas de las libreras ms utilizadas en el desarrollo de

    aplicaciones que estn enfocadas en la Visin Artificial.

    2.1 Ubuntu:

    Fig. 1. Ubuntu. ltima versin disponible 14.04 LTS

    Ubuntu es una palabra Africana que significa 'Humanidad hacia otros', o 'Yo soy porque

    nosotros somos'. La distribucin Ubuntu lleva el espritu de Ubuntu al mundo del

    software.

    Ubuntu es un sistema operativo desarrollado por la comunidad que es perfecto para

    laptops,computadoras de escritorioyservidores.Ya sea que lo utilices en el hogar, en

    la escuela o en el trabajo, Ubuntu contiene todas las aplicaciones que puedas necesitar,

    desde procesadores de texto y aplicaciones de email, hasta software para servidor web

    y herramientas de programacin.

    Ubuntu es y siempre ser libre de costo. No pagas por una licencia de uso. Puedes

    descargar, usar y compartir Ubuntu con tus amigos, familiares, escuela o negocios

    libremente [6].

    Su patrocinador, Canonical, es una compaa britnica propiedad del empresario sudafricanoMark Shuttleworth.Ofrece el sistema de manera gratuita, y se financia por

    http://www.ubuntumx.org/edicion-escritorio.phphttp://www.ubuntumx.org/edicion-escritorio.phphttp://www.ubuntumx.org/edicion-escritorio.phphttp://www.ubuntumx.org/edicion-servidor.phphttp://www.ubuntumx.org/edicion-servidor.phphttp://www.ubuntumx.org/edicion-servidor.phphttp://es.wikipedia.org/wiki/Canonicalhttp://es.wikipedia.org/wiki/Sud%C3%A1fricahttp://es.wikipedia.org/wiki/Mark_Shuttleworthhttp://es.wikipedia.org/wiki/Mark_Shuttleworthhttp://es.wikipedia.org/wiki/Sud%C3%A1fricahttp://es.wikipedia.org/wiki/Canonicalhttp://www.ubuntumx.org/edicion-servidor.phphttp://www.ubuntumx.org/edicion-escritorio.php
  • 7/25/2019 Art Culo Accident Es

    3/25

    medio de servicios vinculados al sistema operativo y vendiendo soporte tcnico.

    Adems, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los

    desarrolladores de la comunidad para mejorar los componentes de su sistema operativo.

    Extraoficialmente, la comunidad de desarrolladores proporciona soporte para otras

    derivaciones de Ubuntu, con otros entornos grficos, comoKubuntu,Xubuntu,Ubuntu

    MATE,Edubuntu,Ubuntu Studio,Mythbuntu,Ubuntu GNOME yLubuntu [7].

    2.2 Qt:

    Fig 2. Qt. ltima versin 4.8

    Qt es una biblioteca multiplataforma ampliamente usada para desarrollar aplicaciones

    con interfaz grfica de usuario, as como tambin para el desarrollo de programas sin

    interfaz grfica, como herramientas para la lnea de comandos y consolas para

    servidores. Es desarrollada como un software libre y de cdigo abierto a travs de Qt

    Project, donde participa tanto la comunidad, como desarrolladores de Nokia, Digia yotras empresas. Anteriormente, era desarrollado por la divisin de software de Qt de

    Nokia, que entr en vigor despus de la adquisicin por parte de Nokia de la empresa

    noruega Trolltech, el productor original de Qt, el 17 de junio de 2008. Qt es distribuida

    bajo los trminos de GNU Lesser General Public License (y otras). Por otro lado, Digia

    est a cargo de las licencias comerciales de Qt desde marzo de 2011.

    Qt es utilizada en KDE, entorno de escritorio para sistemas como GNU/Linux o

    FreeBSD, entre otros. Qt utiliza el lenguaje de programacin C++ de forma nativa,

    adicionalmente puede ser utilizado en varios otros lenguajes de programacin a travs

    de bindings. Tambin es usada en sistemas informticos empotrados para automocin,

    aeronavegacin y aparatos domsticos como frigorficos.

    Funciona en todas las principales plataformas, y tiene un amplio apoyo. El API de la

    biblioteca cuenta con mtodos para acceder a bases de datos mediante SQL, as como

    uso de XML, gestin de hilos, soporte de red, una API multiplataforma unificada parala manipulacin de archivos y una multitud de otros para el manejo de ficheros, adems

    de estructuras de datos tradicionales [8].

    http://es.wikipedia.org/wiki/Soporte_t%C3%A9cnicohttp://es.wikipedia.org/wiki/Kubuntuhttp://es.wikipedia.org/wiki/Xubuntuhttp://es.wikipedia.org/wiki/Ubuntu_MATEhttp://es.wikipedia.org/wiki/Ubuntu_MATEhttp://es.wikipedia.org/wiki/Edubuntuhttp://es.wikipedia.org/wiki/Ubuntu_Studiohttp://es.wikipedia.org/wiki/Mythbuntuhttp://es.wikipedia.org/wiki/Ubuntu_GNOMEhttp://es.wikipedia.org/wiki/Lubuntuhttp://es.wikipedia.org/wiki/Lubuntuhttp://es.wikipedia.org/wiki/Ubuntu_GNOMEhttp://es.wikipedia.org/wiki/Mythbuntuhttp://es.wikipedia.org/wiki/Ubuntu_Studiohttp://es.wikipedia.org/wiki/Edubuntuhttp://es.wikipedia.org/wiki/Ubuntu_MATEhttp://es.wikipedia.org/wiki/Ubuntu_MATEhttp://es.wikipedia.org/wiki/Xubuntuhttp://es.wikipedia.org/wiki/Kubuntuhttp://es.wikipedia.org/wiki/Soporte_t%C3%A9cnico
  • 7/25/2019 Art Culo Accident Es

    4/25

    2.3 Opencv:

    Fig 3. OpenCV. ltima versin 3.0

    OpenCV es unabiblioteca libre de visin artificial originalmente desarrollada porIntel.

    Desde que apareci su primera versin alfa en el mes de enero de 1999, se ha utilizado

    en infinidad de aplicaciones. Desde sistemas de seguridad con deteccin de

    movimiento, hasta aplicativos de control de procesos donde se requiere reconocimiento

    de objetos. Esto se debe a que su publicacin se da bajo licenciaBSD,que permite que

    sea usada libremente para propsitos comerciales y de investigacin con las

    condiciones en ella expresadas [9].

    OpenCV es liberado bajo una licencia BSD y por lo tanto es gratis, tanto para uso

    acadmico y comercial. Cuenta con interfaces de C ++, C, Python y Java y es

    compatible con Windows, Linux, Mac OS, iOS y Android. OpenCV fue diseado para

    la eficiencia computacional y con un fuerte enfoque en aplicaciones de tiempo real.

    Escrito en optimizado C / C ++, la biblioteca puede tomar ventaja de procesamientomulti -core. Habilitado con OpenCL, se puede aprovechar la aceleracin de hardware

    de la plataforma de computacin heterognea subyacente. Adoptado en todo el mundo,

    OpenCV tiene ms de 47 mil personas de la comunidad de usuarios y el nmero

    estimado de descargas superiores a 9 millones. Rangos de uso del arte interactivo, a la

    inspeccin de minas, mapas de costura en la web o a travs de la robtica avanzada

    [10].

    3 Metodologa de desarrollo.

    Para el desarrollo del proyecto se utiliz el modelo de ciclo de vida clsico, tambin

    denominado "modelo en cascada", se basa en intentar hacer las cosas bien desde el

    principio, de una vez y para siempre. Se pasa, en orden, de una etapa a la siguiente slo

    tras finalizar con xito las tareas de verificacin y validacin propias de la etapa. Si

    resulta necesario, nicamente se da marcha atrs hasta la fase inmediatamente anterior.

    Este modelo tradicional de ciclo de vida exige una aproximacin secuencial al proceso

    de desarrollo del software. Por desgracia, esta aproximacin presenta una serie degraves inconvenientes, entre los que cabe destacar:

    - Los proyectos reales raramente siguen el flujo secuencial de actividades que

    propone este modelo.

    http://es.wikipedia.org/wiki/Biblioteca_%28programaci%C3%B3n%29http://es.wikipedia.org/wiki/Intel_Corporationhttp://es.wikipedia.org/wiki/BSDhttp://es.wikipedia.org/wiki/BSDhttp://es.wikipedia.org/wiki/Intel_Corporationhttp://es.wikipedia.org/wiki/Biblioteca_%28programaci%C3%B3n%29
  • 7/25/2019 Art Culo Accident Es

    5/25

    -

    Normalmente, es difcil para el cliente establecer explcitamente todos los

    requisitos al comienzo del proyecto (entre otras cosas, porque hasta que no

    vea evolucionar el proyecto no tendr una idea clara de qu es lo que realmente

    quiere).

    - No habr disponible una versin operativa del sistema hasta llegar a las etapas

    [11].

    4 Resultados.

    4.1 Anlisis de Requerimientos

    En esta fase se realiz un anlisis acerca de la perspectiva en la cual van a funcionar los

    algoritmos, en nuestro caso desde la perspectiva de un semforo.Para que la recoleccin de informacin se utiliz ciertas tcnicas de recoleccin de

    datos, como son:

    La observacin directa: que nos permiti conocer la forma en que transitan los

    vehculos y el rea que deba ser limitada para el anlisis vehicular.

    La entrevista: por parte del tutor de tesis que nos permiti conocer ms a fondo la

    magnitud y el alcance del proyecto de semforos inteligentes.

    4.1.1

    Requerimientos Funcionales

    El Sistema permitir:

    TABLA 1. Requerimientos funcionales del sistema.

    REF. Descripcin Categora Tcnicas de

    recoleccin

    REF001 Captar imgenes y videos a travs de una

    cmara.

    Evidente Observacin

    REF002 Captar videos previamente grabados. Evidente Observacin

    REF003 Detectar vehculos a travs de un

    clasificador.

    Evidente Observacin

    REF004 Detectar personas a travs de un

    clasificador.

    Evidente Observacin

    REF005 Delimitar el rea en la cual se va a realizar

    la deteccin.

    Evidente Observacin

    REF006 Utilizar un temporizador para controlar los

    eventos que se den.

    Evidente Observacin

  • 7/25/2019 Art Culo Accident Es

    6/25

    REF007 Almacenar los eventos generados en una

    base de datos.

    Oculto Observacin

    REF008 Generar un reporte de los posibles

    congestionamientos generados.

    Evidente Entrevista

    REF009 Generar un reporte de los posibles

    accidentes generados.

    Evidente Entrevista

    4.1.2 Requerimientos no Funcionales

    De la misma forma que los requerimientos funcionales, tambin existen losrequerimientos no funcionales, en donde se dice que el sistema deber:

    TABLA 2. Requerimientos no funcionales del sistema.

    REF. Descripcin Categora Tcnicas de

    recoleccin

    REF001 Poseer una interfaz que sea

    amigable para el usuario.

    Evidente Entrevista

    REF002 Facilitar su uso para poder

    realizar las pruebas apropiadas.

    Evidente Entrevista

    4.2 Diseo

    4.2.1 Algoritmo para la deteccin de vehculos y posible congestionamiento

    A continuacin se muestra el algoritmo que permite realizar la deteccin de losvehculos en tiempo real. El algoritmo est estructurado en un diagrama de flujo. Loque hace el algoritmo al principio es una evaluacin sobre si existe o no el objeto adetectar, en este caso sera el vehculo. Seguidamente se analiza si existe undeterminado nmero de vehculos, en caso de ser afirmativo se inicia un contador porun determinado tiempo, si ambas condiciones se dan se presenta una alerta de posiblecongestionamiento. Todo esto se consigue con la ayuda de un clasificador, el cual se

    obtiene luego del entrenamiento que realiza este con varios modelos y formas devehculos tomadas con una cmara digital desde la perspectiva de un semforo. En lasiguiente figura se muestra el esquema del algoritmo que permite realizar la deteccinde los vehculos y posible congestionamiento:

  • 7/25/2019 Art Culo Accident Es

    7/25

    Inicio

    Empieza contador

    Detectar Vehculo

    Existe Vehculo

    Congestionamiento

    Fin

    Ingresar puntos

    Existen n

    vehculos

    Se cumpli

    tiempo

    Diagrama 1. Diagrama de flujo del algoritmo para la deteccin de congestionamientos.

  • 7/25/2019 Art Culo Accident Es

    8/25

    4.2.2 Algoritmo para la deteccin de vehculos y posible accidente

    Este algoritmo funciona igual que el anterior. Lo que hace el algoritmo al principio esuna evaluacin sobre si existe o no un vehculo. Seguidamente se analiza si existe unoo ms vehculos estticos, en caso de ser afirmativo se inicia un contador por undeterminado tiempo, si ambas condiciones se dan se presenta una alerta de posibleaccidente. En la siguiente figura se muestra el esquema del algoritmo que permiterealizar la deteccin de los vehculos y posible accidente:

    Diagrama 2. Diagrama de flujo del algoritmo para la deteccin de accidentes.

    Inicio

    Detectar Vehculo

    Existe n vehculosen la misma

    posicin

    Detecta personas

    Se cumpli

    tiempo

    Accidente

    Fin

    Seleccin de

    video o cmara

    Seleccin de regin

    de inters

    Parmetros de

    mscara de

    perspectiva y ROI

    No

    S

    SN

    Existen Detecta personas

    No

    S

  • 7/25/2019 Art Culo Accident Es

    9/25

    4.3 Diseo

    4.3.1 Construccin del clasificador en cascada

    Como se mencion anteriormente para el desarrollo del algoritmo correspondiente a la

    deteccin de vehculos desde la perspectiva de un semforo fue necesario construir unclasificador en cascada. Para realizar la deteccin de vehculos se construy el

    clasificador en la plataforma Windows 8.1, debido a que se emplearon gran cantidad

    de imgenes (muestras).

    4.3.2 Clasificador en cascada para la deteccin de vehculos

    Se realiz la recoleccin de 3000 imgenes que contengan el objeto a reconocer en

    nuestro caso vehculos, las cuales las denominamos con el nombre de positivasy 6000

    imgenes denominadas negativas, en las cuales no debe estar presente el objeto a

    reconocer o los que se utilizaron en las imgenes positivas, en nuestro caso vehculos.Adems las imgenes positivas y las negativas deben estar numeradas desde el 1 hasta

    el nmero de imgenes utilizadas (positivas de 1 a 3000 y negativas 1 a 6000). Y por

    ltimo todas las imgenes en formato de mapa de bits (bmp).

    Para la construccin del clasificador en el Sistema Operativo Windows se utiliza una

    herramienta denominada tools,la cual posee archivos .bat y .exe que facilitan la

    construccin del clasificador.

    Fig. 4. Herramienta tools descomprimida.

    Una vez recolectado las imgenes las ubicamos de manera correspondiente en lossiguientes directorios tools\temp\negative para las negativas y

  • 7/25/2019 Art Culo Accident Es

    10/25

    tools\temp\positive\rawdatapara las positivas.

    Fig. 5. Directorio de las imgenes negativas.

    Fig. 6. Directorio de las imgenes positivas.

    En el directorio donde se ubicaron las imgenes negativas, se encuentra el archivocreate_list.bat, lo ejecutamos y generar un archivo create_list.txt

  • 7/25/2019 Art Culo Accident Es

    11/25

    Fig. 7. Archivo .bat y .txt generado.

    El archivo infolile.txt contiene el nombre de las 5000 imgenes negativas con surespectiva extensin.

    Fig. 8. Contenido del archivo infofile.txt

    En el directorio de las imgenes positivas se encuentra el archivo objectmarker.exe,lo ejecutamos y presentar las siguientes interfaces. La interfaz de la parte superiorindica la imagen que contiene el objeto a reconocer. En la interfaz de la parte inferiorindica la informacin adicional de la imagen que se generar al sealar el objeto, el cualse encierra en un rectngulo de color fucsia (Seleccionar con el mouse, con la barraespaciadora para generar los datos y presionar enter para pasar a la siguiente imagen).Se debe realizar todo este proceso para todas las imgenes positivas, es decir sealar elobjeto en todas las imgenes.

    Fig. 9. Objeto seleccionado e informacin generada.

  • 7/25/2019 Art Culo Accident Es

    12/25

    La informacin adicional generada representa las coordenadas de la ubicacin delobjeto y las dimensiones de la parte seleccionada. Por ejemplo en la imagen 1.bmp alseleccionar el objeto, genera las coordenadas x=4 y=4 y las dimensiones 253x169.Se debe realizar este proceso con todas las imgenes positivas, en este caso las 3000imgenes. Cuando se finalice con todas las imgenes en el archivo info.txt se genera lainformacin adicional especificada anteriormente.

    Fig. 10. Informacin adicional generada

    Ahora procedemos a generar el archivo .vecque contendr las muestras de cada una delas imgenes. En Windows debemos ejecutar lo siguiente:createsamples.exe -info positive/info.txt -vec data/vector.vec -num 3000 -w 24 -h

    24Donde: createsamples: es el nombre de la herramienta

    info:es la ubicacin del archivo con el ndice las imgenes positivas vec: es el nombre del archivo de salida con la muestra generada

    num:cantidad de imgenes positivas

    w:ancho de la muestra de salida

    h:alto de la muestra de salida.

    Para ello abrimos la consola de Windows cmdy le damos la ruta de la carpeta tempubicada en toolsen este caso est en el escritorio:

    Fig. 11. Creacin del archivo .vec.

  • 7/25/2019 Art Culo Accident Es

    13/25

    En el directorio \temp\datala carpeta toolsse genera el archivo vector.vec

    Fig. 12. Archivo vector.veccreado.

    Finalmente procedemos a realizar el entrenamiento. Para este proceso nos valdremosde otra herramienta llamada haartraining.exeubicado en el directorio tools\tempy elarchivo ndice generado con las imgenes negativas y el archivo de muestras generadoen la etapa anterior. Ejecutamos lo siguiente:haartraining.exe -data data/cascade -vec data/vector.vec -bg negative/infofile.txt -

    npos 3000 -nneg 6000 -nstages 20 -mem 1024 -mode ALL -w 24 -h 24 -nonsym

    Fig. 13. Inicio del entrenamiento generando la primera tabla.Donde:

    data data/cascade:nombre y direccin que le damos al clasificador

    vec data/vector.vec:nombre y direccin del archivo .vec creado anteriormente

    bg negative/infofile.txt: lista de imgenes negativas

    npos 3000: nmero de imgenes positivas

    nneg 6000: nmero de imgenes negativas

    nstages 20:nmero de fases o estados (A ms fases, mejor clasificador).

  • 7/25/2019 Art Culo Accident Es

    14/25

    mem 1004: espacio en memoria asignado para el entrenamiento

    mode ALL:mtodo recomendado para el entrenamiento

    w 24 -h 24: tamao exacto utilizado en la creacin de las muestras

    nonsym: Simetra, si el objeto a buscar es simtrico verticalmente ser un

    entrenamiento ms rpido.

    Figura 14. Finalizando el entrenamiento generando la tabla 19.

    Al finalizar el proceso de entrenamiento, en el directorio cascade2xml\data de lacarpeta tools, se generan 20 carpetas numeradas desde 0 a 19, cada una contiene unafase o estado del proceso de entrenamiento representado en archivos .txt.

    Fig. 15. Carpetas que contienen los estados generados.

  • 7/25/2019 Art Culo Accident Es

    15/25

    Ahora generamos el archivo con extensin .xml, el cual ser nuestro clasificador finalpara ello utilizaremos la herramienta convert.batdel directorio tools\cascade2xml, loejecutamos y se crea un archivo con el nombre output.xmlque es el clasificador finalque se utilizar para el reconocimiento de los vehculos.

    Fig. 16. Conversin a xml del archivo final (clasificador)

    El proceso de entrenamiento dura varios das dependiendo del nmero de imgenesutilizadas, mientras ms imgenes se utilicen mejor ser el reconocimiento y ladeteccin de los objetos. Este proceso dur alrededor de 3 das en un computador corei7 con memoria RAM 8 GB.El entrenamiento, y por consiguiente el clasificador est estructurado en forma de rbol,

    para construir un clasificador robusto debera tener por lo menos dos nodos por fase(nsplits), pero a consecuencia de dicha estructura el tiempo de computacin crecerexponencialmente segn avancen las fases. Parmetros muy altos harn bloquearse alPC, nunca debemos usar toda la memoria del ordenador. La cantidad de variables queexisten independientes de estos parmetros (tamao de las imgenes, procesador,tamao del patrn, numero de imgenes positivas y negativas...) en este proceso haceimposible hacerse una idea de lo que va a tardar, por eso es bueno empezar con valoresmodestos e ir incrementndolos, teniendo en cuenta que una buena estimacin para queel clasificador sea robusto es ms o menos una semana de entrenamiento, siendo menosimportante cuales fueron los parmetros que se mejoraron. Podemos empezar porejemplo con 2 splits, 0.998 de minhitrate, y 14 stages (muy orientativo).

    No est preparado para procesadores de ms de un ncleo, este problema hace que elentrenamiento vaya ms rpido en una porttil, es ms, mientras se ejecuta se puedecomprobar en el administrador de tareas est usando exactamente un 25%.

  • 7/25/2019 Art Culo Accident Es

    16/25

    4.3.3 Implementacin de los algoritmos

    En la implementacin de los algoritmos y la codificacin del Sistema se utiliz el

    sistema Operativo Ubuntu 14.04, el Lenguaje de programacin C++, el IDE QT Creator

    y SQLite para la Base de Datos.

    4.3.4 Codificacin del algoritmo para la deteccin de vehculos, posible

    congestionamiento y posible accidente.

    Los algoritmos fueron programados en el lenguaje de programacin C++, con la ayudadel framework Qt y la librera OpenCV.

    4.4 Pruebas

    Luego de haber construido e implementado el clasificador en los algoritmoscorrespondientes, pasamos a comprobar la precisin de los mismos.

    4.4.1 Deteccin de vehculos

    Para la construccin del clasificador en cascada para la deteccin de vehculos seemplearon 3000 imgenes positivas y 6000 imgenes negativas, obteniendo resultadosmuy efectivos, se obtuvieron los siguientes resultados:

    Balance de deteccin con imgenes

    TABLA 3. Balance de deteccin con imgenes vehculos.

    Condicin del da %Aciertos %F.P. %F.N.

    Lluvia 87,6 5,6 6,8

    Llovizna con sol 95,4 2,3 2,3

    Sol 96,2 1,9 1,9

    Sombra 90,7 6,8 2,5

    Promedio 92,5 4,1 3,4

  • 7/25/2019 Art Culo Accident Es

    17/25

    TABLA 5. Balance de deteccin con imgenes personas.

    Condicin del da %Aciertos %F.P. %F.N.

    Sombreado 90 4 6

    Normal 95 5 0

    Variable 94 4 2

    Promedio 93 4,3 2,7

    TABLA 6. Balance de deteccin con imgenes personas y vehculos.

    Condicin del da %Aciertos %F.P. %F.N.

    Sombreado 100 0 0

    Sombreado 100 0 0

    Promedio 100 0 0

    Como se puede observar el porcentaje de deteccin es por sobre el 90%.En la siguiente figura se muestra la deteccin de vehculos usando el clasificador, que

    consisti en usar 3000 imgenes positivas y 6000 negativas.

    Fig. 17.Deteccin de vehculos utilizando el clasificador.

  • 7/25/2019 Art Culo Accident Es

    18/25

    Balance de deteccin con video

    TABLA 7. Balance de deteccin con videos, vehculos.

    Lugar %Aciertos %F.P. %F.N.

    Terminal Terrestre 94 2 4

    Terminal Terrestre 97,4 1,3 1,3

    Calle Mercadillo 97,4 1,3 1,3

    Promedio 96,3 1,5 2,2

    TABLA 8. Balance de deteccin con videos, personas.

    Lugar %Aciertos %F.P. %F.N.

    Calle Mercadillo 93,3 6,7 10

    Alameda Real 100 0 10

    Promedio 96,65 3,35 10

    TABLA 9. Balance de deteccin con videos personas y vehculos.

    Lugar %Aciertos %F.P. %F.N.

    Calle Mercadillo 100 0 20

    Alameda Real 100 0 20

    Promedio 100 0 20

    En la mayora de los balances o promedios de deteccin es sobre el 90%.

  • 7/25/2019 Art Culo Accident Es

    19/25

    4.4.2 Registro del evento de posible congestionamiento

    Para realizar las pruebas se tomaron como referencia el nmero de vehculos y el tiempo

    a considerar para que se produzca el evento. Se hicieron las pruebas en 2 videos, se

    tom en cuenta que si existen 10 o ms vehculos, se considere como un posible

    congestionamiento. El tiempo que se tom para el temporizador fue de 60 segundos.

    Cabe destacar que estos parmetros fueron tomados en base a las entrevistas realizadas.

    Los resultados fueron los siguientes:

    TABLA 10. Balance de deteccin con videos personas y vehculos.

    Condicin del da: Soleado

    Lugar: Paso peatonal Terminal Terrestre

    Hora: 01:00 P.M.

    Nmero %

    Veces que existieron

    ms de 10 vehculos

    2 100

    Posible

    congestionamiento

    detectado

    2 100

    Falsos positivos 0 0

    Falsos negativos 0 0

  • 7/25/2019 Art Culo Accident Es

    20/25

    Diagrama 3. Prueba congestionamiento

    Fig. 18. Deteccin de posible congestionamiento.

    Congestionamientos

    Detectados Falsos positivos Falsos negativos

  • 7/25/2019 Art Culo Accident Es

    21/25

    Fig. 19. Registro del posible congestionamiento.

    4.4.2 Registro del evento de posible accidente

    Para realizar esta prueba se utiliz 2 videos en los cuales se detecta si dos o ms

    vehculos no se han desplazado de su posicin actual y si se detecta presencia de

    personas sea 1 o ms. El tiempo que se tom para el temporizador fue de 30 segundos.

    Lo que hace el algoritmo es verificar si uno o ms vehculos permanecen estticos en

    las mismas coordenadas, tal como se puede observar en la figura anterior, si el vehculo

    que posee la coordenada (420, 415) y el vehculo que posee la coordenada (432,390),

    no se mueven de la misma coordenada por un lapso de 60 segundos y adems se detecta

    la presencia de personas en el rea delimitada, entonces se enva a guardar en la base

    de datos una alerta de un posible accidente.

    Los resultados fueron los siguientes:

  • 7/25/2019 Art Culo Accident Es

    22/25

    TABLA 11. Balance de deteccin con videos personas y vehculos.

    Condicin del da: Sombreado

    Lugar: Estacionamiento Alameda Real

    Hora: 05:30 P.M.

    Nmero %

    Accidente presente 2 100

    Posible accidente

    detectado

    2 100

    Falsos positivos 0 0

    Falsos negativos 0 0

    Diagrama 4. Prueba accidente

    Accidentes

    Detectados Falsos positivos Falsos negativos

  • 7/25/2019 Art Culo Accident Es

    23/25

    Fig. 20.Deteccin de posible accidente.

    Fig. 21.Registro de posible accidente

  • 7/25/2019 Art Culo Accident Es

    24/25

    5 Conclusiones.

    - Los clasificadores son muy tiles para realizar una deteccin de objetos a

    travs de la visin artificial.

    - Para que los tiempos de respuesta de los algoritmos sean ptimos se requiere

    de una mquina con buenas prestaciones, mnimo que el procesador sea Intel

    core i5 con 4GB de memoria RAM.

    - Al delimitar el rea de inters se eliminan espacios innecesarios a ser

    analizados por los algoritmos, de esta manera se reduce el consumo de la

    memoria operativa, lo cual conlleva a una buena optimizacin de los recursos

    del sistema.

    - El tiempo de respuesta de los algoritmos son muy elevados al permitir analizar

    cada frame de un video en tiempo real, lo cual permite enviar alertas de

    posibles sucesos de manera inmediata.

    - Los algoritmos anteriormente descritos son un punto de partida para poder

    implementar un sistema de control total de los semforos dentro de la ciudad,con lo cual se dotara de inteligencia artificial a los mismos, ayudando al

    mejoramiento y ordenamiento del trnsito vehicular dentro de la ciudad.

    - Se requiere tomar las suficientes muestras o imgenes positivas, para poder

    desarrollar un correcto entrenamiento de los clasificadores, a mayor nmero

    de imgenes positivas, mayor precisin en la deteccin de los objetos a

    reconocer.

    - La visin artificial es un campo que an no se ha explotado en nuestro medio,

    por lo cual es una gran oportunidad de llevar a cabo proyectos para solventar

    las necesidades tecnolgicas de la ciudad, el presente trabajo es un punto de

    partida para futuros trabajos de visin artificial en materia de trnsito y

    mejoramiento del mismo.

  • 7/25/2019 Art Culo Accident Es

    25/25

    6 Referencias.

    [1] etitudela, etitudela, [En lnea]. Available:www.etitudela.com/celula/downloads/visionartificial.pdf. [ltimo acceso: 24 042014].

    [2] arteuna, arteuna, [En lnea]. Available:http://www.arteuna.com/talleres/lab/ediciones/libreria/Virilio-Maquinadelavision.pdf. [ltimo acceso: 24 04 2014].

    [3] J. B. C. M., Diario Centinela, [En lnea]. Available:http://www.diariocentinela.com.ec/transito-vehicular. [ltimo acceso: 24 04

    2014].[4] I. L. Espejo, ilopez, [En lnea]. Available:http://www.ilopez.es/proyectos/fisicayelectronica/SemPLC.pdf. [ltimo acceso:23 04 2014].

    [5] E. Comercio, elcomercio, [En lnea]. Available:http://www.elcomercio.ec/pais/Congestion-vehicular-ciudades-Ecuador_0_292770763.html. [ltimo acceso: 24 04 2014].

    [6] UBUNTUMX, ubuntumx, [En lnea]. Available:http://www.ubuntumx.org/queesubuntu.php. [ltimo acceso: 18 04 2015].

    [7] WIKIPEDIA, wikipedia, [En lnea]. Available:http://es.wikipedia.org/wiki/Ubuntu. [ltimo acceso: 18 04 2015].

    [8] WIKIPEDIA, wikipedia, [En lnea]. Available:

    http://es.wikipedia.org/wiki/Qt_(biblioteca). [ltimo acceso: 18 04 2015]. [9] WIKIPEDIA, wikipedia, [En lnea]. Available:

    http://es.wikipedia.org/wiki/OpenCV. [ltimo acceso: 18 04 2015].

    [10] OPENCV, opencv, [En lnea]. Available: http://opencv.org. [ltimo acceso:18 04 2015].

    [11] ELVEX, elvex, [En lnea]. Available:http://elvex.ugr.es/idbis/db/docs/lifecycle.pdf. [ltimo acceso: 18 04 2015].

    [12] R. d. UTPL, dspace.utpl, [En lnea]. Available:http://dspace.utpl.edu.ec/bitstream/123456789/4021/1/JUAN. [ltimo acceso:24 04 2014].