Autorizada la entrega del proyecto del alumno: Miguel Barquero

Anuncio
Autorizada la entrega del proyecto del alumno:
Miguel Barquero del Pozo
EL DIRECTOR DEL PROYECTO
Alejandro García San Luis
Fdo:
Fecha: 10/06/2009
Vº Bº del Coordinador de Proyectos
Eduardo Alcalde Lancharro
Fdo:
Fecha: 26/06/2009
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO TÉCNICO EN INFORMÁTICA DE GESTIÓN
PROYECTO FIN DE CARRERA
PROTOTIPO DE UN
SISTEMA DE VIDEO VIGILANCIA
AUTOR:
MIGUEL BARQUERO DEL POZO
MADRID, JUNIO DE 2009
Es el triunfo el que crea al gran hombre.
El triunfo no es vencer siempre,
sino nunca desanimarse.
NAPOLEÓN BONAPARTE
i
A mi Familia y la Universidad Pontificia Comillas de Madrid,
las instituciones que me han enseñado que los valores que mejor
guían la vida de los hombres son aquellos que perduran en el tiempo.
ii
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 años, pero que
también 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 institución que me
ha enseñado que las relaciones entre las personas deben ser a la vez profesionales y
emocionales, y que buscar en cada momento una proporción equilibrada de esta
dualidad es un aspecto esencial en el desarrollo de la personalidad de todos los seres
humanos.
iii
Resumen
El presente proyecto estudia las características 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 mecánicos y predecibles por un nuevo tipo de
sistema más orgánico y con un rango de funciones más completo, además 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 más especializados.
Se han analizado los distintos filtros de imagen que se pueden aplicar a las imágenes de
las cámaras 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
aplicación.
Se han analizado los algoritmos que se utilizan como herramientas de análisis 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 cámara.
Además de analizar las herramientas disponibles para el análisis de las imágenes de los
vídeos de vigilancia, se ha diseñado e implementado una secuencia de análisis que
permite localizar y estudiar el movimiento de los elementos que se encuentren bajo el
objetivo de las cámaras de vigilancia.
Como parte práctica del trabajo se exponen los resultados obtenidos después del análisis
ejecutado por el prototipo de la aplicación diseñado y desarrollado; además, se analizan
estos resultados con el fin de evaluar los objetivos alcanzados y comprobar el alcance de
la aplicación en un futuro.
iv
Por último, se exponen los problemas encontrados durante el desarrollo de la aplicación
así como aquellos problemas que impiden la evolución de la consola de análisis; sin
embargo, junto con estos problemas se proponen soluciones que puedan paliar estos
problemas o incluso métodos 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 implementación del sistema desarrollado en entornos con
cámaras de vigilancia dinámicas.
v
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.
vi
TABLA DE CONTENIDOS
Capítulo 1: Introducción
1
Motivación del proyecto
7
Objetivos
10
Capítulo 2: Estado del arte
Estudio de la tecnología y técnicas existentes
12
13
Tecnología actual
13
Técnicas actuales
15
Tecnologías y recursos utilizados
17
Los Bitmaps y el lenguaje de programación C#
20
La programación orientada a objetos
23
Capítulo 3: Metodología Empleada
25
Características de la Metodología Extrema
27
Las fases de desarrollo
29
Manipulación de video mediante aplicaciones software
30
Análisis de imágenes digitales
34
Análisis de las secuencias de video
36
vii
Capítulo 4: Desarrollo del prototipo
39
Introducción
40
Configuración del sistema
46
Soporte de las imágenes
49
Acceso a memoria
55
Tratamiento de las imágenes
57
La escala de grises
60
La función de contraste
65
Posterización
66
La función umbral
68
Pixelado
71
Análisis de las imágenes
77
Filtrado con la imagen de referencia
77
Filtrado con la imagen inmediatamente anterior
80
Mejora de los filtros mediante el pixelado
82
Identificación de categorías
86
Establecimiento de los criterios comunes de clase
86
Identificación de los criterios de clase
88
Estudio del movimiento
89
Seguimiento del centro del objeto
91
El método de correlación de centros
93
viii
Capítulo 5: Resultados
96
Método de captación de las imágenes
98
Filtros de imagen
99
Escala de grises
99
La función de contraste y el ecualizado
100
La función umbral
102
Posterización y pixelado
103
Análisis de las imágenes
105
Filtrado con la imagen de referencia
105
Filtrado con la imagen inmediatamente anterior
106
Identificación de categorías
108
La posterización y la segmentación por zonas
108
Identificación de formas geométricas sencillas
110
Estudio del movimiento
113
Seguimiento del centro del objeto
113
El método de correlación de centros
115
Capítulo 6: Anexos
Planificación
117
118
La fase de documentación
119
El desarrollo de la aplicación
120
La elaboración de la memoria
120
ix
Estimación del coste económico del proyecto
122
Coste de los recursos humanos
122
Costes Software
123
Costes Hardware
124
Conclusiones
126
Apéndices
128
Sistemas con cámaras de vigilancia dinámicas
128
El reconocimiento facial
134
Bibliografía
140
Libros
140
Proyectos de fin de carrera y tesis doctorales
141
Ensayos
142
Otras referencias
145
x
ÍNDICE DE IMÁGENES, ECUACIONES Y TABLAS
Imágenes
Capítulo 1: Introducción
1
Figura 1.1: Componentes de la visión artificial
4
Capítulo 2: Estado del arte
12
Figura 2.1: Secuencia de captura de las imágenes
Figura 2.2: Recorrido de la información
Figura 2.3: Análisis de un Bitmap
Figura 2.4: Filosofía de la programación orientada a objetos
18
19
21
23
Capítulo 3: Metodología Empleada
25
Figura 3.1: Comparativa de las dos metodologías de desarrollo de aplicaciones 27
Figura 3.2: Descomposición del problema principal
29
Figura 3.3: Diagrama de Gantt de la planificación
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: Comunicación con el interfaz del programa
31
Figura 3.7: Navegación dentro del equipo para la selección 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 aplicación 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 aplicación final
38
xi
Capítulo 4: Desarrollo del prototipo
39
Figura 4.1: Comparativa de imágenes
Figura 4.2: Flujo de información
Figura 4.3: Uso de la memoria según el formato
Figura 4.4: Almacenamiento de una imagen
Figura 4.5: Histograma de un retrato
Figura 4.6: Histograma de un plano general
Figura 4.7: Filtro de la escala de grises
Figura 4.8: Diagrama de flujo del algoritmo de escala de grises
Figura 4.9: Aplicación del filtro de escala de grises
Figura 4.10: Análisis para el filtro de contraste
Figura 4.11: Análisis de la posterización
Figura 4.12: Flujo de datos del proceso de posterización
Figura 4.13: Análisis del filtro de la función umbral
Figura 4.14: Binarización de la imagen original
Figura 4.15: Flujo de datos del proceso de binarización
Figura 4.16: Aplicación del filtro de pixelado
Figura 4.17: Esquema conceptual del filtro de pixelado
Figura 4.18.1: Flujo de datos en la fase de acumulación del proceso de pixelado
Figura 4.18.2: Flujo de datos en la fase de carga del proceso de pixelado
Figura 4.19: Aplicación del filtrado píxel por píxel
Figura 4.20: Comparación de dos fotogramas consecutivos
Figura 4.21: Secuencia de análisis de los fotogramas
Figura 4.22: Secuencia de análisis de un fotograma con pixelado
Figura 4.23: Secuencia de almacenamiento de una imagen pixelada
Figura 4.24: Secuencia de localización de los elementos de las imágenes
Figura 4.25: Función umbral de una imagen de objetos en movimiento
Figura 4.26: Secuencia de cálculo del método de seguimiento del centro
Figura 4.27: Resultados del método de seguimiento del centro
Figura 4.28: Secuencia de cálculo del método de correlación de centros
Figura 4.29: Resultados del método de correlación de centros
40
41
50
55
58
58
61
63
64
65
66
67
69
69
70
72
73
74
75
78
80
81
82
83
84
86
91
92
93
94
Capítulo 5: Resultados
96
Figura 5.1: Conexión del equipo con la cámara mediante un stream
Figura 5.2: Resultados reales de la escala de grises
Figura 5.3: Análisis de los resultados de la función de contraste
Figura 5.4: Análisis de los resultados del ecualizado
Figura 5.5: Análisis de los resultados de la función umbral
Figura 5.6: Resultados de la posterización
98
99
101
101
102
103
xii
Figura 5.7: Comparación de la imagen actual con la imagen de referencia
Figura 5.8: Comparación con la imagen inmediatamente anterior
Figura 5.9: Resultados del filtro por zonas
Figura 5.10: Diseño conceptual del filtro de reconocimiento de objetos
Figura 5.11: Ejemplos de otros algoritmos
Figura 5.12: Secuencia de estudio del método de correlación de centros
Figura 5.13: Resultados del método de correlación de centros
105
107
109
110
112
114
115
Capítulo 6: Anexos
118
Figura 6.1: Planificación del proyecto
Figura 6.2: Funcionamiento de las cámaras de vigilancia móviles
Figura 6.3: Biblioteca de imágenes de referencia de una cámara móvil
Figura 6.4: Cálculo del vector de movimiento de las cámaras móviles
Figura 6.5: Comparación de caras mediante la biometría
Figura 6.6: Comparación de las facciones faciales con fines de entretenimiento
Figura 6.7: Posibles aplicaciones del reconocimiento facial en el marketing
Figura 6.8.1: Salida de las pruebas de posterización
Figura 6.8.2: Pruebas del filtro de zonas
118
129
130
132
134
136
137
138
139
Ecuaciones
Capítulo 4: Solución desarrollada
39
Ecuación 4.1: Aplicación de un filtro
Ecuación 4.2: Descomposición del sistema RGB
Ecuación 4.3: Aplicación del filtro de escala de grises
Ecuación 4.4: Aplicación del filtro de contraste
Ecuación 4.5: Aplicación del filtro de posterización
Ecuación 4.6: Fórmula de la función umbral
Ecuación 4.7: Aplicación del filtro de pixelado
59
61
62
65
67
68
72
Capítulo 7: Anexos
Ecuación 6.1: Ecuación de búsqueda en cámaras móviles
131
xiii
Tablas
Capítulo 6: Anexos
117
Tabla 6.1: Costes asociados a los elementos de recursos humanos
Tabla 6.2: Costes software del proyecto
Tabla 6.3: Costes hardware del proyecto
Tabla 6.4: Costes finales del proyecto
122
123
124
125
xiv
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Capítulo 1
1
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Introducción
Este proyecto de final de carrera investiga cómo mejorar, mediante las técnicas
de programación, los recursos y tecnologías disponibles, el rendimiento de los sistemas
de seguridad privados basados en la video vigilancia del entorno.
La seguridad de las personas físicas y de sus pertenencias materiales es un
tema que preocupa a la sociedad actual; por este motivo, el avance tecnológico 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 característicos de la visión animal en un prototipo de sistema de visión
artificial. La visión artificial es una disciplina basada en el proceso y adquisición
automático de imágenes. Es un campo que actualmente se encuentra en pleno auge y
está alcanzando un gran desarrollo tanto en los métodos usados para el análisis de las
imágenes como en la potencia de los sistemas de procesamiento de datos.
Sus aplicaciones son múltiples, en entornos de muy distinta índole, como
científico, civil, militar o industrial. Los sistemas de visión artificial son de gran ayuda
en la automatización de tareas repetitivas que resultan difíciles de realizar para un
operario, por lo que se consigue una operación continua y eficiente con un menor
coste. También son de gran utilidad en el ámbito científico para la investigación de
mecanismos [MERY04], [RODR08] y [CORR09], visión foveal y periférica [PARD96],
presentes en la visión en humanos.
2
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Para el desarrollo de una aplicación que mejore las prestaciones de los sistemas
de vigilancia artificial se ha hecho un estudio comparativo sobre las características de
los dos sistemas de visión que influyen en este proyecto, el sistema de visión orgánico
o humano y el sistema de visión artificial. Las principales ventajas de cada sistema son:
Sistema humano:
 Reconocimiento de objetos.
 Adaptación a situaciones imprevistas.
 Utilización de conocimiento previo.
 Destaca en las tareas de proceso de alto nivel.
Sistema artificial:
 Mide mejor magnitudes físicas.
 Facilidad en la realización de tareas rutinarias.
 Destaca en tareas de proceso de bajo nivel.
El proyecto desarrollado evalúa cuáles son las mejores alternativas para
integrar aquellas características que son mejores en los sistemas de visión orgánicos
dentro del sistema de visión artificial; gracias a la inclusión de estas características se
espera mejorar los resultados de los componentes de los sistemas de visión artificial.
Para determinar cuáles son aquellos elementos de los sistemas de visión
artificial susceptibles de ser mejorados se han analizado los componentes de estos
sistemas.
3
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Un sistema de visión artificial está compuesto por los siguientes elementos:
 La fuente de luz:
Es una parte importante en el sistema ya que la
capacidad de extracción de los rasgos de los
elementos de una determinada escena por parte
del sistema depende de la intensidad de ésta.
 Cámara:
Se encarga de recoger la imagen luminosa sobre
un soporte sensible, transformándola en señales
eléctricas.
 Sistema de procesamiento: Es la parte física donde se aloja la aplicación. Sus
características dependen directamente de las
funciones planificadas para la aplicación.
 Algoritmos de análisis:
Son los componentes de la parte central del
sistema inteligente. Realizan las transformaciones
necesarias de las imágenes para extraer la
información de interés para los usuarios.
Figura 1.1: Componentes de la visión artificial
4
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El número de aplicaciones relacionadas con la Visión Artificial aumenta cada
día; debido al alcance de esta disciplina son muchos los campos donde este sector
de la ciencia tiene aplicación.
En el sector de la producción (tanto industrial como agrícola).
 Inspección de productos (papel, aluminio, acero,...).
 Control de soldaduras.
 Identificación de piezas.
 Inspección 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.
 Astronomía.
 Meteorología.
 Control de tráfico.
 Tráfico viario.
 Interpretación de fotografías aéreas.
 Reconocimiento de caracteres.
 Control de cheques, inspección de textos, etcétera.
 Etiquetados (fechas de caducidad, descripción contenido).
 Matrículas de coches.
5
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
En la ingeniería civil.
 Aplicaciones biomédicas
(Resonancias magnéticas, tomografías, genoma humano).
 Análisis de imágenes tomadas mediante microscopio
(Bacterias, células, proteínas).
 Vigilancia por satélites.
 Exploración del Espacio.
 Guiado de robots (vehículos no tripulados).
 Seguridad y vigilancia.
Por otra parte hay que tener en cuenta los avances tecnológicos en los
dispositivos de vigilancia, la facilidad de producción y el amplio catálogo de la oferta en
este sector, avances que han permitido que la mayoría 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 implementación de mejores algoritmos de análisis
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.
6
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Motivación del proyecto
La motivación que impulsó el desarrollo de este proyecto fue sobre todo la
posibilidad de finalizar la carrera de técnico en informática estudiando un campo
innovador como es la inteligencia artificial. Además, este proyecto de video vigilancia
se integra dentro del campo de la visión artificial, un campo que por su naturaleza del
estudio de la geometría y la mecánica suscita un gran interés particular.
El alcance de los proyectos en el campo de estudio de la visión artificial se
encuentra todavía 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 diseño, desarrollo e implantación de un sistema de video vigilancia con base
en inteligencia artificial puede llegar a ser un hito dentro del mundo de la visión
artificial ya que es posible crear un sistema que sea atractivo para los demás miembros
de la comunidad, tanto los académicos 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 mecánicos y predecibles por un
nuevo tipo de sistema más orgánico y con un rango de funciones más completo,
además 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 más especializados.
Este proyecto es revolucionario ya que tiene como objetivo unificar todos los
conocimientos, técnicas y tecnología desarrolladas en el campo de la video vigilancia;
esto incluye desarrollar algoritmos que permiten analizar las imágenes tomadas de un
entorno y realizar una serie de operaciones que permitan obtener y analizar
7
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
información concreta sobre el estado de los objetos de la imagen y cómo interactúan
entre ellos.
La gran peculiaridad de este sistema es que está diseñado para que la mayoría
de cálculos y operaciones las haga la consola, pero en términos ejecutivos serán los
operarios que estén manejando el sistema quienes evaluarán la situación y tomarán
las decisiones sobre las acciones a emprender. El fin de este proyecto es propiciar la
creación de una consola de video vigilancia que se convierta en una herramienta
innovadora y práctica dentro del mundo de la seguridad.
Además, 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 más fácil y sencilla, sino que busca ofrecer
al mercado una herramienta que dé origen a una nueva serie de dispositivos que
hagan la vida mucho más cómoda al conjunto de la sociedad.
Por último, este proyecto está motivado por la necesidad de preservación de
las personas y los bienes de la sociedad. Todos los integrantes de la sociedad que
tienen alguna posesión 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 física 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 también se ha tenido en cuenta
que es posible que algún particular decida instalarlo en su casa. Por tanto, es posible
que el sistema no vaya a estar manejado por un técnico 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 cálculos.
8
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Esto se traduce en la necesidad de un mejor diseño de la inteligencia artificial
del prototipo de la consola. Pese a que en el ámbito profesional, donde las
especificaciones del producto indicarán que es importante una supervisión humana
constante para el mejor rendimiento del sistema, serán los técnicos los que
proporcionarán ayuda al sistema para la toma de decisiones. Sin embargo, en el
ámbito doméstico es posible que los usuarios no mantengan este nivel de vigilancia;
no obstante, la falta de supervisión humana no debe frenar en modo alguno las tareas
de vigilancia del sistema.
9
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 diseñar y desarrollar un prototipo de un sistema de vigilancia con
inteligencia artificial integrada que en un futuro sea una opción económica y
técnicamente rentable; una opción de seguridad que tenga las mismas prestaciones
que los sistema de seguridad de gamas más altas, pero con los precios que tienen los
sistemas más 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
fácil manejo, lo que implica que el diseño debe estar adaptado a cualquier usuario.
Entre otras cosas, esto implica la utilización de un interfaz de usuario amigable,
fácil de usar y que se adapte a las necesidades y recursos de cada usuario, ya sea un
técnico 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 fácil manejo, las funciones de
la consola deben estar bien definidas. De este modo los usuarios pueden conectar el
modo de acción de la consola que más les convenga; además, gracias a esta
descripción de los elementos es más fácil desarrollar el proyecto siguiendo un cauce
concreto. Estas funciones principales serán tres: identificación del movimiento, análisis
del movimiento e identificación de los objetos en movimiento.
La consola que se ha desarrollado tiene la capacidad de detectar el movimiento
dentro de su campo de acción, esto incluye filtrar aquellos movimientos que sean
superfluos (como el balanceo de las hojas de los árboles); la inteligencia artificial de la
10
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
aplicación final debería ser capaz de detectar los movimientos repetitivos como el
parpadeo de los semáforos.
Además de detectar los objetos que se encuentran en movimiento, el prototipo
de la aplicación debe analizarlos y clasificarlos según su naturaleza. En principio, este
objetivo sólo abarca la diferenciación de los objetos entre tres naturalezas posibles,
objetos no-humanos, personas y vehículos.
Por último, una vez la consola detecte el objeto en movimiento, la consola debe
establecer una estimación sobre la dirección y velocidad de los objetos detectados.
Desde el punto de vista económico, el objetivo principal es que el coste de
implantación 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 diseñar un sistema que sea totalmente funcional y que cumpla con las
expectativas de cualquier usuario pero que no suponga una inversión excesiva para los
usuarios finales; esto implica que la base física del sistema esté compuesta por
productos comunes en el mercado que sean de fácil acceso y económicamente viables.
Además, 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 instrucción para dominar su manejo.
11
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Capítulo 2
12
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Estado del arte
Como el estudio realizado en este proyecto se basa en el desarrollo de
programas que mejoren los resultados de dispositivos y técnicas ya desarrolladas e
implementadas, a continuación se presentan estos sistemas de vigilancia ya
desarrollados así como los componentes que los hacen ser sistemas de vigilancia
eficaces.
Estudio de la tecnología y las técnicas existentes
Tecnología actual
Durante el proceso de documentación 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 habían 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 sofisticación, se componían de elementos de seguridad superpuestos; cada
uno de estos elementos estaba diseñado e instalado para suplir las carencias del resto
de los elementos.
Los dispositivos convencionales disponibles para la gran mayoría de los
ciudadanos son las alarmas sonoras, los sensores volumétricos, las cámaras de video, e
incluso micrófonos [WIKI01]. Estos elementos nunca fueron diseñados para actuar
como un único elemento de seguridad; es decir, estos dispositivos no se diseñaron con
13
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
la intención de ser utilizados conjuntamente, si no que se diseñaron por separado,
pero se pueden utilizar en conjunto.
Sin embargo, uno de los sistemas de seguridad más avanzados del momento sí
que utiliza toda la información de los sensores instalados de forma conjunta; de esta
forma se implementa un sistema con funcionalidades que podrían darse en un sistema
con inteligencia artificial [WEB001].
Este dispositivo de vigilancia se activa si alguno de los sensores volumétricos
capta la intromisión de algún elemento externo; en ese momento, las cámaras
empiezan a grabar y envían la señal a la centralita donde se encuentran aquellos
agentes que deben tomar las decisiones pertinentes para atajar la amenaza; el envío
de la información sirve para que los técnicos evalúen la amenaza y ofrecer una
respuesta con mayor precisión y eficacia. De este modo se genera una sinergia entre
los elementos de seguridad instalados; ésta es una de las funcionalidades
características del sistema de este proyecto.
Otro dispositivo de vigilancia, instalado en las casas cuartel de la Guardia Civil y
las comisarías de Policía, permite la identificación 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 generaría una alarma y
reconfiguraría la posición de la cámara de vigilancia, centrando el foco de la cámara
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 visión artificial; si los seres vivos centran el foco de su
visión sobre los elementos, los elementos artificiales también deberían hacerlo
[CORR09].
14
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Estos dispositivos de vigilancia han probado su eficacia, pero su estructura es
todavía muy mecánica y predecible. Sin embargo, este proyecto propone que el
sistema de video vigilancia artificial desarrollado sea orgánico y reentrante, es decir,
que se nutra de la información que va generando además de la que los sensores
externos van capturando.
Técnicas actuales
En el otro campo que interviene en este proyecto, el campo de la visión
artificial, empezó a ser investigado en la última década del siglo XX, y desde entonces
se han desarrollado múltiples avances.
A mediados de los años 90, un estudio estableció cuáles eran los parámetros
que un sistema dedicado al análisis del movimiento debía tener en cuenta [CÉDR95].
En este estudio se desarrollo un sistema que podía captar el movimiento de uno o
varios objetos de forma simultánea, para después analizar y caracterizar el movimiento
de cada objeto, además de la propia estructura y composición del objeto. Años más
tarde, los científicos 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 visión
humana [VINC06].
Los estudios realizados en este campo dieron pie al desarrollo de algoritmos de
análisis de imágenes; algunos de estos algoritmos se especializaron en el estudio del
movimiento no-rígido, como por ejemplo el estudio de plantillas deformables
[YUIL92], splines activos [CURW92], o el estudio de superficies activas [COHE92].
15
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Otro de los campos de estudio en este sector es el análisis de las técnicas de
flujo óptico, que consisten en el análisis por parte de un ordenador de series de pares
de imágenes [BEAU95], [RODR08]. La técnica del flujo óptico se basa en estudiar el
movimiento que se percibe entre dos imágenes consecutivas, gracias a las diferencias
entre éstas se puede analizar la velocidad o la distancia de los objetos.
Además 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 técnicas que se
desarrollaron para la identificación de los objetos del entorno se basan en el estudio
de los colores como fuente de información; el trabajo principal de estos algoritmos se
basa en el análisis de los colores y de su variación como consecuencia del aumento o
disminución de la fuente de luz [CUEV06].
Estos algoritmos se desarrollaron con el fin de capturar el movimiento de los
objetos y de estudiar después el movimiento o la naturaleza de estos. Esta dinámica
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 técnicas de flujo óptico implican un problema añadido, al estar
basadas en el análisis de dos imágenes consecutivas implica un ligero retardo ya que se
trabaja con dos imágenes; sin embargo, el cálculo de distancias y velocidades es un
objetivo principal del proyecto, de modo que estos algoritmos han sido modificados
para que tengan unas mejores prestaciones.
16
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Uno de los artículos estudiados tiene como objetivo estudiar el movimiento de
las manos dentro del entorno de la interpretación del lenguaje de signos
[YANG08]. Este artículo aúna los criterios de reconocimiento de patrones que
se persigue en el proyecto de seguridad por video vigilancia junto con los
criterios de análisis del movimiento de los objetos dentro del campo de visión.
Tecnologías y recursos utilizados
Este proyecto se centra sobre el análisis de imágenes de video mediante una
inteligencia artificial, por lo tanto, una gran parte de la elaboración de este proyecto ha
consistido en la selección de los sistemas periféricos de video. Estos equipos son las
cámaras de vigilancia convencionales, las cámaras usb y las cámaras IP. Al tratarse de
un proyecto enfocado hacia la creación 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 cámara de video específica, 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 cámaras de vigilancia convencionales no envían la información digitalizada
sino que la envían con formato analógico. La señal generada por estas cámaras es un
flujo continuo de información, mientras que el sistema está diseñado para recibir las
imágenes de video de una en una; por esto es necesario incluir un transformador de
señal para que la señal analógica se digitalice y pueda utilizarse en la consola de
seguridad. En cuanto mejor sea este convertidor de señal, más óptimo será el sistema
ya que la información en bruto proporcionada por las cámaras podrá ser refinada con
más tiempo.
17
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 2.1: Secuencia de captura de las imágenes
Sin embargo, no todos los dispositivos generan información analógica, hay
equipos periféricos de video que generan información digital; los dispositivos de este
tipo más comunes son las cámaras usb, cámaras que mediante un puerto usb se
conectan al ordenador y gracias a cualquier aplicación de video con enlaces a puertos
usb puede mostrar al usuario el video que están capturando. Esta información está
íntegramente en formato digital, con lo cual puede empezar a tratarse mucho antes
que la información proporcionada por las antes mencionadas cámaras de vigilancia,
pues no es necesario pasar por el proceso de transformar el tipo de la señal.
Las cámaras usb son la mejor opción 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 información) ya que estas cámaras son
de fácil instalación y tienen un muy buen rendimiento en distancias cortas Además de
las cámaras usb, hay otro tipo de dispositivos que también procesan directamente la
información que generan en el ordenador sin necesidad de un transformador, estos
dispositivos son las Webcams.
Sin embargo, hay otra opción para aquellas empresas que tengan varias zonas
que vigilar y deseen vigilarlas desde un único punto, estos dispositivos permiten la
instalación de un puesto de vigilancia remoto y centralizado.
18
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Las cámaras IP permiten recibir la señal digitalizada desde cualquier ordenador
con acceso a Internet. La instalación de estas cámaras es muy sencilla con la salvedad
de que la empresa que las instale debe configurar unos permisos para acceder a la
información proporcionada por estas cámaras. Esto da la opción a las empresas de
recibir información simultánea sobre varios puntos geográficos 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 información desde
las cámaras de las distintas autovías, A-1, A-2, A-3, etcétera pero se reciben todas en la
consola central).
Sea cual sea el
género de las cámaras
de vigilancia instaladas
en el sistema, toda la
información
que
generen las cámaras
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 cámaras; es decir,
el
sistema
funciona
analizando
Figura 2.2: Recorrido de la información
información
la
de
las
19
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
cámaras bajo un prisma digital. Un stream de video es una secuencia de frames, este
es el nombre técnico de las imágenes que componen las secuencias de video; su
sinónimo en el formato analógico sería una diapositiva.
La consola de vigilancia se basa en el análisis de estas imágenes
individualmente primero y como una secuencia completa después, por lo tanto el
único modo de poder aplicar la inteligencia artificial de la consola es que ésta reciba las
imágenes una por una. Las cámaras usb y las cámaras IP son vitales para este sistema
de vigilancia artificial ya que proporcionan streams de video que pueden ser analizados
directamente, mientras que las cámaras de vigilancia convencionales proporcionan
una señal que debe ser convertida para ser recibida en un ordenador, lo que baja el
rendimiento del sistema.
Los Bitmaps y el lenguaje de programación C#
Gracias a que la tecnología ha avanzado y ahora se pueden generar imágenes
digitales. Este nuevo recurso informático ha provocado que los lenguajes de
programación de alto nivel, en concreto los lenguajes de programación orientada a
objetos, como C# han incluido entre las clases de sus bibliotecas clases que permiten
trabajar con Bitmaps dentro de un entorno de programación [WEB002].
Un Bitmap está compuesto por una serie unos y ceros que se agrupan para
formar los píxeles de las imágenes (series de bytes que generan el color de un punto
dentro de la imagen); cuanto más largas sean las series de unos y ceros más matices
tendrán los tonos de grises o habrá más colores en las imágenes. Por ejemplo, una
imagen con un formato de píxel de dos bits (aunque los formatos suelen ser múltiplos
de un byte, esto es sólo 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 píxel con formato de 1 byte podrá mostrar hasta 256 tonos de grises o
colores diferentes [WIKI02].
20
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Uno de los atributos principales de los Bitmaps es su resolución, que es el
tamaño en píxeles de la imagen; normalmente la calidad de las fotografías se
determina por este valor ya que representa la potencia con que se ve la imagen,
correspondiendo con el número de puntos digitales que hay en un centímetro
cuadrado de la imagen. Cuanto mayor sea este número, mayor será la precisión con
que se mostrará la imagen.
Además de la resolución, otro atributo importante de los Bitmaps es el formato
de los píxeles; los píxeles tienen asignada una determinada cantidad de bits para
representar el color de los puntos de la imagen, de modo que en cuanta más cantidad
de bits tengan asignada para representar el color en un punto de la imagen, más
matrices y tonos de color se podrán representar en esta imagen digital. Esta cantidad
de color es conoce como paleta de colores de la imagen. Los formatos de las imágenes
se suelen representar en bpp, esta unidad representa los bytes por píxel que hay en la
imagen.
Figura 2.3: Análisis de un Bitmap
21
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
En C# la clase Bitmap contiene algunos métodos específicos para agilizar
operaciones de manipulación de los Bitmaps como son el método LockBits, que
permite acceder directamente a la zona de memoria donde está alojado el Bitmap y
manipular los datos de la imagen mucho más rápido, o el método GetPixel, que
mediante la introducción de las coordenadas del píxel que se quiere analizar se
obtiene el valor numérico del color del píxel.
Pero no sólo hay métodos específicos para las imágenes digitales, sino que
también se incluyen propiedades (atributos propios de cada clase) que gestionan
información útil a la hora de procesar un Bitmap, propiedades como PixelFormat, que
contiene el formato de los píxeles 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 información.
Una de las propiedades que ha sido básica 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 imágenes para que éstas pasaran de ser en color a ser representaciones
en escala de grises.
Gracias a estos métodos es posible trabajar con la información contenida
dentro de las imágenes y realizar gracias a ella un proceso que analice la imagen en
búsqueda de objetos. En términos prácticos, ahora la información de imágenes o
videos es tan fácil de utilizar desde un programa como la información de cualquier
fichero.
22
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
La programación orientada a objetos
El vehículo que utiliza este proyecto para poder parametrizar y
manipular los objetos que la consola detecta es la Programación Orientada a Objetos.
Gracias a los entornos de desarrollo que permiten trabajar con esta filosofía de
programación se pueden diseñar programas que ayudan al programador a reconocer
fácilmente las entidades que se interrelacionan en el programa.
La Programación Orientada a Objetos se basa en la creación de clases (objetos)
que son modelos de la realidad diseñados para representar un objeto real dentro de
un entorno de programación [WIKI03].
Figura 2.4: Filosofía de la programación orientada a objetos
Estos modelos incluyen atributos y métodos, los atributos describen objetos del
modelo y los métodos representan las acciones que puede realizar el modelo dentro
de su entorno; es de vital importancia que tanto los atributos como los métodos
disponibles para las distintas clases capten lo mejor posible las funciones del objeto
real que modelan.
De este modo es fácil 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 métodos 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.
23
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Gracias a la programación orientada a objetos se puede mantener la atención
del programa sobre distintos elementos de la imagen sin que la eficacia de éste se vea
mermada, ya que el diseño de estos lenguajes de programación les hace mantener su
potencia aunque tengan que manejar grandes cantidades de objetos al mismo tiempo.
La ventaja más importante de la programación orientada a objetos es la sencillez con la
que se invocan los métodos de los objetos; gracias a este diseño simple pero efectivo
los programadores pueden acceder a la información de una forma más intuitiva y fácil
de programar.
24
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Capítulo 3
25
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Metodología Empleada
Para asegurar el éxito en el desarrollo de una aplicación, es necesario aplicar
técnicas que permitan planificar, organizar y controlar las actividades que dan forma al
conjunto del proyecto. Estas técnicas de desarrollo y control son diferentes y cada
metodología presenta una forma particular de utilizarlas, así como sus propios
métodos y técnicas.
La metodología más extendida en la actualidad es la metodología 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 máximo
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 información de entrada para la siguiente fase del ciclo
de vida.
La finalidad de las metodologías 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 número posible de revisiones o nuevas
versiones; es decir, cada metodología pretende automatizar la forma de generar
aplicaciones software el máximo posible.
Mientras que la metodología estructurada pretende generar el producto final
mediante un único ciclo de estudio, la metodología extrema descompone el problema
inicial en una serie de problemas más pequeños con una complejidad inferior para
cada una de las cuales se desarrollará una solución; de este modo el producto final se
compone de una serie de aplicaciones más pequeñas integradas durante el desarrollo
del proyecto.
26
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Características de la Metodología Extrema
Aunque la metodología estructurada es la guía más común para el desarrollo de
productos software, este proyecto ha sido confeccionado mediante la metodología
extrema o metodología XP. La metodología extrema aplica los mismos pasos que la
metodología estructurada, pero repite todo el ciclo de vida más de una vez. Con cada
iteración el alcance del estudio del problema aumenta de forma exponencial, en vez
de tratar de llegar a la solución final con una única iteración.
Este sistema de estudio hace que esta metodología sea conocida también como
metodología ligera o metodología liviana, ya que cada fase de la secuencia de estudio
tiene una duración inferior en esta metodología que en la metodología estructurada;
de este modo se puede repetir la secuencia de estudio más de una vez, añadiendo
mayor profundidad al estudio con cada iteración.
Además, esta metodología 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 información debe ser fluido; esta característica de la metodología
extrema no hace sino aumentar la agilidad del desarrollo de la aplicación.
Figura 3.1: Comparativa de las dos metodologías de desarrollo de aplicaciones
27
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Como con la metodología 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 iteración de las fases de estudio; este método
implica que primero se cumplan los objetivos más sencillos y básicos de la aplicación,
dejando para las iteraciones finales aquellos objetivos que sean críticos.
Este sistema ofrece una ventaja importante ya que siguiendo esta metodología
es posible obtener resultados visibles desde las fases iniciales del desarrollo. Otra
ventaja de la metodología extrema con respecto de la metodología estructurada es
que los desarrolladores y analistas del producto tienen un mayor conocimiento del
funcionamiento de éste con cada iteración; de modo que con cada iteración su trabajo
es más preciso, lo que implica que los objetivos críticos se desarrollen e implementen
con una mayor calidad.
Además, 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 análisis de los
requisitos actualizado con cada ciclo de estudio, lo que hace que la metodología
extrema sirva para desarrollar aplicaciones muy sensibles a las necesidades de los
clientes y los usuarios finales.
28
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Las fases de desarrollo
La metodología extrema permite descomponer el problema total en problemas
más pequeños que pueden ser abordados por separado. Al plantear la estrategia para
obtener los resultados necesarios que requería 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 información necesaria para
ejecutar el siguiente paso.
Figura 3.2: Descomposición del problema principal
Gracias a la descomposición del problema se obtuvieron tres fases de estudio
que debían ser desarrolladas durante el proyecto para que la aplicación 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
aplicación.
Los diagramas de Gantt permiten planificar las fases de desarrollo de una
aplicación e incluso descomponer estas fases generales en sub-fases más concretas;
además, las técnicas empleadas en este diagrama permiten relacionar las fases entre
ellas según los criterios lógicos de desarrollo, creando una secuencia de elaboración de
del proyecto y estableciendo una jerarquía entre las fases que lo componen, de modo
que la creación del producto final se desarrolla de forma guiada.
29
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 3.3: Diagrama de Gantt de la planificación
Manipulación de video mediante aplicaciones software
La primera de las fases que se desarrollaron en el proyecto fue la fase de
generación del proceso de carga del video dentro de la consola; este proceso tenía que
abrir, identificar el formato del archivo, generar
el soporte correspondiente para las imágenes del
video y mostrar por pantalla los frames de los
videos.
Al ser la primera fase del proyecto,
durante esta parte del desarrollo también 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 componía de
una ventana de selección donde sólo había un
recuadro de texto y un botón de selección.
Figura 3.4: Objetivos de la primera
fase del desarrollo
30
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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
requería 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
análisis del archivo y generase una salida que el usuario pudiese identificar.
Figura 3.6: Comunicación con el interfaz del programa
Mediante el botón de selección la aplicación permitiría al usuario navegar
dentro de su equipo para seleccionar el archivo de video que quisiera analizar. Esta
forma de selección de archivos aceleraría 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 aplicación pudiera procesarlo.
31
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 3.7: Navegación dentro del equipo para la selección del video
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 manipulación 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 imágenes.
Figura 3.8: Detalle del flujo de datos en la fase de carga
32
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Los gestores especializados analizan el formato del archivo multimedia que le
ha sido enviado para obtener información acerca de las imágenes contenidas en el
video, leyendo de los datos de la cabecera el tamaño o la calidad de las imágenes.
De este modo es posible que los gestores de archivos inicialicen las imágenes
de tipo bmp con la anchura y altura requeridas, para después volcar la información de
las imágenes del video pixel por pixel, de modo que descomponen todo el vector de
información del archivo de video en vectores de información más pequeños que
contienen los valores del color de cada pixel. Una vez cargada la información del
primer pixel dentro de un archivo de tipo bmp, el proceso envía 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 imágenes independientes. Una vez se pudieron
identificar y manipular las imágenes de forma separada, se procedió a desarrollar la
segunda fase del proyecto; en esta fase se aplicarían los distintos filtros para analizar
las imágenes.
33
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Análisis de imágenes 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 análisis de las imágenes.
Para
ello
el
usuario
seleccionaría un archivo de tipo
bmp que el sistema recibiría
utilizando el mismo interfaz que
se desarrolló en la primera fase
del proyecto.
Figura 3.10: Objetivos de la segunda fase
Figura 3.11: Salida inicial de la aplicación en la segunda fase
Para analizar las imágenes mediante la consola de la aplicación, era necesario
abrir los archivos bmp desde el más bajo nivel. Esto implicaba utilizar procesos que
manejaran punteros para el acceso a las zonas de memoria donde se encontraba la
información de las imágenes; una vez abierto el archivo de imagen se podrían aplicar
los distintos filtros diseñados y desarrollados para analizar las imágenes.
34
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 3.12: Detalle del flujo de datos de la segunda fase
Una vez desarrollada por completo esta fase, la consola sería capaz de aplicar
los distintos filtros desarrollados y devolver una imagen transformada a partir de la
imagen original.
Figura 3.13: Resultados de la segunda fase
Una vez desarrollada esta fase por completo, había que unir los dos programas
desarrollados para generar una aplicación que pudiera analizar una secuencia de video
completa.
35
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Análisis de las secuencias de video
Gracias a las dos fases de desarrollo anteriores se generaron dos programas
que podían abrir y descomponer un archivo de video y aplicar una transformación a un
archivo de tipo bmp. Por lo tanto, en la tercera fase de desarrollo había que
implementar las funcionalidades de ambos programas dentro de una única aplicación y
añadir la inteligencia artificial que analizaría el movimiento de los objetos dentro del
video.
Figura 3.14: Objetivos de la tercera fase de desarrollo
La implementación de las funcionalidades desarrolladas en las fases anteriores
en una misma aplicación dio origen a un recorrido que debía seguir las imágenes
obtenidas del video; el video era directamente enviado desde el interfaz al gestor de
archivos a través del gestor del programa para ser analizado y que se generasen las
imágenes que lo componían. Una vez generadas estas imágenes, éstas se
reconducirían a través del gestor de archivos al gestor de imágenes para ser
analizadas; el gestor de imágenes almacenaría las imágenes resultantes en una zona de
la memoria hasta finalizar el análisis del video por completo.
Una vez generadas todas las imágenes transformadas, el gestor de imágenes
pasaría el control del programa al gestor del programa, el cual accedería al almacén de
imágenes del programa para extraer todas las imágenes del video y abrir una conexión
con el gestor de archivos. A través de esta conexión el gestor de archivos recibiría las
imágenes transformadas con las cuales generaría el archivo de video que se devolvería
al usuario.
36
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 aplicación era capaz de generar video con imágenes
transformadas. En este punto se desarrolló la inteligencia artificial que permitía
analizar las imágenes generadas relacionando las imágenes entre ellas, hasta ahora el
análisis de las imágenes sólo implicaba el uso de una de ellas.
Para implementar esta funcionalidad a la inteligencia artificial de la aplicación
se añadió un bucle en el gestor de imágenes, este bucle establecía que el gestor de
imágenes debía acceder al Almacén de imágenes una vez finalizara el análisis inicial de
las imágenes. Este segundo acceso permitiría al Gestor de imágenes comparar las
imágenes transformadas según los algoritmos desarrollados y generar imágenes que
modelarían el movimiento de los objetos de la secuencia de video original.
37
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 3.16: Flujo de datos de la aplicación final
Finalmente, la aplicación genera podía analizar un video descomponiéndolo en
imágenes individuales, aplicando a cada una de estas imágenes una serie de filtros con
el fin de realzar la información que se buscara en cada fase del análisis, relacionando
estas imágenes por parejas para obtener información sobre el movimiento de los
objetos seleccionados en el video y finalmente generando un video de salida que
contuviera la información generada por la consola sobre los objetos capturados en la
secuencia de video.
38
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Capítulo 4
39
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Desarrollo del prototipo
Introducción
Este proyecto tiene como objetivo crear el prototipo de un sistema de vigilancia
híbrido; este sistema estará operado por un usuario humano, pero las tareas de
vigilancia
más
repetitivas
(como el seguimiento de
individuos
que
hayan
entrado en escena o la
comprobación del entorno
en busca de objetos que
hayan cambiado de posición
o que hayan sido depuestos
con anterioridad por parte
de algún individuo) serán
resueltas por la consola.
Evitando la mecanización de
la actividad laboral de los
técnicos de seguridad se
espera que los resultados de
la
vigilancia
sean
más
satisfactorios que con los
sistemas
de
vigilancia
convencionales.
Las
tareas
de
supervisión de una pantalla
de
Figura 4.1: Comparativa de imágenes
video
vigilancia
no
requieren una gran dosis de
40
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
concentración 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 técnicas de vigilancia mecánicas, las
cuales ponen en peligro la integridad del sistema ya que el nivel de vigilancia se vuelve
insuficiente.
Mediante el procesado de las imágenes por parte del ordenador se espera
liberar del trabajo más repetitivo al vigilante; el objetivo de este filtrado de la
información 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 mínimo posible
durante todo ese tiempo. Para facilitar la labor de los vigilantes de seguridad, se ha
desarrollado una aplicación que permita distinguir los elementos de la imagen
proporcionada por una cámara de video, y resaltar las características e identificar
aquellos objetos que sean más importantes. Este hecho permitirá por lo tanto
mantener un nivel de calidad óptimo durante más 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 cámaras de vigilancia, pero con
un alcance muy inferior al que debería tener en caso de ser una herramienta
profesional. La función de definir los objetos que están dentro de una zona, que a
priori es una tarea muy amplia, se descompone en varias subtareas más pequeñas,
fácilmente 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
análisis de los objetos de la imagen, la
Figura 4.2: Flujo de información
identificación de estos objetos y el
análisis de las acciones de los objetos capturados en la imagen.
41
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Gracias al desarrollo y la implementación de estos tres elementos principales
de la vigilancia en la aplicación, se espera que la consola de este primer prototipo
tenga un nivel de respuesta aceptable. El diseño de este sistema de vigilancia se ha
basado en un análisis piramidal de las imágenes proporcionadas por un stream de
video.
En una primera aproximación, la consola analiza las imágenes 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 análisis, 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 identificación de objetos en movimiento dentro
de la imagen principal del la cámara que se esté analizando. Esta subtarea se ocupa de
analizar la imagen de las cámaras para diferenciar cuales son las zonas de la imagen
donde se encuentran los objetos móviles y cuáles 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; además, 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 posición del Sol durante el día).
Otra subtarea de la que se compone la vigilancia es la identificación 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 información para los usuarios de nivel superior. Sin
embargo, un requisito indispensable en este punto es asegurar que la información que
42
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
se suministre a los niveles superiores sea totalmente fidedigna; en un entorno de
vigilancia automatizado, es mejor no establecer ningún 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 automático debe ser capaz de
mantenerse a la espera para asegurar una identificación que se acerque lo máximo
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 identificación parcial cuando la identificación alcance un porcentaje
predefinido, y será el técnico que esté supervisando el sistema el que determine si la
identificación es positiva o no, estableciendo un nuevo perfil más completo para el
sujeto recientemente identificado. De este modo el usuario podrá interactuar con la
aplicación y ser parte activa en la vigilancia, ya que gracias a sus intervenciones, la
aplicación 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 categorías: género humano, objeto o vehículo.
Sin embargo, la identificación de los objetos es un campo de difícil
automatización. Todos los seres humanos tenemos características comunes, esto hace
complicada la diferenciación de un humano de otro por parte de una máquina, a
excepción de las máquina 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 difíciles de identificar como idénticos por
parte de una máquina debido a que hay variables que difieren de un objeto a otro (la
orientación, la incidencia de la luz o los pliegues de la tela).
43
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
No obstante, es posible definir la naturaleza de los objetos capturados por las
imágenes siempre que las clases donde se incluirán estos objetos no sean muy
específicas. La definición 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
precisión 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 añadir una entrada en su base de datos de objetos activos dentro de
la imagen; una vez completado el análisis inicial de la imagen, el sistema también debe
ser capaz de recorrer estos registros y actualizar el estado de los objetos en función de
la información que haya recogido durante el análisis.
Si el análisis de la imagen fuera difícil porque la imagen se encontrase saturada
de objetos, sería posible dejar el análisis en el estado en el que estuviera y retomarlo
en la siguiente iteración de análisis. De este modo se iría completando el análisis de los
objetos en su totalidad hasta que ya no quedaran nuevos objetos dentro del entorno
de análisis del sistema.
La ampliación de las funcionalidades de esta subtarea tiene muchas
posibilidades; por ejemplo, en cuanto a la identificación 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 vehículos también 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 extraños a los vigilantes encargados de la
supervisión de las pantallas de control del sistema.
44
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Los avisos lanzados por los procesos de este nivel serán más precisos ya que
gracias a la clasificación de los objetos se registra y analiza la información sobre estos
objetos de una forma más 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 común y una batería de acciones que no son
habituales; en el caso de que la aplicación identifique a un objeto realizando una de
estas acciones no-comunes la aplicación lanzará un mensaje de aviso al encargado de
seguridad de la consola de vigilancia.
El alcance de esta subtarea está definido por el cálculo 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 interactuación de estos vectores con el
medio (discernir cuando un camión 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 dirección del objeto que se muestra por pantalla.
45
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Configuración del sistema
La recepción de las imágenes se tramitará en el dispositivo final a través de una
cámara de video; gracias a esta cámara de video se recibe un stream de video en
formato digital. Un stream de video es un tipo de conexión digital que envía desde la
cámara a la consola principal una serie de imágenes que muestran los elementos que
está enfocando la cámara de vigilancia.
Al tener un formato digital es posible tratar la información de las cámaras
directamente desde la aplicación; la consola recibe las imágenes directamente y las
convierte a un formato con el que es posible trabajar desde el entorno de
programación, el formato de Bitmap, con lo cual puede empezar a trabajar con la
información directamente con las herramientas que se han diseñado e incluido en el
entorno de programación que están incluidas en la clase Bitmap de la plataforma C#
(como los métodos y los atributos de la imagen digital).
Gracias a esta conexión la consola puede recibir información en tiempo real
sobre el entorno que debe vigilar con un formato que se puede manipular. Gracias a
los métodos de la clase Bitmap, se puede acceder a la información de la imagen para
realzar aquellos aspectos de la imagen que sean más importantes para el análisis 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).
Además de configurar las imágenes para que faciliten el procesamiento de la
información que contienen, la conexión entre la aplicación y la cámara 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 imágenes en la zona
de memoria reservada para guardar las imágenes que se analizarán; con esta
desaceleración se pretende disminuir la cantidad de información que tendrá que
46
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
procesar la consola y así liberar al procesador del sistema de toda la carga
computacional posible.
Al variar el ritmo de entrada de las imágenes se varía también la precisión del
sistema ya que con un ritmo de captura más bajo, la vigilancia es menos constante, lo
cual puede suponer que la actualización de los indicadores de la imagen se dé en
intervalos más amplios, en vez de obtener una serie de imágenes donde los
indicadores siguen a los objetos de forma fluida.
No es necesario que el sistema analice todas las imágenes que la cámara 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 número de imágenes que tiene
un segundo de video), en el caso de analizar un stream con una cantidad mayor de
frames se estaría sobresaturando inútilmente el sistema ya que la diferencia no es
apreciada por el ser humano.
Esto implica que si se analizaran todas las imágenes, el sistema tendría cuatro
décimas de segundo para el ciclo de análisis de la imagen; no obstante, se puede
omitir el análisis de varios intervalos para lograr varios objetivos. El primero de ellos es
que si se obvian varios intervalos, el tiempo resultante para el análisis del intervalo
más grande es proporcionalmente mayor (es la suma de los intervalos más pequeños).
El segundo beneficio que se obtiene de analizar intervalos más distanciados en el
tiempo es que el movimiento de los objetos es más fácil de identificar; mientras que
las diferencias entre dos frames seguidos (en un stream de 25 frames por segundo o
más) es imperceptible, esta diferencia se intensifica a medida que los frames están
separados por más tiempo.
De modo que con intervalos de análisis más amplios el sistema tiene más
tiempo para analizar las imágenes, pero además la diferencia entre las imágenes es
más grande, lo que ayuda con notoriedad al análisis de la imagen.
47
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Para conseguir un sistema de vigilancia lo más parecido al sistema ocular
humano en cuanto a localización, clasificación, identificación y predicción de los
movimientos de los objetos del entorno, el sistema tendría que ser capaz no
solamente de localizar e identificar el movimiento de los objetos dentro de su entorno
de vigilancia; si no que además, el sistema debería ser capaz de analizar el histórico de
movimientos del objeto y junto a una correlación con su naturaleza, hacer un
predicción de su comportamiento futuro. Además, tanto el análisis como el cálculo de
la predicción deberían ser en tiempo real, utilizando tan solo las cuatro décimas de
segundo que hay entre dos frames seguidos en un stream de 25 frames por segundo.
Algunos estudios intentan automatizar ciertos aspectos de la visión humana,
como por ejemplo el seguimiento de los objetos [CORR09] o la identificación de
objetos mediante la descomposición en objetos más sencillos [BAND08], [PINT08].
Durante este proyecto se ha implementado un prototipo de sistema de
vigilancia artificial que contiene estas funcionalidades; sin embargo, la información
recibida para el análisis proviene de archivos de video que se encuentran dentro del
equipo de pruebas. En posteriores fases de desarrollo se podrían codificar procesos de
diálogo 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 imágenes de alto nivel, estos proceso
de diálogo se han obviado.
48
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Soporte de las imágenes
Gracias a la ampliación de las bibliotecas de los lenguajes de programación
orientada a objetos con clases como la clase ‘Bitmap’ para C#, es posible para los
programadores interpretar y procesar imágenes desde aplicaciones de informática.
Gracias a este avance, es posible diseñar aplicaciones que simulen el campo de visión
humano para después ser integradas en aparatos robóticos con los que desarrollar
actividades con el apoyo humano indispensable o aplicaciones de video vigilancia
automatizada.
Para trabajar con imágenes en C#, los diseñadores del lenguaje han
desarrollado la clase Bitmap, una clase que está compuesta por métodos y atributos
que resultan muy útiles al trabajar con imágenes. 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 métodos con los que trabajar, es posible
desarrollar procesos que manipulen diversos aspectos de la información 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 píxeles de los Bitmaps puede variar enormemente, puede ir
desde 1 bpp (los bpp son los bits por píxel; el bpp es una metida que relaciona la
cantidad de bits de memoria que se emplean en el sistema para representar un píxel,
que es como se llama a los puntos de las imágenes), que permite tener imágenes en
blanco o negro; hasta la el formato del sistema HDMI, que utiliza en su última versión
un formato de 48 bpp (con un orden de billones de colores). Sin embargo, en este
proyecto el formato de píxel más extenso con el que se trata es el de 32 bpp, una
ampliación del 24 bpp o RGB estándar, un formato que permite almacenar y procesar
imágenes en color.
49
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El formato de los píxeles de una imagen determina la cantidad de memoria que
ocupa una imagen; esta cantidad de memoria que se ocupa se puede utilizar para
representar más colores dentro de la propia imagen o difuminar los colores ya
existentes en sucesivos tonos del mismo color.
Figura 4.3: Uso de la memoria según el formato
En cuantos más bytes de memoria se hayan asignado a cada píxel, más se
tardará en acceder a la memoria ocupada por un píxel y por lo tanto más se tardará en
analizar la información de la imagen completa. El formato de los píxeles representa por
tanto la definición de cada punto de la imagen, la precisión 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 información
dentro de un programa sin comprometer la velocidad de procesamiento del programa.
A continuación se presenta un pequeño repaso de las posibilidades de los
formatos que los programadores tienen a su disposición; los formatos que han sido
incluidos dentro de la aplicación tienen una explicación adicional con el fin de
introducir al lector a su uso dentro de la consola.
50
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
- 1 bpp:
Este formato genera imágenes en blanco y negro, con un bit para
cada píxel; 0 para el negro y 1 para el blanco. Estas imágenes sencillas
pueden servir para hacer un negativo de las imágenes reales con la
información más vital de estas.
En este proyecto se ha utilizado este formato no para generar
imágenes 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 imágenes con formato superior, esta técnica ya ha
sido utilizada en otros proyectos con finalidades similares [LEE08],
[LAND08].
De este modo se puede representar la información vital para los
niveles de análisis superiores con imágenes que ocupen un espacio
mínimo 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 imágenes a color con una
paleta de colores sencilla con pocos matices. Además, 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 utilización de este
formato, sobre todo mediante la variante de la escala de grises. Esta
opción permite transformar imágenes a color que consumen más
memoria (32 bpp o 24 bpp) en imágenes que consumen una cantidad de
memoria notoriamente menor (8 bpp, lo que es al menos una tercera
parte de la ocupación de memoria original).
51
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Sin embargo, este formato permite mantener una cantidad
importante de información 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 característicos de los elementos de las imágenes.
Además, pese a la pérdida de información relativa al color de los
objetos, las 256 tonalidades de gris permiten analizar la imagen y
caracterizar los objetos también por su color, no sólo por su forma.
- 16 bpp:
Este formato está compuesto por dos bytes, de modo que las
opciones de configuración son amplias; a priori se pueden utilizar como
la opción de 8 bpp con una precisión superior (el doble de bits por píxel
permiten elevar al cuadrado la precisión de la imagen), pero además se
dispone de una opción 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 serían muy parecidos a los obtenidos con el formato de
8bpp, sería interesante estudiar el desarrollo de una ampliación de la
consola con este formato para la implementación de cámaras con
tecnología HDMI; de este modo se podrían desarrollar procesos que
requiriesen mayor precisión en la imagen, como por ejemplo un
proceso que realizara un zoom sobre zonas concretas de la pantalla
(como por ejemplo para identificar los números de una matrícula).
52
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
- 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 estándar 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 más especializados.
- 32 bpp:
Cuatro bytes por píxel es un formato que se utiliza para generar
imágenes que además de soportar el sistema RGB incluyen un byte
para representar el brillo del píxel, lo que redunda en una mayor
profundidad en los matices de los colores generados por el sistema
RGB.
- 36+ bpp:
Estos formatos generan imágenes con un rango de colores
inmenso, para el formato de 36 bpp más de 68 000 millones de colores
y para el formato de 48 bpp más de 281 billones de colores.
Estos formatos se utilizan en la tecnología HDMI, pero de
momento no son funcionales en el análisis de la tecnología artificial por
su carga computacional. No obstante, es de suponer que los nuevos
sistemas de vigilancia, trabajando sobre procesadores más potentes,
incluyan en su software procesos que trabajen con este formato de
imagen digital.
53
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Este proyecto está diseñado para recibir y devolver imágenes con formatos 24
bpp y 32 bpp, ya que son los más comúnmente utilizados en la actualidad en lo que se
refiere a captura de imágenes. Estos son formatos que proporcionan toda la
información del análisis. Sin embargo, no se puede realizar este análisis con imágenes
de este formato ya que se podría comprometer la velocidad de procesado de la
información.
Por este motivo, dentro de la consola sólo se trabaja con imágenes en formato
8bpp o inferior. Al captar una imagen con formato superior a 8bpp, inmediatamente se
lanza un método que transforma las imágenes con este formato en su réplica en
formato 8bpp, ganando una reducción del consumo de memoria de un 300% o 400%,
lo cual permite disponer de más tiempo para implementar más niveles de análisis para
la secuencia de imágenes. Esta transformación de las imágenes permite trabajar con
un formato definido y establece un estándar dentro del programa para trabajar con los
filtros que se irán aplicando sucesivamente a las imágenes.
Tanto individualmente como por separado, los Bitmaps son analizados píxel por
píxel, esto es posible únicamente si se descompone la imagen por completo. La
descomposición de la imagen implica que se debe trabajar con el nivel de la memoria
para saber la información que contienen los píxeles y a la vez poder trabajar con ella.
54
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Acceso a memoria
La memoria de un ordenador es una serie finita de casillas que está ordenada
como un vector lineal donde guardar la información. Toda la información 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 informáticos se puede recomponer una traducción de la información
analógica en formato digital.
Figura 4.4: Almacenamiento de una imagen
55
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El sistema operativo de los ordenadores tiene mecanismos que protegen la
memoria de la manipulación incorrecta durante la ejecución de los programas; sin
embargo, los programas tienen implementados ciertos métodos que les permiten
acceder a la memoria del sistema para satisfacer las necesidades del programador.
Gracias a estos métodos es posible manipular la memoria de las imágenes de forma
segura, sin borrar ni sobrescribir información vital que estuviera alojada cerca de la
zona de memoria donde se encuentren las imágenes.
Gracias al método LockBits se puede acceder a las zonas de memoria donde se
encuentran almacenados los bytes que representan la información de los píxeles de las
imágenes. De no utilizar este método, los programadores no podrían acceder a la
memoria de las imágenes directamente; sin embargo, gracias a este método se puede
acceder a la información bit a bit, independientemente de la extensión del archivo de
imagen. Esto permite a los desarrolladores trabajar con la información desde la
aplicación, no como un conjunto indisoluble, sino como una serie de parcelas de
información que pueden ser procesadas por separado.
Mientras que una fotografía o imagen sobre un soporte físico como el papel o
sobre una pantalla puede ser fácilmente reconocible por cualquier persona, cuando se
guarda una de estas imágenes en formato digital esta facilidad a la hora de identificar
elementos se pierde.
En memoria, las imágenes son fragmentadas en parcelas de información más
pequeñas denominadas píxeles y almacenadas en la memoria del ordenador como si
se tratara de una serie de pequeñas diapositivas. Por este motivo el desarrollador del
programa debe diseñar e implementar unos algoritmos con los cuales se pueda
acceder a la zona de memoria donde se encuentra la imagen, reorganizar la
información de la memoria y recomponer la imagen.
56
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Tratamiento de las imágenes
Al acceder directamente a la información se puede trabajar con ella al nivel más
bajo, utilizando punteros que señalen directamente las zonas de memoria de los
píxeles, pudiendo trabajar incluso con el valor numérico de los píxeles, esto permite al
programador trabajar con los píxeles como si fueran una variable numérica, no como
una variable que está guardando un color. Sólo de esta forma ha sido posible aplicar
los filtros de imagen necesarios para analizar las imágenes.
El acceso a la memoria ocupada por una imagen se hace gracias al método
LockBits, método que proporciona un vector con todos los bytes de la imagen, lo que
permite acceder a la información de la imagen desde un entorno de programación.
Como hemos visto en el punto anterior, la presentación de la información con este
vector podría dificultar al programador el diseño de los filtros que quisiera aplicar a la
imagen ya que las imágenes no están guardadas en memoria como lo están en el
formato analógico, esto es una gran diferencia con respecto a la vida real ya que en el
formato digital la aplicación 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 cuadrícula que atraviese uniformemente
la imagen transversal y longitudinalmente; la imagen se puede representar por una
función del siguiente estilo:
f(x,y)
donde x e y son las coordenadas del píxel
el resultado f(x,y) de la función es el valor del color del píxel
Gracias al acceso píxel a píxel de la imagen, es posible realizar una serie de
mediciones que permiten evaluar ciertas características de la imagen que se está
procesando. El histograma de una imagen es la herramienta más completa para
evaluar la calidad de una imagen y por tanto valorar cuales son las transformaciones
más oportunas que se deben aplicar a la imagen para que ésta sea más fácil de analizar
[WEB003].
57
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El
histograma
de
una imagen contiene la
distribución de los niveles
de gris de la imagen, gracias
al cual se pueden calcular la
intensidad
Figura 4.5: Histograma de un retrato
media
o
la
dispersión de los valores
de gris de la imagen. El
objetivo es conseguir una imagen con un valor de dispersión lo más grande posible, lo
que se traduce en unos valores de gris distribuidos uniformemente.
Los histogramas de
estas dos fotografías 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
Figura 4.6: Histograma de un plano general
es unimodal, con la mayoría de los niveles de gris acumulados alrededor de un único
valor. Mientras que la primera imagen es candidata a seguir con el proceso de análisis,
la segunda debe ser refinada para optimizar su análisis.
El objetivo del cálculo 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 técnico en
seguridad que supervisará la consola.
58
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
En el caso de que la imagen esté en óptimas condiciones para ser analizada, se
aplicarán entonces una serie de filtros con los que se obtiene una información
concreta; por el contrario, si el análisis del histograma así lo aconseja, se aplicarán otra
serie de filtros para pulir la imagen y así obtener información 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 información para que sea
más fácil al ordenador resaltar los objetos más importantes. Para refinar la
información de imágenes se aplican los filtros de imágenes, estos filtros o efectos son
operaciones matemáticas que se aplican a los valores numéricos de los bytes de los
píxeles.
Un filtro es una función matemática que se aplica a una imagen gracias a la
descomposición de la imagen en la función f(x,y). La operación del filtro se puede
representar por la siguiente operación:
Ecuación 4.1: Aplicación de un filtro
Los filtros se pueden dividir en dos grandes grupos de filtros, los filtros de
punto o los filtros espaciales [WEB003], esta distinción entre los grupos hace
referencia al modo de calcular el valor del color de los píxeles de la imagen.
Los filtros de punto requieren conocer únicamente el valor de la intensidad de
un solo píxel a cada paso, la transformación se aplica píxel por píxel; una vez aplicada
esta transformación al píxel, é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 composición de la imagen en función de las distintas
59
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
agrupaciones de los píxeles; es decir, el color de un píxel se obtiene en función del
valor de sus vecinos.
A continuación 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 capítulo sólo se presentan los efectos
de los filtros sobre las imágenes 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 imágenes en
blanco y negro; puede que haya más o menos tonalidades, pero los colores siempre
son derivados del gris. Gracias a este filtro, es posible generar imágenes que
mantengan la información básica de las imágenes 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 resolución
normal de 320 x 240 píxeles, implica un peso de 230400 bytes por imagen; sin
embargo, una imagen de 8 bpp del mismo tamaño ocupa 76800 bytes, tres veces
menos. Este ahorro de memoria es todavía mayor si el formato es de 32 bpp, lo cual
implicaría una reducción del 400% de la ocupación 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
generación de una imagen a partir de la superposición de los colores azul, verde y rojo;
Estas imágenes pueden descomponerse en tres funciones que acotan los valores de los
colores azul, verde y rojo entre 0 y 256.
60
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Ecuación 4.2: Descomposición del sistema RGB
Para aplicar el filtro de escala de grises a la imagen sólo se deben recorrer los
bytes del vector de forma lineal, es decir, no hace falta saber cuáles son los píxeles que
están cerca de píxel que se está analizando. La única consideración que hay que tener
es el formato de entrada de los datos; las imágenes 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 píxel ya que de tener un
formato de 32 bpp, habría que saltar la casilla de memoria que contuviera la
información del nivel de alfa del píxel.
Figura 4.7: Filtro de la escala de grises
A continuación se presenta la fórmula 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 problemático ya que sólo hay que acceder a la memoria de la imagen
original tres veces por cada píxel, el siguiente acceso a la memoria será el acceso al
byte azul del siguiente píxel y este paso define el comienzo de la siguiente iteración. En
61
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
caso de que el formato sea de 32 bpp, entonces hay que hacer un salto adicional para
obviar la información que hay en ese byte.
Ecuación 4.3: Aplicación del filtro de escala de grises
El algoritmo implementado en el prototipo de la aplicación transforma las
imágenes 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 información de los píxeles y otro que apunta al a zona de memoria vacía de la nueva
imagen generada.
Dentro del bucle análisis, el sistema lee los tres primeros bytes con el puntero
(en caso de que la imagen tuviera un formato el sistema haría saltar un byte al
puntero) y acumula los valores leídos en una única variable, al finalizar la iteración, el
proceso divide el valor acumulado por tres y lo inserta en la zona de memoria a la que
apunta el segundo puntero, inmediatamente después, éste avanza una posición 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.
62
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 4.8: Diagrama de flujo del algoritmo de escala de grises
Gracias a la aplicación de este filtro se consigue un ahorro de memoria teórico
del 300% o del 400% en el mejor de los casos ya que se transforma una información
que inicialmente ocupa en espacio de 24 bpp o 32 bpp a un tamaño de 8 bpp, lo cual
es un tamaño muy inferior. Esta reducción del tamaño no sólo implica que se pueda
63
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
trabajar con un mayor número de cámaras de forma simultánea, sino que además
significa que el procesador tardará menos tiempo en terminar de analizar la imagen.
Figura 4.9: Aplicación del filtro de escala de grises
64
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Función de contraste
El contraste
de una imagen es la
diferencia
niveles
claros
entre
de
y
gris
niveles
oscuros; la técnica
de
realce
del
contraste se basa en
dividir el rango de
niveles
en
tres
grupos de valores,
los grises claros, los
grises intermedios
Figura 4.10: Análisis para el filtro de contraste
y los grises oscuros
y aplicar a cada uno de estos grupos una transformación que proviene de una función
lineal diferente para cada grupo.
Ecuación 4.4: Aplicación del filtro de contraste
Gracias a la aplicación de esta técnica, es posible expandir la dispersión de los
niveles de gris a lo largo del histograma consiguiendo una imagen con unos colores
más definidos.
65
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Esta transformación genera imágenes con más calidad, además, las
transformaciones necesarias son ejecutadas
por la inteligencia artificial si los
parámetros de lectura del histograma así lo determinan.
Posterización
La posterización consiste en separar todos los niveles de grises de la imagen en
una serie limitada de zonas planas de valor constante. La asignación del valor de un
píxel a una u otra zona
depende de su intensidad
en la imagen original. El
objetivo de este filtro es
limitar el número de tonos
que puede alcanzar en la
nueva imagen, haciendo
más
evidentes
las
superficies de la imagen,
limitando de tal manera el
nivel
de
pueden
detalle
que
alcanzar
las
Figura 4.11: Análisis de la posterización
imágenes.
Gracias a la posterización las facciones de los individuos y las líneas que definen
los contornos de los objetos son más nítidas, de modo que identificar la naturaleza de
los objetos que se encuentran en la imagen se vuelve más sencillo.
Esta técnica puede especialmente útil en entornos donde el nivel de luz no
influye demasiado, como en el interior de los edificios; gracias a la delimitación de
estas zonas, se pueden determinar los rasgos de la cara de una persona y por lo tanto
llegar incluso a identificarla, como veremos más adelante. Sin embargo, en el exterior,
66
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
la eficacia de esta técnica puede ser mermada por la rápida variación del brillo de la luz
en las superficies y por la distorsión que esta variación genera.
Ecuación 4.5: Aplicación del filtro de posterización
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
imágenes.
Un
puntero
recorre
todo el vector de información
de la imagen para acceder al
valor de gris de cada píxel 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
Figura 4.12: Flujo de datos del proceso de posterización
puntero que apunta a la
imagen original.
67
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Función Umbral
Una de las transformaciones más sencillas que podemos aplicar a una imagen
es la función umbral. El método genera una imagen en dos tonos (blanco y negro) a
partir de otra con múltiples niveles de gris, es decir, la salida es binaria. Puede
afirmarse que la umbralización es en realidad un caso extremo de ampliación de
contraste ( x1 = x2 ; y0 = y1 = 0 ; y2 = y3 = L-1 ).
La expresión matemática de esta transformación es:
Ecuación 4.6: Fórmula de la función umbral
El umbralizado transforma el histograma de la imagen original en un
histograma de dos puntos, con valores sólo para el negro y el blanco. El valor de
umbral B es el que sirve a la consola para calcular cuales son píxeles que cumplen las
condiciones de transformación.
La elección de B es uno de los mayores problemas de la función umbral, puesto
que no se pueden dar unas reglas a seguir para calcularlo, cada imagen tendrá uno o
varios valores válidos para B según sea la segmentación que se desee conseguir.
La función umbral es una de las más importantes y sencillas técnicas de
segmentación, puesto que en muchas aplicaciones de procesado de imágenes 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 función de posterización.
68
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 4.13: Análisis del filtro de la función umbral
La función de posterización delimita una serie de zonas de colores planos, el
algoritmo diseñado 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 delimitación de las zonas del mismo color.
Figura 4.14: Binarización de la imagen original
69
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 píxel donde se encuentra. Esta
comparación no se realiza si el puntero más avanzado apunta a la primera posición de
una línea de la imagen.
Figura 4.15: Flujo de datos del proceso de binarización
70
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Algunos
algoritmos
espaciales
[WEB003]
tienen
una
fuerte
carga
computacional, en concreto aquellos algoritmos que sirven para definir con mayor
precisión el contorno de los objetos de las imágenes. Debido a que esta precisión no es
necesaria para el desarrollo de este proyecto y que la carga computacional que implica
la implementación de estos algoritmos es muy pesada, por lo que sólo se ha incluido
un único filtro espacial.
Sin embargo, hay que tener en cuenta que la implementación de estos
algoritmos pueden ser el siguiente escalón para incorporar cámaras con tecnología
HDMI en los procesos de vigilancia en tiempo real ya que permiten compensar y
definir mejor la información captada por las cámaras de HDMI, estas cámaras 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 píxeles que tiene a su
alrededor el píxel que se está procesando para calcular el valor resultante. Estos filtros
tienen una carga computacional muy importante y los resultados ofrecen una
precisión 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 código 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 básico de los
objetos de la imagen original. Este filtro permite analizar los elementos más comunes
de la imagen original, y aplicado a las imágenes de una secuencia, permite calcular los
movimientos más básicos de los objetos.
71
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 4.16: Aplicación del filtro de pixelado
Además, este filtro permite reducir la cantidad de información 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 píxeles, entonces sólo hace
falta almacenar un valor por cada 25 píxeles de la imagen que se mostrará.
Ecuación 4.7: Aplicación del filtro de pixelado
72
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El algoritmo desarrollado para implementar el filtro de pixelado dentro de las
funcionalidades del prototipo accede a la información de la imagen suministrada y
genera otra con un tamaño más reducido. Para calcular la media de los valores de las
áreas se emplea un vector con un tamaño igual al número de píxeles de la imagen que
se va a generar y dos punteros, uno apuntando hacia la primera posición 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 codificación de este filtro requirió desarrollar dos fases dentro del proceso,
en la primera se acumulan los valores de los píxeles de la imagen y en la segunda fase
se calculan y se cargan estos valores dentro de la imagen resultante.
73
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 4.18.1: Flujo de datos en la fase de acumulación del proceso de pixelado
74
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 información, gracias a estos bucles los
punteros apuntan sobre las zonas de memoria correctas, además se controla que los
punteros no salgan de la zona de memoria con la que se trabaja.
75
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Mientras que el primer bucle sirve para acumular el valor de los píxeles por
columnas, el segundo de estos bucles añade a los valores ya acumulados los valores de
las filas correspondientes, terminando así la acumulación de los valores de los píxeles
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 píxel
dividiendo el valor almacenado por el área que se pretende ocupar con cada megapíxel
del pixelado) dentro del píxel correspondiente (cada uno de los bucles conserva la
cuenta de las coordenadas del píxel 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 información que se quiere analizar. Una
vez aplicados estos filtros, lo que podría denominarse como la primera capa de la
inteligencia artificial, se procede a aplicar la segunda capa de inteligencia, un proceso
según el cual se procesa la información con una finalidad más concreta, como detectar
el movimiento de los objetos, evaluar dicho movimiento, o identificar los objetos de la
imagen.
76
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Análisis de las imágenes
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 imágenes; es
decir, se relaciona la imagen que se está estudiando con el resto de las imágenes del
stream que recibe la consola.
El análisis de la imagen actual se divide en dos, primero se analiza la imagen
actual con respecto a una imagen de referencia establecida por la configuración del
sistema, y más adelante con respecto a la imagen inmediatamente anterior de la
imagen actual; estas dos imágenes servirán 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 imágenes establecen una referencia para el análisis del resto de
las imágenes del video. Estas imágenes 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 vehículos.
La finalidad de capturar una imagen de referencia es establecer un filtro para
las siguientes imágenes; gracias a este filtro se pueden obtener imágenes que
contengan únicamente aquellos objetos que se encuentren en movimiento en la
escena sujeta a la vigilancia. Esta detección es posible mediante la comparación de la
imagen que se desea analizar con respecto a la imagen que se ha tomado como
referencia. Se compara las imágenes píxel por píxel descartando aquellos que no han
cambiado, gracias a este proceso, se consigue una imagen donde únicamente se
77
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
mantienen los píxeles correspondientes con la representación de los objetos que
hayan incurrido en la escena.
Figura 4.19: Aplicación del filtrado píxel por píxel
Esta técnica presenta diversos problemas de implantación; el más importante
de ellos es la variación del brillo de las superficies debido a la variación de la luz.
A lo largo del día, la luz solar varía en potencia y en ángulo de incidencia ya que
la Tierra está en constante movimiento alrededor del Sol. Este fenómeno implica que
la luz no es constante durante todo el día, lo cual hace variar los colores que capta la
cámara. Como la comparación de las imágenes se basa en comparar directamente los
78
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
píxeles de las imágenes, estas variaciones en el brillo de las superficies pueden implicar
que el color captado para un mismo píxel sea distinto por la mañana 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
implementación de un margen de filtrado en la consola o la actualización constante de
la imagen de referencia.
El margen de filtrado permite obviar las ligeras variaciones del color. Si durante
el análisis de todos los píxeles de la imagen, se establece un rango de tonos alrededor
del nivel de gris del píxel de la imagen de referencia, y el color del píxel de la imagen
actual de la cámara se encuentra dentro del rango de tonos cercanos al color de su par
en la imagen de referencia, entonces este píxel se establecerá como no variante.
El método de actualizar la imagen de referencia se basa en que el fenómeno de
variación de la luz durante el día es muy lento; las variaciones que se puedan dar en un
lapso de tiempo pequeño pasarán 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 día no afectarán en gran medida y no contaminarán
el análisis de las imágenes.
El refresco constante de la imagen de referencia conlleva un peligro inherente,
puesto que si la cámara 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.
79
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 precisión los movimientos
de estos objetos. El estudio de la imagen actual con respecto de la imagen
inmediatamente anterior añade matices a la descomposición del movimiento de los
objetos.
Inicialmente, la consola puede comparar la imagen actual con la imagen de
referencia para estudiar de forma básica el movimiento de los objetos, pero el análisis
de la imagen anterior permite captar el movimiento de las partes en movimiento de
los objetos.
Mientras que la comparación de la imagen con la imagen de referencia siempre
define el elemento en movimiento como un único objeto indivisible, la comparación de
la misma imagen con respecto del fotograma inmediatamente anterior proporcionará
una imagen donde sólo se mantendrán aquellas partes del elemento que se
encuentren en movimiento. De este modo la consola tendrá la información suficiente
para identificar los matices del movimiento de los elementos en desplazamiento.
Figura 4.20: Comparación de dos fotogramas consecutivos
80
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
La operación de comparar dos fotogramas consecutivos genera una imagen que
a priori parece incompleta puesto que no todos los píxeles 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 homogéneos y a que el
tiempo entre cada fotograma es mínimo; por lo tanto, aunque esta superficie se
mueva por el espacio las variaciones del color en un lapso de tiempo tan pequeño sólo
son registradas en los bordes de la superficie en movimiento.
Figura 4.21: Secuencia de análisis de los fotogramas
81
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El ser humano no percibe los cambios entre dos imágenes consecutivas en una
secuencia de 24 fotogramas por segundo; sin embargo, una máquina sí puede analizar
las imágenes y calcular la diferencia entre los valores de los píxeles que hayan
cambiado. Los resultados de este proceso serán el punto de partida para el análisis del
movimiento de los elementos de la imagen.
Mejora de los filtros mediante el pixelado
Gracias a la comparación píxel por píxel de las imágenes con la imagen de
referencia y la imagen inmediatamente anterior se pueden obtener imágenes que
contengan aquellos objetos que se encuentran en movimiento dentro de la imagen.
No obstante, antes de trabajar directamente con la información se debe procesar ésta
para que su análisis sea más fácil para la consola.
Figura 4.22: Secuencia de análisis de un fotograma con pixelado
82
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Al aplicar el filtro del pixelado se agrupan los píxeles por áreas, de este modo
los resultados son más evidentes y más fáciles de interpretar para el ojo humano.
Además, las imágenes generadas de este modo pueden ser vectorizadas, lo que
implica una reducción del uso de la memoria, haciendo que el uso de estas imágenes
por la memoria sea más rápido.
Cada píxel de una
imagen normal ocupa un bit,
sin
embargo,
gracias
al
pixelado, los píxeles 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
más
reducidas
que
las
dimensiones de una variable
Bitmap estándar. En el caso
de almacenar una imagen
pixelada en áreas de 5 píxeles
de longitud, se obtiene una
Figura 4.23: Secuencia de almacenamiento de una
imagen pixelada
reducción del 2500%, ya que
sólo se almacena un píxel de
cada 25.
83
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Gracias a este filtro, se almacena la información en un espacio de memoria más
reducido, lo que permite tener acceso más rápido a la información, lo que redunda en
la posibilidad de aplicar más filtros a las imágenes que hayan sido pixeladas y mejorar
así los resultados de procesamiento.
Además, el uso del pixelado permite obtener información 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 más evidente su
posición en la imagen.
Figura 4.24: Secuencia de localización de los elementos de las imágenes
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 información referente
al objeto. Esta información puede incluir datos básicos como la posición del objeto o el
nivel de color medio de la superficie; de este modo la consola puede identificar el
objeto durante una secuencia de imágenes, no sólo en una única imagen.
84
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Aunque este proceso permite lanzar mensajes a los operarios acerca de la
localización de los elementos en movimiento, los resultados que se pretenden alcanzar
con la consola son más ambiciosos ya que los objetivos de este proyecto incluyen el
desarrollo de la inteligencia artificial necesaria para analizar las imágenes de una
secuencia y estudiar el movimiento de los objetos que se localicen.
85
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Identificación de categorías
Una vez localizados los elementos dentro de las imágenes, 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 más concreto de
acciones.
El diseño y desarrollo de un sistema de inteligencia artificial que permita
analizar y evaluar la naturaleza de los elementos de las fotografías es una tarea
compleja; establecer los parámetros que definen la naturaleza de cada categoría y
desarrollar
aquellos
algoritmos
que
permitan
identificar
estos
elementos
característicos 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 diseñar un sistema que
pudiera analizar una imagen e identificar los objetos en movimiento. Esta
identificación debía ser efectiva para tres grupos distintos de elementos que pudieran
encontrarse dentro del objetivo de la cámara de vigilancia; estas tres categorías son los
las personas, los objetos, y dentro de la categoría de objetos, separar los vehículos del
resto de objetos comunes.
A priori, la categoría que resultó ser más fácil de definir mediante la
implantación de criterios comunes para todos los elementos de esa categoría fue el
grupo de los vehículos.
Este grupo de objetos tiene varios elementos en común; las ruedas y las luces
son elementos constantes que se incluyen en todos los vehículos que se desean incluir
en esta categoría. Además, gran parte de estos vehículos tienen otros elementos en
común, pero que dependen de la categoría específica a la que pertenecen; las
86
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
furgonetas, los camiones y los coches, todos los vehículos con la carrocería cerrada,
tienen el parabrisas como elemento común. La matrícula depende de la categoría a la
que pertenezca el vehículo; las motocicletas sólo tienen una placa en la parte posterior
del vehículo, mientras que los vehículos con cuatro ruedas o más tienen dos placas,
una en la parte frontal y otra en la parte posterior.
En lo que respecta a la categoría de personas, ésta categoría es mucho más
difícil de definir ya que las personas pueden adoptar una gran cantidad de posturas y
aspectos que puede entrar en conflicto con la definición de una ley estricta. Por
ejemplo, si nos centramos en la simetría de la anatomía humana (el cuerpo humano
tiene dos piernas, dos brazos, etcétera), estos criterios sirven para identificar los
elementos de esta clase sólo si la cámara de vigilancia capta al individuo de frente, sin
embargo, si la cámara capta únicamente el perfil del individuo, entonces estas reglas
se vuelven inefectivas; por este motivo no se han desarrollado reglas específicas para
identificar a las personas con este sistema de vigilancia.
Por último, para la tercera categoría, tampoco se han desarrollado reglas
específicas ya que este grupo incluye a todos los objetos; esta categoría agrupa tanto
los objetos comunes en sí (bolsas, libros, etcétera) como aquellos elementos que
todavía no han sido analizados o que no han dado una identificación 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 categoría de objetos comunes; este sistema
permite mantener la información sobre los objetos que se han obtenido mediante al
análisis sin que por ello se clasifiquen en una categoría incorrecta.
Los elementos que se encuentren en la categoría de objetos comunes sólo
abandonarán esta categoría si durante su análisis la consola determina con total
certeza o mediante la ayuda de un usuario del sistema que el objeto analizado
pertenece a otra categoría.
87
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Identificación de los criterios de clase
La inteligencia artificial de la consola se basa en el establecimiento de una serie
de reglas que definan cada categoría y la conjunción de estos elementos para formular
hipótesis sobre la naturaleza de los objetos captados en la imagen.
Si durante el análisis se cumplen varias de las reglas que definen una categoría,
entonces la consola deberá consultar su configuración y si las reglas que se cumplen
son suficientes para declarar que un objeto pertenece a una categoría 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 común para ser
identificado como una persona o un vehículo.
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 categoría,
entonces la consola lanzará un mensaje de confirmación al usuario para que éste
determine si la naturaleza del elemento analizado corresponde con aquella que la
consola le propone.
88
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Estudio del movimiento
Las imágenes obtenidas a partir de la comparación con la imagen de referencia
y la imagen inmediatamente anterior y refinadas mediante el filtro del pixelado,
contienen toda la información necesaria para la consola; además, la información está
almacenada de una forma intuitiva y fácil de manejar, lo que redunda en una mayor
facilidad para diseñar los algoritmos que tendrán que procesarla para el estudio del
movimiento de los objetos.
Además de los filtros ya mencionados, para realizar ciertos cálculos sobre las
imágenes se generan replicas de estas mediante el filtro de la función umbral como
parte de la operación del proceso. Gracias a este filtro se obtiene una imagen en
blanco y negro puro de la imagen original.
Esta
imagen
tiene un tamaño de
memoria muy reducido
con respecto al resto de
imágenes ya que la
precisión del formato
es básica, cada píxel se
representa únicamente
mediante un bit; en
conjunción
con
método
el
de
almacenamiento de la
vectorización, el filtro
binario
reduce
el
Figura 4.25: Función umbral de una imagen de objetos en tamaño en memoria al
movimiento
mínimo.
89
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Aunque la definición de la función 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 píxeles que no
representan píxeles de objetos en movimiento. De este modo se obtienen imágenes
que contienen únicamente la silueta de los elementos en movimiento y además que
ocupan el espacio en memoria imprescindible.
Gracias a los procesos anteriormente descritos, es posible generar marcas en
las imágenes que tracen el movimiento de los objetos durante todo su
desplazamiento. A partir de la localización de los objetos en cada imagen se puede
analizar el movimiento de los elementos durante toda la secuencia de imágenes
analizando la evolución de las marcas a lo largo del tiempo.
Al identificar la posición de un elemento, se registra una ocurrencia de este en
la base de datos; este registro contiene la información esencial de cada elemento.
Aunque los datos que se guarden pueden modificarse, los datos principales son la
posición 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
imágenes se han desarrollado dos métodos distintos. El primero es el estudio del
movimiento mediante el seguimiento del centro del objeto durante la secuencia de
imágenes; el segundo de los métodos es la correlación del centro del objeto y el centro
de su zona en movimiento.
90
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Seguimiento del centro del objeto
El primer método desarrollado para el estudio del movimiento de los objetos
dentro de la secuencia de imágenes se basa en comparar la posición de un objeto
dentro de la imagen durante toda la secuencia de imágenes en las que este objeto
aparece.
Figura 4.26: Secuencia de cálculo del método de seguimiento del centro
91
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Este método se basa en relacionar la posición 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 través del cálculo de la diferencia entre las
coordenadas de los puntos se puede establecer la dirección que está siguiendo el
objeto.
Figura 4.27: Resultados del método de seguimiento del centro
Gracias a este método se pueden obtener resultados a partir de un único
análisis de la imagen ya que se basa en comparar dos imágenes generadas mediante el
método de comparación con la imagen de referencia.
92
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El método de correlación de centros
En el punto anterior se definía el método de seguimiento de centros, que se
basa en el método de comparación con la imagen de referencia. El método de
correlación de centros utiliza los resultados del método de comparación con la imagen
de referencia y la comparación con la imagen inmediatamente anterior como base
para calcular el movimiento de los objetos de la imagen.
El método de correlación de centros obtiene el centro de los objetos resaltados
mediante el método de comparación con la imagen de referencia para establecer el
punto central del objeto en movimiento. Para calcular el movimiento de este sólido, el
sistema calcula también el centro de la zona del objeto resaltada mediante el método
de comparación con la imagen inmediatamente anterior.
Figura 4.28: Secuencia de cálculo del método de
correlación de centros
93
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Gracias a este método el análisis del movimiento es más rápido; el método de
seguimiento de centro utiliza como datos de entrada las imágenes de dos instantes
consecutivos, mientras que el método de correlación de centros necesita dos
imágenes de un mismo instante. Esto implica que gracias a al método de correlación
de centros se puede calcular el movimiento de un objeto más rápidamente.
Figura 4.29: Resultados del método de correlación de centros
Estos métodos de cálculo del movimiento permiten a la consola procesar las
imágenes originales y devolver una imagen donde se representa la trayectoria y la
velocidad de los elementos de la imagen; gracias a esta representación los usuarios de
este sistema puede identificar fácilmente aquellos objetos que están en movimiento.
94
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Gracias a estos mensajes, los usuarios de este sistema de vigilancia
identificarán con mayor rapidez la trayectoria de los objetos que se encuentren en
movimiento. De este modo serán capaces de evaluar las situaciones comprometidas
con una mayor anticipación, lo que facilitará su labor y mejorará sus resultados.
95
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Capítulo 5
96
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Resultados
Durante el desarrollo del proyecto se han analizado algunos videos con los
algoritmos explicados en el capítulo 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
función umbral o el pixelado. La mayor parte de este análisis se ha centrado en la
secuencia en que se debían aplicar los filtros para que los resultados fueran lo más
satisfactorios posible.
Además de los algoritmos de filtrado se han analizado los métodos de cálculo
del movimiento; el análisis 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
capítulo siguiente. Estas conclusiones sirvieron para reconducir la dirección de las
investigaciones en algunos casos, y en otros dan pie a nuevas hipótesis sobre el
desarrollo de los sistemas de vigilancia con base en inteligencia artificial.
97
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Método de captación de las imágenes
Las imágenes con las que se ha trabajado a lo largo de este proyecto provienen
de la descomposición en fotogramas de los vídeos seleccionados para las pruebas. De
este modo se podían analizar los algoritmos sin que ello implicase la instalación de una
cámara de video usb.
Pese a las diferencias que esto pueda representar con respecto del sistema
real, el objetivo de este proyecto es diseñar algoritmos que permitan analizar
imágenes dentro de secuencias de video, por lo que el origen de las secuencias de
vídeo tiene menos importancia en el desarrollo de este proyecto.
En una situación real, el sistema de vigilancia se alimentará de imágenes
provenientes de las cámaras de vigilancia mediante la configuración de una conexión
llamada
‘stream’;
esta
conexión entre la cámara
de vigilancia y el nodo de
procesamiento del sistema
se establecerá desde el
programa, permitiendo la
recepción por parte de la
Figura 5.1: Conexión del equipo con la cámara
mediante un stream
consola de las imágenes
generadas por la cámara.
Esta conexión almacenará las imágenes en la zona de memoria especificada por
el programador en la configuración de la conexión; del mismo modo, la aplicación
desarrollada separa los fotogramas de los videos y almacena las imágenes en una zona
de memoria accesible al programa. En ambos casos, los procesos lanzados por la
consola toman la información con la que trabajan de la memoria principal.
98
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 fácil de analizar, ya sea porque la información es más resumida y por lo
tanto el menor rango de opciones permite a la consola calcular los resultados mejor o
bien porque el tamaño de las imágenes 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 más pequeño, 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
Figura 5.2: Resultados reales de la escala de grises
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
tamaño parecido, la diferencia de tamaño del archivo apenas supera un kilobyte; por
lo tanto, el resultado real no es el resultado esperado.
99
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Este cambio en el resultado es sin duda provocado por el hecho de que además
de la información de las imágenes, estos archivos contienen información propia de
este tipo de archivos guardada en la cabecera lo que implica que aunque la
información específica de cada archivo tenga un tamaño diferente, los formatos de
este tipo de archivos contienen información que ocupa un tamaño mínimo para
cualquier archivo.
Para modificar este hecho y llegar al resultado esperado se podría haber
diseñado una clase propia para almacenar los Bitmaps. En esta nueva clase habría de
guardarse únicamente aquella información que fuera absolutamente necesaria para el
desarrollo de los procesos de la consola. Además del vector de bytes que contiene la
información sobre la imagen, habría que incluir aquellos métodos 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
más que satisfactorios.
La función de contraste y el ecualizado
La función de contraste y la función de ecualizado son funciones que se utilizan
para mejorar la percepción visual de la imagen capturada, son filtros para ver más
nítidamente 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 función contraste necesita de unos argumentos de entrada para
transformar la imagen inicial y que los resultados obtenidos sean óptimos; y la función
de ecualizado sólo necesita el histograma para generar los resultados.
100
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
La función de
contraste depende de
una función compuesta
por
tres
funciones
lineal para generar la
transformación,
los
argumentos
que
generan
tres
estas
funciones se obtienen a
partir del análisis del
histograma
Figura 5.3: Análisis de los resultados de la función de contraste
Sin
función
embargo,
de
de
la
imagen.
la
ecualizado
realiza su transformación
de forma automática, y
aunque
el
cálculo
automático de la función
de transformación es una
ventaja con respecto a la
función de contraste, los
resultados
parecidos
original.
son
a
la
muy
imagen
Figura 5.4: Análisis de los resultados del ecualizado
Aunque a priori los resultados de los filtros podrían ser útiles para el desarrollo
del proyecto, los resultados obtenidos en las pruebas ponían de manifiesto que la
implementación de estos algoritmos, que conllevaba el desarrollo de un proceso de
cálculo del histograma además del desarrollo del programa que implementar el filtro,
101
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
disparaban el tiempo de desarrollo y de proceso sin por ello asegurar un mejor
rendimiento de la consola. Por este motivo la implementación del ecualizado o la
función de contraste no han sido llevadas a cabo.
La función umbral
Gracias al filtro de la función umbral se han podido generar imágenes que
resaltaran la silueta de los objetos en movimiento usando el mínimo espacio de
memoria; estas imágenes se utilizan como los datos de entrada de la mayoría de los
procesos de análisis de la consola, así que son una herramienta indispensable de este
proyecto.
Figura 5.5: Análisis de los resultados de la función umbral
Estas imágenes 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.
102
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Por lo tanto, resultados obtenidos por el filtro de la función umbral han
correspondido con las expectativas generadas durante el diseño del filtro ya que se
esperaba que fueran la plataforma sobre la cual girase el análisis de las imágenes de la
consola.
Posterización y pixelado
Las pruebas realizadas con el filtro de la posterización combinado con la
función de pixelado revelaron que las imágenes procesadas mediante combinación
eran más fáciles de analizar.
Figura 5.6: Resultados de la posterización
Aunque la función de escala de grises permitía trabajar con imágenes de fácil
acceso, la aplicación de la combinación de la función de la posterización y de la de
pixelado refinaba estas imágenes de tal modo que permitía la extracción de la
información mediante procesos sencillos.
103
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Los dos filtros perseguían el mismo objetivo aunque su ejecución fuera
diferente; el filtro de la posterización permitía agrupar la información de tal manera
que las diferencias entre los tonos de los grises resaltaban de forma más evidente, y el
filtro del pixelado permitía agrupar localmente esta información, de modo que la
delimitación de los cambios en las figuras de los elementos era más sencillo y evidente.
La conjunción de estos filtros permite maximizar las posibilidades de las dos funciones
siendo el resultado final más contundente que los resultados parciales de cada
función.
No obstante, aunque a priori los resultados de la función de posterización
fueran excelentes, éstos podrían haber sido mejores. Como veremos más adelante, la
función de posterización podría haber tenido otra aplicación más dentro de la
aplicación; sin embargo, debido a la complejidad de las funciones de identificación de
los elementos de la imagen, esta otra aplicación no se llevó a cabo.
104
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Análisis de las imágenes
Filtrado con la imagen de referencia
Los resultados obtenidos gracias a la comparación de la imagen actual con la
imagen de referencia son exactamente los esperados al diseñar este filtro.
Figura 5.7: Comparación de la imagen actual con la imagen de referencia
Sin embargo, la dificultad de este filtro se manifestó al establecer los criterios
que servirían para determinar de forma automática el momento de almacenamiento
de una imagen como imagen de referencia.
105
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Las alternativas planteadas para el diseño de los mecanismos que llevarían a
cabo esta tarea son diseñar un proceso que evalúe 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 imágenes deben ir en el sentido de que no tienen ningún elemento diferente
pero sin embargo sí varían algunos tonos de gris por cuestión del brillo de la luz sobre
las superficies.
La otra alternativa se basa en diseñar un proceso que evalúe 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 debería recortar su silueta y añadir 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 comparación de la imagen actual con
respecto de la imagen anterior fueron muy difíciles de interpretar en primera
instancia. Este método generaba imágenes donde la silueta de los objetos
representados en la imagen original era desdibujada, sólo se representaban algunos
píxeles, pero siempre se representaban aquellos píxeles que estaban situados en el
contorno de los elementos que se encontraban en movimiento.
106
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 5.8: Comparación con la imagen inmediatamente anterior
Aunque los resultados obtenidos mediante la aplicación de la comparación con
la imagen inmediatamente anterior eran difíciles de interpretar, el resultado después
de añadir la aplicación del filtro del pixelado a la secuencia fueron mucho mejores. Por
este motivo se puede decir que los resultados iniciales de este método fueron
desconcertantes, pero que después de analizar los resultados y plantear una solución
para mejorarlos, éstos correspondieron con los resultados esperados en un primer
momento.
107
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Identificación de las categorías 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 debían reconocer los
elementos de las imágenes e incluirlos dentro de una de las categorías que servirían
para clasificar los objetos de los vídeos 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 diseñado, además 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.
Aún así, se expondrán algunos de los avances que se alcanzaron durante el
diseño de estos procesos; aunque en la práctica estos métodos no fueron puesto a
prueba, el desarrollo teórico de estos elementos también forma parte de este
proyecto, y su inclusión en este documento parece pertinente ya que pueden plantear
algunos problemas y soluciones sobre este punto en particular.
La posterización y la segmentación por zonas de color
En puntos anteriores se presentaron los resultados obtenidos por mediante la
aplicación del filtro de la posterización y cómo estos resultados eran mejorados
mediante la combinación de este filtro con la función de pixelado de la imagen.
No obstante, el filtro de pixelado podría tener unas aplicaciones con mayor
alcance en la fase de identificación 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 elección correcta del número de niveles de gris representa la
108
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
posibilidad de identificar aquellos detalles que pueden permitir a la consola identificar
aquellos parámetros que identifiquen la categoría de un elemento.
Durante el desarrollo de la consola se diseñó e implementó un filtro que
dibujaba la línea 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 geométricas dentro
de las imágenes que permitieran identificar los componentes de las distintas
categorías (las ruedas como círculos, las matrículas como rectángulos, una nariz como
un triángulo).
Figura 5.9: Resultados del filtro por zonas
Las imágenes superiores muestran una imagen filtrada mediante la función de
posterización, la segunda imagen muestra el mismo instante de la secuencia de video
filtrado por la función que separaba las zonas de gris; el objetivo inicial de esta prueba
fue crear el entorno ideal para que el ordenador pudiera reconocer un círculo dentro
de la bola de billar en movimiento.
109
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Identificación de formas geométricas sencillas
El algoritmo para el reconocimiento de figuras geométricas sencillas (círculos,
rectángulos y triángulos) 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: Diseño conceptual del filtro de reconocimiento de objetos
Aunque los diseños conceptuales sugerían que el desarrollo del filtro sería
rápido y sencillo (se debía desarrollar un proceso que tomase la distancia en píxeles de
las medidas de la silueta del objeto en la imagen binaria y después generar e insertar
artificialmente en la imagen la figura geométrica mediante las instrucciones
desarrolladas por la plataforma de desarrollo C#), durante las pruebas del método con
imágenes reales generaban dudas acerca de la eficacia del sistema.
Los problemas que aparecieron durante las pruebas del sistema con imágenes
reales fueron de dos tipos diferentes; en la realidad las figuras sencillas se deforman y
generan formas geométricas que evolucionan con el tiempo, lo cual las hace difíciles
110
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
de identificar durante una secuencia completa mediante un sistema automatizado. El
otro problema proviene del hecho de que los objetos de la realidad no están
compuestos por elementos geométricos sencillos, sino por formas geométricas
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 método desarrollado para
reconocer figuras geométricas sea incompleto ya que éste no está diseñado para
identificar estos cambios en las formas de los objetos reales; el método compara los
objetos reales con figuras sencillas, si un círculo se transformase en la secuencia de
imágenes en una elipse (el caso que se daría al analizar la rueda de un coche durante
un giro) el sistema no sólo sería incapaz de identificar la nueva forma del objeto
anteriormente captado, sino que además dejaría de identificar el elemento en
movimiento con la figura original.
En una imagen real, donde los elementos en movimiento están compuestos por
distintas partes móviles, el método de comparar las siluetas con formas geométricas
sencillas se mostró ineficaz para identificar aquello objetos que contienen una mayor
cantidad de partes móviles. La composición de estos elementos es tan compleja que la
comparación de su silueta con una única figura geométrica resulta insuficiente.
111
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Sin embargo, algunos métodos de descomposición de los elementos naturales
son capaces de descomponer los elementos complejos en una serie de múltiples
figuras geométricas con el fin de evitar esta fluctuación de las formas de los elementos
de la imagen [ZHAO08] y [HSIE08].
Figura 5.11: Ejemplos de otros algoritmos
112
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Estudio del movimiento
El estudio del movimiento ha sido el punto central del trabajo desarrollado en
este proyecto de final de carrera. Las vías de desarrollo que se han seguido para
generar la inteligencia artificial que controle la consola han basado sus cálculos en los
resultados obtenidos al calcular el centro geométrico de los diferentes elementos de
las imágenes.
Seguimiento del centro del objeto
El método de seguimiento del centro del objeto calcula el centro del objeto a lo
largo de la secuencia de imágenes donde es captado por la cámara. Gracias a esta
secuencia de imágenes es posible determinar su posición 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 método cumplen con las expectativas generadas
inicialmente, los resultados obtenidos en algunos casos concretos revelaron que el
método no era perfecto ya que los resultados obtenidos no correspondían
exactamente con la realidad.
Los resultados obtenidos mediante este método revelan que el método de
cálculo de centros, aplicado en los objetos situados en los laterales, obtenía una
posición incorrecta del centro del objeto en movimiento.
113
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
En el caso de los objetos en el borde de la pantalla, los datos para realizar los
cálculos 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 percepción de la silueta
del objeto.
Figura 5.12: Secuencia de estudio del método de correlación de centros
Debido a los resultados obtenidos en estos casos concretos, se desarrolló otro
sistema de cálculo del movimiento basado en el análisis de una única imagen, de este
modo se minimiza el efecto del corte de la silueta del objeto por el borde de la imagen,
114
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
ya que el contorno del objeto no es la única información que utiliza el método de
correlación de centros.
El método de correlación de centros
Gracias a los resultados obtenidos por la aplicación del método de seguimiento
en los casos del marco de las imágenes se reveló que basarse en el contorno de los
objetos en movimiento era insuficiente para obtener resultados fidedignos.
El método de correlación de centros es una evolución del método de
seguimiento del centro de objetos ya que utiliza parte del sistema de cálculo de
posiciones utilizado en el método 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 imprecisión de la información sobre el contorno del objeto.
Aunque
este
método tampoco trabaja
con
la
información
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
Figura 5.13: Resultados del método de correlación de
centros
resultado final.
115
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Los resultados obtenidos por este método avalan las mejoras realizadas en el
método de seguimiento de centros. Gracias al nuevo sistema de cálculo del vector de
posición se dispone de un método que puede modelar el movimiento de un objeto de
forma más fidedigna.
Además de obtener mejores resultados en momentos concretos del análisis, el
método de correlación de centros es complementario al método de seguimiento de
centros. Aunque la información obtenida mediante el método de correlación de
centros se ciñe más a la realidad, el tiempo de proceso de este método es mayor que
el tiempo que se tarda en calcular los resultados mediante el método de seguimiento
de centros, por lo tanto, es recomendable utilizar el método de seguimiento de
centros como método principal de estudio del movimiento y el método de correlación
de centros como método secundario ya que de este modo se optimiza el uso del
procesador de la consola.
116
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Capítulo 6
117
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Anexos
Planificación
A lo largo de este proyecto se han sucedido distintas etapas durante las cuales
naturaleza de las tareas realizadas ha variado desde la documentación sobre el campo
de estudio al desarrollo de procesos en lenguajes de programación en alto nivel,
pasando por etapas de aprendizaje de lenguajes de programación o el diseño de
soluciones.
A continuación se presenta una relación de la distribución del tiempo aplicado
al desarrollo de este proyecto de fin de carrera durante el curso 2008-2009 con las
tareas desempeñadas.
Figura 6.1: Planificación del proyecto
118
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
La fase de documentación
Para asegurar el máximo éxito posible del proyecto es importante informarse
sobre los avances más 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. Además de estas fuentes se pueden consultar otras más
especializadas como las bibliotecas de artículos de las universidades u otras
comunidades; los tutoriales de las prácticas y los apuntes de las asignaturas de las
universidades pueden ser también vías con las que comprender mejor el campo de
estudio.
Además de los apuntes de las asignaturas de las universidades, las referencias
de este proyecto provienen de ScienceDirect, una biblioteca de artículos generados
por la comunidad científica. Gracias a los artículos de esta comunidad se han podido
comprender los métodos empleados para el estudio de la visión artificial y ciertos
aspectos del estudio del movimiento de los objetos.
119
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
El desarrollo de la aplicación
El desarrollo de la aplicación se ha realizado mediante la metodología extrema,
una metodología basa el desarrollo de aplicaciones en el diseño de prototipos. Esta
metodología basada en descomponer el desarrollo total en prototipos más pequeños
pero funcionales optimiza el uso del tiempo disponible para desarrollar la aplicación.
Al generar un prototipo al inicio del desarrollo, y después 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 metodología escalonada, el tiempo de desarrollo de la
aplicación puede verse comprometido por retrasos en las fases anteriores, lo cual
puede resultar en una falta total de resultados prácticos si los plazos de entrega no
pudieran ampliarse.
Por este motivo si se dispone de poco tiempo para el desarrollo del proyecto, la
metodología extrema es la mejor opción para planificar el desarrollo de la aplicación ya
que permite al programador obtener resultados desde las fases iniciales y adaptar la
solución a medida que se analizan los resultados de las fases anteriores.
La elaboración de la memoria
Para asegurar la máxima fidelidad en la transcripción de las ideas desarrolladas
en el proyecto es importante que el autor confeccione unos esquemas con los puntos
más importantes del proyecto para ampliar su explicación 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 interés del proyecto.
120
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Durante la elaboración de la memoria es importante establecer hitos con los
cuales asegurar el control del desarrollo de la información escrita. Es importante
también que estos hitos establezcan fechas límite de objetivos realizables, de este
modo tanto el cumplimiento de los objetivos como la no realización de éstos pueden
representar una motivación 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 elaboración de la memoria y de este modo adquirir fluidez en la
explicación de los puntos del estudio con las partes de la memoria más sencillas para
después explicar con más soltura y mejor estilo los puntos más complejos de la
memoria.
121
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Estimación del coste económico del proyecto
Coste de los recursos humanos
Para el desarrollo de este proyecto hizo falta invertir tiempo en un curso de
iniciación a C# y manejo de bases de datos con SQL, así como realizar trabajo de
documentación, análisis y programación.
Tanto los cursos de iniciación como las fases de desarrollo de la aplicación
fueron sufragados mediante la beca de colaboración con la entidad externa a la
universidad; sin embargo, las horas de trabajo con la entidad externa están 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
122
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 año o la amortización proporcional relacionada al uso del producto durante un
año si el pago de éste implica su uso durante un periodo superior a un año.
En el caso de las licencias para más de un año, se ha establecido que el tiempo
de amortización del programa es de cinco años ya que los programas software suelen
beneficiarse de un reciclaje constante por parte de los proveedores, lo que implica que
la renovación de los activos de una empresa con fines de lucro es una medida
adoptada por la mayoría de la empresas del mercado.
La descripción detallada del coste imputable a los productos software utilizados
durante el proyecto son los siguientes:
Tabla 6.2: Costes software del proyecto
123
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Costes hardware
Para el desarrollo de este proyecto se utilizaron distintos recursos tangibles; los
recursos hardware, tanto para el diseño de los programas de la aplicación como para la
elaboración de la memoria, su almacenado y su impresión, o los recursos consumibles
de oficina como cuadernos de notas, hojas donde imprimir los cursos de aprendizaje o
los escritos de los proyectos de investigación.
Al igual que los recursos software, los recursos tangibles tienen un tiempo de
consumo acotado. Los consumibles de oficina tienen una duración de un año, por lo
que la amortización imputable de estos productos es directamente su coste en el
mercado, mientras que los equipos como los portátiles o las impresoras pueden durar
más tiempo y por lo tanto su coste se reparte en un lapso de tiempo mayor, dividiendo
su coste en amortizaciones anuales de cuantía inferior.
Tabla 6.3: Costes hardware del proyecto
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 cuantía exacta del coste del proyecto ya que en el
desarrollo de esta aplicación no se han imputado ciertos elementos como las cámaras
124
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
de vigilancia o las infraestructuras de la empresa colaboradora. No obstante, el coste
total estimado del proyecto se puede ver en la tabla xxx.
Tabla 6.4: Costes finales del proyecto
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 décima parte del coste imputado por el trabajo de un
programador en nómina).
La estimación del porcentaje del proyecto final comercializable se encuentra en
torno al 45 %, lo que implicaría que la aplicación final costaría alrededor de 12000 €,
un precio muy razonable teniendo en cuenta que la aplicación final sería a media y
podría implementarse en sistemas de seguridad para realizar una vigilancia
semiautomática.
125
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Conclusiones
Durante el desarrollo del proyecto de fin de carrera se aplican todos los
conocimientos adquiridos a lo largo de los años de la carrera; el proyecto de fin de
carrera es ante todo un trabajo con una función integradora de todas las asignaturas
que se han estudiado durante la carrera, por este motivo el alumno debe cuidar al
máximo cada aspecto del trabajo.
Para el desarrollo de este proyecto se han aplicado principalmente los
conocimientos adquiridos en las asignaturas de programación, tanto en las asignaturas
de programación 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 básicamente
punteros para el manejo de la información. Sin embargo, para completar el proyecto
también 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 documentación, en la cual el alumno debe extraer y comprender estudios y avances
realizados por otros profesionales especializados, o la etapa de diseño, donde su
iniciativa y sus capacidades creativas le permitirán diseñar una solución 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 podía controlar el desarrollo de la aplicación y de
la memoria del proyecto. El establecimiento de estos puntos de control ha sido una
parte compleja del proceso de creación del proyecto ya que los hitos tienen en
realidad una doble función; principalmente sirven para controlar el desarrollo del
proyecto, pero además permiten evaluar el criterio del alumno sobre la capacidad de
juzgar tanto el trabajo realizado como el ritmo de trabajo.
126
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Sin embargo, algunos de los puntos del desarrollo escaparon a la clasificación,
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 debía acceder a la zona de memoria de
cada imagen, lo cual era sencillo una vez se descomponía la imagen y se utilizaban los
métodos proporcionados por la plataforma de desarrollo de C#.
Sin embargo, los resultados obtenidos gracias a estos métodos no cumplían con
los requisitos establecidos para el prototipo, el tiempo de respuesta era muy superior
al tolerable ya que la consola se mantenía en espera mientras se aplicaba el filtro. Por
este motivo se tuvieron que cambiar los métodos 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
décimas de segundo, el tiempo esperado y gracias al cual se podían cumplir el resto de
especificaciones del prototipo del sistema de vigilancia.
Una vez solventados los problemas de desarrollo, el prototipo de la aplicación
estaba operativo. Una vez desarrollado por completo, la consola podía abrir un video,
descomponerlo en imágenes y aplicar una serie de filtros sobre las imágenes por
separado y además relacionar las imágenes 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.
127
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Apéndices
En este punto del capítulo de los anexos se presentan temas relacionados con
el tema principal del estudio del proyecto que han sido incluidos por su relativa
cercanía al tema principal o su interés general.
Los dos temas que se tratan en esta parte son la implementación de la
aplicación desarrollada en sistemas con cámaras de vigilancia móviles, donde se
especificarán las características de estos sistemas y sus dificultades inherentes para la
instalación 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 implementación en los
sistemas de vigilancia puede representar un avance importante en la eficacia de los
sistemas de este campo.
Sistemas con cámaras de vigilancia dinámicas
Los sistemas de seguridad con cámaras de vigilancia integradas disponen de
unos dispositivos que vigilan el entorno mediante una rotación programada del foco
de la cámara. Estos sistemas permiten optimizar el uso del dispositivo ya que la misma
cámara de vigilancia permite disponer de una visión más amplia del entrono.
Sin embargo, estos sistemas tienen un problema inherente a su naturaleza, el
movimiento de estas cámaras provoca que se creen lagunas de información de
momentos concretos de la vigilancia que son conocidas como “ángulos muertos”.
Estos “ángulos muertos” tienen su origen en una alineación concreta de las cámaras de
vigilancia durante un corto lapso de tiempo, durante ese tiempo, los focos de las
cámaras no vigilan una zona del entorno, creando una brecha en la seguridad que
pudiera ser registrada y utilizada por elementos externos al sistema.
128
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 6.2: Funcionamiento de las cámaras de vigilancia móviles
Aunque las cámaras de vigilancia tienen estas desventajas, conviene recordar
que de este modo se puede optimizar la utilización del dispositivo empleando un único
elemento de seguridad para dar cobertura a una zona de terreno más amplia. Además,
el problema de las lagunas de información puntuales puede solucionarse acelerando el
ritmo con que la cámara rota sobre su eje.
Sin embargo, existen otras soluciones con las que paliar este problema; si la
cámara de vigilancia C2 de la figura xxx tuviera implementado un sistema que le
permitiera generar un ritmo de rotación y un acotamiento del entorno aleatorios,
entonces los “ángulos muertos” del sistema variarían constantemente, impidiendo a
los elementos hostiles al sistema explotar la pauta de los fallos del sistema.
Además de la pequeña inteligencia artificial mencionada en el punto anterior,
los sistemas de video vigilancia con cámaras móviles pueden integrar la aplicación
desarrollada a lo largo de este proyecto, sin embargo habría que incluir algunas
variaciones para los algoritmos desarrollados.
129
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Aunque los algoritmos de más bajo nivel, como los de procesado de la imagen,
no se verían afectados por el cambio del tipo de cámara de vigilancia, los algoritmos
que emulan una tenue inteligencia sí se verían afectados y por lo tanto tendrían que
ser remodelados; los algoritmos de filtrado por la imagen de referencia y filtrado por la
imagen inmediatamente anterior serían los principales afectados, pero también los
algoritmos de detección de movimiento.
En el caso del algoritmo de filtrado por la imagen de referencia habría que
reconfigurar el algoritmo para que no tuviera una única imagen de referencia, sino
toda una serie de imágenes que representaran el entorno a lo largo del recorrido
completo de la cámara. Una vez se hubiera construido la biblioteca de las imágenes del
recorrido de la cámara, la consola podría comparar la imagen del momento actual en
función de la fracción de segundo en la que se encontrara el video.
Figura 6.3: Biblioteca de imágenes de referencia de una cámara móvil
130
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Gracias a biblioteca de imágenes sería posible introducir un proceso que
determinara cual sería la imagen de referencia que corresponde con la imagen actual
de la cámara de vigilancia. Este proceso debería determinar mediante una ecuación la
imagen de referencia que utilizaría el filtro por imagen de referencia para comparar las
dos imágenes.
Para implementar este algoritmo dentro de un proceso de la consola, habría
que descomponer el video de referencia en una secuencia con un número entero de
frames. Además, habría que inicializar un contador para cada una de las cámaras de
referencia que almacenara el valor del frame actual para poder compararlo con el
número de frames totales almacenados en la biblioteca y entonces obtener la imagen
de referencia con la que finalmente sería comparado.
Ecuación 6.1: Ecuación de búsqueda en cámaras móviles
Esta fórmula tiene dos variaciones porque las cámaras móviles tienen dos
estados posibles, el primero es el estado durante el cual la cámara se dirige desde la
posición inicial hasta la posición final de vigilancia, el segundo estado es el que vive la
máquina cuando vuelve desde la posición final hasta la posición inicial. En la figura xxx
el estado inicial estaría comprendido entre el momento t0 y el t1 y el segundo estado
se ubicaría entre el momento t1 y t0 del ciclo.
Una vez implementados estas fórmulas en los algoritmos, el algoritmo de
filtrado mediante la imagen de referencia tendría la información necesaria para
131
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
elaborar los mismos resultados que en el caso de una cámara de vigilancia estática. Sin
embargo, la biblioteca de imágenes de referencia no tendría ninguna utilidad en el
caso del filtro mediante la imagen inmediatamente anterior.
El filtro de la imagen inmediatamente anterior sería muy difícil de implementar
en este caso ya que la relación entre las dos imágenes consecutivas no es directa como
en el caso de las cámaras de vigilancia estáticas. En este caso, habría que desarrollar
un algoritmo que modelara las variaciones en la relación de las imágenes consecutivas
y relacionar los píxeles de las dos imágenes mediante estos algoritmos para descartar
aquellos píxeles que corresponden con los píxeles de la imagen anterior traslados
mediante los vectores resultantes de este algoritmo.
Figura 6.4: Cálculo del vector de movimiento de las cámaras móviles
Para implementar este algoritmo habría que desarrollar un proceso que
localizara puntos concretos en las imágenes para después buscar los puntos obtenidos
en la imagen anterior y calcular el vector de movimiento de las parejas de puntos. En
cuantos más vectores fueran calculados, mayor precisión se obtendría en la estimación
de la posición de píxel de la siguiente imagen y por lo tanto mayor sería la
verosimilitud de los resultados obtenidos.
Mediante la implementación de estos dos procesos, los métodos de filtrado de
la imagen podrían reutilizarse en este tipo de cámaras de vigilancia; no obstante,
habría que realizar una última modificación a los algoritmos del sistema. En el caso de
132
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
los algoritmos de cálculo de movimiento, habría que reutilizar el algoritmo de
compensación de movimiento explicado en el punto anterior.
Gracias al cálculo realizado por el algoritmo de compensación del movimiento
de la cámara, sería posible reducir las impresiones en el cálculo del movimiento
median los algoritmos desarrollados para la consola. Debido al movimiento de la
cámara, el cálculo del movimiento podría dar un resultado impreciso, no obstante,
este resultado podría refinarse si se eliminaran las imprecisiones sumando el vector de
movimiento obtenido al vector de movimiento de la cámara que corresponda.
133
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
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 localización de estos puntos de referencia y la medición de las
distancias entre ellos se llama Biometría y su finalidad es establecer unos estándares
de medición de las variables del cuerpo humano (establecer relaciones entre tamaño,
altura, peso sexo, edad, etcétera). Gracias a la comparación de los resultados con los
registros almacenados en las bases de datos, los programas pueden realizar una
estimación sobre la identidad de la persona que se está analizando.
Figura 6.5: Comparación de caras mediante la biometría
Las aplicaciones de estos programas en el ámbito de la seguridad exigían unos
requisitos de acierto muy elevados, pero además los requisitos establecían la dificultad
añadida de que estos resultados se debían obtener mediante el análisis de secuencias
de video. Este requisito en particular es muy difícil de implementar ya que si la persona
analizada se encuentra de perfil, la información suministrada por las cámaras de
vigilancia es incompleta, y por lo tanto el acierto total es casi imposible.
134
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Los resultados obtenidos gracias a los programas desarrollados no fueron tan
espectaculares como se esperaban (las identificaciones correctas sólo suponían un
53% de las caras procesadas); estos mediocres resultados fueron causados por que los
sistemas de reconocimiento eran incapaces de procesar las imágenes en movimiento
que generaban los videos de vigilancia.
No obstante, cuando el ámbito de aplicación 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 influía en su aplicación 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 máquina y empezar una sesión
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 deberían ser las
mismas, las empresas desarrolladoras los utilizan de modo distinto. Picasa I, la
aplicación desarrollada por Google, analiza las imágenes almacenadas en servidores
para determinar si las caras de las personas que salen en las fotos coinciden con la cara
de los famosos en algún rasgo; sin embargo, para utilizar este programa hay que
registrarse y relacionar a la persona de la fotografía con una dirección email.
135
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 6.6: Comparación de las facciones faciales con fines de entretenimiento
iPhoto es la opción de Apple, este programa permite analizar las fotos de un
usuario sin que éstas deban estar almacenadas en un servidor externo a la máquina
del usuario; además, tampoco debe relacionarse la cara procesada con una dirección
de correo electrónico.
Las diferentes vías de utilización 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 podría dar el caso de
generar una besa de datos con personas que no fueran usuarias de los productos de
Google.
136
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Aún así, la tecnología de reconocimiento facial ha sido desarrollada por otras
firmas también [MUÑO09]; Yahoo se ha asociado con Comel para desarrollar una
aplicación que permita analizar los rasgos de los individuos para generar anuncios
personalizados. Esta tecnología lleva el marketing hasta un horizonte mucho más
amplio ya que de este modo es posible asegurar un mayor éxito con el lanzamiento de
cada anuncio.
Figura 6.7: Posibles aplicaciones del reconocimiento facial en el marketing
La utilización de estas aplicaciones dentro del marketing implica la invasión de
los derechos de intimidad de las personas, por este motivo es necesario crear un
organismo internacional que regule el límite de estas aplicaciones. Es importante
asegurar que las nuevas tecnologías no sean fuente de desconfianza por parte de los
usuarios finales. Una buena política, adoptada por el sistema desarrollado por YahooComel, es borrar la imagen almacenada después de emitir el anuncio y sin embargo,
almacenar la edad y el sexo de la persona para un posterior uso de la información
mediante técnicas estadísticas.
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.
137
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 6.8.1: Salida de las pruebas de posterización
Para conseguir con éxito este objetivo se desarrolló un filtro que se utilizaría
junto con el filtro de posterización para definir las zonas existentes en la pantalla. Este
filtro realza las líneas de división entre los distintos tonos de gris de las imágenes del
filtro de posterización. La finalidad de este filtro consistía en obtener una imagen con
las figuras sencillas que compusieran la imagen real; de este modo se podría analizar la
imagen generada para estudiar la composición de las figuras y obtener los patrones
que compusieran las figuras más complejas.
138
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Figura 6.8.2: Pruebas del filtro de zonas
Tal y como se puede apreciar en las imágenes figura 6.8.1 y figura 6.8.2, la
combinación de los dos filtros proporciona una imagen en la cual se intuye la
información 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 información final era demasiado voluble como para establecer los
patrones que definirían los algoritmos de estudio.
139
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Bibliografía
Libros:
[FOXA07]
El libro de Visual C# 2005
James Foxall, Ediciones Anaya Multimedia , 2007
[BARR01]
Metodología del análisis estructurado de sistemas , 2ª Edición
Jesús Barranco de Areba, Publicaciones de la Universidad Pontificia
Comillas, Madrid, 2001
140
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Proyectos fin de carrera y tesis doctorales:
[OTE02]
Juan José Otero Gómez
Director: D. Darío Maravall Gómez-Allende
Modelo interpolativo punto- superficie para calibrado de cámaras en
Visión Artificial
Departamento de Inteligencia Artificial, Universidad Politécnica de
Madrid.
[PFC01]
Nodo IP de visión 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
polución.
[MERY04]
Domingo Mery
Visión por Computador
Departamento de Ciencia de la Computación, Universidad Católica de
Chile, Santiago de Chile.
[GONZ06]
Grupo de Investigación EDMANS Ana Gonzalez Marcos, Francisca Javier
Martínez de Pisón Ascacíbar, Alpha Verónica Pernía Espinosa, Fernando
Alba Espinosa, Manuel Castejón Limas, Joaquín Ordieres Meré, Eliseo
Vergara González.
Técnicas y algoritmos básicos de visión artificial
Universidad de la Rioja, 2006.
141
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Ensayos:
[CORR09]
J.A. Corrales, P. Gil, F.A. Candelas y F. Torres.
Diseño de una mini-cámara motorizada para el seguimiento de objetos.
Grupo de automática, robótica y visión artificial, Universidad de
Alicante, España.
[CÉDR95]
C. Cédras 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.
142
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
[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.
Detección y seguimiento de objetos en entornos dinámicos mediante
estimación predictiva del Flujo Óptico. Dpto. de Tecnología electrónica
de la Universidad de Málaga, Spain.
[BAND08]
A. Bandera, C. Urdiales, F. Arrebola y F. Sandoval.
Introducción de algoritmos genéricos en sistemas de reconocimiento de
objetos 2D.
Dpto. de Tecnología electrónica de la Universidad de Málaga, 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.
Visión artificial: Segmentación difusa de color.
División de electrónica y computación, Universidad de Guadalajara,
México. Institut für Informatik, Freie Universität 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. Raúl Pinto Elías
Aplicaciones de la Visión Artificial
Cenidet (Centro Nacional de Investigación y Desarrollo Tecnológico)
143
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
[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 Pardàs , 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
144
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
Otras referencias:
[WIKI01]
es.wikipedia.org/wiki/Categor%C3%ADa:Dispositivos_de_seguridad
En esta página 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 página se explican las principales características de los Bitmaps,
así como su procedencia además de otros formatos para imágenes
digitales.
[WIKI03]
es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
Gracias a esta página se puede profundizar más sobre el concepto de
programación orientada a objetos desde un punto de vista más
convencional.
[WEB001]
proton.ucting.udg.mx/expodec/sep98/memoria/e01/e01.html
En esta página web se expone el resumen de un proyecto que pretende
instalar en una casa un dispositivo que genere alertas a móviles a partir
de la información 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 más pertinentes para analizar automáticamente una
imagen según sus características.
[WEB003]
http://es.computers.toshiba-europe.com/innovation/NEWSARCHIVE/
archived_news_article.jsp?service=ES&ID=RecoFacial_U400
En esta página Toshiba hace publicidad sobre su sistema de
reconocimiento facial.
145
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
[WEB004]
www.codeproject.com
En esta web se ofrecen distintas soluciones software para problemas de
programación en todas las plataformas de desarrollo conocidas.
[MSDN06]
http://msdn.microsoft.com/es-es/default.aspx
Esta es la página oficial de Microsoft Visual Studio, en ella se almacenan
soluciones para los lenguajes de programación de Microsoft, así como la
API de .NET.
[DANS09]
www.enriquedans.com/2009/02/misma-funcion-distintas-implicaciones.html
Reconocimiento facial: misma función, distintas implicaciones
En esta página web se publica una entrada sobre la función 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, Investigación y opinión de los Sistemas y Tecnologías de
la Información, 28 de febrero de 2009.
[PARD96]
tapec.uv.es/pardo/doctorado/curso_pardo/tesis.ppt
Fernando Pardo Carpio
Directores: Bart Dierickx y Gregorio Martín Quetglás
Sensor Retínico Espacio Variante Basado en Tecnología CMOS
Dpt. Informática y Electrónica- Universidad de Valencia.
[MUÑO09]
http://www.htcmania.com/showthread.php?p=376663
Yahoo y Comel crean un método de reconocimiento facial para usar en
publicidad
Julio Muñoz el 16 de Mayo del 2009
146
PROTOTIPO DE UN SISTEMA DE VIDEO VIGILANCIA
147
Descargar