V B del Coordinador de Proyectos Eduardo Alcalde Lancharro
Fdo: Fecha: 26/06/2009
PROYECTO FIN DE CARRERA
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
AUTOR: MIGUEL BARQUERO DEL POZO MADRID, JUNIO DE 2009 UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI) INGENIERO TCNICO EN INFORMTICA DE GESTIN
i
Es el triunfo el que crea al gran hombre.
El triunfo no es vencer siempre, sino nunca desanimarse.
NAPOLEN BONAPARTE
ii
A mi Familia y la Universidad Pontificia Comillas de Madrid, las instituciones que me han enseado que los valores que mejor guan la vida de los hombres son aquellos que perduran en el tiempo.
iii Agradecimientos
Gracias a mi familia, esas personas tan queridas para m que me han apoyado durante los momentos tan duros que se han sucedido estos ltimos aos, pero que tambin han sabido compartir la dulzura de los momentos de triunfo que he vivido y para los que me he preparado.
A mis amigos, con los que he crecido y desarrollado mi personalidad durante toda mi vida. Gracias por esos momentos de risas tan refrescantes que me han permitido oxigenar mis ideas y tomar las mejores decisiones.
Por ltimo, gracias a la Universidad Pontificia Comillas, una institucin que me ha enseado que las relaciones entre las personas deben ser a la vez profesionales y emocionales, y que buscar en cada momento una proporcin equilibrada de esta dualidad es un aspecto esencial en el desarrollo de la personalidad de todos los seres humanos.
iv Resumen El presente proyecto estudia las caractersticas de los sistemas de vigilancia basados en la inteligencia artificial. A lo largo de la memoria del proyecto se recorren las distintas fases que componen la vigilancia con inteligencia artificial y se analizan los algoritmos que se emplean en ella. El objetivo de este proyecto es ampliar las funcionalidades de los sistemas de vigilancia actuales; se pretende cambiar los sistemas mecnicos y predecibles por un nuevo tipo de sistema ms orgnico y con un rango de funciones ms completo, adems de dar cabida a la inteligencia artificial dentro del mercado real y, en ltima instancia, permitir que el conjunto de la sociedad se beneficie de la inteligencia artificial, no solamente los sectores ms especializados. Se han analizado los distintos filtros de imagen que se pueden aplicar a las imgenes de las cmaras de vigilancia, incluidos los filtros de puntos y espaciales y se han desarrollado los algoritmos que permiten integrar estos filtros de imagen dentro de la aplicacin. Se han analizado los algoritmos que se utilizan como herramientas de anlisis de video y se han desarrollado otros algoritmos que permiten delimitar los bordes de las siluetas de los elementos que se encuentran en el objetivo de la cmara. Adems de analizar las herramientas disponibles para el anlisis de las imgenes de los vdeos de vigilancia, se ha diseado e implementado una secuencia de anlisis que permite localizar y estudiar el movimiento de los elementos que se encuentren bajo el objetivo de las cmaras de vigilancia. Como parte prctica del trabajo se exponen los resultados obtenidos despus del anlisis ejecutado por el prototipo de la aplicacin diseado y desarrollado; adems, se analizan estos resultados con el fin de evaluar los objetivos alcanzados y comprobar el alcance de la aplicacin en un futuro.
v Por ltimo, se exponen los problemas encontrados durante el desarrollo de la aplicacin as como aquellos problemas que impiden la evolucin de la consola de anlisis; sin embargo, junto con estos problemas se proponen soluciones que puedan paliar estos problemas o incluso mtodos que puedan llegar a solucionarlos pero que no han sido implantados en la consola final. Como anexo a esta memoria se presentan estudios corolarios del tema principal de la video vigilancia, como el reconocimiento de caras mediante algoritmos de reconocimiento facial o la implementacin del sistema desarrollado en entornos con cmaras de vigilancia dinmicas.
vi
Video vigilance system prototype The present final-year project studies the characteristics of the video vigilance systems based on artificial intelligence, which includes studying the main stages of the video vigilance or analyzing the most important algorithms which are used during the automatic analysis also. The different image filters used during the automatic analysis have been studied along this document; these filters include functions point to point and the special transformations. The algorithms which allow outlining the figure of the elements inside the pictures are also analyzed along this final-year project. Moreover, some algorithms have been designed and proposed in order to solve this problem. Besides analyzing the mathematical tools which can be used to analyze an image, in this document is proposed a sequence designed in order to locate, identify and make decisions from the artificial intelligence point of view. The results of the application are included as a practical part of this final-year project; these results have been recorded after the analysis of the test videos by the application developed. Furthermore these results are analyzed in order to check the functionality of the application and evaluate the goals reached by the application. Finally, problems reached during the evolution of the application are exposed and also the problems which have stopped the development of this artificial intelligence system. However, the explanation of these problems is followed by a theoretical solution; in some cases this solution may decrease the problem, in other case the solution may solve the problem completely but it has not been implemented in the application yet. The annex of this final-year project is composed by the investigation of corollary aspects of the main theme of this document. Aspects like human face recognition with mathematical algorithms or the implementation of this application in settings with dynamic video cameras are some examples of themes studied in the annex.
vii TABLA DE CONTENIDOS
Captulo 1: Introduccin 1 Motivacin del proyecto 7 Objetivos 10
Captulo 2: Estado del arte 12 Estudio de la tecnologa y tcnicas existentes 13 Tecnologa actual 13 Tcnicas actuales 15 Tecnologas y recursos utilizados 17 Los Bitmaps y el lenguaje de programacin C# 20 La programacin orientada a objetos 23
Captulo 3: Metodologa Empleada 25 Caractersticas de la Metodologa Extrema 27 Las fases de desarrollo 29 Manipulacin de video mediante aplicaciones software 30 Anlisis de imgenes digitales 34 Anlisis de las secuencias de video 36
viii Captulo 4: Desarrollo del prototipo 39 Introduccin 40 Configuracin del sistema 46 Soporte de las imgenes 49 Acceso a memoria 55 Tratamiento de las imgenes 57 La escala de grises 60 La funcin de contraste 65 Posterizacin 66 La funcin umbral 68 Pixelado 71 Anlisis de las imgenes 77 Filtrado con la imagen de referencia 77 Filtrado con la imagen inmediatamente anterior 80 Mejora de los filtros mediante el pixelado 82 Identificacin de categoras 86 Establecimiento de los criterios comunes de clase 86 Identificacin de los criterios de clase 88 Estudio del movimiento 89 Seguimiento del centro del objeto 91 El mtodo de correlacin de centros 93
ix Captulo 5: Resultados 96 Mtodo de captacin de las imgenes 98 Filtros de imagen 99 Escala de grises 99 La funcin de contraste y el ecualizado 100 La funcin umbral 102 Posterizacin y pixelado 103 Anlisis de las imgenes 105 Filtrado con la imagen de referencia 105 Filtrado con la imagen inmediatamente anterior 106 Identificacin de categoras 108 La posterizacin y la segmentacin por zonas 108 Identificacin de formas geomtricas sencillas 110 Estudio del movimiento 113 Seguimiento del centro del objeto 113 El mtodo de correlacin de centros 115 Captulo 6: Anexos 117 Planificacin 118 La fase de documentacin 119 El desarrollo de la aplicacin 120 La elaboracin de la memoria 120
x Estimacin del coste econmico del proyecto 122 Coste de los recursos humanos 122 Costes Software 123 Costes Hardware 124 Conclusiones 126 Apndices 128 Sistemas con cmaras de vigilancia dinmicas 128 El reconocimiento facial 134
Bibliografa 140 Libros 140 Proyectos de fin de carrera y tesis doctorales 141 Ensayos 142 Otras referencias 145
xi NDICE DE IMGENES, ECUACIONES Y TABLAS Imgenes Captulo 1: Introduccin 1 Figura 1.1: Componentes de la visin artificial 4
Captulo 2: Estado del arte 12 Figura 2.1: Secuencia de captura de las imgenes 18 Figura 2.2: Recorrido de la informacin 19 Figura 2.3: Anlisis de un Bitmap 21 Figura 2.4: Filosofa de la programacin orientada a objetos 23
Captulo 3: Metodologa Empleada 25 Figura 3.1: Comparativa de las dos metodologas de desarrollo de aplicaciones 27 Figura 3.2: Descomposicin del problema principal 29 Figura 3.3: Diagrama de Gantt de la planificacin 30 Figura 3.4: Objetivos de la primera fase del desarrollo 30 Figura 3.5: Vista del interfaz de la consola durante la primera fase de desarrollo 31 Figura 3.6: Comunicacin con el interfaz del programa 31 Figura 3.7: Navegacin dentro del equipo para la seleccin del video 32 Figura 3.8: Detalle del flujo de datos en la fase de carga 32 Figura 3.9: Salida por pantalla del primer frame del video seleccionado 33 Figura 3.10: Objetivos de la segunda fase 34 Figura 3.11: Salida inicial de la aplicacin en la segunda fase 34 Figura 3.12: Detalle del flujo de datos de la segunda fase 35 Figura 3.13: Resultados de la segunda fase 35 Figura 3.14: Objetivos de la tercera fase de desarrollo 36 Figura 3.15: Detalle del flujo de datos del programa 37 Figura 3.16: Flujo de datos de la aplicacin final 38
xii Captulo 4: Desarrollo del prototipo 39 Figura 4.1: Comparativa de imgenes 40 Figura 4.2: Flujo de informacin 41 Figura 4.3: Uso de la memoria segn el formato 50 Figura 4.4: Almacenamiento de una imagen 55 Figura 4.5: Histograma de un retrato 58 Figura 4.6: Histograma de un plano general 58 Figura 4.7: Filtro de la escala de grises 61 Figura 4.8: Diagrama de flujo del algoritmo de escala de grises 63 Figura 4.9: Aplicacin del filtro de escala de grises 64 Figura 4.10: Anlisis para el filtro de contraste 65 Figura 4.11: Anlisis de la posterizacin 66 Figura 4.12: Flujo de datos del proceso de posterizacin 67 Figura 4.13: Anlisis del filtro de la funcin umbral 69 Figura 4.14: Binarizacin de la imagen original 69 Figura 4.15: Flujo de datos del proceso de binarizacin 70 Figura 4.16: Aplicacin del filtro de pixelado 72 Figura 4.17: Esquema conceptual del filtro de pixelado 73 Figura 4.18.1: Flujo de datos en la fase de acumulacin del proceso de pixelado 74 Figura 4.18.2: Flujo de datos en la fase de carga del proceso de pixelado 75 Figura 4.19: Aplicacin del filtrado pxel por pxel 78 Figura 4.20: Comparacin de dos fotogramas consecutivos 80 Figura 4.21: Secuencia de anlisis de los fotogramas 81 Figura 4.22: Secuencia de anlisis de un fotograma con pixelado 82 Figura 4.23: Secuencia de almacenamiento de una imagen pixelada 83 Figura 4.24: Secuencia de localizacin de los elementos de las imgenes 84 Figura 4.25: Funcin umbral de una imagen de objetos en movimiento 86 Figura 4.26: Secuencia de clculo del mtodo de seguimiento del centro 91 Figura 4.27: Resultados del mtodo de seguimiento del centro 92 Figura 4.28: Secuencia de clculo del mtodo de correlacin de centros 93 Figura 4.29: Resultados del mtodo de correlacin de centros 94
Captulo 5: Resultados 96 Figura 5.1: Conexin del equipo con la cmara mediante un stream 98 Figura 5.2: Resultados reales de la escala de grises 99 Figura 5.3: Anlisis de los resultados de la funcin de contraste 101 Figura 5.4: Anlisis de los resultados del ecualizado 101 Figura 5.5: Anlisis de los resultados de la funcin umbral 102 Figura 5.6: Resultados de la posterizacin 103
xiii Figura 5.7: Comparacin de la imagen actual con la imagen de referencia 105 Figura 5.8: Comparacin con la imagen inmediatamente anterior 107 Figura 5.9: Resultados del filtro por zonas 109 Figura 5.10: Diseo conceptual del filtro de reconocimiento de objetos 110 Figura 5.11: Ejemplos de otros algoritmos 112 Figura 5.12: Secuencia de estudio del mtodo de correlacin de centros 114 Figura 5.13: Resultados del mtodo de correlacin de centros 115
Captulo 6: Anexos 118 Figura 6.1: Planificacin del proyecto 118 Figura 6.2: Funcionamiento de las cmaras de vigilancia mviles 129 Figura 6.3: Biblioteca de imgenes de referencia de una cmara mvil 130 Figura 6.4: Clculo del vector de movimiento de las cmaras mviles 132 Figura 6.5: Comparacin de caras mediante la biometra 134 Figura 6.6: Comparacin de las facciones faciales con fines de entretenimiento 136 Figura 6.7: Posibles aplicaciones del reconocimiento facial en el marketing 137 Figura 6.8.1: Salida de las pruebas de posterizacin 138 Figura 6.8.2: Pruebas del filtro de zonas 139
Ecuaciones
Captulo 4: Solucin desarrollada 39 Ecuacin 4.1: Aplicacin de un filtro 59 Ecuacin 4.2: Descomposicin del sistema RGB 61 Ecuacin 4.3: Aplicacin del filtro de escala de grises 62 Ecuacin 4.4: Aplicacin del filtro de contraste 65 Ecuacin 4.5: Aplicacin del filtro de posterizacin 67 Ecuacin 4.6: Frmula de la funcin umbral 68 Ecuacin 4.7: Aplicacin del filtro de pixelado 72
Captulo 7: Anexos Ecuacin 6.1: Ecuacin de bsqueda en cmaras mviles 131
xiv Tablas Captulo 6: Anexos 117 Tabla 6.1: Costes asociados a los elementos de recursos humanos 122 Tabla 6.2: Costes software del proyecto 123 Tabla 6.3: Costes hardware del proyecto 124 Tabla 6.4: Costes finales del proyecto 125
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
1
Captulo 1
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
2 Introduccin
Este proyecto de final de carrera investiga cmo mejorar, mediante las tcnicas de programacin, los recursos y tecnologas disponibles, el rendimiento de los sistemas de seguridad privados basados en la video vigilancia del entorno.
La seguridad de las personas fsicas y de sus pertenencias materiales es un tema que preocupa a la sociedad actual; por este motivo, el avance tecnolgico en este campo es un activo de utilidad general que puede ser explotado.
La mejora estudiada en este proyecto de fin de carrera se basa en implementar ciertos aspectos caractersticos de la visin animal en un prototipo de sistema de visin artificial. La visin artificial es una disciplina basada en el proceso y adquisicin automtico de imgenes. Es un campo que actualmente se encuentra en pleno auge y est alcanzando un gran desarrollo tanto en los mtodos usados para el anlisis de las imgenes como en la potencia de los sistemas de procesamiento de datos.
Sus aplicaciones son mltiples, en entornos de muy distinta ndole, como cientfico, civil, militar o industrial. Los sistemas de visin artificial son de gran ayuda en la automatizacin de tareas repetitivas que resultan difciles de realizar para un operario, por lo que se consigue una operacin continua y eficiente con un menor coste. Tambin son de gran utilidad en el mbito cientfico para la investigacin de mecanismos [MERY04], [RODR08] y [CORR09], visin foveal y perifrica [PARD96], presentes en la visin en humanos.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
3 Para el desarrollo de una aplicacin que mejore las prestaciones de los sistemas de vigilancia artificial se ha hecho un estudio comparativo sobre las caractersticas de los dos sistemas de visin que influyen en este proyecto, el sistema de visin orgnico o humano y el sistema de visin artificial. Las principales ventajas de cada sistema son:
Sistema humano:
Reconocimiento de objetos.
Adaptacin a situaciones imprevistas.
Utilizacin de conocimiento previo.
Destaca en las tareas de proceso de alto nivel.
Sistema artificial:
Mide mejor magnitudes fsicas.
Facilidad en la realizacin de tareas rutinarias.
Destaca en tareas de proceso de bajo nivel.
El proyecto desarrollado evala cules son las mejores alternativas para integrar aquellas caractersticas que son mejores en los sistemas de visin orgnicos dentro del sistema de visin artificial; gracias a la inclusin de estas caractersticas se espera mejorar los resultados de los componentes de los sistemas de visin artificial.
Para determinar cules son aquellos elementos de los sistemas de visin artificial susceptibles de ser mejorados se han analizado los componentes de estos sistemas. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
4 Un sistema de visin artificial est compuesto por los siguientes elementos:
La fuente de luz: Es una parte importante en el sistema ya que la capacidad de extraccin de los rasgos de los elementos de una determinada escena por parte del sistema depende de la intensidad de sta.
Cmara: Se encarga de recoger la imagen luminosa sobre un soporte sensible, transformndola en seales elctricas.
Sistema de procesamiento: Es la parte fsica donde se aloja la aplicacin. Sus caractersticas dependen directamente de las funciones planificadas para la aplicacin.
Algoritmos de anlisis: Son los componentes de la parte central del sistema inteligente. Realizan las transformaciones necesarias de las imgenes para extraer la informacin de inters para los usuarios.
Figura 1.1: Componentes de la visin artificial PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
5 El nmero de aplicaciones relacionadas con la Visin Artificial aumenta cada da; debido al alcance de esta disciplina son muchos los campos donde este sector de la ciencia tiene aplicacin.
En el sector de la produccin (tanto industrial como agrcola). Inspeccin de productos (papel, aluminio, acero,...). Control de soldaduras. Identificacin de piezas. Inspeccin de circuitos impresos. Control de calidad. Control de calidad de los alimentos. Agricultura. Control de plantaciones.
En el control de elementos externos e internos de la sociedad. Astronoma. Meteorologa. Control de trfico. Trfico viario. Interpretacin de fotografas areas. Reconocimiento de caracteres. Control de cheques, inspeccin de textos, etctera. Etiquetados (fechas de caducidad, descripcin contenido). Matrculas de coches.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
6 En la ingeniera civil. Aplicaciones biomdicas (Resonancias magnticas, tomografas, genoma humano). Anlisis de imgenes tomadas mediante microscopio (Bacterias, clulas, protenas). Vigilancia por satlites. Exploracin del Espacio. Guiado de robots (vehculos no tripulados). Seguridad y vigilancia.
Por otra parte hay que tener en cuenta los avances tecnolgicos en los dispositivos de vigilancia, la facilidad de produccin y el amplio catlogo de la oferta en este sector, avances que han permitido que la mayora de las comunidades posean su propio sistema de seguridad.
Si se unifican los avances en los dos campos de estudio, la mejora de los sistemas de vigilancia mediante la implementacin de mejores algoritmos de anlisis de imagen es un paso hacia la meta final de la sociedad, que es que todos sus integrantes se beneficien de compartir sus conocimientos y motivaciones.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
7 Motivacin del proyecto
La motivacin que impuls el desarrollo de este proyecto fue sobre todo la posibilidad de finalizar la carrera de tcnico en informtica estudiando un campo innovador como es la inteligencia artificial. Adems, este proyecto de video vigilancia se integra dentro del campo de la visin artificial, un campo que por su naturaleza del estudio de la geometra y la mecnica suscita un gran inters particular.
El alcance de los proyectos en el campo de estudio de la visin artificial se encuentra todava en una fase inicial, lo cual permite realizar un estudio que realmente extienda el alcance del conocimiento sobre este campo. Realizar un proyecto sobre un tema de actualidad siempre es motivo para redoblar los esfuerzos para obtener resultados que muestren un avance en ese campo.
El diseo, desarrollo e implantacin de un sistema de video vigilancia con base en inteligencia artificial puede llegar a ser un hito dentro del mundo de la visin artificial ya que es posible crear un sistema que sea atractivo para los dems miembros de la comunidad, tanto los acadmicos como los profesionales del sector o incluso los responsables de aprobar los presupuestos de los proyectos.
El objetivo de este proyecto es ampliar las funcionalidades de los sistemas de vigilancia actuales; se pretende cambiar los sistemas mecnicos y predecibles por un nuevo tipo de sistema ms orgnico y con un rango de funciones ms completo, adems de dar cabida a la inteligencia artificial dentro del mercado real, y en ltima instancia, permitir que el conjunto de la sociedad se beneficie de la inteligencia artificial, no solamente los sectores ms especializados.
Este proyecto es revolucionario ya que tiene como objetivo unificar todos los conocimientos, tcnicas y tecnologa desarrolladas en el campo de la video vigilancia; esto incluye desarrollar algoritmos que permiten analizar las imgenes tomadas de un entorno y realizar una serie de operaciones que permitan obtener y analizar PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
8 informacin concreta sobre el estado de los objetos de la imagen y cmo interactan entre ellos.
La gran peculiaridad de este sistema es que est diseado para que la mayora de clculos y operaciones las haga la consola, pero en trminos ejecutivos sern los operarios que estn manejando el sistema quienes evaluarn la situacin y tomarn las decisiones sobre las acciones a emprender. El fin de este proyecto es propiciar la creacin de una consola de video vigilancia que se convierta en una herramienta innovadora y prctica dentro del mundo de la seguridad.
Adems, el sector de la seguridad se est beneficiando actualmente de un crecimiento espectacular, as que realizar este proyecto en este momento es una buena oportunidad de negocio.
Este proyecto busca no solamente generar una nueva herramienta que permita realizar las tareas de vigilancia de una forma ms fcil y sencilla, sino que busca ofrecer al mercado una herramienta que d origen a una nueva serie de dispositivos que hagan la vida mucho ms cmoda al conjunto de la sociedad.
Por ltimo, este proyecto est motivado por la necesidad de preservacin de las personas y los bienes de la sociedad. Todos los integrantes de la sociedad que tienen alguna posesin desean conservarla del hurto o de que alguien le cause desperfectos; y el objetivo principal de este proyecto es proporcionar un servicio de calidad que asegure la integridad fsica tanto de los elementos materiales como de las personas.
Por este motivo, este proyecto est enfocado no solamente hacia el uso en el marco profesional de la seguridad privada, sino que tambin se ha tenido en cuenta que es posible que algn particular decida instalarlo en su casa. Por tanto, es posible que el sistema no vaya a estar manejado por un tcnico cualificado, de modo que ser el mismo sistema el que deba ser capaz de llegar a sus propias conclusiones y tomar decisiones en base a sus clculos. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
9
Esto se traduce en la necesidad de un mejor diseo de la inteligencia artificial del prototipo de la consola. Pese a que en el mbito profesional, donde las especificaciones del producto indicarn que es importante una supervisin humana constante para el mejor rendimiento del sistema, sern los tcnicos los que proporcionarn ayuda al sistema para la toma de decisiones. Sin embargo, en el mbito domstico es posible que los usuarios no mantengan este nivel de vigilancia; no obstante, la falta de supervisin humana no debe frenar en modo alguno las tareas de vigilancia del sistema.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
10 Objetivos
Este sistema de seguridad con apoyo de inteligencia artificial tiene como objetivo prioritario proporcionar una seguridad mejorada en cualquier entorno, ya sea en el marco de una empresa privada o bien en un entorno residencial. El objetivo de este proyecto es disear y desarrollar un prototipo de un sistema de vigilancia con inteligencia artificial integrada que en un futuro sea una opcin econmica y tcnicamente rentable; una opcin de seguridad que tenga las mismas prestaciones que los sistema de seguridad de gamas ms altas, pero con los precios que tienen los sistemas ms convencionales.
Otro objetivo de este sistema, que aunque no es el principal s se revela como necesario en su cumplimiento, es proporcionar este servicio de una forma sencilla y de fcil manejo, lo que implica que el diseo debe estar adaptado a cualquier usuario.
Entre otras cosas, esto implica la utilizacin de un interfaz de usuario amigable, fcil de usar y que se adapte a las necesidades y recursos de cada usuario, ya sea un tcnico entrenado en la vigilancia o bien un particular interesado en mantener una vigilancia constante sobre su casa de forma individual.
Para que el interfaz del usuario sea sencillo y de fcil manejo, las funciones de la consola deben estar bien definidas. De este modo los usuarios pueden conectar el modo de accin de la consola que ms les convenga; adems, gracias a esta descripcin de los elementos es ms fcil desarrollar el proyecto siguiendo un cauce concreto. Estas funciones principales sern tres: identificacin del movimiento, anlisis del movimiento e identificacin de los objetos en movimiento.
La consola que se ha desarrollado tiene la capacidad de detectar el movimiento dentro de su campo de accin, esto incluye filtrar aquellos movimientos que sean superfluos (como el balanceo de las hojas de los rboles); la inteligencia artificial de la PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
11 aplicacin final debera ser capaz de detectar los movimientos repetitivos como el parpadeo de los semforos.
Adems de detectar los objetos que se encuentran en movimiento, el prototipo de la aplicacin debe analizarlos y clasificarlos segn su naturaleza. En principio, este objetivo slo abarca la diferenciacin de los objetos entre tres naturalezas posibles, objetos no-humanos, personas y vehculos.
Por ltimo, una vez la consola detecte el objeto en movimiento, la consola debe establecer una estimacin sobre la direccin y velocidad de los objetos detectados.
Desde el punto de vista econmico, el objetivo principal es que el coste de implantacin de este sistema no sea muy elevado, permitiendo as la llegada del producto a todo el abanico de posibles clientes del mercado de la seguridad. Se ha procurado disear un sistema que sea totalmente funcional y que cumpla con las expectativas de cualquier usuario pero que no suponga una inversin excesiva para los usuarios finales; esto implica que la base fsica del sistema est compuesta por productos comunes en el mercado que sean de fcil acceso y econmicamente viables. Adems, este objetivo restringe la complejidad del sistema, ya que este dispositivo debe ser lo suficientemente sencillo como para que los operarios del sistema no necesiten instruccin para dominar su manejo.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
12
Captulo 2
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
13 Estado del arte
Como el estudio realizado en este proyecto se basa en el desarrollo de programas que mejoren los resultados de dispositivos y tcnicas ya desarrolladas e implementadas, a continuacin se presentan estos sistemas de vigilancia ya desarrollados as como los componentes que los hacen ser sistemas de vigilancia eficaces.
Estudio de la tecnologa y las tcnicas existentes
Tecnologa actual
Durante el proceso de documentacin del proyecto, se estudiaron los distintos dispositivos de vigilancia disponibles en el mercado. Este estudio revel que los sistemas de vigilancia disponibles para el sector civil haban sido desarrollados hace tiempo y no presentaban avances significativos en el concepto de sistemas de seguridad; no obstante, s que ha habido un avance significativo en el desarrollo de nuevos dispositivos de vigilancia.
En este aspecto, todos los sistemas de seguridad, independientemente del su nivel de sofisticacin, se componan de elementos de seguridad superpuestos; cada uno de estos elementos estaba diseado e instalado para suplir las carencias del resto de los elementos.
Los dispositivos convencionales disponibles para la gran mayora de los ciudadanos son las alarmas sonoras, los sensores volumtricos, las cmaras de video, e incluso micrfonos [WIKI01]. Estos elementos nunca fueron diseados para actuar como un nico elemento de seguridad; es decir, estos dispositivos no se disearon con PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
14 la intencin de ser utilizados conjuntamente, si no que se disearon por separado, pero se pueden utilizar en conjunto.
Sin embargo, uno de los sistemas de seguridad ms avanzados del momento s que utiliza toda la informacin de los sensores instalados de forma conjunta; de esta forma se implementa un sistema con funcionalidades que podran darse en un sistema con inteligencia artificial [WEB001].
Este dispositivo de vigilancia se activa si alguno de los sensores volumtricos capta la intromisin de algn elemento externo; en ese momento, las cmaras empiezan a grabar y envan la seal a la centralita donde se encuentran aquellos agentes que deben tomar las decisiones pertinentes para atajar la amenaza; el envo de la informacin sirve para que los tcnicos evalen la amenaza y ofrecer una respuesta con mayor precisin y eficacia. De este modo se genera una sinergia entre los elementos de seguridad instalados; sta es una de las funcionalidades caractersticas del sistema de este proyecto.
Otro dispositivo de vigilancia, instalado en las casas cuartel de la Guardia Civil y las comisaras de Polica, permite la identificacin de elementos sospechosos en el entorno del edificio con el fin de atajar la amenaza si se diera el caso. Este sistema funciona analizando el entorno que vigila; en el caso de que un coche o furgoneta estacione cerca del edificio, el sistema de vigilancia generara una alarma y reconfigurara la posicin de la cmara de vigilancia, centrando el foco de la cmara sobre la nueva amenaza detectada. Este control de los dispositivos de vigilancia por parte de los elementos de la inteligencia artificial es una funcionalidad que no est incluida dentro del alcance de este proyecto; sin embargo, es una idea que debe ser desarrollada en el entorno de la visin artificial; si los seres vivos centran el foco de su visin sobre los elementos, los elementos artificiales tambin deberan hacerlo [CORR09].
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
15 Estos dispositivos de vigilancia han probado su eficacia, pero su estructura es todava muy mecnica y predecible. Sin embargo, este proyecto propone que el sistema de video vigilancia artificial desarrollado sea orgnico y reentrante, es decir, que se nutra de la informacin que va generando adems de la que los sensores externos van capturando.
Tcnicas actuales
En el otro campo que interviene en este proyecto, el campo de la visin artificial, empez a ser investigado en la ltima dcada del siglo XX, y desde entonces se han desarrollado mltiples avances.
A mediados de los aos 90, un estudio estableci cules eran los parmetros que un sistema dedicado al anlisis del movimiento deba tener en cuenta [CDR95]. En este estudio se desarrollo un sistema que poda captar el movimiento de uno o varios objetos de forma simultnea, para despus analizar y caracterizar el movimiento de cada objeto, adems de la propia estructura y composicin del objeto. Aos ms tarde, los cientficos estudiaron la forma en que los seres humanos identifican los objetos de su entorno y descifraron las tareas que realiza el cerebro humano para obtener una imagen mental del entorno. Gracias a este estudio, los investigadores pudieron implementar un sistema artificial que se asemejase bastante a la visin humana [VINC06].
Los estudios realizados en este campo dieron pie al desarrollo de algoritmos de anlisis de imgenes; algunos de estos algoritmos se especializaron en el estudio del movimiento no-rgido, como por ejemplo el estudio de plantillas deformables [YUIL92], splines activos [CURW92], o el estudio de superficies activas [COHE92].
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
16 Otro de los campos de estudio en este sector es el anlisis de las tcnicas de flujo ptico, que consisten en el anlisis por parte de un ordenador de series de pares de imgenes [BEAU95], [RODR08]. La tcnica del flujo ptico se basa en estudiar el movimiento que se percibe entre dos imgenes consecutivas, gracias a las diferencias entre stas se puede analizar la velocidad o la distancia de los objetos.
Adems del estudio del movimiento de los objetos, este proyecto integra los algoritmos de reconocimiento de objetos. Los algoritmos pueden estudiar los objetos de 2D [BAND08], el reconocimiento de patrones [LIU07]. Otras tcnicas que se desarrollaron para la identificacin de los objetos del entorno se basan en el estudio de los colores como fuente de informacin; el trabajo principal de estos algoritmos se basa en el anlisis de los colores y de su variacin como consecuencia del aumento o disminucin de la fuente de luz [CUEV06].
Estos algoritmos se desarrollaron con el fin de capturar el movimiento de los objetos y de estudiar despus el movimiento o la naturaleza de estos. Esta dinmica supone un problema en el campo de la vigilancia ya que para mantener una seguridad de calidad, el servicio prestado por el sistema de video vigilancia artificial debe ser capaz de trabajar en tiempo real, lo cual implica que los resultados deben obtenerse en el tiempo de respuesta de un ser humano, as que deben de estar entre un cuarto y medio segundo.
Sin embargo, las tcnicas de flujo ptico implican un problema aadido, al estar basadas en el anlisis de dos imgenes consecutivas implica un ligero retardo ya que se trabaja con dos imgenes; sin embargo, el clculo de distancias y velocidades es un objetivo principal del proyecto, de modo que estos algoritmos han sido modificados para que tengan unas mejores prestaciones.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
17 Uno de los artculos estudiados tiene como objetivo estudiar el movimiento de las manos dentro del entorno de la interpretacin del lenguaje de signos [YANG08]. Este artculo ana los criterios de reconocimiento de patrones que se persigue en el proyecto de seguridad por video vigilancia junto con los criterios de anlisis del movimiento de los objetos dentro del campo de visin.
Tecnologas y recursos utilizados
Este proyecto se centra sobre el anlisis de imgenes de video mediante una inteligencia artificial, por lo tanto, una gran parte de la elaboracin de este proyecto ha consistido en la seleccin de los sistemas perifricos de video. Estos equipos son las cmaras de vigilancia convencionales, las cmaras usb y las cmaras IP. Al tratarse de un proyecto enfocado hacia la creacin de un sistema de video vigilancia a partir de cualquier equipo que pudiera poseer el cliente con anterioridad, el desarrollo del proyecto no se ha focalizado sobre una cmara de video especfica, sino que la mayor parte del proyecto se ha trabajado sobre video ya grabados seleccionados con el fin de desarrollar una funcionalidad concreta de la consola.
Las cmaras de vigilancia convencionales no envan la informacin digitalizada sino que la envan con formato analgico. La seal generada por estas cmaras es un flujo continuo de informacin, mientras que el sistema est diseado para recibir las imgenes de video de una en una; por esto es necesario incluir un transformador de seal para que la seal analgica se digitalice y pueda utilizarse en la consola de seguridad. En cuanto mejor sea este convertidor de seal, ms ptimo ser el sistema ya que la informacin en bruto proporcionada por las cmaras podr ser refinada con ms tiempo. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
18
Sin embargo, no todos los dispositivos generan informacin analgica, hay equipos perifricos de video que generan informacin digital; los dispositivos de este tipo ms comunes son las cmaras usb, cmaras que mediante un puerto usb se conectan al ordenador y gracias a cualquier aplicacin de video con enlaces a puertos usb puede mostrar al usuario el video que estn capturando. Esta informacin est ntegramente en formato digital, con lo cual puede empezar a tratarse mucho antes que la informacin proporcionada por las antes mencionadas cmaras de vigilancia, pues no es necesario pasar por el proceso de transformar el tipo de la seal.
Las cmaras usb son la mejor opcin para este sistema de seguridad para una empresa que est muy localizada (que trabaje dentro de un nico edificio o complejo y que utilice un nico servidor para tratar toda la informacin) ya que estas cmaras son de fcil instalacin y tienen un muy buen rendimiento en distancias cortas Adems de las cmaras usb, hay otro tipo de dispositivos que tambin procesan directamente la informacin que generan en el ordenador sin necesidad de un transformador, estos dispositivos son las Webcams.
Sin embargo, hay otra opcin para aquellas empresas que tengan varias zonas que vigilar y deseen vigilarlas desde un nico punto, estos dispositivos permiten la instalacin de un puesto de vigilancia remoto y centralizado.
Figura 2.1: Secuencia de captura de las imgenes PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
19 Las cmaras IP permiten recibir la seal digitalizada desde cualquier ordenador con acceso a Internet. La instalacin de estas cmaras es muy sencilla con la salvedad de que la empresa que las instale debe configurar unos permisos para acceder a la informacin proporcionada por estas cmaras. Esto da la opcin a las empresas de recibir informacin simultnea sobre varios puntos geogrficos distintos, y en ltima instancia permite mantener la vigilancia sobre distintas zonas con la misma consola de pantallas (como la consola de vigilancia de la D.G.T., que recibe la informacin desde las cmaras de las distintas autovas, A-1, A-2, A-3, etctera pero se reciben todas en la consola central).
Sea cual sea el gnero de las cmaras de vigilancia instaladas en el sistema, toda la informacin que generen las cmaras debe ser recibida en ltima instancia en formato digital; este requisito es vital para el funcionamiento ptimo del sistema debido a que ste funciona analizando el stream de video que generan estas cmaras; es decir, el sistema funciona analizando la informacin de las Figura 2.2: Recorrido de la informacin PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
20 cmaras bajo un prisma digital. Un stream de video es una secuencia de frames, este es el nombre tcnico de las imgenes que componen las secuencias de video; su sinnimo en el formato analgico sera una diapositiva.
La consola de vigilancia se basa en el anlisis de estas imgenes individualmente primero y como una secuencia completa despus, por lo tanto el nico modo de poder aplicar la inteligencia artificial de la consola es que sta reciba las imgenes una por una. Las cmaras usb y las cmaras IP son vitales para este sistema de vigilancia artificial ya que proporcionan streams de video que pueden ser analizados directamente, mientras que las cmaras de vigilancia convencionales proporcionan una seal que debe ser convertida para ser recibida en un ordenador, lo que baja el rendimiento del sistema.
Los Bitmaps y el lenguaje de programacin C#
Gracias a que la tecnologa ha avanzado y ahora se pueden generar imgenes digitales. Este nuevo recurso informtico ha provocado que los lenguajes de programacin de alto nivel, en concreto los lenguajes de programacin orientada a objetos, como C# han incluido entre las clases de sus bibliotecas clases que permiten trabajar con Bitmaps dentro de un entorno de programacin [WEB002].
Un Bitmap est compuesto por una serie unos y ceros que se agrupan para formar los pxeles de las imgenes (series de bytes que generan el color de un punto dentro de la imagen); cuanto ms largas sean las series de unos y ceros ms matices tendrn los tonos de grises o habr ms colores en las imgenes. Por ejemplo, una imagen con un formato de pxel de dos bits (aunque los formatos suelen ser mltiplos de un byte, esto es slo un ejemplo) podr mostrar hasta dos tonos de gris (dos bits permiten cuatro combinaciones distintas de colores), uno de blanco y otro de negro, mientras que un pxel con formato de 1 byte podr mostrar hasta 256 tonos de grises o colores diferentes [WIKI02].
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
21 Uno de los atributos principales de los Bitmaps es su resolucin, que es el tamao en pxeles de la imagen; normalmente la calidad de las fotografas se determina por este valor ya que representa la potencia con que se ve la imagen, correspondiendo con el nmero de puntos digitales que hay en un centmetro cuadrado de la imagen. Cuanto mayor sea este nmero, mayor ser la precisin con que se mostrar la imagen.
Adems de la resolucin, otro atributo importante de los Bitmaps es el formato de los pxeles; los pxeles tienen asignada una determinada cantidad de bits para representar el color de los puntos de la imagen, de modo que en cuanta ms cantidad de bits tengan asignada para representar el color en un punto de la imagen, ms matrices y tonos de color se podrn representar en esta imagen digital. Esta cantidad de color es conoce como paleta de colores de la imagen. Los formatos de las imgenes se suelen representar en bpp, esta unidad representa los bytes por pxel que hay en la imagen.
Figura 2.3: Anlisis de un Bitmap
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
22 En C# la clase Bitmap contiene algunos mtodos especficos para agilizar operaciones de manipulacin de los Bitmaps como son el mtodo LockBits, que permite acceder directamente a la zona de memoria donde est alojado el Bitmap y manipular los datos de la imagen mucho ms rpido, o el mtodo GetPixel, que mediante la introduccin de las coordenadas del pxel que se quiere analizar se obtiene el valor numrico del color del pxel.
Pero no slo hay mtodos especficos para las imgenes digitales, sino que tambin se incluyen propiedades (atributos propios de cada clase) que gestionan informacin til a la hora de procesar un Bitmap, propiedades como PixelFormat, que contiene el formato de los pxeles de la imagen, o Width y Height, propiedades que contienen el ancho y la altura de la imagen, muy tiles en el caso de querer recorrer el Bitmap para analizar la informacin.
Una de las propiedades que ha sido bsica para el desarrollo de este proyecto es ColorPalette, una propiedad que almacena y muestra la paleta de color que utiliza la imagen; gracias a esta propiedad se puede configurar esta paleta de colores desde dentro del programa con un sencillo bucle. De este modo se implement la paleta de colores de las imgenes para que stas pasaran de ser en color a ser representaciones en escala de grises.
Gracias a estos mtodos es posible trabajar con la informacin contenida dentro de las imgenes y realizar gracias a ella un proceso que analice la imagen en bsqueda de objetos. En trminos prcticos, ahora la informacin de imgenes o videos es tan fcil de utilizar desde un programa como la informacin de cualquier fichero.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
23 La programacin orientada a objetos
El vehculo que utiliza este proyecto para poder parametrizar y manipular los objetos que la consola detecta es la Programacin Orientada a Objetos. Gracias a los entornos de desarrollo que permiten trabajar con esta filosofa de programacin se pueden disear programas que ayudan al programador a reconocer fcilmente las entidades que se interrelacionan en el programa.
La Programacin Orientada a Objetos se basa en la creacin de clases (objetos) que son modelos de la realidad diseados para representar un objeto real dentro de un entorno de programacin [WIKI03].
Figura 2.4: Filosofa de la programacin orientada a objetos
Estos modelos incluyen atributos y mtodos, los atributos describen objetos del modelo y los mtodos representan las acciones que puede realizar el modelo dentro de su entorno; es de vital importancia que tanto los atributos como los mtodos disponibles para las distintas clases capten lo mejor posible las funciones del objeto real que modelan.
De este modo es fcil realizar un algoritmo que capte un modelo de la realidad y trabaje con l de forma sencilla; en este caso, ajustar los atributos y los mtodos de los objetos correctamente se traduce en conseguir hacer un modelo de la realidad en tiempo real, lo cual es vital cuando el entorno donde se trabaja es el campo de la seguridad.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
24 Gracias a la programacin orientada a objetos se puede mantener la atencin del programa sobre distintos elementos de la imagen sin que la eficacia de ste se vea mermada, ya que el diseo de estos lenguajes de programacin les hace mantener su potencia aunque tengan que manejar grandes cantidades de objetos al mismo tiempo. La ventaja ms importante de la programacin orientada a objetos es la sencillez con la que se invocan los mtodos de los objetos; gracias a este diseo simple pero efectivo los programadores pueden acceder a la informacin de una forma ms intuitiva y fcil de programar.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
25
Captulo 3 PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
26 Metodologa Empleada
Para asegurar el xito en el desarrollo de una aplicacin, es necesario aplicar tcnicas que permitan planificar, organizar y controlar las actividades que dan forma al conjunto del proyecto. Estas tcnicas de desarrollo y control son diferentes y cada metodologa presenta una forma particular de utilizarlas, as como sus propios mtodos y tcnicas.
La metodologa ms extendida en la actualidad es la metodologa estructurada, que define el desarrollo de un proyecto como una serie de pasos consecutivos que se conoce como ciclo de vida del sistema; una vez realizados estos pasos ya no se repiten durante todo el proyecto. Durante cada fase del ciclo de vida se analizan al mximo todos los matices del proyecto relacionados con el tema de estudio que se desarrolla en la fase antes de pasar al siguiente paso, de tal manera que los resultados generados en cada paso se conviertan en la informacin de entrada para la siguiente fase del ciclo de vida.
La finalidad de las metodologas de desarrollo software es orientar a los desarrolladores de aplicaciones mediante una serie de pasos para generar un producto software de calidad que requiera el menor nmero posible de revisiones o nuevas versiones; es decir, cada metodologa pretende automatizar la forma de generar aplicaciones software el mximo posible.
Mientras que la metodologa estructurada pretende generar el producto final mediante un nico ciclo de estudio, la metodologa extrema descompone el problema inicial en una serie de problemas ms pequeos con una complejidad inferior para cada una de las cuales se desarrollar una solucin; de este modo el producto final se compone de una serie de aplicaciones ms pequeas integradas durante el desarrollo del proyecto.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
27 Caractersticas de la Metodologa Extrema
Aunque la metodologa estructurada es la gua ms comn para el desarrollo de productos software, este proyecto ha sido confeccionado mediante la metodologa extrema o metodologa XP. La metodologa extrema aplica los mismos pasos que la metodologa estructurada, pero repite todo el ciclo de vida ms de una vez. Con cada iteracin el alcance del estudio del problema aumenta de forma exponencial, en vez de tratar de llegar a la solucin final con una nica iteracin.
Este sistema de estudio hace que esta metodologa sea conocida tambin como metodologa ligera o metodologa liviana, ya que cada fase de la secuencia de estudio tiene una duracin inferior en esta metodologa que en la metodologa estructurada; de este modo se puede repetir la secuencia de estudio ms de una vez, aadiendo mayor profundidad al estudio con cada iteracin.
Adems, esta metodologa repite el ciclo de vida del sistema, de modo que las reuniones de seguimiento del avance del producto son constantes, lo que implica que el intercambio de informacin debe ser fluido; esta caracterstica de la metodologa extrema no hace sino aumentar la agilidad del desarrollo de la aplicacin.
Figura 3.1: Comparativa de las dos metodologas de desarrollo de aplicaciones PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
28 Como con la metodologa extrema el alcance del proyecto se divide en varias fases de desarrollo, los objetivos globales del producto final deben acotarse de forma que se puedan alcanzar mediante la iteracin de las fases de estudio; este mtodo implica que primero se cumplan los objetivos ms sencillos y bsicos de la aplicacin, dejando para las iteraciones finales aquellos objetivos que sean crticos.
Este sistema ofrece una ventaja importante ya que siguiendo esta metodologa es posible obtener resultados visibles desde las fases iniciales del desarrollo. Otra ventaja de la metodologa extrema con respecto de la metodologa estructurada es que los desarrolladores y analistas del producto tienen un mayor conocimiento del funcionamiento de ste con cada iteracin; de modo que con cada iteracin su trabajo es ms preciso, lo que implica que los objetivos crticos se desarrollen e implementen con una mayor calidad.
Adems, gracias al desarrollo iterativo, se pueden modificar los objetivos iniciales durante el transcurso del desarrollo as como ajustar las funcionalidades del programa a los deseos del cliente y de los usuarios finales gracias a un anlisis de los requisitos actualizado con cada ciclo de estudio, lo que hace que la metodologa extrema sirva para desarrollar aplicaciones muy sensibles a las necesidades de los clientes y los usuarios finales.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
29 Las fases de desarrollo
La metodologa extrema permite descomponer el problema total en problemas ms pequeos que pueden ser abordados por separado. Al plantear la estrategia para obtener los resultados necesarios que requera este proyecto se dividi el problema principal en varios problemas secundarios de forma que los resultados obtenidos al solucionar un problema secundario se obtuviera a la vez la informacin necesaria para ejecutar el siguiente paso.
Figura 3.2: Descomposicin del problema principal
Gracias a la descomposicin del problema se obtuvieron tres fases de estudio que deban ser desarrolladas durante el proyecto para que la aplicacin final generase los resultados deseados. Para el desarrollo de cada una de estas fases se planific un calendario mediante un diagrama de Gantt con el cual guiar el desarrollo de la aplicacin.
Los diagramas de Gantt permiten planificar las fases de desarrollo de una aplicacin e incluso descomponer estas fases generales en sub-fases ms concretas; adems, las tcnicas empleadas en este diagrama permiten relacionar las fases entre ellas segn los criterios lgicos de desarrollo, creando una secuencia de elaboracin de del proyecto y estableciendo una jerarqua entre las fases que lo componen, de modo que la creacin del producto final se desarrolla de forma guiada.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
30
Manipulacin de video mediante aplicaciones software
La primera de las fases que se desarrollaron en el proyecto fue la fase de generacin del proceso de carga del video dentro de la consola; este proceso tena que abrir, identificar el formato del archivo, generar el soporte correspondiente para las imgenes del video y mostrar por pantalla los frames de los videos.
Al ser la primera fase del proyecto, durante esta parte del desarrollo tambin se dise la mayor parte del interfaz de la consola con el usuario. En esta fase inicial, el interfaz del programa era bastante sencillo, se compona de una ventana de seleccin donde slo haba un recuadro de texto y un botn de seleccin.
Figura 3.3: Diagrama de Gantt de la planificacin Figura 3.4: Objetivos de la primera fase del desarrollo PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
31
Figura 3.5: Vista del interfaz de la consola durante la primera fase de desarrollo
Gracias a este interfaz la consola era capaz de solicitar los datos de entrada que requera para el proceso de carga del archivo de video. Una vez localizados los datos, la parte del interfaz se los enviaba al procesador del programa para que ste hiciera un anlisis del archivo y generase una salida que el usuario pudiese identificar.
Mediante el botn de seleccin la aplicacin permitira al usuario navegar dentro de su equipo para seleccionar el archivo de video que quisiera analizar. Esta forma de seleccin de archivos acelerara el proceso ya que el usuario se evitaba tener que conocer y escribir en el recuadro de texto la ruta de acceso al archivo de video para que la aplicacin pudiera procesarlo. Figura 3.6: Comunicacin con el interfaz del programa PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
32
Para obtener los resultados que se esperaban se consultaron diversas fuentes web [MSDN06] y [WEB005]. Gracias a estas fuentes se pudieron comprender los sistemas necesarios para cargar un fichero de video dentro de un sistema, para manipular archivos desde las aplicaciones hacen falta procesos de manipulacin de archivos multimedia y gestores especializados de archivos de video; estos procesos necesitan bibliotecas de formatos de archivos para que los archivos de video puedan descomponerse en imgenes.
Figura 3.7: Navegacin dentro del equipo para la seleccin del video Figura 3.8: Detalle del flujo de datos en la fase de carga PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
33 Los gestores especializados analizan el formato del archivo multimedia que le ha sido enviado para obtener informacin acerca de las imgenes contenidas en el video, leyendo de los datos de la cabecera el tamao o la calidad de las imgenes.
De este modo es posible que los gestores de archivos inicialicen las imgenes de tipo bmp con la anchura y altura requeridas, para despus volcar la informacin de las imgenes del video pixel por pixel, de modo que descomponen todo el vector de informacin del archivo de video en vectores de informacin ms pequeos que contienen los valores del color de cada pixel. Una vez cargada la informacin del primer pixel dentro de un archivo de tipo bmp, el proceso enva este archivo al gestor del programa para que lo incluya dentro del contenedor correspondiente del interfaz.
Figura 3.9: Salida por pantalla del primer frame del video seleccionado
Gracias al proceso desarrollado durante la primera fase se pudieron introducir archivos de video dentro de la consola y sta era capaz de descomponerlos para tratarlos como una secuencia de imgenes independientes. Una vez se pudieron identificar y manipular las imgenes de forma separada, se procedi a desarrollar la segunda fase del proyecto; en esta fase se aplicaran los distintos filtros para analizar las imgenes.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
34 Anlisis de imgenes digitales
Durante esta fase del desarrollo del proyecto se estableci como objetivo principal desarrollar un proceso que fuera capaz de aplicar los distintos tipos de filtros de anlisis de las imgenes. Para ello el usuario seleccionara un archivo de tipo bmp que el sistema recibira utilizando el mismo interfaz que se desarroll en la primera fase del proyecto.
Figura 3.11: Salida inicial de la aplicacin en la segunda fase
Para analizar las imgenes mediante la consola de la aplicacin, era necesario abrir los archivos bmp desde el ms bajo nivel. Esto implicaba utilizar procesos que manejaran punteros para el acceso a las zonas de memoria donde se encontraba la informacin de las imgenes; una vez abierto el archivo de imagen se podran aplicar los distintos filtros diseados y desarrollados para analizar las imgenes. Figura 3.10: Objetivos de la segunda fase PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
35
Figura 3.12: Detalle del flujo de datos de la segunda fase
Una vez desarrollada por completo esta fase, la consola sera capaz de aplicar los distintos filtros desarrollados y devolver una imagen transformada a partir de la imagen original.
Una vez desarrollada esta fase por completo, haba que unir los dos programas desarrollados para generar una aplicacin que pudiera analizar una secuencia de video completa.
Figura 3.13: Resultados de la segunda fase PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
36 Anlisis de las secuencias de video
Gracias a las dos fases de desarrollo anteriores se generaron dos programas que podan abrir y descomponer un archivo de video y aplicar una transformacin a un archivo de tipo bmp. Por lo tanto, en la tercera fase de desarrollo haba que implementar las funcionalidades de ambos programas dentro de una nica aplicacin y aadir la inteligencia artificial que analizara el movimiento de los objetos dentro del video.
La implementacin de las funcionalidades desarrolladas en las fases anteriores en una misma aplicacin dio origen a un recorrido que deba seguir las imgenes obtenidas del video; el video era directamente enviado desde el interfaz al gestor de archivos a travs del gestor del programa para ser analizado y que se generasen las imgenes que lo componan. Una vez generadas estas imgenes, stas se reconduciran a travs del gestor de archivos al gestor de imgenes para ser analizadas; el gestor de imgenes almacenara las imgenes resultantes en una zona de la memoria hasta finalizar el anlisis del video por completo.
Una vez generadas todas las imgenes transformadas, el gestor de imgenes pasara el control del programa al gestor del programa, el cual accedera al almacn de imgenes del programa para extraer todas las imgenes del video y abrir una conexin con el gestor de archivos. A travs de esta conexin el gestor de archivos recibira las imgenes transformadas con las cuales generara el archivo de video que se devolvera al usuario.
Figura 3.14: Objetivos de la tercera fase de desarrollo PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
37
Figura 3.15: Detalle del flujo de datos del programa
Una vez integradas en el mismo programa las funciones desarrolladas en las dos primeras fases, la aplicacin era capaz de generar video con imgenes transformadas. En este punto se desarroll la inteligencia artificial que permita analizar las imgenes generadas relacionando las imgenes entre ellas, hasta ahora el anlisis de las imgenes slo implicaba el uso de una de ellas.
Para implementar esta funcionalidad a la inteligencia artificial de la aplicacin se aadi un bucle en el gestor de imgenes, este bucle estableca que el gestor de imgenes deba acceder al Almacn de imgenes una vez finalizara el anlisis inicial de las imgenes. Este segundo acceso permitira al Gestor de imgenes comparar las imgenes transformadas segn los algoritmos desarrollados y generar imgenes que modelaran el movimiento de los objetos de la secuencia de video original.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
38
Finalmente, la aplicacin genera poda analizar un video descomponindolo en imgenes individuales, aplicando a cada una de estas imgenes una serie de filtros con el fin de realzar la informacin que se buscara en cada fase del anlisis, relacionando estas imgenes por parejas para obtener informacin sobre el movimiento de los objetos seleccionados en el video y finalmente generando un video de salida que contuviera la informacin generada por la consola sobre los objetos capturados en la secuencia de video.
Figura 3.16: Flujo de datos de la aplicacin final PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
39
Captulo 4
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
40 Desarrollo del prototipo
Introduccin
Este proyecto tiene como objetivo crear el prototipo de un sistema de vigilancia hbrido; este sistema estar operado por un usuario humano, pero las tareas de vigilancia ms repetitivas (como el seguimiento de individuos que hayan entrado en escena o la comprobacin del entorno en busca de objetos que hayan cambiado de posicin o que hayan sido depuestos con anterioridad por parte de algn individuo) sern resueltas por la consola. Evitando la mecanizacin de la actividad laboral de los tcnicos de seguridad se espera que los resultados de la vigilancia sean ms satisfactorios que con los sistemas de vigilancia convencionales.
Las tareas de supervisin de una pantalla de video vigilancia no requieren una gran dosis de Figura 4.1: Comparativa de imgenes PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
41 concentracin pero son extremadamente repetitivas, creando as una rutina en la que los vigilantes de seguridad se ven inmersos. Para adaptarse a esa rutina, los vigilantes de seguridad desarrollan de manera instintiva tcnicas de vigilancia mecnicas, las cuales ponen en peligro la integridad del sistema ya que el nivel de vigilancia se vuelve insuficiente.
Mediante el procesado de las imgenes por parte del ordenador se espera liberar del trabajo ms repetitivo al vigilante; el objetivo de este filtrado de la informacin por parte del ordenador es que la mente de este sujeto mantenga la alerta durante la totalidad de su turno de servicio pero se desgaste el mnimo posible durante todo ese tiempo. Para facilitar la labor de los vigilantes de seguridad, se ha desarrollado una aplicacin que permita distinguir los elementos de la imagen proporcionada por una cmara de video, y resaltar las caractersticas e identificar aquellos objetos que sean ms importantes. Este hecho permitir por lo tanto mantener un nivel de calidad ptimo durante ms tiempo en lo que refiere a las decisiones que deber tomar el responsable de seguridad.
Como este sistema de vigilancia es un prototipo, el sistema es capaz de definir las acciones de los objetos que sean captados por las cmaras de vigilancia, pero con un alcance muy inferior al que debera tener en caso de ser una herramienta profesional. La funcin de definir los objetos que estn dentro de una zona, que a priori es una tarea muy amplia, se descompone en varias subtareas ms pequeas, fcilmente identificables y que en ltima instancia generan una sinergia positiva entre ellas y permiten una vigilancia global superior; de cualquier modo, todas estas subtareas deben complementarse. Estas subtareas son el anlisis de los objetos de la imagen, la identificacin de estos objetos y el anlisis de las acciones de los objetos capturados en la imagen. Figura 4.2: Flujo de informacin PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
42 Gracias al desarrollo y la implementacin de estos tres elementos principales de la vigilancia en la aplicacin, se espera que la consola de este primer prototipo tenga un nivel de respuesta aceptable. El diseo de este sistema de vigilancia se ha basado en un anlisis piramidal de las imgenes proporcionadas por un stream de video.
En una primera aproximacin, la consola analiza las imgenes individualmente en busca de los objetos que la componen para luego analizar estos objetos e identificarlos y definir su naturaleza; finalmente, en la ltima etapa del anlisis, se aplica la inteligencia artificial de la consola para evaluar las posibles acciones de estos objetos y lanzar los avisos que correspondan a los vigilantes de seguridad.
La primera de estas tareas es la identificacin de objetos en movimiento dentro de la imagen principal del la cmara que se est analizando. Esta subtarea se ocupa de analizar la imagen de las cmaras para diferenciar cuales son las zonas de la imagen donde se encuentran los objetos mviles y cules son las zonas de la pantalla que representan el paisaje.
El alcance de esta subtarea en este proyecto es sencillo, se espera que la consola sea capaz de localizar cualquier objeto que se est desplazando por la imagen y generar una ocurrencia por cada uno de los objetos que haya localizado y definir la naturaleza del elemento que ha generado esta ocurrencia; adems, se espera que la consola sea capaz de filtrar el movimiento superfluo de los elementos, ya sean elementos significativos o no (se espera que la consola sea capaz de filtrar el movimiento de las hojas de los rboles debido al viento o eliminar los cambios de color debidos al cambio de posicin del Sol durante el da).
Otra subtarea de la que se compone la vigilancia es la identificacin de los objetos que hayan sido localizados dentro de la imagen. Esta subtarea es responsable de definir la naturaleza de los objetos dentro de la imagen con el fin de recopilar la mayor cantidad posible de informacin para los usuarios de nivel superior. Sin embargo, un requisito indispensable en este punto es asegurar que la informacin que PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
43 se suministre a los niveles superiores sea totalmente fidedigna; en un entorno de vigilancia automatizado, es mejor no establecer ningn elemento de juicio sin tener una certeza absoluta antes que trabajar con un falso positivo. De modo que cuando un sistema de vigilancia se encuentre operando en modo automtico debe ser capaz de mantenerse a la espera para asegurar una identificacin que se acerque lo mximo posible al 100%.
En el caso de una vigilancia compartida (una vigilancia compartida es aquella en la cual la consola tiene el apoyo de un operario de seguridad) la consola lanzar un mensaje de identificacin parcial cuando la identificacin alcance un porcentaje predefinido, y ser el tcnico que est supervisando el sistema el que determine si la identificacin es positiva o no, estableciendo un nuevo perfil ms completo para el sujeto recientemente identificado. De este modo el usuario podr interactuar con la aplicacin y ser parte activa en la vigilancia, ya que gracias a sus intervenciones, la aplicacin podr definir antes la naturaleza de los objetos que haya capturado dentro de la imagen.
El alcance de esta subtarea en este proyecto es modesto, la consola debe analizar cada objeto localizado dentro de la imagen y a ser posible identificarlo como perteneciente a una de estas categoras: gnero humano, objeto o vehculo.
Sin embargo, la identificacin de los objetos es un campo de difcil automatizacin. Todos los seres humanos tenemos caractersticas comunes, esto hace complicada la diferenciacin de un humano de otro por parte de una mquina, a excepcin de las mquina con hardware especializado (como los lectores de huellas dactilares o los lectores de retina). Por otra parte, incluso dos objetos iguales (un par de mochilas de colegio, por ejemplo) son difciles de identificar como idnticos por parte de una mquina debido a que hay variables que difieren de un objeto a otro (la orientacin, la incidencia de la luz o los pliegues de la tela).
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
44 No obstante, es posible definir la naturaleza de los objetos capturados por las imgenes siempre que las clases donde se incluirn estos objetos no sean muy especficas. La definicin de la naturaleza de los objetos es una parte crucial de la video-vigilancia; gracias a este paso, el sistema se puede tratar con una mayor precisin a cada tipo de objeto que se identifique en la imagen.
Al identificar un objeto o individuo como tal dentro de una imagen, el sistema debe ser capaz de aadir una entrada en su base de datos de objetos activos dentro de la imagen; una vez completado el anlisis inicial de la imagen, el sistema tambin debe ser capaz de recorrer estos registros y actualizar el estado de los objetos en funcin de la informacin que haya recogido durante el anlisis.
Si el anlisis de la imagen fuera difcil porque la imagen se encontrase saturada de objetos, sera posible dejar el anlisis en el estado en el que estuviera y retomarlo en la siguiente iteracin de anlisis. De este modo se ira completando el anlisis de los objetos en su totalidad hasta que ya no quedaran nuevos objetos dentro del entorno de anlisis del sistema.
La ampliacin de las funcionalidades de esta subtarea tiene muchas posibilidades; por ejemplo, en cuanto a la identificacin de los seres humanos, es posible que la consola identifique a cada persona individualmente, de modo que se pueda tener un seguimiento de todos los empleados de la plantilla de una empresa al completo. Del mismo modo, los vehculos tambin pueden ser de nuevo categorizados por su naturaleza (motos, utilitarios o camiones).
Finalmente, la ltima subtarea de este sistema de video-vigilancia es el seguimiento de los objetos durante su recorrido dentro de la pantalla o en el entorno que se establezca la vigilancia; esta subtarea permite lanzar avisos externos al sistema para notificar de comportamientos extraos a los vigilantes encargados de la supervisin de las pantallas de control del sistema.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
45 Los avisos lanzados por los procesos de este nivel sern ms precisos ya que gracias a la clasificacin de los objetos se registra y analiza la informacin sobre estos objetos de una forma ms concreta, y por lo tanto, las decisiones que se toman acerca de ellos tienen una base con mayor fundamento. Esto implica que es necesario definir para cada clase un comportamiento comn y una batera de acciones que no son habituales; en el caso de que la aplicacin identifique a un objeto realizando una de estas acciones no-comunes la aplicacin lanzar un mensaje de aviso al encargado de seguridad de la consola de vigilancia.
El alcance de esta subtarea est definido por el clculo de vectores de desplazamiento de los objetos y de la toma de decisiones sencillas por parte de la inteligencia artificial de la consola acerca de la interactuacin de estos vectores con el medio (discernir cuando un camin estaciona o cuando una persona deposita un objeto en el entorno y de este modo modifica el entorno), pudiendo dar una idea aproximada sobre la velocidad o la direccin del objeto que se muestra por pantalla.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
46 Configuracin del sistema
La recepcin de las imgenes se tramitar en el dispositivo final a travs de una cmara de video; gracias a esta cmara de video se recibe un stream de video en formato digital. Un stream de video es un tipo de conexin digital que enva desde la cmara a la consola principal una serie de imgenes que muestran los elementos que est enfocando la cmara de vigilancia.
Al tener un formato digital es posible tratar la informacin de las cmaras directamente desde la aplicacin; la consola recibe las imgenes directamente y las convierte a un formato con el que es posible trabajar desde el entorno de programacin, el formato de Bitmap, con lo cual puede empezar a trabajar con la informacin directamente con las herramientas que se han diseado e incluido en el entorno de programacin que estn incluidas en la clase Bitmap de la plataforma C# (como los mtodos y los atributos de la imagen digital).
Gracias a esta conexin la consola puede recibir informacin en tiempo real sobre el entorno que debe vigilar con un formato que se puede manipular. Gracias a los mtodos de la clase Bitmap, se puede acceder a la informacin de la imagen para realzar aquellos aspectos de la imagen que sean ms importantes para el anlisis o para optimizar el consumo de memoria (cambiar el contraste para perfilar mejor los elementos de la imagen o cambiar el formato de la imagen para que esta no tenga colores pero ocupe menos espacio en la memoria).
Adems de configurar las imgenes para que faciliten el procesamiento de la informacin que contienen, la conexin entre la aplicacin y la cmara de video puede configurarse para que se ajuste a las necesidades del sistema que se desea implementar. Si la velocidad de procesamiento de la consola es un poco baja, es posible disminuir el ritmo con el que el stream de video vuelca las imgenes en la zona de memoria reservada para guardar las imgenes que se analizarn; con esta desaceleracin se pretende disminuir la cantidad de informacin que tendr que PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
47 procesar la consola y as liberar al procesador del sistema de toda la carga computacional posible.
Al variar el ritmo de entrada de las imgenes se vara tambin la precisin del sistema ya que con un ritmo de captura ms bajo, la vigilancia es menos constante, lo cual puede suponer que la actualizacin de los indicadores de la imagen se d en intervalos ms amplios, en vez de obtener una serie de imgenes donde los indicadores siguen a los objetos de forma fluida.
No es necesario que el sistema analice todas las imgenes que la cmara de vigilancia es capaz de generar; el ojo humano es capaz de analizar 25 frames por segundo (un frame es la media con la que se expresa el nmero de imgenes que tiene un segundo de video), en el caso de analizar un stream con una cantidad mayor de frames se estara sobresaturando intilmente el sistema ya que la diferencia no es apreciada por el ser humano.
Esto implica que si se analizaran todas las imgenes, el sistema tendra cuatro dcimas de segundo para el ciclo de anlisis de la imagen; no obstante, se puede omitir el anlisis de varios intervalos para lograr varios objetivos. El primero de ellos es que si se obvian varios intervalos, el tiempo resultante para el anlisis del intervalo ms grande es proporcionalmente mayor (es la suma de los intervalos ms pequeos). El segundo beneficio que se obtiene de analizar intervalos ms distanciados en el tiempo es que el movimiento de los objetos es ms fcil de identificar; mientras que las diferencias entre dos frames seguidos (en un stream de 25 frames por segundo o ms) es imperceptible, esta diferencia se intensifica a medida que los frames estn separados por ms tiempo.
De modo que con intervalos de anlisis ms amplios el sistema tiene ms tiempo para analizar las imgenes, pero adems la diferencia entre las imgenes es ms grande, lo que ayuda con notoriedad al anlisis de la imagen.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
48 Para conseguir un sistema de vigilancia lo ms parecido al sistema ocular humano en cuanto a localizacin, clasificacin, identificacin y prediccin de los movimientos de los objetos del entorno, el sistema tendra que ser capaz no solamente de localizar e identificar el movimiento de los objetos dentro de su entorno de vigilancia; si no que adems, el sistema debera ser capaz de analizar el histrico de movimientos del objeto y junto a una correlacin con su naturaleza, hacer un prediccin de su comportamiento futuro. Adems, tanto el anlisis como el clculo de la prediccin deberan ser en tiempo real, utilizando tan solo las cuatro dcimas de segundo que hay entre dos frames seguidos en un stream de 25 frames por segundo.
Algunos estudios intentan automatizar ciertos aspectos de la visin humana, como por ejemplo el seguimiento de los objetos [CORR09] o la identificacin de objetos mediante la descomposicin en objetos ms sencillos [BAND08], [PINT08].
Durante este proyecto se ha implementado un prototipo de sistema de vigilancia artificial que contiene estas funcionalidades; sin embargo, la informacin recibida para el anlisis proviene de archivos de video que se encuentran dentro del equipo de pruebas. En posteriores fases de desarrollo se podran codificar procesos de dilogo con los dispositivos de entrada de archivos visuales, no obstante, como el objetivo principal de este proyecto era desarrollar una inteligencia artificial que fuera capaz de desarrollar tareas de procesamiento de imgenes de alto nivel, estos proceso de dilogo se han obviado.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
49 Soporte de las imgenes
Gracias a la ampliacin de las bibliotecas de los lenguajes de programacin orientada a objetos con clases como la clase Bitmap para C#, es posible para los programadores interpretar y procesar imgenes desde aplicaciones de informtica. Gracias a este avance, es posible disear aplicaciones que simulen el campo de visin humano para despus ser integradas en aparatos robticos con los que desarrollar actividades con el apoyo humano indispensable o aplicaciones de video vigilancia automatizada.
Para trabajar con imgenes en C#, los diseadores del lenguaje han desarrollado la clase Bitmap, una clase que est compuesta por mtodos y atributos que resultan muy tiles al trabajar con imgenes. Los Bitmaps son el componente principal de los videos de seguridad y en este caso son la materia prima que se refina para obtener resultados tangibles.
Gracias al rango tan variado de mtodos con los que trabajar, es posible desarrollar procesos que manipulen diversos aspectos de la informacin que se encuentra dentro de una imagen; uno de estos atributos que pueden ser manipulados es el formato de los Bitmaps.
El formato de los pxeles de los Bitmaps puede variar enormemente, puede ir desde 1 bpp (los bpp son los bits por pxel; el bpp es una metida que relaciona la cantidad de bits de memoria que se emplean en el sistema para representar un pxel, que es como se llama a los puntos de las imgenes), que permite tener imgenes en blanco o negro; hasta la el formato del sistema HDMI, que utiliza en su ltima versin un formato de 48 bpp (con un orden de billones de colores). Sin embargo, en este proyecto el formato de pxel ms extenso con el que se trata es el de 32 bpp, una ampliacin del 24 bpp o RGB estndar, un formato que permite almacenar y procesar imgenes en color.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
50 El formato de los pxeles de una imagen determina la cantidad de memoria que ocupa una imagen; esta cantidad de memoria que se ocupa se puede utilizar para representar ms colores dentro de la propia imagen o difuminar los colores ya existentes en sucesivos tonos del mismo color.
En cuantos ms bytes de memoria se hayan asignado a cada pxel, ms se tardar en acceder a la memoria ocupada por un pxel y por lo tanto ms se tardar en analizar la informacin de la imagen completa. El formato de los pxeles representa por tanto la definicin de cada punto de la imagen, la precisin con que se puede alcanzar cada color real mediante los medios de que se disponen en el equipo, y hacer un buen uso del formato de un Bitmap implica poder trabajar con la suficiente informacin dentro de un programa sin comprometer la velocidad de procesamiento del programa.
A continuacin se presenta un pequeo repaso de las posibilidades de los formatos que los programadores tienen a su disposicin; los formatos que han sido incluidos dentro de la aplicacin tienen una explicacin adicional con el fin de introducir al lector a su uso dentro de la consola.
Figura 4.3: Uso de la memoria segn el formato PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
51 - 1 bpp: Este formato genera imgenes en blanco y negro, con un bit para cada pxel; 0 para el negro y 1 para el blanco. Estas imgenes sencillas pueden servir para hacer un negativo de las imgenes reales con la informacin ms vital de estas.
En este proyecto se ha utilizado este formato no para generar imgenes como tal sino para generar un modelo de las mismas, de modo que se pueda trabajar con las siluetas modeladas de los objetos encontrados en las imgenes con formato superior, esta tcnica ya ha sido utilizada en otros proyectos con finalidades similares [LEE08], [LAND08].
De este modo se puede representar la informacin vital para los niveles de anlisis superiores con imgenes que ocupen un espacio mnimo y que por lo tanto no comprometen ni el espacio en memoria ni la velocidad de procesamiento de la consola.
- 8 bpp: Este formato permite generar un rango de 256 colores distintos, lo que permite a los ordenadores representar imgenes a color con una paleta de colores sencilla con pocos matices. Adems, gracias a un proceso sencillo, este formato puede ser configurado para que la paleta de colores est compuesta nicamente por grises, creando as una escala de grises con una gran profundidad (256 matices de gris).
Este proyecto se basa en gran medida por la utilizacin de este formato, sobre todo mediante la variante de la escala de grises. Esta opcin permite transformar imgenes a color que consumen ms memoria (32 bpp o 24 bpp) en imgenes que consumen una cantidad de memoria notoriamente menor (8 bpp, lo que es al menos una tercera parte de la ocupacin de memoria original).
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
52 Sin embargo, este formato permite mantener una cantidad importante de informacin de la imagen inicial en lo que se refiera a las siluetas de los objetos de la imagen, lo que permite identificar las poses y los movimientos caractersticos de los elementos de las imgenes. Adems, pese a la prdida de informacin relativa al color de los objetos, las 256 tonalidades de gris permiten analizar la imagen y caracterizar los objetos tambin por su color, no slo por su forma.
- 16 bpp: Este formato est compuesto por dos bytes, de modo que las opciones de configuracin son amplias; a priori se pueden utilizar como la opcin de 8 bpp con una precisin superior (el doble de bits por pxel permiten elevar al cuadrado la precisin de la imagen), pero adems se dispone de una opcin adicional. Se pueden utilizar los dos bytes por separado, uno para generar una paleta de colores exactamente igual a la del formato de 8 bpp (en color o en escala de grises), y los ocho bits restantes se pueden utilizar para dar matices a los colores, para difuminar los colores con 256 tonalidades distintas.
Aunque este formato no se utiliza en este proyecto porque los resultados seran muy parecidos a los obtenidos con el formato de 8bpp, sera interesante estudiar el desarrollo de una ampliacin de la consola con este formato para la implementacin de cmaras con tecnologa HDMI; de este modo se podran desarrollar procesos que requiriesen mayor precisin en la imagen, como por ejemplo un proceso que realizara un zoom sobre zonas concretas de la pantalla (como por ejemplo para identificar los nmeros de una matrcula).
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
53 - 24 bpp: Es el formato que se utiliza para el sistema RGB; con 24 bits se obtienen 3 bytes, cada uno de estos bytes se asigna a uno de los colores del RGB, azul, verde o rojo y a partir de la mezcla de los tres se obtiene el color real de la imagen.
Este formato es el formato estndar que se utiliza en las conexiones de medios audiovisuales, por lo tanto es de suponer que los servicios de vigilancia ya implementados trabajen con este formato, salvo los equipos ms especializados.
- 32 bpp: Cuatro bytes por pxel es un formato que se utiliza para generar imgenes que adems de soportar el sistema RGB incluyen un byte para representar el brillo del pxel, lo que redunda en una mayor profundidad en los matices de los colores generados por el sistema RGB.
- 36+ bpp: Estos formatos generan imgenes con un rango de colores inmenso, para el formato de 36 bpp ms de 68 000 millones de colores y para el formato de 48 bpp ms de 281 billones de colores.
Estos formatos se utilizan en la tecnologa HDMI, pero de momento no son funcionales en el anlisis de la tecnologa artificial por su carga computacional. No obstante, es de suponer que los nuevos sistemas de vigilancia, trabajando sobre procesadores ms potentes, incluyan en su software procesos que trabajen con este formato de imagen digital.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
54 Este proyecto est diseado para recibir y devolver imgenes con formatos 24 bpp y 32 bpp, ya que son los ms comnmente utilizados en la actualidad en lo que se refiere a captura de imgenes. Estos son formatos que proporcionan toda la informacin del anlisis. Sin embargo, no se puede realizar este anlisis con imgenes de este formato ya que se podra comprometer la velocidad de procesado de la informacin.
Por este motivo, dentro de la consola slo se trabaja con imgenes en formato 8bpp o inferior. Al captar una imagen con formato superior a 8bpp, inmediatamente se lanza un mtodo que transforma las imgenes con este formato en su rplica en formato 8bpp, ganando una reduccin del consumo de memoria de un 300% o 400%, lo cual permite disponer de ms tiempo para implementar ms niveles de anlisis para la secuencia de imgenes. Esta transformacin de las imgenes permite trabajar con un formato definido y establece un estndar dentro del programa para trabajar con los filtros que se irn aplicando sucesivamente a las imgenes.
Tanto individualmente como por separado, los Bitmaps son analizados pxel por pxel, esto es posible nicamente si se descompone la imagen por completo. La descomposicin de la imagen implica que se debe trabajar con el nivel de la memoria para saber la informacin que contienen los pxeles y a la vez poder trabajar con ella. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
55 Acceso a memoria
La memoria de un ordenador es una serie finita de casillas que est ordenada como un vector lineal donde guardar la informacin. Toda la informacin con la que se trabaja en un ordenado reside dentro de su memoria, almacenada en transistores biestables (pueden almacenar el estado 0 1) conocidos como bits; los bits se organizan en series de ocho bits, estas zonas son conocidas como bytes o palabras. Estas palabras son series de unos y ceros ordenados de tal manera que mediante procesos informticos se puede recomponer una traduccin de la informacin analgica en formato digital.
Figura 4.4: Almacenamiento de una imagen PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
56 El sistema operativo de los ordenadores tiene mecanismos que protegen la memoria de la manipulacin incorrecta durante la ejecucin de los programas; sin embargo, los programas tienen implementados ciertos mtodos que les permiten acceder a la memoria del sistema para satisfacer las necesidades del programador. Gracias a estos mtodos es posible manipular la memoria de las imgenes de forma segura, sin borrar ni sobrescribir informacin vital que estuviera alojada cerca de la zona de memoria donde se encuentren las imgenes.
Gracias al mtodo LockBits se puede acceder a las zonas de memoria donde se encuentran almacenados los bytes que representan la informacin de los pxeles de las imgenes. De no utilizar este mtodo, los programadores no podran acceder a la memoria de las imgenes directamente; sin embargo, gracias a este mtodo se puede acceder a la informacin bit a bit, independientemente de la extensin del archivo de imagen. Esto permite a los desarrolladores trabajar con la informacin desde la aplicacin, no como un conjunto indisoluble, sino como una serie de parcelas de informacin que pueden ser procesadas por separado.
Mientras que una fotografa o imagen sobre un soporte fsico como el papel o sobre una pantalla puede ser fcilmente reconocible por cualquier persona, cuando se guarda una de estas imgenes en formato digital esta facilidad a la hora de identificar elementos se pierde.
En memoria, las imgenes son fragmentadas en parcelas de informacin ms pequeas denominadas pxeles y almacenadas en la memoria del ordenador como si se tratara de una serie de pequeas diapositivas. Por este motivo el desarrollador del programa debe disear e implementar unos algoritmos con los cuales se pueda acceder a la zona de memoria donde se encuentra la imagen, reorganizar la informacin de la memoria y recomponer la imagen.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
57 Tratamiento de las imgenes
Al acceder directamente a la informacin se puede trabajar con ella al nivel ms bajo, utilizando punteros que sealen directamente las zonas de memoria de los pxeles, pudiendo trabajar incluso con el valor numrico de los pxeles, esto permite al programador trabajar con los pxeles como si fueran una variable numrica, no como una variable que est guardando un color. Slo de esta forma ha sido posible aplicar los filtros de imagen necesarios para analizar las imgenes.
El acceso a la memoria ocupada por una imagen se hace gracias al mtodo LockBits, mtodo que proporciona un vector con todos los bytes de la imagen, lo que permite acceder a la informacin de la imagen desde un entorno de programacin. Como hemos visto en el punto anterior, la presentacin de la informacin con este vector podra dificultar al programador el diseo de los filtros que quisiera aplicar a la imagen ya que las imgenes no estn guardadas en memoria como lo estn en el formato analgico, esto es una gran diferencia con respecto a la vida real ya que en el formato digital la aplicacin de estos filtros es mucho menos intuitiva.
Sin embargo, gracias a los atributos de altura y anchura del Bitmap, se puede analizar la imagen como un mapa de bits, una cuadrcula que atraviese uniformemente la imagen transversal y longitudinalmente; la imagen se puede representar por una funcin del siguiente estilo:
f(x,y) donde x e y son las coordenadas del pxel el resultado f(x,y) de la funcin es el valor del color del pxel
Gracias al acceso pxel a pxel de la imagen, es posible realizar una serie de mediciones que permiten evaluar ciertas caractersticas de la imagen que se est procesando. El histograma de una imagen es la herramienta ms completa para evaluar la calidad de una imagen y por tanto valorar cuales son las transformaciones ms oportunas que se deben aplicar a la imagen para que sta sea ms fcil de analizar [WEB003]. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
58
El histograma de una imagen contiene la distribucin de los niveles de gris de la imagen, gracias al cual se pueden calcular la intensidad media o la dispersin de los valores de gris de la imagen. El objetivo es conseguir una imagen con un valor de dispersin lo ms grande posible, lo que se traduce en unos valores de gris distribuidos uniformemente.
Los histogramas de estas dos fotografas son muy diferentes, en la primera, el histograma es bastante plano, con los niveles de gris repartidos a lo largo de la escala. Sin embargo, en la segunda imagen el histograma es unimodal, con la mayora de los niveles de gris acumulados alrededor de un nico valor. Mientras que la primera imagen es candidata a seguir con el proceso de anlisis, la segunda debe ser refinada para optimizar su anlisis.
El objetivo del clculo del histograma de una imagen no es otro que obtener un elemento de referencia que permita a la inteligencia artificial determinar si la materia con la que va a trabajar est en ptimas condiciones o si por el contrario debe ser procesada, tanto para su uso por parte del sistema mismo o por parte del tcnico en seguridad que supervisar la consola.
Figura 4.5: Histograma de un retrato Figura 4.6: Histograma de un plano general PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
59 En el caso de que la imagen est en ptimas condiciones para ser analizada, se aplicarn entonces una serie de filtros con los que se obtiene una informacin concreta; por el contrario, si el anlisis del histograma as lo aconseja, se aplicarn otra serie de filtros para pulir la imagen y as obtener informacin de mejor calidad.
Al procesar una imagen puede que sea necesario o til refinar antes la imagen para obviar detalles que no sean importantes o agrupar la informacin para que sea ms fcil al ordenador resaltar los objetos ms importantes. Para refinar la informacin de imgenes se aplican los filtros de imgenes, estos filtros o efectos son operaciones matemticas que se aplican a los valores numricos de los bytes de los pxeles.
Un filtro es una funcin matemtica que se aplica a una imagen gracias a la descomposicin de la imagen en la funcin f(x,y). La operacin del filtro se puede representar por la siguiente operacin:
Ecuacin 4.1: Aplicacin de un filtro
Los filtros se pueden dividir en dos grandes grupos de filtros, los filtros de punto o los filtros espaciales [WEB003], esta distincin entre los grupos hace referencia al modo de calcular el valor del color de los pxeles de la imagen.
Los filtros de punto requieren conocer nicamente el valor de la intensidad de un solo pxel a cada paso, la transformacin se aplica pxel por pxel; una vez aplicada esta transformacin al pxel, ste ya no es necesario en el algoritmo.
El otro gran grupo de filtros est formado por los filtros espaciales, estos filtros tienen como objetivo modificar la composicin de la imagen en funcin de las distintas PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
60 agrupaciones de los pxeles; es decir, el color de un pxel se obtiene en funcin del valor de sus vecinos.
A continuacin se presentan aquellos filtros que han sido desarrollados y se utilizan en la consola del proyecto. Aunque estos filtros se aplican siguiendo una secuencia concreta dentro de la consola, en este captulo slo se presentan los efectos de los filtros sobre las imgenes y los algoritmos desarrollados e implementados dentro del prototipo.
La escala de grises
La escala de grises es un concepto que se emplea para definir a las imgenes en blanco y negro; puede que haya ms o menos tonalidades, pero los colores siempre son derivados del gris. Gracias a este filtro, es posible generar imgenes que mantengan la informacin bsica de las imgenes originales; se mantiene la silueta de las personas y los objetos que hay dentro de la imagen, pero sin el color de la imagen original.
Una de las mayores ventajas que ofrece el filtro de escala de grises es que permite reducir considerablemente la cantidad de memoria que ocupa una imagen. Mientras que una imagen con color ocupa al menos 24 bpp, que con una resolucin normal de 320 x 240 pxeles, implica un peso de 230400 bytes por imagen; sin embargo, una imagen de 8 bpp del mismo tamao ocupa 76800 bytes, tres veces menos. Este ahorro de memoria es todava mayor si el formato es de 32 bpp, lo cual implicara una reduccin del 400% de la ocupacin de la memoria.
El formato de 24 bpp genera una secuencia nica de 16 777 216 valores posibles para los colores de la imagen; no obstante, el sistema RGB est basado en la generacin de una imagen a partir de la superposicin de los colores azul, verde y rojo; Estas imgenes pueden descomponerse en tres funciones que acotan los valores de los colores azul, verde y rojo entre 0 y 256. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
61
Ecuacin 4.2: Descomposicin del sistema RGB
Para aplicar el filtro de escala de grises a la imagen slo se deben recorrer los bytes del vector de forma lineal, es decir, no hace falta saber cules son los pxeles que estn cerca de pxel que se est analizando. La nica consideracin que hay que tener es el formato de entrada de los datos; las imgenes de entrada pueden ser de formato 24 bpp o 32 bpp, esta diferencia de un byte es relevante as que se debe tener en cuenta a la hora de calcular el valor en gris del color del pxel ya que de tener un formato de 32 bpp, habra que saltar la casilla de memoria que contuviera la informacin del nivel de alfa del pxel.
A continuacin se presenta la frmula para transformar una imagen en color a una de escala de grises. Como el acceso a los bytes de la memoria es secuencial, aplicarla no es problemtico ya que slo hay que acceder a la memoria de la imagen original tres veces por cada pxel, el siguiente acceso a la memoria ser el acceso al byte azul del siguiente pxel y este paso define el comienzo de la siguiente iteracin. En Figura 4.7: Filtro de la escala de grises PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
62 caso de que el formato sea de 32 bpp, entonces hay que hacer un salto adicional para obviar la informacin que hay en ese byte.
Ecuacin 4.3: Aplicacin del filtro de escala de grises
El algoritmo implementado en el prototipo de la aplicacin transforma las imgenes con formato Format24bppRgb o Format32bppArgb; para ello, al recibir la imagen de mapa de bits, el proceso lee la cabecera del archivo y crea un archivo bmp con formato 8bbIndexed y dos punteros, un puntero con el cual selecciona la zona de memoria donde se encuentra almacenado el vector que contiene la informacin de los pxeles y otro que apunta al a zona de memoria vaca de la nueva imagen generada.
Dentro del bucle anlisis, el sistema lee los tres primeros bytes con el puntero (en caso de que la imagen tuviera un formato el sistema hara saltar un byte al puntero) y acumula los valores ledos en una nica variable, al finalizar la iteracin, el proceso divide el valor acumulado por tres y lo inserta en la zona de memoria a la que apunta el segundo puntero, inmediatamente despus, ste avanza una posicin dentro del vector de memoria de la nueva imagen. De esta forma se genera una nueva imagen con escala de grises sin desechar la imagen original.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
63
Figura 4.8: Diagrama de flujo del algoritmo de escala de grises
Gracias a la aplicacin de este filtro se consigue un ahorro de memoria terico del 300% o del 400% en el mejor de los casos ya que se transforma una informacin que inicialmente ocupa en espacio de 24 bpp o 32 bpp a un tamao de 8 bpp, lo cual es un tamao muy inferior. Esta reduccin del tamao no slo implica que se pueda PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
64 trabajar con un mayor nmero de cmaras de forma simultnea, sino que adems significa que el procesador tardar menos tiempo en terminar de analizar la imagen.
Figura 4.9: Aplicacin del filtro de escala de grises
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
65 Funcin de contraste
El contraste de una imagen es la diferencia entre niveles de gris claros y niveles oscuros; la tcnica de realce del contraste se basa en dividir el rango de niveles en tres grupos de valores, los grises claros, los grises intermedios y los grises oscuros y aplicar a cada uno de estos grupos una transformacin que proviene de una funcin lineal diferente para cada grupo.
Ecuacin 4.4: Aplicacin del filtro de contraste
Gracias a la aplicacin de esta tcnica, es posible expandir la dispersin de los niveles de gris a lo largo del histograma consiguiendo una imagen con unos colores ms definidos.
Figura 4.10: Anlisis para el filtro de contraste
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
66 Esta transformacin genera imgenes con ms calidad, adems, las transformaciones necesarias son ejecutadas por la inteligencia artificial si los parmetros de lectura del histograma as lo determinan.
Posterizacin La posterizacin consiste en separar todos los niveles de grises de la imagen en una serie limitada de zonas planas de valor constante. La asignacin del valor de un pxel a una u otra zona depende de su intensidad en la imagen original. El objetivo de este filtro es limitar el nmero de tonos que puede alcanzar en la nueva imagen, haciendo ms evidentes las superficies de la imagen, limitando de tal manera el nivel de detalle que pueden alcanzar las imgenes.
Gracias a la posterizacin las facciones de los individuos y las lneas que definen los contornos de los objetos son ms ntidas, de modo que identificar la naturaleza de los objetos que se encuentran en la imagen se vuelve ms sencillo.
Esta tcnica puede especialmente til en entornos donde el nivel de luz no influye demasiado, como en el interior de los edificios; gracias a la delimitacin de estas zonas, se pueden determinar los rasgos de la cara de una persona y por lo tanto llegar incluso a identificarla, como veremos ms adelante. Sin embargo, en el exterior, Figura 4.11: Anlisis de la posterizacin PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
67 la eficacia de esta tcnica puede ser mermada por la rpida variacin del brillo de la luz en las superficies y por la distorsin que esta variacin genera.
Ecuacin 4.5: Aplicacin del filtro de posterizacin
El algoritmo implementado en el prototipo del sistema genera una imagen nueva y dos punteros que apuntan inicialmente al principio de la zona de memoria de cada una de las imgenes.
Un puntero recorre todo el vector de informacin de la imagen para acceder al valor de gris de cada pxel para luego calcular el estrato de gris correspondiente. Una vez calculado este valor, el sistema lo asigna a la zona de memoria a la cual apunta el segundo puntero generado por el proceso, que recorre la imagen nueva en paralelo al puntero que apunta a la imagen original. Figura 4.12: Flujo de datos del proceso de posterizacin PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
68 Funcin Umbral
Una de las transformaciones ms sencillas que podemos aplicar a una imagen es la funcin umbral. El mtodo genera una imagen en dos tonos (blanco y negro) a partir de otra con mltiples niveles de gris, es decir, la salida es binaria. Puede afirmarse que la umbralizacin es en realidad un caso extremo de ampliacin de contraste ( x 1 = x 2 ; y 0 = y 1 = 0 ; y 2 = y 3 = L-1 ).
La expresin matemtica de esta transformacin es:
Ecuacin 4.6: Frmula de la funcin umbral
El umbralizado transforma el histograma de la imagen original en un histograma de dos puntos, con valores slo para el negro y el blanco. El valor de umbral B es el que sirve a la consola para calcular cuales son pxeles que cumplen las condiciones de transformacin.
La eleccin de B es uno de los mayores problemas de la funcin umbral, puesto que no se pueden dar unas reglas a seguir para calcularlo, cada imagen tendr uno o varios valores vlidos para B segn sea la segmentacin que se desee conseguir.
La funcin umbral es una de las ms importantes y sencillas tcnicas de segmentacin, puesto que en muchas aplicaciones de procesado de imgenes se desea dividir una imagen de grises en subregiones; sin embargo, en este proyecto el umbral no se ha definido de forma tradicional, sino que se ha implementado para ser utilizado en complemento de la funcin de posterizacin.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
69
La funcin de posterizacin delimita una serie de zonas de colores planos, el algoritmo diseado identifica los cambios de color entre estas zonas y dibuja un punto blanco en cada pixel donde haya identificado un cambio de color. De este modo se genera una imagen con la delimitacin de las zonas del mismo color.
Figura 4.13: Anlisis del filtro de la funcin umbral Figura 4.14: Binarizacin de la imagen original PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
70 Para implementar este algoritmo se desarroll un proceso que recorriera la imagen original generando dos punteros situados sobre zonas de memoria consecutivas y un tercer puntero que recorriera la imagen nueva en paralelo al puntero menos avanzado de los otros dos.
Si al comparar los valores de las zonas de memoria los valores no son iguales, el puntero que apunta sobre la zona de memoria de la nueva imagen escribe el valor correspondiente al blanco absoluto sobre el pxel donde se encuentra. Esta comparacin no se realiza si el puntero ms avanzado apunta a la primera posicin de una lnea de la imagen.
Figura 4.15: Flujo de datos del proceso de binarizacin PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
71 Algunos algoritmos espaciales [WEB003] tienen una fuerte carga computacional, en concreto aquellos algoritmos que sirven para definir con mayor precisin el contorno de los objetos de las imgenes. Debido a que esta precisin no es necesaria para el desarrollo de este proyecto y que la carga computacional que implica la implementacin de estos algoritmos es muy pesada, por lo que slo se ha incluido un nico filtro espacial.
Sin embargo, hay que tener en cuenta que la implementacin de estos algoritmos pueden ser el siguiente escaln para incorporar cmaras con tecnologa HDMI en los procesos de vigilancia en tiempo real ya que permiten compensar y definir mejor la informacin captada por las cmaras de HDMI, estas cmaras pueden alcanzar un nivel de detalle que sobrepasa al alcance de este proyecto.
Pixelado
El nico filtro espacial que ha sido desarrollado en este proyecto es el filtro de pixelado. Los filtros espaciales se basan en los valores de los pxeles que tiene a su alrededor el pxel que se est procesando para calcular el valor resultante. Estos filtros tienen una carga computacional muy importante y los resultados ofrecen una precisin que no es requerida para el desarrollo de este proyecto, por este motivo, el filtro del pixelado ha sido el nico filtro para el cual se ha desarrollado el cdigo que lo implemente en el prototipo del sistema.
El filtro del pixelado permite obtener una imagen difusa con respecto a la imagen original, no obstante, la imagen resultante mantiene el contorno bsico de los objetos de la imagen original. Este filtro permite analizar los elementos ms comunes de la imagen original, y aplicado a las imgenes de una secuencia, permite calcular los movimientos ms bsicos de los objetos.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
72
Figura 4.16: Aplicacin del filtro de pixelado
Adems, este filtro permite reducir la cantidad de informacin que se debe almacenar en memoria ya que el filtro del pixelado calcula el valor medio de gris de una zona de la imagen. Si el rea de pixelado es de 5x5 pxeles, entonces slo hace falta almacenar un valor por cada 25 pxeles de la imagen que se mostrar.
Ecuacin 4.7: Aplicacin del filtro de pixelado
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
73 El algoritmo desarrollado para implementar el filtro de pixelado dentro de las funcionalidades del prototipo accede a la informacin de la imagen suministrada y genera otra con un tamao ms reducido. Para calcular la media de los valores de las reas se emplea un vector con un tamao igual al nmero de pxeles de la imagen que se va a generar y dos punteros, uno apuntando hacia la primera posicin de memoria de la imagen suministrada y otro apuntando hacia la segunda imagen, la imagen que ser el resultado del filtro.
Figura 4.17: Esquema conceptual del filtro de pixelado
La codificacin de este filtro requiri desarrollar dos fases dentro del proceso, en la primera se acumulan los valores de los pxeles de la imagen y en la segunda fase se calculan y se cargan estos valores dentro de la imagen resultante.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
74
Figura 4.18.1: Flujo de datos en la fase de acumulacin del proceso de pixelado PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
75
Figura 4.18.2: Flujo de datos de la fase de carga del pixelado
En la primera fase del proceso dos bucles consecutivos que recorren los vectores donde se encuentra almacenada la informacin, gracias a estos bucles los punteros apuntan sobre las zonas de memoria correctas, adems se controla que los punteros no salgan de la zona de memoria con la que se trabaja.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
76 Mientras que el primer bucle sirve para acumular el valor de los pxeles por columnas, el segundo de estos bucles aade a los valores ya acumulados los valores de las filas correspondientes, terminando as la acumulacin de los valores de los pxeles de la misma rea.
Durante la segunda fase del filtro se recorre el vector generado en la primera fase; mediante otros dos bucles, esta vez anidados, se pueden cargar los valores almacenados en el vector (previamente se calcula el valor medio de cada pxel dividiendo el valor almacenado por el rea que se pretende ocupar con cada megapxel del pixelado) dentro del pxel correspondiente (cada uno de los bucles conserva la cuenta de las coordenadas del pxel en la imagen final).
Gracias a los filtros de imagen se puede refinar cualquier frame del video para que el resultado sea una imagen que realce la informacin que se quiere analizar. Una vez aplicados estos filtros, lo que podra denominarse como la primera capa de la inteligencia artificial, se procede a aplicar la segunda capa de inteligencia, un proceso segn el cual se procesa la informacin con una finalidad ms concreta, como detectar el movimiento de los objetos, evaluar dicho movimiento, o identificar los objetos de la imagen.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
77 Anlisis de las imgenes
Una vez se ha completado el refinamiento de la imagen recibida por la consola, se procede a su estudio desde el punto de vista de una secuencia de imgenes; es decir, se relaciona la imagen que se est estudiando con el resto de las imgenes del stream que recibe la consola.
El anlisis de la imagen actual se divide en dos, primero se analiza la imagen actual con respecto a una imagen de referencia establecida por la configuracin del sistema, y ms adelante con respecto a la imagen inmediatamente anterior de la imagen actual; estas dos imgenes servirn como referencia para establecer cambios en el instante actual con respecto a los instantes pasados y estudiar los movimientos de los objetos que originaron estos cambios.
Filtrado con la imagen de referencia
El registro de una imagen que sirva de referencia es vital para la video vigilancia automatizada; estas imgenes establecen una referencia para el anlisis del resto de las imgenes del video. Estas imgenes corresponden con el fondo de imagen que se pretende vigilar; es decir, representan el entorno que se desea vigilar sin objetos adicionales como personas o vehculos.
La finalidad de capturar una imagen de referencia es establecer un filtro para las siguientes imgenes; gracias a este filtro se pueden obtener imgenes que contengan nicamente aquellos objetos que se encuentren en movimiento en la escena sujeta a la vigilancia. Esta deteccin es posible mediante la comparacin de la imagen que se desea analizar con respecto a la imagen que se ha tomado como referencia. Se compara las imgenes pxel por pxel descartando aquellos que no han cambiado, gracias a este proceso, se consigue una imagen donde nicamente se PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
78 mantienen los pxeles correspondientes con la representacin de los objetos que hayan incurrido en la escena.
Esta tcnica presenta diversos problemas de implantacin; el ms importante de ellos es la variacin del brillo de las superficies debido a la variacin de la luz.
A lo largo del da, la luz solar vara en potencia y en ngulo de incidencia ya que la Tierra est en constante movimiento alrededor del Sol. Este fenmeno implica que la luz no es constante durante todo el da, lo cual hace variar los colores que capta la cmara. Como la comparacin de las imgenes se basa en comparar directamente los Figura 4.19: Aplicacin del filtrado pxel por pxel PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
79 pxeles de las imgenes, estas variaciones en el brillo de las superficies pueden implicar que el color captado para un mismo pxel sea distinto por la maana y por la tarde, mientras que la superficie que lo refleja sigue siendo la misma.
Este problema puede solucionarse de dos formas distintas; mediante la implementacin de un margen de filtrado en la consola o la actualizacin constante de la imagen de referencia.
El margen de filtrado permite obviar las ligeras variaciones del color. Si durante el anlisis de todos los pxeles de la imagen, se establece un rango de tonos alrededor del nivel de gris del pxel de la imagen de referencia, y el color del pxel de la imagen actual de la cmara se encuentra dentro del rango de tonos cercanos al color de su par en la imagen de referencia, entonces este pxel se establecer como no variante.
El mtodo de actualizar la imagen de referencia se basa en que el fenmeno de variacin de la luz durante el da es muy lento; las variaciones que se puedan dar en un lapso de tiempo pequeo pasarn desapercibidas en la consola. Si la consola actualiza constantemente la imagen de referencia que tiene del entorno que vigila, entonces las variaciones en la luz a lo largo del da no afectarn en gran medida y no contaminarn el anlisis de las imgenes.
El refresco constante de la imagen de referencia conlleva un peligro inherente, puesto que si la cmara no tiene disponible una imagen parecida a la imagen inicial (debido a que un coche haya estacionado dentro del entorno o que alguien haya depuesto un objeto en un entorno interior) la imagen que se capturar no corresponder completamente con la imagen de referencia que se tom inicialmente.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
80 Filtrado con la imagen inmediatamente anterior
El estudio de la imagen actual con respecto a la imagen inmediatamente anterior permite a la consola actualizar y calcular con mayor precisin los movimientos de estos objetos. El estudio de la imagen actual con respecto de la imagen inmediatamente anterior aade matices a la descomposicin del movimiento de los objetos.
Inicialmente, la consola puede comparar la imagen actual con la imagen de referencia para estudiar de forma bsica el movimiento de los objetos, pero el anlisis de la imagen anterior permite captar el movimiento de las partes en movimiento de los objetos.
Mientras que la comparacin de la imagen con la imagen de referencia siempre define el elemento en movimiento como un nico objeto indivisible, la comparacin de la misma imagen con respecto del fotograma inmediatamente anterior proporcionar una imagen donde slo se mantendrn aquellas partes del elemento que se encuentren en movimiento. De este modo la consola tendr la informacin suficiente para identificar los matices del movimiento de los elementos en desplazamiento.
Figura 4.20: Comparacin de dos fotogramas consecutivos PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
81 La operacin de comparar dos fotogramas consecutivos genera una imagen que a priori parece incompleta puesto que no todos los pxeles que variaron con respecto de la imagen de referencia se mantienen en esta nueva imagen. Esto se debe a que normalmente la superficie de los objetos suele ser de colores homogneos y a que el tiempo entre cada fotograma es mnimo; por lo tanto, aunque esta superficie se mueva por el espacio las variaciones del color en un lapso de tiempo tan pequeo slo son registradas en los bordes de la superficie en movimiento.
Figura 4.21: Secuencia de anlisis de los fotogramas
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
82
El ser humano no percibe los cambios entre dos imgenes consecutivas en una secuencia de 24 fotogramas por segundo; sin embargo, una mquina s puede analizar las imgenes y calcular la diferencia entre los valores de los pxeles que hayan cambiado. Los resultados de este proceso sern el punto de partida para el anlisis del movimiento de los elementos de la imagen.
Mejora de los filtros mediante el pixelado
Gracias a la comparacin pxel por pxel de las imgenes con la imagen de referencia y la imagen inmediatamente anterior se pueden obtener imgenes que contengan aquellos objetos que se encuentran en movimiento dentro de la imagen. No obstante, antes de trabajar directamente con la informacin se debe procesar sta para que su anlisis sea ms fcil para la consola.
Figura 4.22: Secuencia de anlisis de un fotograma con pixelado PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
83 Al aplicar el filtro del pixelado se agrupan los pxeles por reas, de este modo los resultados son ms evidentes y ms fciles de interpretar para el ojo humano. Adems, las imgenes generadas de este modo pueden ser vectorizadas, lo que implica una reduccin del uso de la memoria, haciendo que el uso de estas imgenes por la memoria sea ms rpido.
Cada pxel de una imagen normal ocupa un bit, sin embargo, gracias al pixelado, los pxeles de la misma rea de pixelado comparten el mismo valor de gris. Por lo tanto, si se aplica un algoritmo que permita registrar el valor de un rea de la imagen dentro de un vector de bits, se puede almacenar una imagen gracias a un vector de bits que tenga unas dimensiones ms reducidas que las dimensiones de una variable Bitmap estndar. En el caso de almacenar una imagen pixelada en reas de 5 pxeles de longitud, se obtiene una reduccin del 2500%, ya que slo se almacena un pxel de cada 25.
Figura 4.23: Secuencia de almacenamiento de una imagen pixelada PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
84
Gracias a este filtro, se almacena la informacin en un espacio de memoria ms reducido, lo que permite tener acceso ms rpido a la informacin, lo que redunda en la posibilidad de aplicar ms filtros a las imgenes que hayan sido pixeladas y mejorar as los resultados de procesamiento.
Adems, el uso del pixelado permite obtener informacin preliminar sobre el estado de los objetos de la imagen, gracias al pixelado se puede enmarcar aquellos objetos de la imagen que se encuentren en movimiento, haciendo ms evidente su posicin en la imagen.
Figura 4.24: Secuencia de localizacin de los elementos de las imgenes
Una vez el objeto en movimiento ha sido localizado dentro de la imagen, la consola genera una ocurrencia dentro de la base de datos con la informacin referente al objeto. Esta informacin puede incluir datos bsicos como la posicin del objeto o el nivel de color medio de la superficie; de este modo la consola puede identificar el objeto durante una secuencia de imgenes, no slo en una nica imagen.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
85 Aunque este proceso permite lanzar mensajes a los operarios acerca de la localizacin de los elementos en movimiento, los resultados que se pretenden alcanzar con la consola son ms ambiciosos ya que los objetivos de este proyecto incluyen el desarrollo de la inteligencia artificial necesaria para analizar las imgenes de una secuencia y estudiar el movimiento de los objetos que se localicen.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
86 Identificacin de categoras
Una vez localizados los elementos dentro de las imgenes, la consola inicia el proceso para el reconocimiento de estos objetos con el fin de discriminarlos para poder determinar su posible comportamiento dentro de un rango ms concreto de acciones.
El diseo y desarrollo de un sistema de inteligencia artificial que permita analizar y evaluar la naturaleza de los elementos de las fotografas es una tarea compleja; establecer los parmetros que definen la naturaleza de cada categora y desarrollar aquellos algoritmos que permitan identificar estos elementos caractersticos son las dos dificultades de esta fase de desarrollo.
Establecimiento de los criterios comunes de clase
Este proyecto se desarroll con el objetivo inicial de disear un sistema que pudiera analizar una imagen e identificar los objetos en movimiento. Esta identificacin deba ser efectiva para tres grupos distintos de elementos que pudieran encontrarse dentro del objetivo de la cmara de vigilancia; estas tres categoras son los las personas, los objetos, y dentro de la categora de objetos, separar los vehculos del resto de objetos comunes.
A priori, la categora que result ser ms fcil de definir mediante la implantacin de criterios comunes para todos los elementos de esa categora fue el grupo de los vehculos.
Este grupo de objetos tiene varios elementos en comn; las ruedas y las luces son elementos constantes que se incluyen en todos los vehculos que se desean incluir en esta categora. Adems, gran parte de estos vehculos tienen otros elementos en comn, pero que dependen de la categora especfica a la que pertenecen; las PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
87 furgonetas, los camiones y los coches, todos los vehculos con la carrocera cerrada, tienen el parabrisas como elemento comn. La matrcula depende de la categora a la que pertenezca el vehculo; las motocicletas slo tienen una placa en la parte posterior del vehculo, mientras que los vehculos con cuatro ruedas o ms tienen dos placas, una en la parte frontal y otra en la parte posterior.
En lo que respecta a la categora de personas, sta categora es mucho ms difcil de definir ya que las personas pueden adoptar una gran cantidad de posturas y aspectos que puede entrar en conflicto con la definicin de una ley estricta. Por ejemplo, si nos centramos en la simetra de la anatoma humana (el cuerpo humano tiene dos piernas, dos brazos, etctera), estos criterios sirven para identificar los elementos de esta clase slo si la cmara de vigilancia capta al individuo de frente, sin embargo, si la cmara capta nicamente el perfil del individuo, entonces estas reglas se vuelven inefectivas; por este motivo no se han desarrollado reglas especficas para identificar a las personas con este sistema de vigilancia.
Por ltimo, para la tercera categora, tampoco se han desarrollado reglas especficas ya que este grupo incluye a todos los objetos; esta categora agrupa tanto los objetos comunes en s (bolsas, libros, etctera) como aquellos elementos que todava no han sido analizados o que no han dado una identificacin positiva para una clase.
Al registrar un objeto porque ste se encuentra en movimiento se almacena en la base de datos como integrante de la categora de objetos comunes; este sistema permite mantener la informacin sobre los objetos que se han obtenido mediante al anlisis sin que por ello se clasifiquen en una categora incorrecta.
Los elementos que se encuentren en la categora de objetos comunes slo abandonarn esta categora si durante su anlisis la consola determina con total certeza o mediante la ayuda de un usuario del sistema que el objeto analizado pertenece a otra categora.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
88 Identificacin de los criterios de clase
La inteligencia artificial de la consola se basa en el establecimiento de una serie de reglas que definan cada categora y la conjuncin de estos elementos para formular hiptesis sobre la naturaleza de los objetos captados en la imagen.
Si durante el anlisis se cumplen varias de las reglas que definen una categora, entonces la consola deber consultar su configuracin y si las reglas que se cumplen son suficientes para declarar que un objeto pertenece a una categora concreta con total seguridad, entonces la consola actualizar el registro asignado al elemento. En este instante, el objeto dejar de estar considerado como un objeto comn para ser identificado como una persona o un vehculo.
Sin embargo, si al analizar un objeto la consola determina que las reglas que se cumplen no son suficientes para determinar que un objeto pertenece a una categora, entonces la consola lanzar un mensaje de confirmacin al usuario para que ste determine si la naturaleza del elemento analizado corresponde con aquella que la consola le propone.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
89 Estudio del movimiento
Las imgenes obtenidas a partir de la comparacin con la imagen de referencia y la imagen inmediatamente anterior y refinadas mediante el filtro del pixelado, contienen toda la informacin necesaria para la consola; adems, la informacin est almacenada de una forma intuitiva y fcil de manejar, lo que redunda en una mayor facilidad para disear los algoritmos que tendrn que procesarla para el estudio del movimiento de los objetos.
Adems de los filtros ya mencionados, para realizar ciertos clculos sobre las imgenes se generan replicas de estas mediante el filtro de la funcin umbral como parte de la operacin del proceso. Gracias a este filtro se obtiene una imagen en blanco y negro puro de la imagen original.
Esta imagen tiene un tamao de memoria muy reducido con respecto al resto de imgenes ya que la precisin del formato es bsica, cada pxel se representa nicamente mediante un bit; en conjuncin con el mtodo de almacenamiento de la vectorizacin, el filtro binario reduce el tamao en memoria al mnimo.
Figura 4.25: Funcin umbral de una imagen de objetos en movimiento PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
90 Aunque la definicin de la funcin umbral establece que el umbral puede ser un valor comprendido entre 0 y 255, en este proyecto el valor fijado para el umbral es 0, el negro absoluto, ya que ste es el valor asignado a aquellos pxeles que no representan pxeles de objetos en movimiento. De este modo se obtienen imgenes que contienen nicamente la silueta de los elementos en movimiento y adems que ocupan el espacio en memoria imprescindible.
Gracias a los procesos anteriormente descritos, es posible generar marcas en las imgenes que tracen el movimiento de los objetos durante todo su desplazamiento. A partir de la localizacin de los objetos en cada imagen se puede analizar el movimiento de los elementos durante toda la secuencia de imgenes analizando la evolucin de las marcas a lo largo del tiempo.
Al identificar la posicin de un elemento, se registra una ocurrencia de este en la base de datos; este registro contiene la informacin esencial de cada elemento. Aunque los datos que se guarden pueden modificarse, los datos principales son la posicin del elemento dentro de la pantalla y el valor de gris de la superficie que ocupa en la imagen.
Para estudiar e movimiento de los objetos dentro de una secuencia de imgenes se han desarrollado dos mtodos distintos. El primero es el estudio del movimiento mediante el seguimiento del centro del objeto durante la secuencia de imgenes; el segundo de los mtodos es la correlacin del centro del objeto y el centro de su zona en movimiento.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
91 Seguimiento del centro del objeto
El primer mtodo desarrollado para el estudio del movimiento de los objetos dentro de la secuencia de imgenes se basa en comparar la posicin de un objeto dentro de la imagen durante toda la secuencia de imgenes en las que este objeto aparece.
Figura 4.26: Secuencia de clculo del mtodo de seguimiento del centro
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
92 Este mtodo se basa en relacionar la posicin de un objeto dentro de la imagen con el centro del mismo objeto en la imagen inmediatamente anterior. A partir de la diferencia entre los puntos se puede obtener una magnitud que exprese la velocidad con la que se mueve el objeto y a travs del clculo de la diferencia entre las coordenadas de los puntos se puede establecer la direccin que est siguiendo el objeto.
Figura 4.27: Resultados del mtodo de seguimiento del centro
Gracias a este mtodo se pueden obtener resultados a partir de un nico anlisis de la imagen ya que se basa en comparar dos imgenes generadas mediante el mtodo de comparacin con la imagen de referencia.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
93 El mtodo de correlacin de centros
En el punto anterior se defina el mtodo de seguimiento de centros, que se basa en el mtodo de comparacin con la imagen de referencia. El mtodo de correlacin de centros utiliza los resultados del mtodo de comparacin con la imagen de referencia y la comparacin con la imagen inmediatamente anterior como base para calcular el movimiento de los objetos de la imagen.
El mtodo de correlacin de centros obtiene el centro de los objetos resaltados mediante el mtodo de comparacin con la imagen de referencia para establecer el punto central del objeto en movimiento. Para calcular el movimiento de este slido, el sistema calcula tambin el centro de la zona del objeto resaltada mediante el mtodo de comparacin con la imagen inmediatamente anterior.
Figura 4.28: Secuencia de clculo del mtodo de correlacin de centros PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
94 Gracias a este mtodo el anlisis del movimiento es ms rpido; el mtodo de seguimiento de centro utiliza como datos de entrada las imgenes de dos instantes consecutivos, mientras que el mtodo de correlacin de centros necesita dos imgenes de un mismo instante. Esto implica que gracias a al mtodo de correlacin de centros se puede calcular el movimiento de un objeto ms rpidamente.
Figura 4.29: Resultados del mtodo de correlacin de centros
Estos mtodos de clculo del movimiento permiten a la consola procesar las imgenes originales y devolver una imagen donde se representa la trayectoria y la velocidad de los elementos de la imagen; gracias a esta representacin los usuarios de este sistema puede identificar fcilmente aquellos objetos que estn en movimiento.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
95 Gracias a estos mensajes, los usuarios de este sistema de vigilancia identificarn con mayor rapidez la trayectoria de los objetos que se encuentren en movimiento. De este modo sern capaces de evaluar las situaciones comprometidas con una mayor anticipacin, lo que facilitar su labor y mejorar sus resultados.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
96
Captulo 5
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
97 Resultados
Durante el desarrollo del proyecto se han analizado algunos videos con los algoritmos explicados en el captulo anterior; a lo largo de esta serie de pruebas, los algoritmos han sido analizados y se ha llegado a algunas conclusiones acerca de ellos.
Los algoritmos que han sido analizados con mayor profundidad son aquellos que transforman la imagen original mediante un filtro como la escala de grises, la funcin umbral o el pixelado. La mayor parte de este anlisis se ha centrado en la secuencia en que se deban aplicar los filtros para que los resultados fueran lo ms satisfactorios posible.
Adems de los algoritmos de filtrado se han analizado los mtodos de clculo del movimiento; el anlisis de estos filtros se ha basado en evaluar los resultados obtenidos y comparar los resultados entre los distintos algoritmos.
De este modo se ha llegado a algunas conclusiones que se expresan en el captulo siguiente. Estas conclusiones sirvieron para reconducir la direccin de las investigaciones en algunos casos, y en otros dan pie a nuevas hiptesis sobre el desarrollo de los sistemas de vigilancia con base en inteligencia artificial.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
98 Mtodo de captacin de las imgenes
Las imgenes con las que se ha trabajado a lo largo de este proyecto provienen de la descomposicin en fotogramas de los vdeos seleccionados para las pruebas. De este modo se podan analizar los algoritmos sin que ello implicase la instalacin de una cmara de video usb.
Pese a las diferencias que esto pueda representar con respecto del sistema real, el objetivo de este proyecto es disear algoritmos que permitan analizar imgenes dentro de secuencias de video, por lo que el origen de las secuencias de vdeo tiene menos importancia en el desarrollo de este proyecto.
En una situacin real, el sistema de vigilancia se alimentar de imgenes provenientes de las cmaras de vigilancia mediante la configuracin de una conexin llamada stream; esta conexin entre la cmara de vigilancia y el nodo de procesamiento del sistema se establecer desde el programa, permitiendo la recepcin por parte de la consola de las imgenes generadas por la cmara.
Esta conexin almacenar las imgenes en la zona de memoria especificada por el programador en la configuracin de la conexin; del mismo modo, la aplicacin desarrollada separa los fotogramas de los videos y almacena las imgenes en una zona de memoria accesible al programa. En ambos casos, los procesos lanzados por la consola toman la informacin con la que trabajan de la memoria principal.
Figura 5.1: Conexin del equipo con la cmara mediante un stream PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
99 Filtros de imagen
A lo largo de este proyecto se ha desarrollado varios algoritmos que permiten a la consola transformar los fotogramas de un video de tal modo que el resultado sea una imagen fcil de analizar, ya sea porque la informacin es ms resumida y por lo tanto el menor rango de opciones permite a la consola calcular los resultados mejor o bien porque el tamao de las imgenes es menor y por lo tanto el procesador consume menos ciclos en analizarla.
Escala de grises
Los resultados esperados para este algoritmo eran que la imagen resultante ocupase un espacio de memoria 3 veces ms pequeo, sin embargo el resultado fue diferente.
Estos dos archivos provienen de la zona de pruebas de la memoria destinada a la consola. El archivo 18_move corresponde con la imagen filtrada del fotograma 18 de un video de pruebas con el formato 8bppIndexed y el archivo 18_move24 corresponde con la misma imagen pero con el formato 24bppRGB, el formato de salida de la consola. Como se puede apreciar en la imagen, los dos archivos tienen un tamao parecido, la diferencia de tamao del archivo apenas supera un kilobyte; por lo tanto, el resultado real no es el resultado esperado.
Figura 5.2: Resultados reales de la escala de grises PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
100 Este cambio en el resultado es sin duda provocado por el hecho de que adems de la informacin de las imgenes, estos archivos contienen informacin propia de este tipo de archivos guardada en la cabecera lo que implica que aunque la informacin especfica de cada archivo tenga un tamao diferente, los formatos de este tipo de archivos contienen informacin que ocupa un tamao mnimo para cualquier archivo.
Para modificar este hecho y llegar al resultado esperado se podra haber diseado una clase propia para almacenar los Bitmaps. En esta nueva clase habra de guardarse nicamente aquella informacin que fuera absolutamente necesaria para el desarrollo de los procesos de la consola. Adems del vector de bytes que contiene la informacin sobre la imagen, habra que incluir aquellos mtodos y atributos que resultaron necesarios durante el desarrollo de los procesos. Sin embargo esta nueva clase no se desarroll porque los resultados obtenidos con la clase predefinida eran ms que satisfactorios.
La funcin de contraste y el ecualizado
La funcin de contraste y la funcin de ecualizado son funciones que se utilizan para mejorar la percepcin visual de la imagen capturada, son filtros para ver ms ntidamente aquellos elementos de los fotogramas; aunque estas dos funciones tienen el mismo objetivo y trabajan con los mismos datos, no funcionan de la misma manera.
Mientras que las dos funciones trabajan con el histograma de la imagen que reciben, la funcin contraste necesita de unos argumentos de entrada para transformar la imagen inicial y que los resultados obtenidos sean ptimos; y la funcin de ecualizado slo necesita el histograma para generar los resultados.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
101 La funcin de contraste depende de una funcin compuesta por tres funciones lineal para generar la transformacin, los argumentos que generan estas tres funciones se obtienen a partir del anlisis del histograma de la imagen.
Sin embargo, la funcin de ecualizado realiza su transformacin de forma automtica, y aunque el clculo automtico de la funcin de transformacin es una ventaja con respecto a la funcin de contraste, los resultados son muy parecidos a la imagen original.
Aunque a priori los resultados de los filtros podran ser tiles para el desarrollo del proyecto, los resultados obtenidos en las pruebas ponan de manifiesto que la implementacin de estos algoritmos, que conllevaba el desarrollo de un proceso de clculo del histograma adems del desarrollo del programa que implementar el filtro, Figura 5.3: Anlisis de los resultados de la funcin de contraste Figura 5.4: Anlisis de los resultados del ecualizado PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
102 disparaban el tiempo de desarrollo y de proceso sin por ello asegurar un mejor rendimiento de la consola. Por este motivo la implementacin del ecualizado o la funcin de contraste no han sido llevadas a cabo.
La funcin umbral
Gracias al filtro de la funcin umbral se han podido generar imgenes que resaltaran la silueta de los objetos en movimiento usando el mnimo espacio de memoria; estas imgenes se utilizan como los datos de entrada de la mayora de los procesos de anlisis de la consola, as que son una herramienta indispensable de este proyecto.
Estas imgenes con las siluetas dibujadas permiten a la consola centrar el foco del proceso sobre las zonas resaltadas y realizar procesos complejos a partir de datos sencillos sobre zonas concretas de la imagen, lo que implica evitar ciclos de procesamiento superfluos.
Figura 5.5: Anlisis de los resultados de la funcin umbral PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
103 Por lo tanto, resultados obtenidos por el filtro de la funcin umbral han correspondido con las expectativas generadas durante el diseo del filtro ya que se esperaba que fueran la plataforma sobre la cual girase el anlisis de las imgenes de la consola.
Posterizacin y pixelado
Las pruebas realizadas con el filtro de la posterizacin combinado con la funcin de pixelado revelaron que las imgenes procesadas mediante combinacin eran ms fciles de analizar.
Aunque la funcin de escala de grises permita trabajar con imgenes de fcil acceso, la aplicacin de la combinacin de la funcin de la posterizacin y de la de pixelado refinaba estas imgenes de tal modo que permita la extraccin de la informacin mediante procesos sencillos.
Figura 5.6: Resultados de la posterizacin PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
104 Los dos filtros perseguan el mismo objetivo aunque su ejecucin fuera diferente; el filtro de la posterizacin permita agrupar la informacin de tal manera que las diferencias entre los tonos de los grises resaltaban de forma ms evidente, y el filtro del pixelado permita agrupar localmente esta informacin, de modo que la delimitacin de los cambios en las figuras de los elementos era ms sencillo y evidente. La conjuncin de estos filtros permite maximizar las posibilidades de las dos funciones siendo el resultado final ms contundente que los resultados parciales de cada funcin.
No obstante, aunque a priori los resultados de la funcin de posterizacin fueran excelentes, stos podran haber sido mejores. Como veremos ms adelante, la funcin de posterizacin podra haber tenido otra aplicacin ms dentro de la aplicacin; sin embargo, debido a la complejidad de las funciones de identificacin de los elementos de la imagen, esta otra aplicacin no se llev a cabo.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
105 Anlisis de las imgenes
Filtrado con la imagen de referencia
Los resultados obtenidos gracias a la comparacin de la imagen actual con la imagen de referencia son exactamente los esperados al disear este filtro.
Figura 5.7: Comparacin de la imagen actual con la imagen de referencia
Sin embargo, la dificultad de este filtro se manifest al establecer los criterios que serviran para determinar de forma automtica el momento de almacenamiento de una imagen como imagen de referencia.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
106 Las alternativas planteadas para el diseo de los mecanismos que llevaran a cabo esta tarea son disear un proceso que evale la imagen analizada, y si esta imagen es similar a la imagen de referencia entonces refrescar la imagen de referencia tomando la imagen analizada como nueva imagen de referencia. Las similitudes entre las dos imgenes deben ir en el sentido de que no tienen ningn elemento diferente pero sin embargo s varan algunos tonos de gris por cuestin del brillo de la luz sobre las superficies.
La otra alternativa se basa en disear un proceso que evale los elementos que se encuentran en memoria. Este proceso debe determinar si los elementos de la imagen que han sido almacenados se encuentran detenidos llevan detenidos el suficiente tiempo como para considerarlos parte del trasfondo de la imagen. Si este fuera el caso, entonces la consola debera recortar su silueta y aadir a la imagen de referencia de forma artificial o tomar una imagen donde este elemento fuera el nico elemento diferente con respecto de la imagen original; gracias a este proceso, en las sucesivas comparaciones con la imagen inicial este elemento ser tomado como parte del fondo de la imagen y as no ser causa de falsos resaltados.
Filtrado con la imagen inmediatamente anterior
Los resultados obtenidos gracias a la comparacin de la imagen actual con respecto de la imagen anterior fueron muy difciles de interpretar en primera instancia. Este mtodo generaba imgenes donde la silueta de los objetos representados en la imagen original era desdibujada, slo se representaban algunos pxeles, pero siempre se representaban aquellos pxeles que estaban situados en el contorno de los elementos que se encontraban en movimiento.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
107
Figura 5.8: Comparacin con la imagen inmediatamente anterior
Aunque los resultados obtenidos mediante la aplicacin de la comparacin con la imagen inmediatamente anterior eran difciles de interpretar, el resultado despus de aadir la aplicacin del filtro del pixelado a la secuencia fueron mucho mejores. Por este motivo se puede decir que los resultados iniciales de este mtodo fueron desconcertantes, pero que despus de analizar los resultados y plantear una solucin para mejorarlos, stos correspondieron con los resultados esperados en un primer momento.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
108 Identificacin de las categoras de objetos
En este punto se iban a describir y analizar los resultados obtenidos al implementar en la consola los criterios y los procesos que deban reconocer los elementos de las imgenes e incluirlos dentro de una de las categoras que serviran para clasificar los objetos de los vdeos de vigilancia.
No obstante, no hay resultados correspondientes a estos procesos ya que no han sido desarrollados en este proyecto. Debido a la complejidad de los procesos que se han diseado, adems de que algunos de estos criterios estuvieran incompletos, ha propiciado que no se haya desarrollado ninguno de los procesos correspondientes con este aspecto de la video vigilancia que fueron inicialmente propuestos.
An as, se expondrn algunos de los avances que se alcanzaron durante el diseo de estos procesos; aunque en la prctica estos mtodos no fueron puesto a prueba, el desarrollo terico de estos elementos tambin forma parte de este proyecto, y su inclusin en este documento parece pertinente ya que pueden plantear algunos problemas y soluciones sobre este punto en particular.
La posterizacin y la segmentacin por zonas de color
En puntos anteriores se presentaron los resultados obtenidos por mediante la aplicacin del filtro de la posterizacin y cmo estos resultados eran mejorados mediante la combinacin de este filtro con la funcin de pixelado de la imagen.
No obstante, el filtro de pixelado podra tener unas aplicaciones con mayor alcance en la fase de identificacin de los elementos en movimiento dentro de la imagen. Gracias a este filtro, las siluetas de los objetos en la imagen son resaltadas con mayor claridad, y la eleccin correcta del nmero de niveles de gris representa la PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
109 posibilidad de identificar aquellos detalles que pueden permitir a la consola identificar aquellos parmetros que identifiquen la categora de un elemento.
Durante el desarrollo de la consola se dise e implement un filtro que dibujaba la lnea que separaba las zonas de la imagen que tuvieran un tono de gris distinto. Este filtro se dise con el fin de poder identificar figuras geomtricas dentro de las imgenes que permitieran identificar los componentes de las distintas categoras (las ruedas como crculos, las matrculas como rectngulos, una nariz como un tringulo).
Figura 5.9: Resultados del filtro por zonas
Las imgenes superiores muestran una imagen filtrada mediante la funcin de posterizacin, la segunda imagen muestra el mismo instante de la secuencia de video filtrado por la funcin que separaba las zonas de gris; el objetivo inicial de esta prueba fue crear el entorno ideal para que el ordenador pudiera reconocer un crculo dentro de la bola de billar en movimiento.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
110 Identificacin de formas geomtricas sencillas
El algoritmo para el reconocimiento de figuras geomtricas sencillas (crculos, rectngulos y tringulos) dentro de la imagen se basaba en comparar los puntos del contorno de una figura generada e insertada artificialmente por la consola en el punto central del elemento en movimiento con los puntos del contorno del elemento real.
Figura 5.10: Diseo conceptual del filtro de reconocimiento de objetos
Aunque los diseos conceptuales sugeran que el desarrollo del filtro sera rpido y sencillo (se deba desarrollar un proceso que tomase la distancia en pxeles de las medidas de la silueta del objeto en la imagen binaria y despus generar e insertar artificialmente en la imagen la figura geomtrica mediante las instrucciones desarrolladas por la plataforma de desarrollo C#), durante las pruebas del mtodo con imgenes reales generaban dudas acerca de la eficacia del sistema.
Los problemas que aparecieron durante las pruebas del sistema con imgenes reales fueron de dos tipos diferentes; en la realidad las figuras sencillas se deforman y generan formas geomtricas que evolucionan con el tiempo, lo cual las hace difciles PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
111 de identificar durante una secuencia completa mediante un sistema automatizado. El otro problema proviene del hecho de que los objetos de la realidad no estn compuestos por elementos geomtricos sencillos, sino por formas geomtricas complejas.
Durante una secuencia de video los objetos que se identifiquen mediante la inteligencia artificial de la consola pueden modificar su forma debido a su movimiento. Estos cambios en las formas de los objetos implican que el mtodo desarrollado para reconocer figuras geomtricas sea incompleto ya que ste no est diseado para identificar estos cambios en las formas de los objetos reales; el mtodo compara los objetos reales con figuras sencillas, si un crculo se transformase en la secuencia de imgenes en una elipse (el caso que se dara al analizar la rueda de un coche durante un giro) el sistema no slo sera incapaz de identificar la nueva forma del objeto anteriormente captado, sino que adems dejara de identificar el elemento en movimiento con la figura original.
En una imagen real, donde los elementos en movimiento estn compuestos por distintas partes mviles, el mtodo de comparar las siluetas con formas geomtricas sencillas se mostr ineficaz para identificar aquello objetos que contienen una mayor cantidad de partes mviles. La composicin de estos elementos es tan compleja que la comparacin de su silueta con una nica figura geomtrica resulta insuficiente.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
112
Sin embargo, algunos mtodos de descomposicin de los elementos naturales son capaces de descomponer los elementos complejos en una serie de mltiples figuras geomtricas con el fin de evitar esta fluctuacin de las formas de los elementos de la imagen [ZHAO08] y [HSIE08].
Figura 5.11: Ejemplos de otros algoritmos PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
113 Estudio del movimiento
El estudio del movimiento ha sido el punto central del trabajo desarrollado en este proyecto de final de carrera. Las vas de desarrollo que se han seguido para generar la inteligencia artificial que controle la consola han basado sus clculos en los resultados obtenidos al calcular el centro geomtrico de los diferentes elementos de las imgenes.
Seguimiento del centro del objeto
El mtodo de seguimiento del centro del objeto calcula el centro del objeto a lo largo de la secuencia de imgenes donde es captado por la cmara. Gracias a esta secuencia de imgenes es posible determinar su posicin en la imagen y calcular el centro de gravedad del objeto; al comparar el centro de gravedad del objeto en un fotograma con el centro del fotograma consecutivo se obtiene una diferencia en el punto central del objeto, esta diferencia en las coordenadas se utiliza para mostrar por pantalla el vector de movimiento del elemento.
Aunque los resultados de este mtodo cumplen con las expectativas generadas inicialmente, los resultados obtenidos en algunos casos concretos revelaron que el mtodo no era perfecto ya que los resultados obtenidos no correspondan exactamente con la realidad.
Los resultados obtenidos mediante este mtodo revelan que el mtodo de clculo de centros, aplicado en los objetos situados en los laterales, obtena una posicin incorrecta del centro del objeto en movimiento.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
114 En el caso de los objetos en el borde de la pantalla, los datos para realizar los clculos para obtener el vector de movimiento eran incompletos, ya que mientras el objeto no estuviera por completo dentro de la escena, la consola tomaba el borde de la imagen como el contorno del objeto, provocando una falsa percepcin de la silueta del objeto.
Debido a los resultados obtenidos en estos casos concretos, se desarroll otro sistema de clculo del movimiento basado en el anlisis de una nica imagen, de este modo se minimiza el efecto del corte de la silueta del objeto por el borde de la imagen, Figura 5.12: Secuencia de estudio del mtodo de correlacin de centros PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
115 ya que el contorno del objeto no es la nica informacin que utiliza el mtodo de correlacin de centros.
El mtodo de correlacin de centros
Gracias a los resultados obtenidos por la aplicacin del mtodo de seguimiento en los casos del marco de las imgenes se revel que basarse en el contorno de los objetos en movimiento era insuficiente para obtener resultados fidedignos.
El mtodo de correlacin de centros es una evolucin del mtodo de seguimiento del centro de objetos ya que utiliza parte del sistema de clculo de posiciones utilizado en el mtodo anterior pero se basa en otros datos de entrada para obtener el vector de movimiento del objeto; al trabajar sobre un nico instante de la secuencia de movimiento para obtener el vector de movimiento se minimiza el fallo resultante de la imprecisin de la informacin sobre el contorno del objeto.
Aunque este mtodo tampoco trabaja con la informacin completa de la silueta del objeto, al comparar el centro de la silueta con el centro de la zona en movimiento se minimiza la influencia que ejerce el error en el resultado final.
Figura 5.13: Resultados del mtodo de correlacin de centros PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
116 Los resultados obtenidos por este mtodo avalan las mejoras realizadas en el mtodo de seguimiento de centros. Gracias al nuevo sistema de clculo del vector de posicin se dispone de un mtodo que puede modelar el movimiento de un objeto de forma ms fidedigna.
Adems de obtener mejores resultados en momentos concretos del anlisis, el mtodo de correlacin de centros es complementario al mtodo de seguimiento de centros. Aunque la informacin obtenida mediante el mtodo de correlacin de centros se cie ms a la realidad, el tiempo de proceso de este mtodo es mayor que el tiempo que se tarda en calcular los resultados mediante el mtodo de seguimiento de centros, por lo tanto, es recomendable utilizar el mtodo de seguimiento de centros como mtodo principal de estudio del movimiento y el mtodo de correlacin de centros como mtodo secundario ya que de este modo se optimiza el uso del procesador de la consola.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
117
Captulo 6
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
118 Anexos Planificacin
A lo largo de este proyecto se han sucedido distintas etapas durante las cuales naturaleza de las tareas realizadas ha variado desde la documentacin sobre el campo de estudio al desarrollo de procesos en lenguajes de programacin en alto nivel, pasando por etapas de aprendizaje de lenguajes de programacin o el diseo de soluciones.
A continuacin se presenta una relacin de la distribucin del tiempo aplicado al desarrollo de este proyecto de fin de carrera durante el curso 2008-2009 con las tareas desempeadas.
Figura 6.1: Planificacin del proyecto PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
119 La fase de documentacin
Para asegurar el mximo xito posible del proyecto es importante informarse sobre los avances ms recientes en los distintos campos de conocimiento que puedan incluirse dentro del alcance del proyecto.
Hay distintas fuentes que pueden ser consultadas, las fuentes comunes como Internet o las bibliotecas. Adems de estas fuentes se pueden consultar otras ms especializadas como las bibliotecas de artculos de las universidades u otras comunidades; los tutoriales de las prcticas y los apuntes de las asignaturas de las universidades pueden ser tambin vas con las que comprender mejor el campo de estudio.
Adems de los apuntes de las asignaturas de las universidades, las referencias de este proyecto provienen de ScienceDirect, una biblioteca de artculos generados por la comunidad cientfica. Gracias a los artculos de esta comunidad se han podido comprender los mtodos empleados para el estudio de la visin artificial y ciertos aspectos del estudio del movimiento de los objetos.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
120 El desarrollo de la aplicacin
El desarrollo de la aplicacin se ha realizado mediante la metodologa extrema, una metodologa basa el desarrollo de aplicaciones en el diseo de prototipos. Esta metodologa basada en descomponer el desarrollo total en prototipos ms pequeos pero funcionales optimiza el uso del tiempo disponible para desarrollar la aplicacin.
Al generar un prototipo al inicio del desarrollo, y despus ampliar las funcionalidades de este prototipo durante el desarrollo, se pueden obtener resultados paulatinamente, y de este modo se puede ejercer un control sobre el desarrollo del proyecto; mientras que con la metodologa escalonada, el tiempo de desarrollo de la aplicacin puede verse comprometido por retrasos en las fases anteriores, lo cual puede resultar en una falta total de resultados prcticos si los plazos de entrega no pudieran ampliarse.
Por este motivo si se dispone de poco tiempo para el desarrollo del proyecto, la metodologa extrema es la mejor opcin para planificar el desarrollo de la aplicacin ya que permite al programador obtener resultados desde las fases iniciales y adaptar la solucin a medida que se analizan los resultados de las fases anteriores.
La elaboracin de la memoria
Para asegurar la mxima fidelidad en la transcripcin de las ideas desarrolladas en el proyecto es importante que el autor confeccione unos esquemas con los puntos ms importantes del proyecto para ampliar su explicacin en el desarrollo del proyecto. Es importante transcribir las ideas desarrolladas completamente una vez se han estudiado todos los puntos del esquema antes de comenzar con el desarrollo de otros puntos de inters del proyecto.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
121 Durante la elaboracin de la memoria es importante establecer hitos con los cuales asegurar el control del desarrollo de la informacin escrita. Es importante tambin que estos hitos establezcan fechas lmite de objetivos realizables, de este modo tanto el cumplimiento de los objetivos como la no realizacin de stos pueden representar una motivacin importante durante el desarrollo del proyecto.
Algunos de los hitos que se establecieron para controlar el documento escrito fueron los siguientes:
- 10 de Abril 2009: 1 chequeo del proyecto (15% del escrito final). - 25 de Abril 2009: 2 chequeo del proyecto (30% del escrito final). - 10 de Mayo 2009: 3 chequeo del proyecto (60% del escrito final). - 17 de Mayo 2009: 4 chequeo del proyecto (90% del escrito final). - 20 de Mayo 2009: 5 chequeo del proyecto (100% del escrito final).
Durante el desarrollo de la memoria del proyecto se establecieron los hitos de forma gradual ya que de este modo se establece un sistema de trabajo con el cual se pueden transcribir las ideas desarrolladas cumpliendo los objetivos establecidos desde el principio de la elaboracin de la memoria y de este modo adquirir fluidez en la explicacin de los puntos del estudio con las partes de la memoria ms sencillas para despus explicar con ms soltura y mejor estilo los puntos ms complejos de la memoria.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
122 Estimacin del coste econmico del proyecto
Coste de los recursos humanos
Para el desarrollo de este proyecto hizo falta invertir tiempo en un curso de iniciacin a C# y manejo de bases de datos con SQL, as como realizar trabajo de documentacin, anlisis y programacin.
Tanto los cursos de iniciacin como las fases de desarrollo de la aplicacin fueron sufragados mediante la beca de colaboracin con la entidad externa a la universidad; sin embargo, las horas de trabajo con la entidad externa estn limitadas y se tuvieron que emplear horas extras a las convenidas en la beca.
Los costes inherentes a estas fases se especifican en la siguiente tabla:
Tabla 6.1: Costes asociados a los elementos de recursos humanos
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
123 Costes software
Durante el desarrollo de este proyecto se utilizaron distintos recursos software, recursos como la plataforma de desarrollo Visual Studio 2008 o la suite Microsoft Enterpise 2007.
Al ser productos del mercado cuyo usufructo est acotado en el tiempo de dos formas posibles, se ha especificado la naturaleza del uso de los programas. Los costes imputables a estos productos pueden representar el coste de la licencia del programa por un ao o la amortizacin proporcional relacionada al uso del producto durante un ao si el pago de ste implica su uso durante un periodo superior a un ao.
En el caso de las licencias para ms de un ao, se ha establecido que el tiempo de amortizacin del programa es de cinco aos ya que los programas software suelen beneficiarse de un reciclaje constante por parte de los proveedores, lo que implica que la renovacin de los activos de una empresa con fines de lucro es una medida adoptada por la mayora de la empresas del mercado.
La descripcin detallada del coste imputable a los productos software utilizados durante el proyecto son los siguientes:
Tabla 6.2: Costes software del proyecto PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
124 Costes hardware
Para el desarrollo de este proyecto se utilizaron distintos recursos tangibles; los recursos hardware, tanto para el diseo de los programas de la aplicacin como para la elaboracin de la memoria, su almacenado y su impresin, o los recursos consumibles de oficina como cuadernos de notas, hojas donde imprimir los cursos de aprendizaje o los escritos de los proyectos de investigacin.
Al igual que los recursos software, los recursos tangibles tienen un tiempo de consumo acotado. Los consumibles de oficina tienen una duracin de un ao, por lo que la amortizacin imputable de estos productos es directamente su coste en el mercado, mientras que los equipos como los porttiles o las impresoras pueden durar ms tiempo y por lo tanto su coste se reparte en un lapso de tiempo mayor, dividiendo su coste en amortizaciones anuales de cuanta inferior.
La suma total de los costes de recursos humanos, los recursos software y los costes de los recursos hardware pueden dar una idea aproximada del coste total del proyecto, aunque este valor no es la cuanta exacta del coste del proyecto ya que en el desarrollo de esta aplicacin no se han imputado ciertos elementos como las cmaras Tabla 6.3: Costes hardware del proyecto PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
125 de vigilancia o las infraestructuras de la empresa colaboradora. No obstante, el coste total estimado del proyecto se puede ver en la tabla xxx.
Como se puede apreciar en la tabla xxx, el coste del desarrollo del proyecto hasta la fecha asciende hasta los 5500 , la mayor parte de este coste se imputa a los recursos humanos; sin embargo, si este proyecto se hubiera realizado sin una beca, el coste del mismo proyecto hubiera sido muy superior (el salario de una hora de trabajo para un becario es casi una dcima parte del coste imputado por el trabajo de un programador en nmina).
La estimacin del porcentaje del proyecto final comercializable se encuentra en torno al 45 %, lo que implicara que la aplicacin final costara alrededor de 12000 , un precio muy razonable teniendo en cuenta que la aplicacin final sera a media y podra implementarse en sistemas de seguridad para realizar una vigilancia semiautomtica.
Tabla 6.4: Costes finales del proyecto PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
126 Conclusiones
Durante el desarrollo del proyecto de fin de carrera se aplican todos los conocimientos adquiridos a lo largo de los aos de la carrera; el proyecto de fin de carrera es ante todo un trabajo con una funcin integradora de todas las asignaturas que se han estudiado durante la carrera, por este motivo el alumno debe cuidar al mximo cada aspecto del trabajo.
Para el desarrollo de este proyecto se han aplicado principalmente los conocimientos adquiridos en las asignaturas de programacin, tanto en las asignaturas de programacin con lenguajes de alto nivel como Java como con los lenguajes de bajo nivel como C, ya que durante el desarrollo del proyecto se han utilizado bsicamente punteros para el manejo de la informacin. Sin embargo, para completar el proyecto tambin se han utilizado algunos conocimientos adquiridos durante las etapas iniciales del mismo.
Hay etapas del proyecto que son muy diferentes entre s, etapas como la fase de documentacin, en la cual el alumno debe extraer y comprender estudios y avances realizados por otros profesionales especializados, o la etapa de diseo, donde su iniciativa y sus capacidades creativas le permitirn disear una solucin original que sea funcional o la etapa del desarrollo, durante la cual el alumno debe demostrar su disciplina a la hora de desarrollar nuevas soluciones para los problemas establecidos.
Para garantizar el xito en el desarrollo del proyecto se han establecido una serie de hitos mediante los cuales se poda controlar el desarrollo de la aplicacin y de la memoria del proyecto. El establecimiento de estos puntos de control ha sido una parte compleja del proceso de creacin del proyecto ya que los hitos tienen en realidad una doble funcin; principalmente sirven para controlar el desarrollo del proyecto, pero adems permiten evaluar el criterio del alumno sobre la capacidad de juzgar tanto el trabajo realizado como el ritmo de trabajo.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
127 Sin embargo, algunos de los puntos del desarrollo escaparon a la clasificacin, algunas etapas del desarrollo presentaron dificultades. La primera gran dificultad que se afront durante el desarrollo fue el establecimiento de los filtros de imagen. Para aplicar estos filtros la consola del prototipo deba acceder a la zona de memoria de cada imagen, lo cual era sencillo una vez se descompona la imagen y se utilizaban los mtodos proporcionados por la plataforma de desarrollo de C#.
Sin embargo, los resultados obtenidos gracias a estos mtodos no cumplan con los requisitos establecidos para el prototipo, el tiempo de respuesta era muy superior al tolerable ya que la consola se mantena en espera mientras se aplicaba el filtro. Por este motivo se tuvieron que cambiar los mtodos de acceso a la cabecera del archivo y acceder directamente mediante punteros a la zona de memoria de la imagen.
Gracias a este cambio en el proceso de acceso a la imagen se mejoraron los tiempos de procesado ya que la consola pas a ser capaz de aplicar varios filtros sobre una imagen y generar una nueva imagen durante un lapso de tiempo inferior a dcimas de segundo, el tiempo esperado y gracias al cual se podan cumplir el resto de especificaciones del prototipo del sistema de vigilancia.
Una vez solventados los problemas de desarrollo, el prototipo de la aplicacin estaba operativo. Una vez desarrollado por completo, la consola poda abrir un video, descomponerlo en imgenes y aplicar una serie de filtros sobre las imgenes por separado y adems relacionar las imgenes dentro de una secuencia para obtener resultados sobre el movimiento de los objetos presentes en el video original. Estos resultados se presentaban en otro archivo de video con un tiempo de respuesta aceptable.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
128 Apndices
En este punto del captulo de los anexos se presentan temas relacionados con el tema principal del estudio del proyecto que han sido incluidos por su relativa cercana al tema principal o su inters general.
Los dos temas que se tratan en esta parte son la implementacin de la aplicacin desarrollada en sistemas con cmaras de vigilancia mviles, donde se especificarn las caractersticas de estos sistemas y sus dificultades inherentes para la instalacin del sistema desarrollado; el otro tema que se aborda en este punto de la memoria son los sistemas de reconocimiento facial, estos sistemas artificiales permiten reconocer las caras de las personas y por lo tanto su implementacin en los sistemas de vigilancia puede representar un avance importante en la eficacia de los sistemas de este campo.
Sistemas con cmaras de vigilancia dinmicas
Los sistemas de seguridad con cmaras de vigilancia integradas disponen de unos dispositivos que vigilan el entorno mediante una rotacin programada del foco de la cmara. Estos sistemas permiten optimizar el uso del dispositivo ya que la misma cmara de vigilancia permite disponer de una visin ms amplia del entrono.
Sin embargo, estos sistemas tienen un problema inherente a su naturaleza, el movimiento de estas cmaras provoca que se creen lagunas de informacin de momentos concretos de la vigilancia que son conocidas como ngulos muertos. Estos ngulos muertos tienen su origen en una alineacin concreta de las cmaras de vigilancia durante un corto lapso de tiempo, durante ese tiempo, los focos de las cmaras no vigilan una zona del entorno, creando una brecha en la seguridad que pudiera ser registrada y utilizada por elementos externos al sistema.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
129
Aunque las cmaras de vigilancia tienen estas desventajas, conviene recordar que de este modo se puede optimizar la utilizacin del dispositivo empleando un nico elemento de seguridad para dar cobertura a una zona de terreno ms amplia. Adems, el problema de las lagunas de informacin puntuales puede solucionarse acelerando el ritmo con que la cmara rota sobre su eje.
Sin embargo, existen otras soluciones con las que paliar este problema; si la cmara de vigilancia C2 de la figura xxx tuviera implementado un sistema que le permitiera generar un ritmo de rotacin y un acotamiento del entorno aleatorios, entonces los ngulos muertos del sistema variaran constantemente, impidiendo a los elementos hostiles al sistema explotar la pauta de los fallos del sistema.
Adems de la pequea inteligencia artificial mencionada en el punto anterior, los sistemas de video vigilancia con cmaras mviles pueden integrar la aplicacin desarrollada a lo largo de este proyecto, sin embargo habra que incluir algunas variaciones para los algoritmos desarrollados.
Figura 6.2: Funcionamiento de las cmaras de vigilancia mviles PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
130
Aunque los algoritmos de ms bajo nivel, como los de procesado de la imagen, no se veran afectados por el cambio del tipo de cmara de vigilancia, los algoritmos que emulan una tenue inteligencia s se veran afectados y por lo tanto tendran que ser remodelados; los algoritmos de filtrado por la imagen de referencia y filtrado por la imagen inmediatamente anterior seran los principales afectados, pero tambin los algoritmos de deteccin de movimiento.
En el caso del algoritmo de filtrado por la imagen de referencia habra que reconfigurar el algoritmo para que no tuviera una nica imagen de referencia, sino toda una serie de imgenes que representaran el entorno a lo largo del recorrido completo de la cmara. Una vez se hubiera construido la biblioteca de las imgenes del recorrido de la cmara, la consola podra comparar la imagen del momento actual en funcin de la fraccin de segundo en la que se encontrara el video.
Figura 6.3: Biblioteca de imgenes de referencia de una cmara mvil
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
131 Gracias a biblioteca de imgenes sera posible introducir un proceso que determinara cual sera la imagen de referencia que corresponde con la imagen actual de la cmara de vigilancia. Este proceso debera determinar mediante una ecuacin la imagen de referencia que utilizara el filtro por imagen de referencia para comparar las dos imgenes.
Para implementar este algoritmo dentro de un proceso de la consola, habra que descomponer el video de referencia en una secuencia con un nmero entero de frames. Adems, habra que inicializar un contador para cada una de las cmaras de referencia que almacenara el valor del frame actual para poder compararlo con el nmero de frames totales almacenados en la biblioteca y entonces obtener la imagen de referencia con la que finalmente sera comparado.
Ecuacin 6.1: Ecuacin de bsqueda en cmaras mviles
Esta frmula tiene dos variaciones porque las cmaras mviles tienen dos estados posibles, el primero es el estado durante el cual la cmara se dirige desde la posicin inicial hasta la posicin final de vigilancia, el segundo estado es el que vive la mquina cuando vuelve desde la posicin final hasta la posicin inicial. En la figura xxx el estado inicial estara comprendido entre el momento t0 y el t1 y el segundo estado se ubicara entre el momento t1 y t0 del ciclo.
Una vez implementados estas frmulas en los algoritmos, el algoritmo de filtrado mediante la imagen de referencia tendra la informacin necesaria para PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
132 elaborar los mismos resultados que en el caso de una cmara de vigilancia esttica. Sin embargo, la biblioteca de imgenes de referencia no tendra ninguna utilidad en el caso del filtro mediante la imagen inmediatamente anterior.
El filtro de la imagen inmediatamente anterior sera muy difcil de implementar en este caso ya que la relacin entre las dos imgenes consecutivas no es directa como en el caso de las cmaras de vigilancia estticas. En este caso, habra que desarrollar un algoritmo que modelara las variaciones en la relacin de las imgenes consecutivas y relacionar los pxeles de las dos imgenes mediante estos algoritmos para descartar aquellos pxeles que corresponden con los pxeles de la imagen anterior traslados mediante los vectores resultantes de este algoritmo.
Para implementar este algoritmo habra que desarrollar un proceso que localizara puntos concretos en las imgenes para despus buscar los puntos obtenidos en la imagen anterior y calcular el vector de movimiento de las parejas de puntos. En cuantos ms vectores fueran calculados, mayor precisin se obtendra en la estimacin de la posicin de pxel de la siguiente imagen y por lo tanto mayor sera la verosimilitud de los resultados obtenidos.
Mediante la implementacin de estos dos procesos, los mtodos de filtrado de la imagen podran reutilizarse en este tipo de cmaras de vigilancia; no obstante, habra que realizar una ltima modificacin a los algoritmos del sistema. En el caso de Figura 6.4: Clculo del vector de movimiento de las cmaras mviles PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
133 los algoritmos de clculo de movimiento, habra que reutilizar el algoritmo de compensacin de movimiento explicado en el punto anterior.
Gracias al clculo realizado por el algoritmo de compensacin del movimiento de la cmara, sera posible reducir las impresiones en el clculo del movimiento median los algoritmos desarrollados para la consola. Debido al movimiento de la cmara, el clculo del movimiento podra dar un resultado impreciso, no obstante, este resultado podra refinarse si se eliminaran las imprecisiones sumando el vector de movimiento obtenido al vector de movimiento de la cmara que corresponda.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
134 Reconocimiento facial
Actualmente existen distintos programas relacionados con el reconocimiento facial de los individuos mediante el procesamiento de una secuencia de video [DANS09]. Estos dispositivos se desarrollaron con el fin de proporcionar un nivel adicional de seguridad adicional a los entornos sensibles.
Estos programas buscan los puntos de referencia de la cara y otras zonas del cuerpo para generar marcadores con los que medir las distancias entre estos puntos. La ciencia que estudia la localizacin de estos puntos de referencia y la medicin de las distancias entre ellos se llama Biometra y su finalidad es establecer unos estndares de medicin de las variables del cuerpo humano (establecer relaciones entre tamao, altura, peso sexo, edad, etctera). Gracias a la comparacin de los resultados con los registros almacenados en las bases de datos, los programas pueden realizar una estimacin sobre la identidad de la persona que se est analizando.
Las aplicaciones de estos programas en el mbito de la seguridad exigan unos requisitos de acierto muy elevados, pero adems los requisitos establecan la dificultad aadida de que estos resultados se deban obtener mediante el anlisis de secuencias de video. Este requisito en particular es muy difcil de implementar ya que si la persona analizada se encuentra de perfil, la informacin suministrada por las cmaras de vigilancia es incompleta, y por lo tanto el acierto total es casi imposible.
Figura 6.5: Comparacin de caras mediante la biometra PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
135 Los resultados obtenidos gracias a los programas desarrollados no fueron tan espectaculares como se esperaban (las identificaciones correctas slo suponan un 53% de las caras procesadas); estos mediocres resultados fueron causados por que los sistemas de reconocimiento eran incapaces de procesar las imgenes en movimiento que generaban los videos de vigilancia.
No obstante, cuando el mbito de aplicacin de estos programas cambi, su rendimiento se mejor considerablemente. Los programas desarrollados para el reconocimiento facial en la vigilancia fueron aplicados a sistemas comerciales, sistemas que tienen un nivel inferior de requisitos que cumplir, y que por lo tanto el bajo rendimiento demostrado en labores de vigilancia no influa en su aplicacin en otros mercados.
Una de las aplicaciones de estos programas es el reconocimiento facial para permitir a un usuario de un ordenador registrarse en su mquina y empezar una sesin con ella. Toshiba es una de las marcas de fabricantes que ya ha implementado este sistema de reconocimiento facial en sus ordenadores [WEB003].
Otras empresas del sector han desarrollado sus propios programas de reconocimiento facial, y aunque a priori las funcionalidades de stos deberan ser las mismas, las empresas desarrolladoras los utilizan de modo distinto. Picasa I, la aplicacin desarrollada por Google, analiza las imgenes almacenadas en servidores para determinar si las caras de las personas que salen en las fotos coinciden con la cara de los famosos en algn rasgo; sin embargo, para utilizar este programa hay que registrarse y relacionar a la persona de la fotografa con una direccin email.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
136
iPhoto es la opcin de Apple, este programa permite analizar las fotos de un usuario sin que stas deban estar almacenadas en un servidor externo a la mquina del usuario; adems, tampoco debe relacionarse la cara procesada con una direccin de correo electrnico.
Las diferentes vas de utilizacin de un producto con las mismas funcionalidades a generado ciertas dudas sobre la legitimidad del reconocimiento facial puesto que si ste es utilizado de manera incorrecta, se podra dar el caso de generar una besa de datos con personas que no fueran usuarias de los productos de Google.
Figura 6.6: Comparacin de las facciones faciales con fines de entretenimiento PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
137 An as, la tecnologa de reconocimiento facial ha sido desarrollada por otras firmas tambin [MUO09]; Yahoo se ha asociado con Comel para desarrollar una aplicacin que permita analizar los rasgos de los individuos para generar anuncios personalizados. Esta tecnologa lleva el marketing hasta un horizonte mucho ms amplio ya que de este modo es posible asegurar un mayor xito con el lanzamiento de cada anuncio.
La utilizacin de estas aplicaciones dentro del marketing implica la invasin de los derechos de intimidad de las personas, por este motivo es necesario crear un organismo internacional que regule el lmite de estas aplicaciones. Es importante asegurar que las nuevas tecnologas no sean fuente de desconfianza por parte de los usuarios finales. Una buena poltica, adoptada por el sistema desarrollado por Yahoo- Comel, es borrar la imagen almacenada despus de emitir el anuncio y sin embargo, almacenar la edad y el sexo de la persona para un posterior uso de la informacin mediante tcnicas estadsticas.
Para cumplir con los objetivos establecidos al principio del desarrollo de este proyecto, se realiz un intento de desarrollar un proceso que identificara los objetos captados por la inteligencia artificial en la pantalla.
Figura 6.7: Posibles aplicaciones del reconocimiento facial en el marketing PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
138
Figura 6.8.1: Salida de las pruebas de posterizacin
Para conseguir con xito este objetivo se desarroll un filtro que se utilizara junto con el filtro de posterizacin para definir las zonas existentes en la pantalla. Este filtro realza las lneas de divisin entre los distintos tonos de gris de las imgenes del filtro de posterizacin. La finalidad de este filtro consista en obtener una imagen con las figuras sencillas que compusieran la imagen real; de este modo se podra analizar la imagen generada para estudiar la composicin de las figuras y obtener los patrones que compusieran las figuras ms complejas.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
139
Tal y como se puede apreciar en las imgenes figura 6.8.1 y figura 6.8.2, la combinacin de los dos filtros proporciona una imagen en la cual se intuye la informacin original; no obstante, los intentos de analizar estas figuras mediante logaritmos aplicables mediante los procesos de la consola no dieron resultados positivos ya que la informacin final era demasiado voluble como para establecer los patrones que definiran los algoritmos de estudio.
Figura 6.8.2: Pruebas del filtro de zonas PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
140 Bibliografa Libros:
[FOXA07] El libro de Visual C# 2005 James Foxall, Ediciones Anaya Multimedia , 2007
[BARR01] Metodologa del anlisis estructurado de sistemas , 2 Edicin Jess Barranco de Areba, Publicaciones de la Universidad Pontificia Comillas, Madrid, 2001
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
141 Proyectos fin de carrera y tesis doctorales:
[OTE02] Juan Jos Otero Gmez Director: D. Daro Maravall Gmez-Allende Modelo interpolativo punto- superficie para calibrado de cmaras en Visin Artificial Departamento de Inteligencia Artificial, Universidad Politcnica de Madrid.
[PFC01] Nodo IP de visin para la vigilancia remota de eventos contaminantes en tiempo real. Este proyecto presenta un software capaz de vigilar un entorno e identificar elementos agresivos para este entorno como el fuego o la polucin.
[MERY04] Domingo Mery Visin por Computador Departamento de Ciencia de la Computacin, Universidad Catlica de Chile, Santiago de Chile.
[GONZ06] Grupo de Investigacin EDMANS Ana Gonzalez Marcos, Francisca Javier Martnez de Pisn Ascacbar, Alpha Vernica Perna Espinosa, Fernando Alba Espinosa, Manuel Castejn Limas, Joaqun Ordieres Mer, Eliseo Vergara Gonzlez. Tcnicas y algoritmos bsicos de visin artificial Universidad de la Rioja, 2006.
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
142 Ensayos:
[CORR09] J.A. Corrales, P. Gil, F.A. Candelas y F. Torres. Diseo de una mini-cmara motorizada para el seguimiento de objetos. Grupo de automtica, robtica y visin artificial, Universidad de Alicante, Espaa.
[CDR95] C. Cdras y M. Shah. Motion-based recognition: a survey. Image and Vision Computing, 1995.
[VINC08] Markus Vincze, Michael Zillich, Wolfgang Ponweiser, Vaclav Hlavac, Jiri Matas, Stepan Obdrzalek, Hilary Buxton, Jonthan Howell, Kingsley Sage, Antonis Argyros, Christophe BERST, Gerald Umgeher. Integrated vision system for the semantic interpretation of activities where a person handles objects, 2006. Viena University, Czech Technical University, University of Sussex, Foundation for Research and Technology Hellas (FORTH) and PROFACTOR Austria.
[YUIL92] A. Yuille y P. Hallinan. Deformable Templates. In Active Vision The MIT Press, A. Blake y A. Yuille (eds.), 1992.
[CURW92] R. Curwen y A. Blake. Dynamic Contours: Real-time Active Splines. The MIT Press, A. Blake y A. Yuille (eds.), 1992.
[COHE92] I. Cohen, L.D. Cohen y N. Ayache. Using deformable surface to segment 3d images and infer differential structures. The 2nd European Conference on Computer Vision, pp. 648-652, 1992. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
143 [BEAU95] S.S. Beauchemin y J.L. Barron. The Computation of Optical Flow. ACM Computing Surveys, 27(3):443-465, 1995.
[RODR08] J.A. Rodriguez, A. Garcia, C. Urdiales, A. Bandera y F. Sandoval. Deteccin y seguimiento de objetos en entornos dinmicos mediante estimacin predictiva del Flujo ptico. Dpto. de Tecnologa electrnica de la Universidad de Mlaga, Spain.
[BAND08] A. Bandera, C. Urdiales, F. Arrebola y F. Sandoval. Introduccin de algoritmos genricos en sistemas de reconocimiento de objetos 2D. Dpto. de Tecnologa electrnica de la Universidad de Mlaga, Spain.
[LIU08] Hong Liu, Ze Yu, Hongbin Zha, Yuexian Zou y Lin Zhang. Robust human tracking base don multi-clue integration and meanshift. National lab on machine perception, Pekin University, China.
[CUEV06] E.Cuevas, D.Zaldivar, R. Rojas, E. Tapia, M.Perez, A. de la Mora, R.Cardenas. Visin artificial: Segmentacin difusa de color. Divisin de electrnica y computacin, Universidad de Guadalajara, Mxico. Institut fr Informatik, Freie Universitt Berlin, Deutchland, 2006.
[YANG08] R.Yang and S. Sarkar. Coupled grouping and matching for sign and gesture recognition. Computer science and Engineering, university of Florida, USA, 2008.
[PINT08] Dr. Ral Pinto Elas Aplicaciones de la Visin Artificial Cenidet (Centro Nacional de Investigacin y Desarrollo Tecnolgico) PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
144 [LEE08] Chan-Su Lee, Ahmed Elgammal Dynamic shape outlier detection for human locomotion Department of Electronic Engineering, Yeungnam University, Korea Department of Computer Science, Rutgers University, NJ 08854, USA
[LAND08] Jose-Luis Landabaso , Montse Pards , Josep Ramon Casas Shape from inconsistent silhouette Telefonica I+D (TID), Barcelona, Spain Technical University of Catalunya (UPC), Barcelona, Spain
[ZHAO08] Qi Zhao , Hai Tao A motion observable representation using color correlogram and its applications to tracking Department of Computer Engineering, University of California, USA
[HSIE08] Jun-Wei Hsieh, Yung-Tai Hsu Boosted string representation and its application to video surveillance Department of electrical engineering Yuan Ze University, Taiwan
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
145 Otras referencias:
[WIKI01] es.wikipedia.org/wiki/Categor%C3%ADa:Dispositivos_de_seguridad En esta pgina web se hace un recorrido por 14 dispositivos de seguridad que han sido desarrollados para su uso en nuestra sociedad.
[WIKI02] es.wikipedia.org/wiki/BMP En esta pgina se explican las principales caractersticas de los Bitmaps, as como su procedencia adems de otros formatos para imgenes digitales.
[WIKI03] es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos Gracias a esta pgina se puede profundizar ms sobre el concepto de programacin orientada a objetos desde un punto de vista ms convencional.
[WEB001] proton.ucting.udg.mx/expodec/sep98/memoria/e01/e01.html En esta pgina web se expone el resumen de un proyecto que pretende instalar en una casa un dispositivo que genere alertas a mviles a partir de la informacin que recibe de unos sensores.
[WEB002] www.des.udc.es/~adriana/TercerCiclo/CursoImagen/curso/web/Intro.html En esta entrada web se analizan profundamente cuales son las transformaciones ms pertinentes para analizar automticamente una imagen segn sus caractersticas.
[WEB003] http://es.computers.toshiba-europe.com/innovation/NEWSARCHIVE/ archived_news_article.jsp?service=ES&ID=RecoFacial_U400 En esta pgina Toshiba hace publicidad sobre su sistema de reconocimiento facial. PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
146 [WEB004] www.codeproject.com En esta web se ofrecen distintas soluciones software para problemas de programacin en todas las plataformas de desarrollo conocidas.
[MSDN06] http://msdn.microsoft.com/es-es/default.aspx Esta es la pgina oficial de Microsoft Visual Studio, en ella se almacenan soluciones para los lenguajes de programacin de Microsoft, as como la API de .NET.
[DANS09] www.enriquedans.com/2009/02/misma-funcion-distintas-implicaciones.html Reconocimiento facial: misma funcin, distintas implicaciones En esta pgina web se publica una entrada sobre la funcin de reconocimiento de caras desarrolla por dos empresas distintas, Apple y Google. En ella se expresa la duda que generan los diferentes usos de de dos aplicaciones con las mismas funcionalidades. Enrique Dans, Investigacin y opinin de los Sistemas y Tecnologas de la Informacin, 28 de febrero de 2009.
[PARD96] tapec.uv.es/pardo/doctorado/curso_pardo/tesis.ppt Fernando Pardo Carpio Directores: Bart Dierickx y Gregorio Martn Quetgls Sensor Retnico Espacio Variante Basado en Tecnologa CMOS Dpt. Informtica y Electrnica- Universidad de Valencia. [MUO09] http://www.htcmania.com/showthread.php?p=376663 Yahoo y Comel crean un mtodo de reconocimiento facial para usar en publicidad Julio Muoz el 16 de Mayo del 2009
Inteligencia artificial: Lo que usted necesita saber sobre el aprendizaje automático, robótica, aprendizaje profundo, Internet de las cosas, redes neuronales, y nuestro futuro