Detección de vehículos con aprendizaje profundo en Cámara de Vigilancia
77
0
0
Texto completo
(2) DETECCIÓN DE VEHÍCULOS CON APRENDIZAJE PROFUNDO EN CÁMARA DE VIGILANCIA. Elian Raquel Laura Riveros.
(3) DETECCIÓN DE VEHÍCULOS CON APRENDIZAJE PROFUNDO EN CÁMARA DE VIGILANCIA. Elian Raquel Laura Riveros. Asesor: Dr. Juan Carlos Gutiérrez Cáceres. Tesis presentada a la Unidad de Postgrado de la Facultad de Ingenierı́a de Producción y Servicios de la Universidad Nacional de San Agustı́n como parte del requisito para obtención del tı́tulo de Ciencias Informática con mención en Tecnologı́as de Información.. UNSA - Arequipa 2018.
(4) Agradecimientos. El presente proyecto de tesis es subvencionado por Fondecyt (Fondo Nacional de Desarrollo Cientı́fico, Tecnológico y de Innovación Tecnológica) a través del proyecto Cı́rculo de Investigación conformado por un grupo de docentes/investigadores a quienes les agradezco por darme la oportunidad de pertenecer al proyecto. Esta tesis es el resultado del esfuerzo conjunto con mi asesor, mis profesores, compañeros de maestrı́a y amigos, todos ellos aportaron con motivación, consejos y sobretodo con el tiempo que me dedicaron. También quiero agradecer a toda mi familia por su apoyo y comprensión incondicional, y al Programa de Maestrı́a por aceptar la propuesta de tesis..
(5) Resumen. Un sistema de detección de objetos en tiempo real tiene gran aplicabilidad en el campo de visión artificial. La detección a través de una videocámara implica que el sistema debe mantenerse informado sobre la posición del objeto durante su permanencia en cada fotograma del video, a su vez se hace necesario el control de factores externos (variación de iluminación, oclusión, sombras, etc) que pueden impedir la correcta detección del objeto. Ante este problema nos enfocamos en técnicas de aprendizaje de máquina eficientes en la detección de objetos y robustas ante los factores externos. El presente proyecto de investigación propone la detección de vehı́culos basado en un algoritmo de aprendizaje profundo, que sea capaz de reducir las consecuencias emitidas por los factores externos, también un conjunto de técnicas de procesamiento de imágenes son aplicadas para la experimentación y análisis de detección de vehı́culos en una cámara de videovigilancia. Por lo expuesto, el presente proyecto de investigación da a conocer las bondades de las técnicas de aprendizaje profundo a través de experimentos realizados en la implementación de un detector de vehı́culos.. Palabras Clave: Aprendizaje profundo, redes neuronales convolucionales, hiperparámetros, procesamiento de videos, vehı́culos, videovigilancia..
(6) Abstract. A realtime object detector is highly applicable on the field of Artificial Vision. The detection through a video camera implies the system have to be informed about the object position while it is in each frame of the video, moreover is necessary have a hold on external factors ( illumination variations, occlusion, shadows, etc.), in order to prevent failures with the object detection. Given this problem, we focus on efficient machine learning techniques dealing with external factors. This research project proposes the detection of vehicles based on a deep learning algorithm, which is able to reduce the consequences emitted by external factors, also a set of image processing techniques are used to carry out experiments and analyze vehicles detection in a video surveillance camera. Therefore, this research project highlights the benefits of deep learning techniques through experiments developed in the implementation of the vehicle detector.. Keywords: Deep learning, convolutional neural network, hyperparameters, video processing, vehicles, video surveillance..
(7) Índice general. Resumen . . . . . . . Abstract . . . . . . . . Índice General . . . . Índice de Figuras . . . Índice de Tablas . . . Lista de Abreviaturas. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. ii iii iv vi viii ix. 1.. Introducción . . . . . . . . . . . 1.1. Contexto y Motivación . . . 1.2. Planteamiento del Problema 1.3. Objetivo General . . . . . . 1.3.1. Objetivos Especı́ficos 1.4. Organización del trabajo . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. 1 1 3 3 3 3. 2.. Trabajos Relacionados . . . . . . . . . . 2.1. Consideraciones iniciales . . . . . . 2.2. Procesamiento de video . . . . . . 2.2.1. Generación de Candidatos . 2.2.2. Seguimiento por Detección 2.3. Aprendizaje de Máquina . . . . . . 2.4. Aprendizaje Profundo . . . . . . . 2.5. Consideraciones Finales . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . 5 . 5 . 6 . 6 . 7 . 8 . 9 . 10. 3.. Procesamiento de video . . . . 3.1. Consideraciones iniciales . 3.2. Generación de candidatos 3.3. Seguimiento de vehı́culos 3.4. Consideraciones finales . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 11 11 11 14 18. . . . . . . . . . . . . . . . . . . . . Haar . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. 19 19 20 21 22 23 24 24. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 4.. Deep Learning . . . . . . . . . . . . . . . . . . . . . . . 4.1. Consideraciones iniciales . . . . . . . . . . . . . . . 4.2. Aprendizaje de Máquina . . . . . . . . . . . . . . . 4.2.1. Caracterı́sticas Haar . . . . . . . . . . . . . 4.2.2. Clasificador en cascada . . . . . . . . . . . 4.2.3. Clasificadores en cascada con caracterı́sticas 4.3. Arquitecturas de aprendizaje profundo . . . . . . . 4.4. Red neuronal convolucional (CNN) . . . . . . . . ..
(8) 4.5. Arquitectura de una CNN . . . . . . . . . . . 4.5.1. Convolución . . . . . . . . . . . . . . . 4.5.2. Submuestreo . . . . . . . . . . . . . . 4.6. Hiperparámetros de una CNN . . . . . . . . . 4.6.1. Inicialización de los pesos de una CNN 4.6.2. Función de activación . . . . . . . . . 4.6.3. Función de submuestreo . . . . . . . . 4.7. Consideraciones finales . . . . . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. 24 25 25 27 27 28 28 29. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. 30 30 30 30 31 32 33 36 37 37 37 38 38. 6.. Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . 6.1. Consideraciones iniciales . . . . . . . . . . . . . . . . 6.2. Recolección de datos . . . . . . . . . . . . . . . . . . 6.3. Diseño y entrenamiento de clasificadores . . . . . . . 6.3.1. Primer experimento . . . . . . . . . . . . . . 6.3.2. Segundo experimento . . . . . . . . . . . . . 6.3.3. Evaluación de hiperparámetros . . . . . . . . 6.3.4. Tercer experimento . . . . . . . . . . . . . . . 6.3.5. Cuarto experimento . . . . . . . . . . . . . . 6.3.6. Comparación de CNN con otros clasificadores 6.4. Resultados del procesamiento de video . . . . . . . . 6.4.1. Detección de vehı́culos . . . . . . . . . . . . . 6.4.2. Seguimiento de vehı́culos . . . . . . . . . . . 6.4.3. Tiempo de ejecución . . . . . . . . . . . . . . 6.5. Consideraciones finales . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. 39 39 39 40 41 42 45 46 48 49 49 50 51 51 54. 7.. Conclusiones . . . . . 7.1. Conclusiones . . 7.2. Recomendaciones 7.3. Trabajos Futuros. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 55 55 56 57. 5.. Propuesta del trabajo . . . . . . . . . . . . 5.1. Consideraciones Iniciales . . . . . . . . 5.2. Esquema general de la propuesta . . . 5.2.1. Recolección de datos . . . . . . 5.2.2. Diseño del clasificador . . . . . 5.2.3. Entrenamiento del clasificador 5.2.4. Detección de vehı́culos . . . . . 5.3. Evaluación del desempeño . . . . . . . 5.3.1. Función de pérdida . . . . . . . 5.3.2. Exactitud . . . . . . . . . . . . 5.3.3. Análisis cuantitativo . . . . . . 5.3.4. Análisis cualitativo . . . . . . . 5.4. Consideraciones finales . . . . . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. Referencias Bibliográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57.
(9) Índice de figuras. 2.1. El uso de VOT en diversas aplicaciones [Ali et al., 2016]. . . . . . . . . . . . . . . . . 3.1. 3.2. 3.3. 3.4. 3.5. 3.6.. Enfoque piramidal del método de deslizamiento de ventana. . . . . . . . Deslizamiento de ventana a multiescala. . . . . . . . . . . . . . . . . . . Intensidad de la gradiente marcando la trayectoria del movimiento. . . . Gradientes y orientación del movimiento de un brazo humano. . . . . . Resultado de algoritmos de seguimiento de objetos. . . . . . . . . . . . . Algoritmo de seguimiento con filtros de correlación, [Chen et al., 2015]. .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. 4.1. Diagrama de Venn mostrando algunas disciplinas de la Inteligencia Artificial, [Goodfellow et al., 2016]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Un conjunto de plantillas para la extracción de caracterı́sticas Haar. . . . . . . . . . 4.3. Esquema de funcionamiento del detector de objetos con un único clasificador fuerte. 4.4. Esquema de funcionamiento del detector de objetos con un clasificador en cascada. . 4.5. Descomposición jerárquica de una imagen con una arquitectura de aprendizaje profundo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6. Arquitectura LeNet-5 para la detección de dı́gitos y letras. . . . . . . . . . . . . . . . 4.7. Representación gráfica de la convolución pixel por pixel. . . . . . . . . . . . . . . . . 4.8. Representación gráfica del submuestreo máximo y submuestreo promedio. . . . . . . 5.1. Esquema de la propuesta para la detección de vehı́culos. . . . . . . . . . . . . . . . 5.2. Arquitectura de la red neuronal convolucional Lenet-5, [Jia et al., 2014]. . . . . . . 5.3. Detección de vehı́culos con el método de ventana deslizante y con detección de movimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4. Aceptabilidad o rechazo de cada elemento mi de M. Si mi no es detectado en cinco ocasiones, no necesariamente seguidas, entonces es eliminado, pero si antes de ello el objeto es detectado cinco veces, igulamente no es necesario de forma consecutiva, entonces el objeto pasa a la etapa de seguimiento. De esta manera reducimos falsos positivos en la etapa de seguimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5. Cada elemento de la memoria es evaluado para determinar si pasa al módulo del algoritmo de seguimiento o si debe ser eliminado. . . . . . . . . . . . . . . . . . . . 6.1. Escenas que demuestran la variación de iluminación para el conjunto prueba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Análisis de la exactitud de cada arquitectura diseñada de CNN. . . . . 6.3. Arquitectura LeNet-5 para la clasificación de vehı́culos. . . . . . . . .. 7 12 12 14 14 15 18. 20 21 22 23 24 25 26 26. . 31 . 32 . 34. . 36 . 36. de datos de . . . . . . . . 41 . . . . . . . . 44 . . . . . . . . 45.
(10) 6.4. Convolución con una plantilla(o kernel) de dimensión 3x3. . . . . . . . . . . . . . . 6.5. Tiempo de ejecución de los algoritmos: detección de movimiento y detección de vehı́culo, en versión secuencial. El eje “x” representa los fotogramas del video, y el eje “y” el tiempo en milisegundos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6. Tiempo de ejecución de los algoritmos: detección de movimiento y detección del vehı́culo, con optimización computacional, El eje “x” representa los fotogramas del video, y el eje “y” el tiempo en milisegundos. . . . . . . . . . . . . . . . . . . . . . 6.7. Gráficos donde se demuestra la exactitud de distancia (DP) y la exactitud de sobreposición (OP), donde FC 1C representa el uso de una caracterı́stica y FC 3C el uso de tres caracterı́sticas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.8. Secuencia de fotogramas que demuestran la detección y seguimiento de vehı́culos en diferentes escalas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.9. Secuencia de fotogramas que demuestran la detección y seguimiento de vehı́culos semiocluı́dos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.10. Tiempo total de ejecución, en versión secuencial, representado en la medida de tiempo milisegundos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.11. Tiempo total de ejecución, con optimización computacional, representado en la medida de tiempo milisegundos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 46. . 50. . 50. . 52 . 53 . 53 . 54 . 54.
(11) Índice de tablas. 6.1. Ejemplos de imágenes seleccionadas de la cámara de vigilancia para el entrenamiento del clasificador CNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Descripción de conjuntos de datos para la fase de prueba del clasificador CNN. . . 6.3. Resultados del primer experimento, realizado con el modelo LeNet-5 para la clasificación de imágenes con vehı́culos. . . . . . . . . . . . . . . . . . . . . . . . . . 6.4. Resultados obtenidos con el segundo experimento. . . . . . . . . . . . . . . . . . . 6.5. Conjunto de datos Markus Weber [Caltech, 1999]. . . . . . . . . . . . . . . . . . . 6.6. Conjunto de datos ImageNet [Princeton University, 2012]. . . . . . . . . . . . . . . 6.7. Conjunto de datos Caltech [Caltech, 1999]. . . . . . . . . . . . . . . . . . . . . . . 6.8. Comparación de la exactitud obtenida con 3 conjuntos de datos. . . . . . . . . . . 6.9. Comparación de la exactitud obtenida entre CNN y otras técnicas . . . . . . . . .. . 40 . 40 . . . . . . .. 42 43 47 47 48 48 49.
(12) Lista de Abreviaturas. fps. f rames per second. CPU. Central Processing Unit. CNN. Convolucional Neural Network. GPU. Graphic Processing Unit. HAAR HOG LBP R-CNN SIFT SURF. Haar-like feature Histogram of Oriented Gradient) Local Binary Pattern Region - Convolucional Neural Networ Scale Invariant Feature Transform Speeded Up Robust Features.
(13) 1 Introducción. 1.1. Contexto y Motivación En la actualidad, está tomando gran interés la investigación e implementación de sistemas para la detección de vehı́culos con diversas finalidades, para controlar la entrada a parqueos o supermercados, como parte de un asistente automático para choferes, también es utilizado para el conteo de autos ya sea en un estacionamiento o mientras circulan en la autopista, y para el control de la velocidad, en su gran mayorı́a ha sido aplicado a resolver problemas de seguridad ciudadana. La seguridad ciudadana se ha constituido en el problema más grave que afecta la vida cotidiana de los ciudadanos en nuestro paı́s, según las estadı́sticas del año 2016 del Instituto de Defensa Legal de [Mejia et al., 2016] donde se maniesta que el 31.1 % de personas son vı́ctimas de un algún acto delictivo, siendo el robo de vehı́culos el cuarto delito con mayor tasa de victimización, alcanzando el 2.1 % en el 2016 y 1.7 % en el 2015, en base a la población a nivel nacional urbano. En algunos puntos de la ciudad ya se cuenta con cámaras de vigilancia, las autoridades policiales monitorean las calles y acuden ante algún hecho ilegal. Un porcentaje de los actos delictivos implica la presencia de vehı́culos como un medio de delincuencia o como producto afectado, en cualquier caso las autoridades pueden contar con una lista de vehı́culos reportados, el reconocimiento de estos vehı́culos puede brindar información y aportar a las investigaciones policiales correspondientes. La detección de vehı́culos a través de videos se puede realizar de manera manual o automática. El trabajo manual implica agotamiento del usuario y el tiempo que le toma para realizar esta actividad podrı́a ser aprovechada en otras actividades prioritarias, es ası́ que la automatización del proceso de detección de vehı́culos reducirı́a el agotamiento visual y aumentarı́a el aprovechamiento de tiempo del personal encargado del monitoreo de cámaras de vigilancia. Mientras más alto sea el nivel de confiabilidad de un sistema automático mayor será la reducción de la intervención humana. Las aplicaciones computacionales orientadas a la videovigilancia han conseguido gran atención en los últimos años, tanto en el ámbito industrial con aplicaciones reales para asistir al humano,.
(14) como en el ámbito académico para la investigación y desarrollo de técnicas mejoradas. Estas aplicaciones surgen a partir de la interconexión entre una cámara y un sistema basado en técnicas de visión artificial, de esta manera se hace posible la detección de cualquier evento u objeto en escenas reales, por ejemplo, el reconocimiento de placas vehiculares o la detección de acciones violentas. Una de las tareas más desafiantes de la detección de objetos en el campo de visión artificial es con aquellos objetos que son dinámicos y tienen un alto grado de variabilidad en su apariencia, tal y como lo señaló [Hjelmås and Low, 2001]. En ese sentido, la detección de objetos en tiempo real como vehı́culos, rostros y muchos más, sufren diversas transformaciones durante su aparición en un video, y se ven influenciados por diversos factores externos que varı́an, tales como cambios de iluminación, oclusión, sombra, variación en el tamaño del objeto y ruido ocasionado por el dispositivo de entrada. Estos factores pueden reducir la confiabilidad de la información del objeto, [Bishop, 2006]. La forma más común de detección de objetos por imágenes implica como primer estado fundamental la extracción de caracterı́sticas del objeto, aquellas caracterı́sticas que hagan distinguir al objeto de manera única de otros que se encuentren en su misma escena. El color, la textura y la forma, son las caracterı́sticas más influyentes que en combinación formarán patrones visuales, [Bishop, 2006]. Seguidamente un algoritmo de aprendizaje se hace necesario para el estado de clasificación de los patrones visuales. Los dos estados, extracción y aprendizaje, conforman el enfoque denominado Aprendizaje de Máquina o Machine Learning, [Nilsson, 1996]. Los algoritmos más usados para el estado de extracción de caracterı́stica son: HOG (Histogram of Oriented Gradient) [Dalal and Triggs, 2005], LBP (Local Binary Pattern) [Ojala et al., 1996] y las caracterı́sticas de Haar (Haar-like features) [Viola and Jones, 2001], que son extremadamente acudidas en la literatura. Además de SIFT (scale invariant feature transform) [Lowe, 2004], SURF (Speeded-Up Robust Features) [Bay et al., 2006] que en combinación son también aplicadas en la representación de objetos por imágenes. Entre los algoritmos de aprendizaje que han logrado resultados exitosos y de gran confiabilidad están SVM (Support Vector Machine) [Vapnik, 1999], Adaboost (Adaptive boosting) en cascada [Viola and Jones, 2001] y las Redes Neuronales [Hecht-Nielsen et al., 1988]. La detección de objetos se vio mejorada con la tendencia acelerada del aprendizaje profundo, más conocido como Deep Learning, donde se crearon las redes de creencia profunda (deep belief networks), los auto-codificadores y las redes neuronales convolucionales, [Gu et al., 2015]. Es ası́ que surgen trabajos de investigación que confı́an en el éxito del aprendizaje profundo, debido a su procesamiento detalle a detalle y de manera jerárquica, según [Wang et al., 2014], alcanzando ası́ una alta abstracción de las caracterı́sticas de la imagen dirigiéndose fuertemente a la detección de objetos con buenos resultados ante condiciones variadas de entorno, es decir en presencia de factores externos. Las redes neuronales convolucionales (CNN) se caracterizan por su capacidad de reconocer objetos tomando los dos primeros estados de Aprendizaje de Máquina, extracción y aprendizaje, en un solo paso. Un caso de escenario de alto grado de variabilidad es el tránsito vehicular, donde los objetos vehı́culo se presentan en distintas perspectivas y diferentes tamaños por su constante movimiento. El trabajo de [Hu et al., 2017] propuso una arquitectura CNN para la clasificación binaria de las clases vehı́culo y no-vehı́culo llamada L-CNN, que tiene la finalidad de ser ligera, y es entrenada 2.
(15) con un conjunto de datos de menor escala, a diferencia de las redes convolucionales RCNN (Region CNN) y AlexNet que requieren conjuntos de datos a gran escala. En los experimentos se consigue menor consumo de recurso conputacional que AlexNet, aunque la precisión de L-CNN es 4.11 % menos. El avance tecnológico provee de mayores recursos computacionales, esto beneficia el enfoque de aprendizaje profundo haciéndolo cada vez más acudido para tareas de detección. El presente proyecto de investigación está orientado al uso de técnicas de aprendizaje profundo orientados a visión computacional y algoritmos eficientes para el procesamiento de video, con la finalidad de detectar vehı́culos en tiempo real, utilizando una cámara de vigilancia situada en una calle pública donde se presentan factores externos de gran variabilidad.. 1.2. Planteamiento del Problema Las aplicaciones de detección de objetos actualmente se enfrentan a varios problemas durante la captura de información de la imagen, ocasionados por condiciones no controladas o factores externos, como son la variación de iluminación, la resolución de la imagen, la geometrı́a del objeto y la semi-oclusión, haciendo que los objetos sean dinámicos es decir contengan un alto grado de variabilidad. Los factores externos reducen la confiabilidad en las caracterı́sticas del objeto y por lo tanto la detección en tiempo real se ve afectada.. 1.3. Objetivo General Detección de vehı́culos con imágenes de videovigilancia usando deep learning.. 1.3.1. Objetivos Especı́ficos Crear conjunto de datos con imágenes de vehı́culos e imágenes de no-vehı́culos. Entrenar clasificador deep learning y evaluar hiperparámetros. Clasificación de objetos vehı́culo. Pruebas y análisis de resultados.. 1.4. Organización del trabajo El presente trabajo está organizado de la siguiente manera: en el capı́tulo 2 se presentan los trabajos relacionados a técnicas de aprendizaje profundo y a la detección de vehı́culos, en el capı́tulo 3 se describen las técnicas complementarias de procesamiento de video para detectar e identificar cada vehı́culo como único durante su aparición en el video, en el capı́tulo 4 se da una visión general de los conceptos de aprendizaje profundo y de las redes neuronales convolucionales, en el capı́tulo 5 se plantea la propuesta basada en un modelo con enfoque de aprendizaje profundo para la detección de vehı́culos teniendo en cuenta el objetivo principal del presente trabajo, en el capı́tulo 6 se da. 3.
(16) a conocer los experimentos y los resultados obtenidos. Finalmente en el capı́tulo 7 se exponen las conclusiones.. 4.
(17) 2 Trabajos Relacionados. 2.1. Consideraciones iniciales La visión humana a diferencia de los otros sentidos tiene la capacidad de obtener grandes cantidades de información en tiempo real, a pesar de su limitada banda de espectro de energı́a electromagnética llamada banda visible [Gonzalez et al., 2007]. Entender la visión implica comprender la naturaleza de la luz y sus leyes, ası́ también los fenómenos fisiológicos y neuronales, por lo tanto según [Bruno and de Carvalho, 2008] entender la visión trae consigo uno de los desafı́os cientı́ficos más importantes: conocer el funcionamiento del cerebro. A partir de los modelos y simulaciones que se desarrollaron para comprender la visión natural surgió el campo cientı́fico denominado Visión Computacional o Visión Artificial que es definido por [Crowley, 1995] como un área de análisis de imágenes para la recolección de información basada en la visión humana, para [Gonzalez et al., 2007] es un conjunto de técnicas que tienen por objetivo apoyar al observador en la interpretación del contenido de una imagen. El desempeño en el campo de Visión Computacional trae consigo otras ciencias, mencionado en [Cunha, 2013], tales como: la Biologı́a para los conceptos de visión humana, la teorı́a óptica de la Fı́sica, las Matemáticas para cálculos bien precisos, y el entendimiento de algoritmos para la programación de técnicas de procesamiento de imagen. La aparición explosiva de algoritmos computacionales, la innovación en cámaras de alta resolución y el alto poder de las computadoras han extendido rápidamente las aplicaciones de Visión Computacional, [Cunha, 2013]. En este capı́tulo se presenta la investigación realizada a trabajos relacionados con técnicas de Visión Computacional para la detección de vehı́culos, brindando una base cientı́fica para este proyecto. En la sección 2.2 se revisa los trabajos anteriores sobre procesamiento de video para detección de objetos, seguidamente en la sección 2.3 se da un visión general de los trabajos en Aprendizaje de Máquina para detección de objetos, en la sección 2.4 se da a conocer los trabajos relacionados a una rama del Aprendizaje de Máquina, denominado Aprendizaje Profundo..
(18) 2.2. Procesamiento de video Además de contar con un clasificador previamente entrenado, un sistema de detección de objetos en video también se desarrolla con algoritmos de procesamiento de imagen para asegurar la correcta detección con la mı́nima cantidad de falsos positivos. Los algoritmos de procesamiento de video del presente proyecto se divide en dos fases: la primera fase es la generación de candidatos en la que se generan regiones que serán clasificados con el modelo entrenado, y la segunda fase se basa en un enfoque denominado seguimiento por detección, [Osorio et al., 2015], [Negri and Garayalde, 2014], [Comaschi et al., 2016], para prevenir falsos positivos provocados por el detector, asegurando de esta manera una detección continua de cada vehı́culo durante la transmisión del video.. 2.2.1. Generación de Candidatos A lo largo de los años se han presentado diversas alternativas para generar candidatos en cada imagen de video, cada una de estas alternativas se caracterizan por su simplicidad y eficiencia para evitar ser una carga mayor en un sistema de detección. [Breitenstein et al., 2009] detecta peatones en cada imagen recorriéndola iterativamente con una ventana de diferentes escalas, formando una piramide multi-escala, en cada una de las ventanas se obtiene un porcentaje de detección. Este enfoque piramidal de ventanas multi-escala se denomina ventana deslizante (sliding window ) y fue propuesta por [Papageorgiou and Poggio, 2000]. Más adelante [Comaschi et al., 2016] propone un detector de rostros en videos caseros y utiliza ventana deslizante para generar candidatos, en este tipo de videos el rostro tiende a cambiar de tamaño ya que se aleja o acerca a la cámara por lo tanto se hizo necesario generar regiones de diferentes escalas para no perder la localización del rostro. [Huval et al., 2015] también utilizó ventana deslizante para la detección y conteo de vehı́culos en imágenes aéreas. En un video el objeto normalmente se está moviendo constantemente, por lo tanto los investigadores quisieron aprovechar las propiedades del movimiento para generar candidatos, es ası́ que [Oliveira-Neto et al., 2012] hace una comparación de tres técnicas de detección de movimiento, estos son Background Subtraction (BS), Temporal Differencing (TD) y Optical Flow (OF), estos fueron aplicados al conjunto de datos PETS [U. of Reading, 2004], que consiste en un conjunto de grabaciones de vehı́culos obtenidas con cámaras de vigilancia. Según las comparaciones de [Oliveira-Neto et al., 2012] la técnica OF tiene la propiedad de ser invariante a los cambios de iluminación porque asume la consistencia del brillo entre los pixeles, y mantiene buenos resultados con la cámara en movimiento a cambio de un monto adicional en el costo computacional, a comparación de los otros dos métodos. Con la finalidad de disminuir el costo computacional para generar candidatos y ası́ evitar la sobrecarga del sistema es que se propone utilizar la técnica imagen de la historia de movimiento (MHI-Motion History Image) propuesta por [Bobick et al., 1997]. Es en el trabajo de [Mueid et al., 2016] que MHI se utiliza como primer paso para el reconocimiento de acciones de personas, según el autor la técnica resultó ser excelente y exitosa para asegurar la dirección de la información del movimiento. Seguidamente [Pampouchidou et al., 2017] también aplica MHI. 6.
(19) para el reconocimiento de personas con depresión, pero esta vez se agrega el filtro de Gabor para convertirse en GMHI (Gabor MHI), con la finalidad de realzar los detalles del rostro y extraer información relevante.. 2.2.2. Seguimiento por Detección El seguimiento de objetos visuales(VOT - Visual Object Tracking) juega un destacado rol en muchas aplicaciones, algunas de estas son mencionadas por [Ali et al., 2016] y se pueden ver en la figura 2.1.. Fig. 2.1: El uso de VOT en diversas aplicaciones [Ali et al., 2016].. Las técnicas de VOT buscan alcanzar la mayor eficiencia enfrentando varios incovenientes, estos son mencionados por [Ali et al., 2016] y son: la oclusión, el cambio de la apariencia, la variabilidad del fondo, cambios en el tamaño del objeto, variaciones de iluminación, ruido en la imagen, objetos similares y movimiento complejo del objeto. A su vez, el autor plantea dos tipos de enfoque de seguimiento de objetos: los enfoques clásicos y los enfoques modernos. El algoritmo Camshift, el filtro de Kalman y correspondencia de plantillas (template matching) son enfoques clásicos, mientras que el seguimiento por detección, el filtro de partı́culas, la representación esparsa, entre otros, pertenecen al grupo de enfoques modernos. En el trabajo de [Han et al., 2016] se acopló el filtro de Kalman al algoritmo Camshift para predecir con mayor precisión la siguiente posición del objeto, incluso aquellos semi-ocluı́dos, el funcionamiento de su modelo de seguimiento de objetos depende fuertemente de umbrales de color y del tamaño de la ventana, estos deben ser configurados según la escena donde el objeto se moviliza. Un año después [Ahmed et al., 2017] desarrolla un sistema de seguimiento en tiempo real, aplicando el algoritmo Camshift en videos de 720x480 pixeles a 25fps, en el espacio de color YUV para calcular la distribución de probabilidad de cada imagen, el tiempo de ejecución alcanza los 39.5ms por cada fotograma, con esta velocidad la propuesta se ajusta a sistemas de tiempo real, aunque sus pruebas todavı́a se limitan a videos grabados con una cámara web en ambientes cerrados y con un solo 7.
(20) objeto en la escena. [Xu et al., 2016] utilizaron un modelo dinámico con filtro de partı́culas y con la técnica 2DPCA (2-Dimensional Principal Component Analysis). La cantidad de subimágenes del objeto es acumulada hasta cierta cantidad, luego se actualizan eliminando las más antiguas. El valor RMS (Root Mean Square) es utilizado como métrica de evaluación, siendo un resultado satisfactorio cuando RMS es menor. En el modelo dinámico de [Xu et al., 2016], ante oclusiones del objeto el RMS aumenta mientras que disminuye cuando el objeto se encuentra libre de oclusión, resultando ser una técnica vulnerable ante objetos ocluı́dos, esta vulnerabilidad es superada con la propuesta de [Danelljan et al., 2014] quienes realizaron una estimación eficiente y robusta de escala de rostros a partir de videos, usando aprendizaje de filtros de correlación discriminativa basada en una representación de pirámide de escala. La estrategia consiste en estimar la traslación del objeto y luego la escala en un solo algoritmo, esta técnica consigue detectar objetos semi-ocluı́dos. Las investigaciones no solo se centraron en el seguimiento del objeto, sino también en el perfeccionamiento de la correspondencia de las detecciones de fotograma a fotograma. Es difı́cil proporcionar al detector suficientes muestras de entrenamiento para cubrir el espectro completo de las variaciones de apariencia que ocurren en tiempo real, [Comaschi et al., 2016]. Un enfoque que ha demostrado capturar los cambios de apariencia del objetivo es el seguimiento por detección, clasificado por [Ali et al., 2016] como un enfoque moderno, a pesar de ser muy acudido en los últimos años [Wu et al., 2013], este enfoque proporciona sus propias muestras para un entrenamiento online, provocando ası́ actualizaciones erróneas y desvı́os en el seguimiento del objeto, es ası́ que en la tesis de [Comaschi, 2016] se propone supervisar la correspondencia entre los resultados del detector y los objetos que son candidatos o que ya se encuentran en el módulo de seguimiento, utilizando el algoritmo Húngaro [Munkres, 1957] con el cual se realiza una asignación de costos con las caracterı́sticas del objeto. Igualmente en [Mohr et al., 2014] se aplica el algoritmo al seguimiento de objetos sobre una mesa a partir de una cámara de profundidad.. 2.3. Aprendizaje de Máquina La tarea más desafiante de la detección de objetos en el campo de visión artificial es con aquellos objetos que son dinámicos y tienen un alto grado de variabilidad en su apariencia, tal y como lo señaló [Hjelmås and Low, 2001]. La detección de objetos en tiempo real como vehı́culos, rostros y muchos más, sufren diversas transformaciones durante su presencia en el video y, captar sus caracterı́sticas para poder diferenciarlos y determinar si son o no el objeto que se busca en un proceso que implica diversos algoritmos. Las aplicaciones de detección de vehı́culos ligeras en cuanto a tiempo de ejecución toman en cuenta propiedades especı́ficas de apariencia del objeto como, la geometrı́a, los componentes y el color, estas caracterı́sticas son sometidas a técnicas estadı́sticas con varios parámetros de umbral para determinar la detección más confiable del objeto, el uso de técnicas de este enfoque alcanza una alta velocidad de procesamiento pero poca confiabilidad en cuanto a los resultados. En el trabajo de [Men and Dai, 2015] se consideran múltiples caracterı́sticas de las partes frontal y posterior del vehı́culo, tales como su forma y el color predominante de la placa de licencia, también la posición 8.
(21) y color rojo de los faroles, todas estas caracterı́sticas son procesadas con relaciones espaciales geométricas y transformaciones a nivel de histograma de color, la matriz de correlación es aplicada para la validación de cada par de faroles de un mismo vehı́culo, su trabajo es comparado con el de [Tian et al., 2013] que también recoge las caracterı́sticas de las parte frontal del vehı́culo, pero [Men and Dai, 2015] demuestra obtener menor tasa de falsos positivos. Como se puede observar, los autores escogen caracterı́sticas especı́ficas del vehı́culo porque distinguen de manera única al objeto, aunque en un entorno donde el objeto se transmite en tiempo real estas caracterı́sticas se tornan sensibles a la variación de factores del propio entorno, como son la iluminación, la oclusión, el movimiento y el ruido. Otras técnicas consideran la imagen como un todo tomando caracterı́sticas de alto nivel, de esta forma se diseñan patrones visuales diferentes para cada clase de objeto, [Bishop, 2006]. Estas técnicas pertenecen al enfoque de Aprendizaje de Máquina, este se realiza en tres pasos: extracción de caracterı́sticas, aprendizaje y predicción. Dentro del área de reconocimiento de patrones se encuentran las siguientes técnicas de extracción de caracterı́sticas: HOG [Dalal and Triggs, 2005], LBP [Ojala et al., 1996] y las caracterı́sticas de Haar [Viola and Jones, 2001], que son extremadamente acudidas en la literatura. Además de SIFT [Lowe, 2004], SURF [Bay et al., 2006] y la combinación de estas dos son también aplicadas en la representación de objetos por imágenes. Los clasificadores SVM [Vapnik, 1999], Adaboost en cascada [Viola and Jones, 2001] y Redes Neuronales [Hecht-Nielsen et al., 1988], son algunas de las técnicas de reconocimiento de objetos que han demostrado buenos resultados en combinación con las técnicas mencionadas de extracción de caracterı́sticas. En la investigación de [Chen et al., 2014] se calcula las tasas de detección de vehı́culos con videos de una cámara de vigilancia colocada al frente, utilizó la dirección de la gradiente y un clasificador Fuzzy SVM consiguiendo como máximo 95 % de exactitud, los resultados fallan en escenarios complejos y con mal clima, igualmente son insatisfactorios ante la sombra y la oclusión del vehı́culo. Luego [Tang et al., 2015] propone un modelo de detección de vehı́culos para un sistema de vigilancia de tráfico inteligente, haciendo uso de Adaboost en cascada como clasificador y caracterı́sticas LBP, consigue un valor de exactitud de 97 % en videos grabados desde las 7:00am hasta las 5:00pm, el tiempo de detección alcanza los 60 milisegundos por imagen solo en la fase de detección, en el trabajo se concluye que las detecciones faltantes son debido a oclusiones múltiples y apariciones incompletas de los vehı́culos.. 2.4. Aprendizaje Profundo Los sistemas de visión basados en aprendizaje son esperados a proveer un nivel más alto de competencia y generalidad más amplia, mejorando su propio rendimiento con el tiempo, [Sebe, 2005]. Con la tendencia acelerada del aprendizaje profundo, conocido también como. deep learning, se fortelecieron con mayor rapidez las redes de creencia profunda (deep. belief networks) [Hinton, 2009], los auto-codificadores [Bengio et al., 2007] y las redes neuronales convolucionales [Gu et al., 2015]. Es ası́ que surgen trabajos de investigación que confı́an en el éxito del aprendizaje profundo debido a su procesamiento detalle a detalle y de manera jerárquica, 9.
(22) según [Wang et al., 2014], alcanzando ası́ una alta abstracción de las caracterı́sticas de la imagen dirigiéndose fuertemente a la detección de objetos con buenos resultados ante condiciones variadas de entorno. Las redes neuronales convolucionales (CNN) se caracterizan por su capacidad de reconocer objetos tomando las dos primeras etapas de Aprendizaje de Máquina, extracción y aprendizaje, en un solo paso. [Huval et al., 2015] realizó evaluaciones empı́ricas variando la arquitectura de un modelo de CNN llamado Overfeat, propuesto por [Sermanet et al., 2013], las evaluaciones se realizaron con imágenes aéreas capturando la parte superior de los vehı́culos, los resultados demostraron que el uso de CNN tiene buen rendimiento en detección de vehı́culos. Una CNN también es utilizada únicamente como extractor de caracterı́sticas, esto se puede ver en los trabajos de [Song et al., 2015] y [He et al., 2015b]. En el trabajo de [Yu et al., 2017] se demuestra que con el uso de R-CNN (Region CNN), creada por [Girshick, 2015], en detección de vehı́culos se obtiene 85 % de exactitud a un tiempo de ejecución de 5 imágenes por segundo, los resultados no son prometedores para un sistema de tiempo real, siendo R-CNN una red de 16 capas para la detección de tres clases: vehı́culos, partes de vehı́culo, y no-vehı́culos. Más adelante [Hu et al., 2017] hace uso de una arquitectura más ligera de CNN en una escena de tránsito vehicular donde los objetos vehı́culo se presentan en distintas perspectivas y diferentes tamaños por su constante movimiento, es ası́ que se propuso dos arquitecturas de CNN para la detección de vehı́culos de múltiples perspectivas, una arquitectura llamada GLCNN (GeometricLabel CNN) para la clasificación de tres regiones en la escena y la segunda arquitectura de 3 capas para la clasificación binaria de las clases vehı́culo y no-vehı́culo, esta segunda CNN llamada L-CNN tiene la finalidad de ser ligera buscando ser entrenada con un conjunto de datos de menor escala a diferencia de Overfeat, R-CNN y AlexNet, este último propuesto por [Krizhevsky et al., 2012], que requieren conjuntos de datos a gran escala. En los experimentos se consigue menor consumo de recurso conputacional que AlexNet, demostrando ası́ que un modelo CNN puede ser adecuado para una clasificación binaria.. 2.5. Consideraciones Finales La literatura demuestra que el uso de las CNN ha alcanzado ventaja basándose en la imagen como un todo y no en caracterı́sticas especı́ficas. El avance tecnológico provee de mayores recursos computacionales y esto beneficia el aprendizaje profundo haciendo que este enfoque sea cada vez más acudido para tareas de detección de objetos visuales.. 10.
(23) 3 Procesamiento de video. 3.1. Consideraciones iniciales En el presente capı́tulo se aborda técnicas de procesamiento de video que complementan el sistema de detección de vehı́culos. Se realiza una revisión teórica de las técnicas de generación de candidatos con las que se han obtenido buenos resultados en trabajos anteriores haciendo uso de la gradiente y de ventanas multi-escala, seguidamente se presentarán los algoritmos que hacen posible el seguimiento por detección de objetos visuales.. 3.2. Generación de candidatos A continuación se dará una descripción de dos algoritmos bastante usados y con resultados satisfactorios para la generación de candidatos. Deslizamiento de ventana La técnica más utilizada para generación de candidatos es sliding window o ventana deslizante, fue propuesta por [Papageorgiou and Poggio, 2000] y la técnica fue acelerada con computación paralela por [Wojek et al., 2008]. Consiste en escanear de manera exhaustiva la imagen extrayendo las regiones de interés(ROI - Regio of Interest) que serı́an los candidatos para el clasificador En muchas aplicaciones el método de deslizamiento de ventana viene de la mano con una estrategia piramidal [Gerónimo and López, 2010] que permite manejar diferentes escalas de la imagen, como se puede apreciar en la figura 3.1, incluso [Benenson et al., 2012] proponen no solo redimensionar la imagen, sino también aplicar clasificadores multiescala sobre la imagen para alcanzar una mejor eficiencia. El algoritmo de ventana deslizante consiste en recorrer la imagen con ventanas de diferentes escalas en todas las posibles posiciones como se observa en la figura 3.2..
(24) 1920 Imagen Original. widht h e i g h t. sliding window 1080. nivel 0 nivel 1 nivel 2. nivel n-1 nivel n. Fig. 3.1: Enfoque piramidal del método de deslizamiento de ventana.. Según [Gerónimo and López, 2010] uno de los algoritmos más conocidos consiste en un enfoque piramidal de diferentes escalas donde en cada nivel se desliza una ventana. Para propósitos de comparación con otros algoritmos habitualmente la ventana es escalada y ya no la imagen.. Fig. 3.2: Deslizamiento de ventana a multiescala.. Imagen de la historia de movimiento (MHI - Motion History Image) El reconocimiento de acciones es una de las tareas más complejas, debido a su variedad de posiciones, similaridades 12.
(25) entre acciones, el punto de vista desde el cual se observe, etc. Sobretodo en acciones humanas donde cada sujeto presenta rasgos distintos a pesar de hacer la misma acción. Durante los años 1996 a 1997 el concepto de Imagen de la Historia de Movimiento (MHI-Motion History Image) fue propuesto por Davis & Bobick [Bobick et al., 1997], a través de un aplicación de reconocimiento y representación de movimientos humanos con plantillas temporales. El algoritmo MHI obtiene el flujo del movimiento en cada pixel, a través de su intensidad de gris, y preserva la información de movimiento dominante [Ahad, 2012]. Se tiene una secuencia de imágenes grises, a partir del cual se genera una máscara de la diferencia, denominada MDIF, entre cada par de imágenes de manera consecutiva, esto quiere decir entre la imagen actual y la imagen anterior. Por cada máscara se forman las siluetas (silhouettes). Las intensidades de los pixeles de MDIF determinarán su información de movimiento en otra máscara a la que llamaremos MMHI. Como se puede observar en la ecuación 3.1 la información del movimiento se obtiene a partir del valor de timestamp que es el tiempo actual en milisegundos y la variable duración que indica la máxima duración del seguimiento de movimiento, cada pixel (x, y) de MMHI puede almacenar tres posibles valores: timestamp, el valor cero o el mismo valor, de esta manera identificamos que tan reciente es un determinado movimiento. Si el movimiento en un pixel ya es muy antiguo entonces se limpia a cero. En el transcurso se van construyendo las plantillas de movimiento tomando en cuenta las siluetas y el valor de timestamp.. timestamp si M DIF (x, y) 6= 0 M M HI(x, y) = 0 si M DIF (x, y) = 0 & M M HI(x, y) < (timestamp - duración) M M HI(x, y) cualquier otro caso. (3.1) De esta manera se obtiene MMHI a partir del cual se puede analizar la historia del movimiento. Desde aquı́ se tiene la posibilidad de calcular la gradiente y la orientación en cada pixel. La máscara MMHI es convolucionada con las siguientes máscaras de gradiente de Sobel. . −1 0 1. . . Fx = −2 0 2 −1 0 1. −1 0 1. . Fy = −2 0 2 −1 0 1. Como sabemos, por la ecuación 3.1, algunos valores de MMHI serán cero y esto provoca que la gradiente se eleve en los bordes de cada silueta. Los valores para un lı́mite superior y para un lı́mite inferior son necesarios para eliminar gradientes muy elevadas. Con el cálculo de las gradientes Fx (x, y) y Fy (x, y) en MMHI podemos calcular el movimiento en general de un objeto y observar su trayectoria, como se muestra en la figura 3.3, la trayectoria presenta diferentes intensidades, desde una zona más clara hacia una zona más oscura, es decir, desde donde comenzó el movimiento hasta donde terminó, respectivamente. 13.
(26) Fig. 3.3: Intensidad de la gradiente marcando la trayectoria del movimiento [Davis and Bobick, 1998].. La orientación phi en cada pixel (x, y) la obtenemos con la función arctan aplicada a la fracción conformada por la diferencia en el eje “x” y la diferencia en el eje “y”, como se puede ver en la ecuación 3.2. En la figura 3.4a se observa que el levantamiento del brazo produce la orientación hacia arriba y en la figura 3.4b podemos observar la orientación global del movimiento del brazo.. φ(x, y) = arctan. (a) Orientación por pixel.. Fy (x, y) Fx (x, y). (3.2). (b) Orientación global.. Fig. 3.4: Gradientes y orientación del movimiento de un brazo humano [Davis and Bobick, 1998].. 3.3. Seguimiento de vehı́culos En el campo de visión por computador el seguimiento de objetos es un problema muy popular que consiste básicamente en estimar la posición de un objeto visual en cada fotograma de una secuencia de imágenes [Danelljan et al., 2014]. Cuando el vehı́culo es localizado en la escena este y sus caracterı́sticas son almacenadas en una memoria temporal, con estas caracterı́sticas se predice 14.
(27) la ruta del objeto y es etiquetado hasta el momento que desaparece de la escena. Más adelante se detallan los algoritmos que intervienen en los experimentos para el seguimiento y el etiquetado del objeto vehı́culo. Para el seguimiento de vehı́culos del presente proyecto se ha tomado en cuenta el enfoque denominado seguimiento por detección, respaldado con el filtro de correlación y un algoritmo de correspondencia. A continuación se dará a conocer brevemente la teorı́a de dos algoritmos de seguimiento de objetos que han participado en los experimentos del presente proyecto de investigación: El algoritmo Camshift y el algoritmo Filtro de Correlación. Algoritmo Camshift: El algoritmo Meanshift es una versión anterior al algoritmo Camshift, no es adecuado cuando el objeto cambia de tamaño durante su aparición en la escena, ya que la ventana de etiquetación no se ajusta al tamaño cambiante del objeto, la ventana siempre se mantiene del mismo tamaño. Ante ese problema en “OpenCV Labs” [Bradski, 1998] publicó una versión mejorada a la que denominó Camshift(Continously Adaptive Meanshift). El algoritmo Camshift(Continously Adaptive Meanshift) publicado por Gary Bradski [Bradski, 1998] en “OpenCV Labs” es una versión mejorada del algoritmo Meanshift, que tenı́a el problema de no redimensionar la ventana de seguimiento al tamaño cambiante del objeto durante el video, con el algoritmo Camshift se logra adaptar la ventana al tamaño y rotación del objeto, en la figura 3.5a se puede observar el resultado de aplicar el algoritmo Meanshift, mientras que en la figura 3.5b se observa el resultado de Camshift.. (a) Resultado del algoritmo (b) Resultado del algoritmo Meanshift. Camshift. Fig. 3.5: Resultado de algoritmos de seguimiento de objetos [Intel et al., 2016].. El procedimiento del algoritmo Camshift se puede resumir en 3 etapas según [Han et al., 2016]:. 15.
(28) 1. Cálculo de la proyección de color. 2. Optimización de Meanshift. 3. Algoritmo de seguimiento de Camshift. En la primera etapa, la región de interés(ROI - Region Of Interest) es transformada al espacio de color HSV(Hue-Saturation-Value), se crea el histograma de color del ROI tomando en cuenta solo el canal H ya que este describe el color del pixel, de esta manera se obtiene el mapa de probabilidad de color. Como parte de la segunda etapa se obtiene una ventana cuyo centroide se calcula con el momento de orden cero y el momento de primer orden, ambos momentos son calculados según las ecuaciones 3.3 y 3.4 respectivamente, M00 =. XX x. M10 =. XX x. I(x, y). (3.3). y. xI(x, y); M01 =. XX. y. x. yI(x, y). (3.4). y. posteriormente el centroide es calculado con la ecuación 3.5. (xc , yc ) =. M10 M01 , M00 M00. (3.5). En q la última etapa la ventana s es redimensionada con la siguiente raı́z cuadrada s = 00 2x M 256 , este procedimiento se realiza iterativamente hasta que se alcanza la convergencia. A pesar de la robustez y bajo costo computacional del algoritmo Camshift este aún presenta algunas deficiencias, mencionadas en [Han et al., 2016]: • El área del objeto a seguir debe ser inicializado manualmente, una vez que se tienen las coordenadas del área estas son utilizadas en total confianza por el algoritmo Camshift para iniciar con el proceso de seguimiento. La inicialización manual reduce la eficiencia. • El modelo probabilı́stico del objeto es el mismo siempre, si las condiciones de iluminación cambian entonces las caracterı́sticas de color del objeto cambian lo cual entrarı́a en conflicto con el modelo probabilı́stico ya configurado en un inicio y esto traerı́a problemas en el proceso de seguimiento. • La eficiencia de seguimiento de objeto puede reducirse en escenarios complejos y con similaridades de color. • Cuando el objeto experimenta movimientos rápidos se pierde precisión de sobreposición de la ventana en el objeto. • Si el objeto es ocluı́do completamente la ventana de seguimiento del objeto se encogerá y quedará en el lugar donde el objeto existió por última vez.. 16.
(29) Filtro de correlación:. Para el seguimiento de objetos visuales [Danelljan et al., 2014]. propusieron la estimación de la traslación y también de la escala del objeto a través una serie de correlaciones en el dominio de Fourier donde cada filtro de correlación es sometido a un aprendizaje online. Muchos trabajos anteriores ya eran parte del uso de operaciones de correlación para el seguimiento de objetos, [Henriques et al., 2012], [Bolme et al., 2010]. La correlación involucra dos señales imágenes, una de referencia (objetivo) y una de prueba (escena). La imagen de referencia es correlacionada con una imagen de prueba para detectar y localizar algún patrón en especı́fico de la imagen de referencia. Esto es, la imagen de referencia se coloca en la parte superior izquierda de la escena analizada y se lleva a cabo la multiplicación de pixeles entre las dos matrices, todos los valores se suman para producir un valor de salida de correlación. El proceso se repite desplazando la imagen objetivo a la derecha y hacia abajo, produciendo de este modo una matriz de dos dimensiones como salida, llamada plano de correlación. Por lo tanto, la correlación se puede considerar como un sistema con una entrada (la escena), una plantilla o filtro (derivado de la imagen de referencia), y una salida (el plano de correlación) [Kumar et al., 2005]. El procedimiento para el uso de filtros de correlación a partir de la localización del objeto visual, según [Chen et al., 2015], se puede resumir de la siguiente forma. Durante la secuencia de video en cada fotograma la región cuya posición fue predecida en el fotograma anterior es extraı́da para detección. Luego las caracterı́sticas HOG son extraı́das a nivel de intensidad de cada pixel de la región de imagen, y si el resultado expresa ruido en la información entonces se aplica una técnica de suavizamiento de la región tal como una ventana coseno [Bolme et al., 2010]. Seguidamente, una serie de operaciones de correlación son realizadas a partir de convoluciones que se realizan con multiplicaciones término a término(element-wise) usando la Transformada de Fourier Discreta(DFT - Discrete Fourier Transform) calculada con un eficiente algoritmo de Transformada de Fourier Rápida(FFTFast Fourier Transform), el mapa de respuesta o de confidencia puede ser obtenido con la inversa de FFT(IFFT). En el mapa se ubica la posición con el máximo valor el cual será la nueva posición del objetivo. Luego, de la región de la posición estimada se extrae nuevamente las caracterı́sticas, para el entrenamiento y actualización del filtro dando lugar al aprendizaje online y nuevamente se aplica el IFFT para obtener el mapa de respuesta continuando ası́ con la predicción en cada fotograma, este procedimiento se observa en la figura 3.6. La descripción matemática básica del procedimiento se da a partir del Teorema de Convolución donde la multiplicación término a término se realiza en el dominio de frecuencia como se puede ver en la ecuación 3.6, donde el operador ⊗ es la correlación esperada entre la región de entrada x y el filtro h, la operación IFFT es expresado como F −1 de la multiplicación término a término, con el operador. 0. , de x̂ y ĥ∗ calculadas con la Transformada de Fourier. x ⊗ h = F −1 (x̂. 17. ĥ∗ ). (3.6).
(30) Salida esperada. Filtro de Correlación (FFT). FFT. Región de entrada. Entrena y actualiza. Mapa de respuesta. Extrae características FFT. FFT. Extrae características. Predicción. IFFT. Fig. 3.6: Algoritmo de seguimiento con filtros de correlación, [Chen et al., 2015].. La salida esperada de x ⊗ h se expresa con la variable y 3.7, y la nueva instancia de x como 0. x, 0. y = F −1 (x̂. ĥ∗ ). (3.7). finalmente el filtro de correlación se representa por una división término a término 3.8, a partir de este paso se realiza el entrenamiento y actualización. ĥ∗ =. ŷ x̂0. (3.8). Realizar el seguimiento de objetos visuales requiere afrontar muchos aspectos, los más influyentes son la oclusión del objeto, los cambios en niveles de iluminación, la variación de escala del objeto durante su aparición en la escena. Durante la revisión de la literatura se observa que el algorimo Camshift ha permanecido durante años como la técnica más robusta para seguimiento de objetos, pero con la demanda de sistemas de tiempo real se hizo necesario lidiar con factores externos, para superarlo se dió lugar a otras técnicas como los filtros de correlación.. 3.4. Consideraciones finales Como se pudo ver existen diferentes técnicas para el procesamiento de video, cada una de ellas tiene ventajas y desventajas que se deben considerar de acuerdo a su aplicación práctica. Los factores externos como la iluminación, la oclusión, el movimiento y el ruido son el desafı́o más relevante del procesamiento de video, por ello es de importancia escoger las técnicas que brinden rendimiento y menor tiempo de ejecución a la vez.. 18.
(31) 4 Deep Learning. 4.1. Consideraciones iniciales Según [Bengio et al., 2009] la representación dispersa del cerebro ha inspirado a enfoques del aprendizaje de máquina, también conocido como machine learning (ML). La dispersidad se ha convertido en un tema de gran interés no solo en ML sino también en Estadı́stica, en Procesamiento de Señales y en Compresión de Datos. Previamente la dispersidad fue tema de la Neurociencia Computacional para la codificación dispersa en sistemas visuales. Una representación dispersa proviene de una representación distribuida de información, esto quiere decir que la información no está localizada en una neurona en particular sino que está distribuida en muchas neuronas. Solo entre 1 % a 4 % de las neuronas son activadas juntas al mismo tiempo, según los estudios de [Attwell and Laughlin, 2001] sobre materia gris del cerebro. En los métodos de aprendizaje de máquina la representación dispersa se consigue con una buena generalización [Bengio and Delalleau, 2011], esto quiere decir que el algoritmo de aprendizaje debe ser capaz de generalizar para nuevos casos a partir de los ejemplos de entrenamiento, aunque ya se ha desmostrado que no hay procedimientos de aprendizaje universal, pero si hay una distribución objetivo en cada algoritmo de aprendizaje. Es ası́ que todos los principios de generalización explotan alguna propiedad de la distribución objetivo, la más acudida es la generalización local. La generalización depende de la función aprendida después del entrenamiento, mientras más variante sea la función entonces habrá menos generalización, porque si la función es altamente variable entonces muchas regiones han sido necesarias en el espacio del conjunto de datos, y cada región ha de exigir diferentes parámetros personalizados, [Bengio et al., 2007]. Un algoritmo de aprendizaje puede ser visto como un procedimiento que mapea un conjunto de datos (muestras) a una función (una función de decisión), puesto que el conjunto de datos es una variable aleatoria entonces estos son dibujados en una distribución objetivo a partir del cual se busca inferir una buena función de decisión, la más apropiada para alcanzar la mayor.
(32) generalización. Los algoritmos tradicionales de ML no alcanzan la generalización esperada. Las limitaciones para alcanzar la generalización local pueden ser evitadas usando una arquitectura de aprendizaje profundo en una representación distribuida [Bengio et al., 2009], que consiga aprender caracterı́sticas afectadas por los factores externos de variación de los datos de entrada, esto se consigue con las abstracciones de alto nivel que las arquitecturas profundas poseen en las últimas capas. [Bengio and Delalleau, 2011] afirma que las funciones complejas que se requieren para representar las abstracciones de alto nivel pueden ser aprendidas por las arquitecturas profundas, y esto a sido demostrado en recientes trabajos experimentales, incluyendo trabajos del área de Visión Computacional, tales como[Wang et al., 2014], [He et al., 2015b], [Li et al., 2015], [Cai et al., 2015] y [Hu et al., 2017]. El aprendizaje profundo es un tipo de aprendizaje de representación que a su vez es un tipo de aprendizaje de máquina, según el diagrama de Venn de [Goodfellow et al., 2016] que se aprecia en la figura 4.1, donde se puede ver la relación entre estas disciplinas.. Fig. 4.1: Diagrama de [Goodfellow et al., 2016].. Venn. mostrando. algunas. disciplinas. de. la. Inteligencia. Artificial,. 4.2. Aprendizaje de Máquina El proceso de aprendizaje por un computador consiste en generar una representación de información que sea adecuada para lograr un objetivo, [Anzai, 2012], esta representación se consigue a través de patrones que pueden ser en función a las intensidades de los pı́xeles de la imagen o en función a un grafo. En el campo de Visión Computacional el aprendizaje de máquina puede 20.
(33) ser usado para construir un detector que escanea la imagen entera hasta encontrar un patrón de intensidades que sea consistente con el objeto destino, [Viola et al., 2003]. La carga de datos, la coherencia espacial y la gran variedad de apariencias hace que Visión Computacional sea un reto para el enfoque de aprendizaje de máquina, lo señala [Sebe, 2005], acotando que para esto se requiere entender el dominio de aplicación, la abstracción del problema de aprendizaje, y la selección de representaciones apropiadas para entidades aprendibles(learnable) y aprendidas(learned). Los componentes escenciales de un modelo de aprendizaje según [Bengio et al., 2007] son: la representación de los datos, la arquitectura de la máquina, y la función de costo. Dichos componentes se pueden observar en modelos de aprendizaje como SVM, Redes Neuronales o Cascada de Haar.. 4.2.1. Caracterı́sticas Haar Una caracterı́stica Haar propuestas por [Viola and Jones, 2001] se pude definir como una caracterı́stica obtenida a través de una plantilla de pı́xeles Haar o simplemente plantilla Haar, de tamaño y orientación variables, dividida en regiones rectangulares, algunas de estas variaciones se pueden ver en la figura 4.2. Cada plantilla Haar contiene dos tipos de regiones: región positiva y región negativa, también denominadas región blanca y región gris respectivamente. Su ventaja es que permite detectar la estructura de los objetos aunque esta no sea uniforme.. Fig. 4.2: Un conjunto de plantillas para la extracción de caracterı́sticas Haar.. La plantilla Haar se desplaza sobre la imagen evaluando, por una parte, la suma de los pixeles que se caen sobre las regiones positivas y, por otra parte, la suma de los pixeles que caen sobre las regiones negativas. La diferencia, la suma de todas las regiones positivas y la suma de todas las regiones negativas, será lo que se denomine el valor de la caracterı́stica. De esta manera el valor de una caracterı́stica Haar en un punto (x, y) se puede representar como H(x, y) y se define con la ecuación 4.1:. H(x, y) =. X. I(x, y) −. p. X. I(x, y). (4.1). n. donde I(x, y) representa la imagen a evaluar, la variable p y la variable n representan respectivamente las regiones positivas y negativas de la caracterı́stica Haar sobre la imagen. Mediante esta operación se obtendrá un mapa con los valores de la caracterı́stica en cada posición de la imagen de detección.. 21.
(34) 4.2.2. Clasificador en cascada El principio para detectar objetos, descrito por [Viola and Jones, 2001], surge de las propiedades de las plantillas Haar. Como ya se explicó, cada tipo de plantilla Haar está diseñado para extraer un determinado rasgo del objeto, pero en el proceso de detección con un solo rasgo no serı́a suficiente para distinguir el objeto. Y ¿por qué no combinar el efecto de varias plantillas Haar?, ası́ se recogerı́an varios rasgos del objeto y la detección serı́a mucho más sencilla. En base a esto, lo que plantean [Viola and Jones, 2001] es formar un clasificador fuerte a partir de la combinación de varios clasificadores débiles, y en cada clasificador débil se estarı́a usando un tipo de plantilla Haar, esto implica que la imagen es escaneada muchas veces para encontrar caracterı́sticas relevantes. Las caracterı́sticas obtenidas por cada plantilla que participa en el clasificador serán seleccionadas y ponderadas por el algoritmo de entrenamiento en base a las puntuaciones que hayan obtenido tras evaluar un set de muestras positivas (en las que aparece el objeto) y negativas (en las que no aparece el objeto). Para este clasificador, el funcionamiento del detector consistirı́a en ir evaluando ventanas de la imagen de un determinado tamaño, para distintas escalas de la propia imagen y para cada una de las plantillas Haar del clasificador. Si el clasificador determina que las caracterı́sticas encontradas en la ventana son las del objeto a detectar, dicha ventana se clasificará como positiva, si no, se clasificará como negativa; hasta evaluar todo el conjunto de ventanas de la imagen.. Fig. 4.3: Esquema de funcionamiento del detector de objetos con un único clasificador fuerte [Viola and Jones, 2001].. Tras los ensayos realizados, Viola & Jones se dieron cuenta que esta manera de detectar objetos era poco eficiente. Comprobaron que el tiempo de cómputo del detector, en su mayorı́a, se invertı́a en evaluar ventanas de la imagen donde no se encuentra el objeto. Esto es debido a que comúnmente el espacio de la imagen que representa el fondo es bastante mayor que él del objeto. Si a esto se suma la cantidad de ventanas que puede contener el fondo, sumando también el hecho de que las ventanas se evalúan para distintas escalas de la imagen y, que para cada una de ellas se aplican los distintos tipos de plantillas Haar del clasificador; definitivamente el tiempo que se está perdiendo en clasificar el fondo puede ser significante.. 22.
(35) 4.2.3. Clasificadores en cascada con caracterı́sticas Haar En busca de mejorar el rendimiento en la detección, reduciendo el tiempo de cómputo, Viola & Jones proponen una alternativa, consiste en combinar clasificadores fuertes en una estructura en cascada o árbol jerárquico al que denomina clasificador en cascada. La idea surge debido a que dentro de una imagen es más fácil y rápido determinar donde no se encuentra el objeto buscado que donde sı́ lo hace. Con este razonamiento, el clasificador en cascada está formado por clasificadores fuertes dispuestos uno detrás de otro formando etapas, de tal manera que cada etapa es más compleja que la anterior. El propósito es que las primeras etapas se destinen a rechazar las ventanas de la imagen correspondientes al fondo y las últimas etapas se encarguen de evaluar las ventanas donde posiblemente esté el objeto. Por tanto, con este clasificador se consigue ahorrar el tiempo que se requerirı́a en evaluar las ventanas del fondo en un único clasificador complejo. Ahora, esta tarea la realizan las primeras etapas del clasificador en cascada, formadas por clasificadores muy simples y por tanto rápidos de aplicar. En cuanto al funcionamiento del clasificador, será el mismo que el explicado en el planteamiento inicial. La diferencia reside que en cada etapa se deciden las ventanas que pasan a la siguiente y cuáles se rechazan directamente. Para que una ventana pueda considerarse como positiva deberá pasar todas las etapas del clasificador en cascada.. Fig. 4.4: Esquema de funcionamiento del detector de objetos con un clasificador en cascada [Viola and Jones, 2001].. Finalmente Viola & Jones llegaron a la conclusión de que éste era el mejor diseño de clasificador entre los dos propuestos anteriormente. En las pruebas realizadas, la estructura en cascada resultó ser en promedio mucho más rápido que el basado en un único clasificador fuerte, manteniendo aún ası́ la tasa de aciertos. La cascada de caracterı́sticas Haar ha conseguido grandes resultados en la tarea de detección de objetos, Tang2015.. 23.
(36) 4.3. Arquitecturas de aprendizaje profundo Las arquitecturas de aprendizaje profundo son composiciones de muchas capas de componentes no-lineales adaptativos, es decir, cascadas de módulos no-lineales parametrizables que contienen parámetros entrenables en todos los niveles, [Bengio et al., 2007]. Las más conocidas son: las Redes de creencia profunda o Deep Belief Network, Máquina de Boltzman o Boltzman Machine y los AutoCodificadores o Auto-Encoders, estos son del tipo de modelos no supervisados, las redes neuronales convolucionales o Convolutional Neural Networks entran al tipo de modelos supervisados. Todas ellas se basan en una arquitectura jerárquica que contiene múltiples niveles de abstracción, transformación y representación, partiendo de caracterı́sticas de bajo nivel hasta alcanzar el aprendizaje de caracterı́sticas de alto nivel, en un contexto de clasificación de imágenes este enfoque permite capturar y dar sentido a la información de la imagen. Las redes neuronales convolucionales (CNN) están inspiradas en las redes neuronales y estas a su vez están inspiradas en la interacción compleja entre neuronas biológicas, donde participan las dendritas, los axones y su sinapsis [Zeiler and Fergus, 2014]. La profundidad que las caracteriza es la longitud existente entre un nodo de entrada y un nodo de salida [Bengio and Delalleau, 2011].. 4.4. Red neuronal convolucional (CNN) La elección de la profundidad en las CNN es crucial para un alto ı́ndice de reconocimiento de imágenes, una arquitectura con insuficiente profundidad puede requerir más elementos computacionales que aquellas arquitecturas cuya profundidad es ajustada a la tarea, [Bengio et al., 2009]. Ası́ también, para tareas de clasificación binaria se suprime la atención en el aumento de capas, concentrándose en hacerla profunda, es decir, en procesar detalle a detalle de manera jerárquica, aprendiendo caracterı́sticas cada vez más complejas. En la figura 4.5 se observa que en la primera capa se debe aprender a detectar bordes, la segunda debe aprender a descomponer los bordes en esquinas, la siguiente capa aprende texturas, y de esta manera la red aprende caracterı́sticas más abstractas que ayuden a lograr una mejor generalización.. Fig. 4.5: Descomposición jerárquica de una imagen con una arquitectura de aprendizaje profundo, [Lee et al., 2011].. 4.5. Arquitectura de una CNN Existen variedad de arquitecturas para construir una CNN, cada una aplicada a diversos casos de estudio. AlexNet [Krizhevsky et al., 2012] es la arequitectura que consta de 60 millones de 24.
(37) parámetros, originalmente entrenada para clasificar 1.2 millones de imágenes pertenecientes a 10 clases, GogleNet [Szegedy et al., 2015] consta de 22 capas y reduce la cantidad de parámetros a 40 millones y también fue diseñada para una clasificación a gran escala. Una de las primeras aplicaciones existosas de redes neuronales convolucionales fue desarrollada por Yann LeCun en 1998 [LeCun et al., 1998], se trata de LeNet-5, y fue utilizada para reconocer dı́gitos, letras, códigos comprimidos, entre otros. La CNN se constituye de 2 partes que se ejecutan en un solo paso, estas partes son: 1) Extractor automático de caracterı́sticas multiestado. Cada estado consta de una capa convolucional y otra de submuestreo, 2) Un clasificador, que es una red neuronal completamente conectada sin capas ocultas. A pesar de las numerosas arquitecturas de una CNN los componentes básicos permanecen en cada una de ellas. Una CNN tı́picamente consiste de tres tipos de capas, la capa convolucional, la capa de submuestreo y la capa completamente conectada. En la figura 4.6 se muestran los componentes básicos de la arquitectura LeNet-5 propuesta por [LeCun et al., 1998].. Fig. 4.6: Arquitectura LeNet-5 propuesta para la detección de dı́gitos y letras [LeCun et al., 1998].. 4.5.1. Convolución El objetivo de una capa convolucional es aprender la representación de caracterı́sticas. Cada neurona se encarga de una submuestra de imagen (mapa de caracterı́sticas), que al inicio será la imagen de entrada completa. La convolución se realiza entre cada mapa de caracterı́sticas y un kernel que contiene valores aprendidos (pesos), la representación gráfica se puede observar en la figura 6.4. Matemáticamente la convolución es una operación entre dos funciones f y h, que produce una tercera función que es la versión modificada de f en la función h, [Apple Inc., 2016]. Siendo f una secuencia de vectores 1D y h un filtro lineal que calcula cada nuevo elemento de la salida como la suma ponderada de los elementos vecinos de cada elemento procesado de la secuencia. La P convolución se define como g(i, j) = k,l f (i − k, j − l) h(k, l), donde g es salida de la convolución y cada nuevo elemento es (i, j), la altura del filtro es k y su anchura es l.. 4.5.2. Submuestreo En la capa de submuestreo o también denominada capa de pooling se consigue la invarianza espacial para reducir la resolución de los mapas de caracterı́sticas (matemáticamente la función f), 25.
Figure
+7
Documento similar