UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE

Slides:



Advertisements
Presentaciones similares
CONCEPTO INGENIERÍA DE SOFTWARE  Analiza, diseña y desarrolla productos de sistemas software, proponiendo la plataforma tecnológica más apropiada. Domina.
Advertisements

Carrera de Ingeniería en Electrónica en Redes y Comunicación de Datos “DESARROLLO DE UN SISTEMA DE INFORMACIÓN INTERACTIVO BASADO EN WEB 3.0” GRETA CAROLINA.
UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN CARRERA: INGENIERÍA EN SISTEMAS E INFORMÁTICA “ESTUDIO DE LA NOTACIÓN.
«Título del Trabajo» Ingeniería [Civil] en Computación e Informática Nombre alumnos(s) Guía Empresa: Nombre (en caso de proyectos) Profesor Guía: Grado.
DIAZ BOGADO, DIEGO /2016 FERNANDEZ, RODOLFO /2016 PAZ, FRANCISCO /2016 ZAPATA, FLORENCIA /2016 TALLER DE UTILITARIOS.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
La Ingeniería de Sistemas
( Tecnología de la Información y las Comunicaciones)
Tema: Análisis de una red trocal multiservicio para encriptación de información sobre MPLS basada en el estándar IETF con el protocolo GETVPN Autor:
COMPUTACIÓN Y SOFTWARE DE APLICACIÓN
TECNOLOGÍAS DE LA INFORMACIÓN Y DE LA COMUNICACIÓN (TIC’S)
“Alternativa para procesamiento de datos oceanográficos que requieren gran capacidad de cómputo, por medio de programación en paralelo con el programa.
UNIDAD DE GESTIÓN DE POSTGRADOS
Elaborado por: Luis Erazo N.
“Los Sistemas Operativos”
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
SOFTWARE Se forma por el conjunto de instrucciones o programas. Los programa son una secuencia de órdenes que se le dan a la computadora para que haga.
Tema DISEÑO E IMPLANTACIÓN DE UNA SOLUCIÓN INFORMÁTICA INTEGRADA QUE APOYE AL DESARROLLO DEL PENSAMIENTO CRÍTICO EN LA CARRERA DE INGENIERÍA EN SISTEMAS.
U.T. 11: Introducción A Las Bases De Datos
INSTITUTO NACIONAL DE SAN ISIDRO (INSI) MUNICIPIO DE SAN ISIDRO, DEPARTAMENTO DE MORAZÁN. ASIGNATURA: INFORMATICA. TEMA: LA QUINTA GENERACION DE LAS COMPUTADORAS.
UNIDAD CENTRAL DE PROCESO CPU.
Hardware Software Sistema Informática Computadora Computación Datos.
Conceptos y definición básicos
Andrea D. Arroyo C. - Christina E. Bravo B.
Arquitecturas alternativas UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNICIONES ADMINISTRACION DE SERVIDORES.
El hardware y el software
EQUIPO No 3.
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
EDWIN SANTIAGO YACELGA MALDONADO SANGOLQUÍ – ECUADOR 2016
INSTITUTO NACIONAL SANTA LUCIA
UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE
Ciclo de Vida del SIA.
HARDWARE Y SOFTWARE Hardware Informática Software
1era. Unidad el computador y sus componentes
PROVEEDOR DATA WAREHOUSE TERADATA
Sistemas Operativos Ing. Jhonnathan Quintero V.
TECNOLOGIA.
Componentes Básicos del computador
JAVIER ANDRES MARTÀ MARTINEZ CODIGO 37772
INTRODUCCIÓN A JAVA.
SISTEMA NACIONAL DE NIVELACIÓN Y ADMISIÓN
Conceptos Relacionados Unidad I. Parte A.
TRABAJO ESPECAL DE GRADO
DEPARTAMENTO DE ELECTRICA Y ELECTRÓNICA
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
TIC TECNOLOGIAS DE LA INFORMACION Y LA COMUNICACION
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
Esquema para Organizar un Trabajo de Grado basado en un Diseño propio de la Investigación Documental Pagina de Titulo Pagina de Constancia de Aprobación.
Product Manager: Elesban Mendoza
22/11/2018 Sistema inteligente de tipo TLD (Track, Learn and Detect) para plataforma móvil de última generación: Implementación  y comparativa de su rendimiento.
UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE
ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL
FUNDAMENTOS DE PROGRAMACIÓN. INTRODUCCIÓN  Conceptos: Informática, Ordenador, Programa, Dato, Bit, Byte, Hardware, Software, Lenguaje de Programación,
Autor: Ing. Maritza Núñez Solís
Definición del Problema
PROFESOR: MARCELO ZAVALA V. INGENIERO CIVIL ELECTRÓNICO (16 años de experiencia profesional) DIPLOMADO EN GESTIÓN ACADEMICA
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
CON DETECCIÓN DE MOVIMIENTO USANDO IMÁGENES IMPLEMENTADO EN LABVIEW JORGE LEÓN JUAN SANCHEZ ESPOL 2010.
Características de los Sistemas Operativos
LOS SISTEMAS OPERATIVOS MENÚ SISTEMAS OPERATIVOS Introducción Definición Historia Funciones Tipos S.O. Algunos Existentes Conclusiones Referencias.
MODELO EN CASCADA Integrantes: Felipe Alemán Lester Blandón.
Definición del Problema
TRABAJO DE TITULACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE MAGÍSTER EN GERENCIA DE SISTEMAS TEMA: “DISEÑO DE UNA GUÍA CORPORATIVA PARA IMPLEMENTAR APLICACIONES.
Núcleo Lic. Gonzalo Pastor.
Plan de Sistemas de Información (PSI). Plan de Sistemas de Información (PSI) Descripción y Objetivos Tiene como objetivo la obtención de un marco de referencia.
SISTEMAS OPERATIVOS Estudiante: Rojas De la Cruz Jesus Manuel. Ciclo: VI. Turno: Noche.
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
Ing. Carlos García P. C.I UNIDAD EDUCATIVA “SALINAS INNOVA” P Identifique el contexto para el cual se Planifica un nuevo sistema ÁREA.
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
Transcripción de la presentación:

UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA CARRERA DE INGENIERÍA EN ELECTRÓNICA Y TELECOMUNICACIONES DETECCIÓN DE ROSTROS EN ESCENAS DE VIDEO UTILIZANDO HERRAMIENTAS GPU-CUDA. ANDRÉS ALBERTO CEVALLOS ROMERO SANGOLQUÍ, FEBRERO 2017

ÍNDICE Introducción Antecedentes Justificación Objetivos General Específicos Marco Teórico Procesamiento de Imágenes y vídeo Unidades de procesamiento Gráfico GPU CUDA Algoritmo Viola-Jones 3. Diseño e Implementación Diagrama de bloques Diseño de la Aplicación 4. Pruebas y Resultados Pruebas Operativas Toma de datos Resultados 5. Conclusiones y Recomendaciones 6. Trabajos Futuros

Antecedentes Antecedentes En el campo de visión por computadora se investiga diferentes métodos con el fin de adquirir, procesar, y analizar información de imágenes y video para que puedan ser tratados y reconocidos por una máquina, la cual utiliza herramientas para realizar reconocimiento de objetos, restauración de imágenes, reconstrucción de escenas de vídeo, detección de eventos, tecnologías que son utilizadas por diferentes áreas de investigación, como la inteligencia artificial, el control automático o robótica, la neurobiología, la óptica, entre otras; con la intención de mejorar aspectos de sus técnicasy optimizaciones.

Justificación Justificación El proceso de detección y reconocimiento de eventos, requiere que las escenas de video sean procesadas en tiempo real, motivo por el cual es necesario utilizar equipos de cómputo de alto rendimiento. Una alternativa tecnológica muy económica es la utilización de Unidades de Procesamiento Gráfico (GPU) con procesamiento en paralelo CUDA . La manera de aprovechar las diferentes herramientas computacionales para obtener mejores resultados, requiere un desarrollo tanto en software como en hardware, por tal motivo el estudio del funcionamiento de las tarjetas gráficas y su desarrollo por medio de su mecanismo de programación, la arquitectura CUDA, es la base para mejorar el rendimiento de programas especializados que requieran paralelismo y procesamiento en tiempo real.

Objetivo General Desarrollar una aplicación para la detección de rostros en escenas de video que integre MATLAB bajo un entorno CUDA de la tarjeta gráfica NVIDIA

Objetivos Específicos Analizar el estado del arte acerca del algoritmo Viola-Jones para la detección de rostros. Realizar el procesamiento de secuencias de vídeo utilizando herramientas computacionales de alto rendimiento. Analizar los datos adquiridos y realizar una comparación de tiempos de procesamiento obtenidos mediante herramientas tradicionales de la CPU y mediante el tratamiento en paralelo de la unidad de procesamiento gráfico. Evaluar el tiempo de procesamiento mediante la variación del número de núcleos de la arquitectura CUDA

CUDA (Compute Unified Device Architecture) Arquitectura de cálculo paralelo Desarrollado por NVIDIA diseñada conjuntamente a niveles de hardware y software Aprovechar la gran potencia computacional de la GPU Proporcionar un incremento en el rendimiento del sistema. Banda de 250 kbps 2,4 GHz y 250 kbps 915 MHz

Estructura CUDA HARDWARE SOFTWARE FIRMWARE

Hilos CUDA

Interacción MATLAB CUDA La utilización de MATLAB para el computo en la GPU permite acelerar aplicaciones y procesos. Matlab brinda la facilidad de tomar ventaja de la tecnología de computación GPU-CUDA sin la necesidad de aprender las complejidades de las arquitecturas GPU o bibliotecas de computación GPU de bajo nivel. Métodos de Interacción Funciones de matlab incorporadas para la GPU Interacción mediante funciones propias de Matlab gpuArray, gather Utilización del Parallel Computing Toolbox Utilización de CUDA Mex Files Realizando la llamada a la función correspondiente de CUDA

Parámetros Necesarios Tarjeta Gráfica Nvidia GPU Compute Capability

Algoritmo Viola-Jones Algoritmo de detección de rostros mediante tres aspectos fundamentales. Imagen Integral. Adaboost. Clasificadores. Descripción del algoritmoritmo

Subregiones de la Imagen integral Detección de rasgos

Clasificadores en cascada

Métodos y materiales Características cámara web

Características tarjeta Nvidia Geforce GTX 950M

Diagrama De Bloques de la Aplicación

Compatibilidad de programas Verificación de la versión toolkit CUDA instalada

Verificación de las especificaciones de la GPU desde Matlab

Detección de rostros Falsos Positivos

Pruebas con 7 rostros

Pruebas Operativas Comparación de tiempo de ejecución en multiplicación de matrices.

Tiempo de ejecución entre núcleos procesamiento de 200 frames.

Tiempo de ejecución entre núcleos procesamiento de 300 frames.

Tiempo de ejecución entre núcleos procesamiento de 300 frames.

Conclusiones y Recomendaciones Se muestra que la tarjeta gráfica Geforce GTX950M mediante su arquitectura CUDA y el uso de parámetros de medición como: la cantidad de información, efectividad de detección con diferente cantidad de frames y variando el número de muestras analizadas, es un recurso efectivo para el procesamiento de imágenes ya que mejora en el tiempo de ejecución de 1229,36 s a 605,86 s. Se observa que se puede obtener mejores resultados al utilizar todaslas capacidades disponibles de la GPU en comparación al procesador del computador. En el desarrollo del proyecto se llama a la ejecución de un kernel CUDA para utilizar el algoritmo y realizar el barrido de los pixeles en cada frame. En operaciones matriciales implementadas en la GPU el uso de las funciones de tipo gpuArray optimizaron el tiempo de ejecución desde la creación de elementos hasta el proceso operacional donde el uso conjunto de Matlab y CUDA forman una herramienta potencial en la utilización de aplicaciones multicore, al encontrar el mecanismo de interacción que mas convenga para la ejecución.

El algoritmo Viola Jones permite la detección de rostros con una tasa aceptable de muestras positivas, el procesamiento realizado en la GPU mejoró el rendimiento del algoritmo levemente al reducir la tasa de falsos positivos de 1,53 a 0,55 en comparación con el CPU, dichas pruebas fueron realizadas bajo las mismas características de posicionamiento facial frente a la cámara web en las escenas de vídeo. La adquisición de frames para el proceso de detección del algoritmo fue realizada de manera serial por el procesador y de forma paralela en la GPU programada en lenguaje C, a una tasa de 30 fps y analizados uno a uno en bloques establecidos de 200, 300, 500 y 1000 frames. Al combinar dichas plataformas permitió aprovechar las características más robustas de cada una, el tratamiento de imágenes y vídeo de Matlab y el trabajo multitarea o multiprocesamiento realizado por CUDA haciendo uso de sus núcleos, bloques e hilos.

Inicialmente se realizó el proyecto con un computador con características del procesador de 32 bits lo cual limita ciertas funciones de desarrollo de CUDA, como la utilización de herramientas NSIGHT para la visualización y análisis del comportamiento del código; de la misma manera no permitió la instalación de una versión de Matlab reciente en las cuales las características habilitadas para la GPU están más desarrolladas en cuanto al uso de funciones, comandos y distintos tipos de datos. El programa realizado es la base para la utilización de CUDA en la optimización de algoritmos de detección, ya que la velocidad de implementación es hasta 10 veces más rápida, un aspecto fundamental en el proceso de reconocimiento inteligente y visión por computadora. La compatibilidad que presenta CUDA con los diferentes ambientes de desarrollo y su relativa facilidad de implementación al presentar un lenguaje de programación disponible para estructuras C, C ++, Fortran y Phyton entre otros, permiten la utilización del IDE Visual Studio 2015 y el uso de librerías opencv que facilitan el manejo de herramientas de visión artificial y reconocimiento facial.

Recomendaciones Para obtener los datos correctamente, al comparar el tiempo de procesamiento, es importante tener en cuenta que las pruebas deben ser realizadas bajo las mismas características con respecto a los rostros que van a ser detectados por el algoritmo, estos deben estar en posición frontal a la cámara ya que de esta manera se puede evitar los falsos positivos y detecciones erróneas o nulas. Previo a la fase de desarrollo de la aplicación se deben verificar los requisitos para asegurar la compatibilidad entre programas, sistema operativo y diferentes drivers de la tarjeta NVIDIA. Verificar la capacidad computacional de la tarjeta Geforce según la versión utilizada de Matlab, se requiere una mínima de 1.3 para versiones hasta r2014a y en versiones superiores se debe utilizar 2.0 o más por razones de compatibilidad. Para aplicaciones de alta carga computacional se recomienda trabajar con una alta memoria RAM, para que el procesamiento de instrucciones y acceso a memoria se realice de una manera más rápida y no existan limitaciones de almacenamiento de datos y uso de memoria.

Trabajos Futuros Eliminación de falsos positivos del algoritmo así como la certeza de la existencia o no de un rostro, para esto se necesita el estudio en campos de aprendizaje de máquina, para el desarrollo e implementación Implementación de las GPU en el campo de la computación de alto rendimiento (HPC), el cual se sustenta en el desarrollo de problemas computacionales mediante clusters, los cuales combinan rendimiento, disponibilidad y escalabilidad. El equipamiento de clusters con GPU permitiría la optimización de cálculos mediante la computación de propósito general en unidades de procesamiento gráfico GPGPU. El campo de la vídeo vigilancia tiene distintos propósitos entre los cuales la detección de rostros y objetos son de los más relevantes, para lo cual se plantea la utilización de la tecnología de Face Tracking y Pattern Recognition los cuales con la ayuda de la arquitectura CUDA mejorarían el tiempo de procesamiento de este tipo de algoritmos y sus relacionados.

GRACIAS POR SU ATENCIÓN