Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arequipa
Facultad de Ingenierı́a de producción y servicios
Escuela profesional de Ciencia de la computación
La tesis titulada:
Reconocimiento de eventos anómalos en videos
obtenidos de cámaras de vigilancia, usando redes
convolucionales.
Presentado por el bachiller:
Luigy Alex Machaca Arcana
Asesor:
Mg. Juan Carlos Gutiérrez Cáceres
Arequipa, Perú.
2019
Resumen
1 Introducción 1
1.1 Contexto y motivación . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Descripción del problema . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Objetivo especı́ficos . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 Aspectos metodológicos . . . . . . . . . . . . . . . . . . . . 6
1.4 Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6 Diagrama de Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
iv
Contenido
2 Trabajos relacionados 9
2.1 Consideraciones iniciales . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Convolutional Neural Networks . . . . . . . . . . . . . . . . 9
2.2 Trabajos Relacionados. . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Problema de la CNN al rededor de toda la imagen . . . . . . 10
2.2.2 Un mejor enfoque, Regions with CNN features . . . . . . . . 11
2.2.3 Fast Regions with CNN features . . . . . . . . . . . . . . . . 12
2.2.4 You Only Look Once: Unified, Real-Time Object Detection . 14
2.3 Descripción de los trabajos relacionados a detección de eventos
anómalos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Real-time abnormal motion detection in surveillance video . 19
2.3.2 Histogramas de orientación y magnitud de flujo óptico . . . 19
3 Marco teórico 24
3.1 You only look once . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Intersect over Union . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.1 Comprendiendo el comportamiento. . . . . . . . . . . . . . . 28
3.2.2 Bounding Box . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.3 Distancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.4 Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Detección de Eventos Anómalos . . . . . . . . . . . . . . . . . . . . 31
3.3.1 Obtener los Bounding Box . . . . . . . . . . . . . . . . . . . 31
3.3.2 Persistencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
v
Contenido
3.3.3 Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.4 Umbral de velocidad . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Base de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Propuesta 35
4.0.1 Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.0.2 Pre-procesamiento . . . . . . . . . . . . . . . . . . . . . . . 36
4.0.3 Extracción de caracterı́sticas . . . . . . . . . . . . . . . . . . 36
4.0.4 Detección de Personas . . . . . . . . . . . . . . . . . . . . . 37
4.0.5 Velocidad de desplazamiento . . . . . . . . . . . . . . . . . . 38
4.0.6 Dirección de desplazamiento . . . . . . . . . . . . . . . . . . 38
5 Experimentos Preliminares 40
5.0.1 Consideraciones iniciales . . . . . . . . . . . . . . . . . . . . 40
5.0.2 Recursos utilizados . . . . . . . . . . . . . . . . . . . . . . . 40
5.0.3 Experimentos sobre vı́deos . . . . . . . . . . . . . . . . . . . 41
6 Experimentos y Resultados 45
6.0.1 Consideraciones iniciales . . . . . . . . . . . . . . . . . . . . 45
6.0.2 Arquitectura DeepLearning . . . . . . . . . . . . . . . . . . 45
6.0.3 Recolección de datos . . . . . . . . . . . . . . . . . . . . . . 46
6.0.4 Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.0.5 Código de la Propuesta . . . . . . . . . . . . . . . . . . . . . 47
6.0.6 Porcentaje anomalı́a en vı́deo. . . . . . . . . . . . . . . . . . 47
vi
Contenido
Bibliografı́a 54
vii
Lista de sı́mbolos
Abreviaturas
Abreviatura Término
viii
Contenido
Abreviatura Término
IA Inteligencia Artificial.
HOOF Histograma de Flujo Optico Orientado.
HOF M Histograme de Orientación de Flujo Optico y Magnitud.
IOU Interseccion over union
RoI − P ool Region of Interest Pooling
BBox Bounding box
CU DA Compute Unified Device Architecture
ix
Lista de Figuras
x
Lista de Figuras
xi
Lista de Figuras
xii
Lista de Tablas
xiii
1
Introducción
1
1 Introducción
1
La Teleasistencia es un servicio Preventivo de Asistencia Domiciliaria, inmediata y permanente.
2
1 Introducción
2
reconocimiento de acciones humanaras
3
Un pipeline es un conjunto de elementos de procesamiento de datos conectados en serie; donde
la salida de un elemento es la entrada de la siguiente
3
1 Introducción
en los últimos años y esto con lleva el aumento masivo de información, para ma-
nejar esta información se cuentan con atención constante. Pero surgen dos claros
problemas:
Lo que hace muy difı́cil poder detectar estas acciones violentas en los vı́deos
de vigilancia, todo esto a tiempo real. Esta es la motivación de este trabajo que
con ayuda de CV y DeepLearning pueden proporcionar ahorros económicos fuertes
eliminando la necesidad de asistencia las 24 horas en los centros de vigilancia.
1.3. Objetivos
4
1 Introducción
esta información será útil para reconocer ciertos patrones en el contexto del vı́deo.
Tenemos como objetivo general reconocer estos eventos y poder mandar alertas
cuando algo inusual ocurra en el vı́deo.
5
1 Introducción
Enfoque de investigación
Nivel de investigación
Tipo de investigación
6
1 Introducción
1.5. Limitaciones
7
1 Introducción
8
Trabajos relacionados
2
2.1. Consideraciones iniciales
Nosotros los seres humanos tan solo con un vistazo podemos detectar Los
seres humanos tan solo con un vistazo pueden detectar instantáneamente que ob-
jetos están en la imagen, donde están, y como ellos interactúan. El sistema visual
humano nos permite realizar acciones más complejas como manejar o caminar sin
mucho esfuerzo [23]. Algoritmos rápidos y eficaces que le permitan a una compu-
tadora manejar un auto sin la necesidad de sensores especiales; requiere que se
haga un análisis en tiempo real del contenido de la información procesada (por
ejemplo: una cámara de vı́deo del auto).
9
2 Trabajos relacionados
Una Red Convolucional normal, recorre toda la imagen para poder luego ex-
traer las caracterı́sticas en las capas de convolución. Estos pasos, si bien podrı́an
ser paralelizables generarian un pipeline complejo. También, se debe tener en cuen-
ta que una CNN tiene como objetivo principal la clasificación, siendo su objetivo
inicial la detección de la imagen, lo cual implica que se genera un porcentaje por
cada clase que se encuentra en la imagen (solamente las clases con las cuales fue
entrenada la CNN), pero no indica la posición donde se encuentra el objeto (clase)
que fue detectado. [18]
10
2 Trabajos relacionados
Enfoques más recientes como Regions with CNN features (R-CNN) usan méto-
dos que proponen regiones para primero generar posibles bounding boxes en una
imagen usando un proceso llamado selective search, para luego correr un clasifica-
dor en las regiones propuestas anteriormente. Luego de la clasificación, un post-
proceso es usado para definir los bounding boxes con mayor score en cada región
propuesta, además se eliminan detecciones duplicadas, y se actualizan scores de
los bounding boxes basado en los otros objetos de la escena. En la capa final de la
arquitectura, R-CNN añade un SVM Support Vector Machine que determina si es
un objeto y si ese fuera el caso, a que clase pertenece.
Una vez que se determina que existe un objeto en la region propuesta ini-
cialmente, se redefine las dimensiones del bounding box para que encaje lo mejor
posible al contorno del objeto.
11
2 Trabajos relacionados
Regions with CNN features (R-CNN) es poco lento por estas razones [31].
Regions of Interest
12
2 Trabajos relacionados
caracterı́sticas de la CNN para cada región son obtenidas por la selección de una
región correspondiente del mapa de caracterı́sticas generada por la CNN. Luego,
las caracterı́sticas en cada región son pulidas(usualmente usando un max pooling).
Esto permite que solo se haga una pasada de la imagen original [9].
13
2 Trabajos relacionados
Detection
You Only Look Once (YOLO) se enfoca la detección de objetos en una imagen.
YOLO utiliza un enfoque de regresión, utilizando los pı́xeles de la imagen, las
coordenadas del bounding box, y probabilidad de clases. Esto permite a YOLO
predecir que objetos están presentes y donde están. En la Figura 2-4 se muestra
la estructura de YOLO.
14
2 Trabajos relacionados
Detección Unificada
15
2 Trabajos relacionados
Figura 2-5: El modelo YOLO modela la detección como un problema con enfoque
de regresión. Divide la imagen en una grid y simultáneamente predice
los bounding boxes. Los valores de confianza y probabilidades de clases
son codificadas como un vector S x S x (B *5+C)
16
2 Trabajos relacionados
Diseño
YOLO esta implementada como una CNN y se evalúa sobre el dataset de de-
tección PASCAL VOC [5]. La primera capa de convolución extrae caracterı́sticas
de la imagen mientras las capas totalmente conectadas predicen las probabilidades
y coordenadas de salida.
17
2 Trabajos relacionados
Figura 2-6: Análisis de error: Fast R-CNN vs YOLO Estos cuadros mues-
tran el porcentaje de localización y errores de fondo en las N mejores
detecciones para varias categorı́as (N = #objetos en esa categorı́a)
18
2 Trabajos relacionados
video
19
2 Trabajos relacionados
Figura 2-7: Diagrama ilustrando el enfoque propuesto en [4] para detectar eventos
anómalos
20
2 Trabajos relacionados
Para construir una representación para los eventos normales en la escena que
fue capturada, tomando en cuenta las caracterı́sticas ya mencionadas, se propone
un descriptor de caracterı́sticas espacio-temporales basados tanto en la velocidad
y orientación inspirado por el trabajo de HOOF [4]. El cual captura información
basada en la orientación del flujo óptico y provee el Histograma de Flujo Óptico
Orientado (HOOF). Sin embargo no captura información sobre la velocidad de los
objetos en movimiento. Por otro lado este enfoque no solo captura la orientación,
sino también la magnitud de los vectores de flujo.
21
2 Trabajos relacionados
Figura 2-8: Búsqueda del vecino mas cercano(Nearest Neighbor search). Patrones
de eventos anómalos son representados por el punto A y eventos
normales por el punto B
22
2 Trabajos relacionados
misma posición del cubo, como anómalo o normal. Estos pasos se muestran en la
Figura 2-9
23
Marco teórico
3
3.1. You only look once
24
3 Marco teórico
Para cada celda, se obtendrán 2 bounding boxes, los cuales estarán represen-
tados en los 10 primeros valores de un vector de 1x30, los 20 valores restantes son
usados para el numero de clases. Ver Figura 3-3 Los valores representan el puntaje
de la clase, el cual es la probabilidad condicional de que un objeto pertenezca a
una clase i, si es que un objeto esta presente en el bounding boxes.
Una vez que se tiene los puntajes de clases para cada bounding box. Por ejem-
plo, para el caso de la imagen de un perro en la imagen anterior(Ver figura 3-2),
su puntaje para los bounding boxes estarı́a representado en la posición (1,1) del
25
3 Marco teórico
vector en todos los puntajes de los bounding boxes. Para luego evaluar esos valores
con un threshold y luego ordenarlos descendentemente.
El algoritmo de supresión Non-max es usado para asignar valores de cero a
los bounding boxes redundantes. Ver Figura 3-4.
26
3 Marco teórico
interseccion over union (IoU) en estos bounding boxes y es mayor a 0,5, se man-
tiene. Caso contrario se le asigna 0. Esto se hace para todos los bounding boxes.
Esto nos dejara con solo 2o3 bounding boxes, todos los demás serán cero. Esto se
explica en la Figura 3-5.
27
3 Marco teórico
Figura 3-6: IoU: relación entre el área de intersección y el área total de ambos
bounding box.
persistencia entre dos bounding box 3-6. Tomando en cuenta un threshold para ası́,
tener una correlación entre futuros bounding box y los actuales.
28
3 Marco teórico
Nivel Básico.
Las personas, cada una de ellas, se representan como bounding boxes móviles.
y el patrón de las trayectorias o patones se movimiento de estas cajas se analizan
para reconocer el movimiento [24].
Nivel intermedio.
Las personas están representadas por las partes del cuerpo, como la cabeza,
el torso, los brazos y las piernas.
Nivel detallado.
Los Bounding box (BBox) son cuadros imaginarios que se encuentran alrede-
dor de objetos, que se encuentran en constante verificación para detectar: señales,
peatones en o cerca de la carretera, vehı́culos, etc.
3.2.3. Distancia
29
3 Marco teórico
q
(3-1) Distancia = (x2 − x1 )2 − (y2 − y1 )2
3.2.4. Velocidad
xf − xi
(3-2) V elocidadmedia =
vf − vi
30
3 Marco teórico
3.3.2. Persistencia
31
3 Marco teórico
una estructura donde almacenamos las caracterı́sticas de cada una de las personas
presentes en el frame.
Como cada persona es diferente creamos otra estructura que permite encap-
sular a cada persona y sus caracterı́sticas en cada frame, de esta manera siempre se
sabe el ultimo frame en el cual una persona estuvo presente. Además, se guarda la
información en caso haya desaparecido una persona del frame. Cuando un objeto
ya no se encuentra (tomando una cantidad de frames a manera de threshold ) es
necesario eliminarlo porque significa que la persona ya ha desaparecido y no se
encuentra en el vı́deo.
32
3 Marco teórico
3.3.3. Velocidad
Para definir un umbral que nos permita definir cuando las personas en el vı́deo
tienen un comportamiento que no es normal es que se ha analizado la velocidad
de mas de 2000 vı́deos, sobre los cuales se hizo un análisis estadı́stico para obtener
una velocidad media de una persona en cada uno de los vı́deos. Obteniendo los
siguientes resultados:
σ = +0,703
(3-3)
M = 1,9
Para nuestros experimentos se utilizó vı́deo que fueron divididos en tres am-
bientes diferentes condiciones, los cuales son mencionados y son parte de la base
33
3 Marco teórico
34
4
Propuesta
Se propone hacer uso de modelo You Only look Once para poder detectar los
objetos que interactúan en el vı́deo. Como se menciono en los capı́tulos previos,
el objetivo principal de este trabajo es poder detectar el eventos anómalos de los
vı́deos extraı́dos de cámaras de vigilancia, los cuales pueden ser personas y autos.
4.0.1. Entrenamiento
35
4 Propuesta
das(labeling). Es por eso que necesitamos de un dataset fiable. Para este objetivo
usaremos el dataset: Pascal VOC Data 2012 [6] Esta base de datos contiene veinte
clases, y un total de ochenta sub-clases, de objetos que se han seleccionado son,
como por ejemplo:
Persona: persona
4.0.2. Pre-procesamiento
36
4 Propuesta
YOLO nos ofrece la posibilidad de poder saber que objetos son los que se
encuentran en la escena; especı́ficamente en un frame, no es capaz generar una
persistencia de objetos para poder hacer un tracking del mismo objeto a lo largo
del vı́deo. Y ası́ analizar el comportamiento del mismo. Es decir, que si etiqueta
a un objeto dentro de la clase persona en un frame, no nos ofrece la posibilidad
de saber donde se encontrará esa persona en el siguiente frame. Este es uno de los
principales problemas que tenemos que afrontar.
Este overlaping se medirá con respecto al porcentaje del área sobrepuesta en-
tre un objeto y otro, ası́ podremos tener la certeza que, el objeto que se identifico
en un frame anterior es el mismo que tomaremos en cuenta en un frame actual.
Esto no nos garantiza con exactitud que sea el mismo objeto, pero como YOLO
trabaja en un vı́deo a tiempo real, la posición (x,y) de un objeto en determinado
frame no será muy distante en el siguiente. Esa es la razón por la cual utilizamos
IoU como algoritmo para que calcular el porcentaje de sobre-posición de los boun-
ding boxes.
37
4 Propuesta
dentro del vı́deo, el siguiente paso es poder detectar un evento anómalo. Los dos
enfoques en los cuales trabajaremos para poder calificar una acción como anómala
son:
Velocidad de desplazamiento.
Dirección de desplazamiento.
Utilizaremos los mismos valores que utilizamos para calcular la velocidad. Los
centros de los objetos nos permitirán trazar una trayectoria del objeto a lo largo
del vı́deo. Ası́ seremos capaces de poder detectar un cambio en dicha trayecto-
ria. Por ejemplo si una persona se encuentra caminando a lo largo de la acera,
su trayectoria generara la gráfica de una recta con una determinada pendiente, si
38
4 Propuesta
39
Experimentos Preliminares
5
5.0.1. Consideraciones iniciales
40
5 Experimentos Preliminares
En los anteriores vı́deos podemos apreciar, que el movimiento de los objetos (per-
sonas) son constates y con poca variación (ver Figura:5-1) . Sin embargo, cuando
alguno o muchos de ellos realizan acciones inesperadas, su velocidad varia dramáti-
camente, por tanto podremos considerar estas acciones como eventos anómalo y
poder enviar alguna señal de alerta.
41
5 Experimentos Preliminares
Figura 5-1: Se muestra el tracking del objeto, mostrando como etiqueta la velo-
cidad del objeto en diferentes frames.
42
5 Experimentos Preliminares
43
5 Experimentos Preliminares
Figura 5-3: Se muestra como el persona mantiene una velocidad promedio, propio
de su caminar, sin ningún evento anómalo.
44
Experimentos y Resultados
6
6.0.1. Consideraciones iniciales
45
6 Experimentos y Resultados
escrito en C y CUDA1 el cual podemos descargar para crear nuevos modelos y/o
usar uno existente.
1
Compute Unified Device Architecture
46
6 Experimentos y Resultados
Para las pruebas se utilizaron un total de 200 6-16-2, estos vı́deos se encuen-
tran divididos en dos categorı́as: figth y no-figth [27].
6.0.4. Entrenamiento
47
6 Experimentos y Resultados
Figura 6-1: fight: Un total de 200 vı́deos, divididos en dos categorı́as: figth y no-
figth, ambas categorı́as con 100 vı́deos. [27]
48
6 Experimentos y Resultados
Figura 6-2: no fight: Un total de 200 vı́deos, divididos en dos categorı́as: figth y
no-figth, ambas categorı́as con 100 vı́deos. [27]
49
6 Experimentos y Resultados
frames para obtener el grado de anomalı́a del vı́deo. Una vez obtenido el grado de
anomalı́a de cada vı́deo, de procedió a realizar la iteración en todos los 200 vı́deos.
Obteniendo una clara diferencia entre las dos categorı́as.
Categorı́a figth
Los resultados para la categorı́a fight son del 86.842 % de precisión como
resultado positivo, para detectar si se trata de una acción anómala. Además, se
obtuvieron los siguientes datos. Se obtuvo una media de 52.13 % con una desviación
estándar de 17.27 % para el total de vı́deos analizados en esta categorı́a. [TABLA
6-1]
Tabla: De 100 vı́deos analizados con nuestro algoritmo, teniendo cada uno un
porcentaje de de eventos anómalos, se extrajo lo siguiente: la media de los por-
centajes de cada vı́deo es 52.128 %, obteniendo un máximo porcentaje de 86.842 %
y un mı́nimo de 16.929 %, con una desviación estándar de 17.269 %. Tomando en
cuenta que esta categorı́a solamente existe vı́deos con eventos anómalos (pelas)
50
6 Experimentos y Resultados
Categorı́a no-figth
51
Conclusiones y trabajo futuro
7
7.1. Conclusiones
Sé analizó los resultados obtenidos de los experimentos, es asi que podemos
caer en cuenta que a pesar de alcanzar un acierto del 86.842 % en los vı́deos
de fight. Tenemos un alto error en la categorı́a de no-fight
52
7 Conclusiones y trabajo futuro
Tomar como única métrica a la velocidad, nos entrega datos muy dispersos, al
momento de catalogar un conjunto de vı́deos que contiene eventos anómalos.
Encontrar otras técnicas para poder inferir la violencia a través de los Boun-
dingBox.
53
Bibliografı́a
54
Bibliografı́a
[6] Everingham, Mark ; Winn, John: The pascal visual object classes challenge
2012 (voc2012) development kit. En: Pattern Analysis, Statistical Modelling
and Computational Learning, Tech. Rep (2011)
[9] Girshick, Ross: Fast r-cnn. En: Proceedings of the IEEE international con-
ference on computer vision, 2015, p. 1440–1448
[10] Girshick, Ross: Fast R-CNN. En: The IEEE International Conference on
Computer Vision (ICCV), 2015
55
Bibliografı́a
[13] Haritaoglu, Ismail ; Harwood, David ; Davis, Larry S.: Hydra: Multi-
ple people detection and tracking using silhouettes. En: Image Analysis and
Processing, 1999. Proceedings. International Conference on IEEE, 1999, p.
280–285
[15] INEI, Tech. R.: INEI, “Informe técnico - estadı́sticas de seguridad ciudada-
na”. (2018)
[16] Kingma, Diederik ; Ba, Jimmy: Adam: A method for stochastic optimization.
En: arXiv preprint arXiv:1412.6980 (2014)
56
Bibliografı́a
[18] Krizhevsky, Alex ; Sutskever, Ilya ; Hinton, Geoffrey E.: CNN. En:
Advances in neural information processing systems, 2012, p. 1097–1105
[21] Lenc, Karel ; Vedaldi, Andrea: R-cnn minus r. En: arXiv preprint ar-
Xiv:1506.06981 (2015)
[23] Redmon, Joseph ; Farhadi, Ali: YOLO9000: Better, Faster, Stronger. En:
arXiv preprint arXiv:1612.08242 (2016)
[24] Sato, Koichi ; Aggarwal, Jake K.: Temporal spatio-velocity transform and
its application to tracking and interaction. En: Computer Vision and Image
Understanding 96 (2004), Nr. 2, p. 100–128
57
Bibliografı́a
[31] Yuan, Peng ; Zhong, Yangxin ; Yuan, Yang: Faster R-CNN with Region
Proposal Refinement.
58