Implementation and Analysis of Real Time Optical Flow Solutions for GPU architectures

Soto Morras, Marta (2017). Implementation and Analysis of Real Time Optical Flow Solutions for GPU architectures. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Descripción

Título: Implementation and Analysis of Real Time Optical Flow Solutions for GPU architectures
Autor/es:
  • Soto Morras, Marta
Director/es:
  • Mira McWilliams, José Manuel
Tipo de Documento: Proyecto Fin de Carrera/Grado
Grado: Grado en Ingeniería en Tecnologías Industriales
Fecha: 2017
Materias:
Palabras Clave Informales: Computer Vision, Optical Flow, Central Processing Unit (CPU), Graphic Processing Unit (GPU), procesamiento de imágenes, convolución de imágenes, kernel, Minimal Squared Error (MSE)
Escuela: E.T.S.I. Industriales (UPM)
Departamento: Ingeniería de Organización, Administración de Empresas y Estadística
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (3MB) | Vista Previa

Resumen

La Visión Artificial o Computer Vision es la disciplina científica que estudia métodos para analizar imágenes y videos digitales. El campo de investigación correspondiente ofrece un creciente abanico de posibilidades en áreas como interacción persona-computadora, normalmente llamado HCI (Human Computer Interaction), inteligencia artificial y el estudio visual detallado de procesos de mayor complejidad. Librerías existentes como OpenCV o Emgu CV ofrecen el acceso a una cantidad considerable de soluciones enfocadas a la segmentación de imágenes, reconocimiento de objetos o análisis del movimiento en dos o más fotogramas consecutivos. Sin embargo, múltiples algoritmos pertenecientes a estas librerías demandan un elevado poder computacional, estando a su vez desarrollados en su gran mayoría para su implementación en la CPU, procesador cuya arquitectura no ofrece la solución más eficiente para este tipo de procedimientos. Por lo tanto, la particular estructura de este hardware es responsable de generar cuellos de botella innecesarios, al ocupar espacio innecesario en la memoria y reducir la cantidad de datos que pueden ser analizados. Este trabajo de fin de grado (TFG) propone la implementación de una serie de algoritmos para obtener el flujo óptico (Optical Flow) de una secuencia de imágenes con el propósito de analizar y discutir los beneficios del procesamiento en paralelo para el procesamiento de imágenes. Optical Flow es un procedimiento destinado a obtener el campo de velocidades de una serie de imágenes analizando el movimiento entre distintos fotogramas de la misma. Estabilizadores de imagen, posicionamiento de drones o la monitorización de líneas de ensamblaje son algunas de sus aplicaciones. Con el fin de ilustrar la contribución de nuestro estudio, en este TFG presentamos nuestros códigos desarrollados para la obtención del Optical Flow según dos de sus principales métodos para su implementación en la GPU, así mismo, realizaremos un estudio y comparación de estas soluciones con las desarrolladas para su ejecución en la CPU. Este trabajo de fin de grado se centra en el estudio de dos de los métodos de obtención del flujo óptico más generalizados. El primero se basa en la publicación científica de Horn y Schunck, mientras que el segundo método que se estudia se basa en la solución propuesta por Lucas y Kanade. Nuestras implementaciones del código para la ejecución en la CPU están escritas en C++, mientras que los algoritmos destinados a la implementación en GPU se presentan en lenguaje HLSL. Ambos métodos parten de la asunción de la constancia del valor gris de la imagen, la cual requiere un movimiento lento de los elementos entre dos fotogramas consecutivos, y representa el punto de partida para las soluciones que se describen a continuación. Los algoritmos presentados por los científicos Horn y Schunck representan una de las primeras soluciones para la obtención del flujo óptico y han sido utilizados para múltiples aplicaciones y análisis de modelos. Este método basa sus resultados en una técnica diferencial, que incluye una restricción que asume un flujo de movimiento suave en la imagen completa. La predicción del campo de velocidades se genera mediante dos pasos. El primer paso obtiene una estimación de las derivadas espacio temporales de las imágenes que se analizan, detectando los bordes de los elementos presentes en las capturas y las diferencias en sus posiciones a lo largo del tiempo. El segundo paso obtiene un valor para la velocidad en x, y de cada pixel a través de un método iterativo que tiende a minimizar el error de la predicción final. El método propuesto por los científicos Lucas y Kanade muestra una solución para la predicción del flujo óptico local en una serie de imágenes, que se basa en el cálculo de las derivadas en x, y respecto de un incremento de tiempo, que representa el intervalo temporal entre la recepción de fotogramas. Tras la obtención de las derivadas espacio temporales, el método asume una constancia en el flujo de velocidades que, siguiendo la técnica de los mínimos cuadrados, ofrece una estimación de las componentes de la velocidad para cada píxel en la imagen. El desarrollo de los métodos definidos para su implementación en la CPU y en la GPU nos permite evaluar el rendimiento de los algoritmos en ambos procesadores. Considerando distintas resoluciones de las imágenes entrantes, las cuales proporcionan diferentes niveles de detalle, el tiempo de procesamiento que se requiere para alcanzar una predicción del campo de velocidades presenta diferencias significativas. La aceleración de la solución en la GPU con respecto a la implementación de la CPU, hace posible el uso de la potencia computacional restante de la GPU. Por lo tanto, el incremento en la eficiencia del proceso en este procesador permite realizar modificaciones sobre factores internos y externos en la obtención del flujo óptico, procesando un número más elevado de datos e incrementando la precisión de la estimación. Con el objetivo de evaluar la mejora en la calidad de nuestros resultados, se ha desarrollado un simulador que genera el movimiento de un elemento en la imagen y proporciona su correspondiente campo de velocidades, las cuales darán un valor real del flujo óptico esperado. Evaluando el MSE (Minimal Squared Error) entre los valores reales del flujo óptico y la estimación obtenida mediante nuestros algoritmos, se observa una disminución significativa del error entre el método original y el modificado. La necesidad de manejar grandes cantidades de datos, representados como pixeles, hace del tipo de estructura altamente paralela de las GPUs una arquitectura más eficiente que otras unidades de procesamiento. La mejora del rendimiento y la calidad de los métodos propuestos, representan una ventaja considerable para aplicaciones a tiempo real. Nuestra solución ofrece la evaluación del flujo óptico para cada pixel incluso en imágenes en alta resolución, proporcionando resultados que requieren tiempos de procesamiento lo suficientemente rápidos como para analizar imágenes procedentes de cámaras de alta velocidad y realizar el post procesamiento de las mismas una vez obtenidos los resultados. Por lo tanto, este método es capaz de reducir de forma eficiente las sobrecargas a nivel computacional y los cuellos de botella, reflejando un compromiso calidad-tiempo durante el proceso, lo cual supone una reducción de costes de hardware. Como consecuencia, la implicación del tipo de arquitectura paralela de la GPU podría reducir potencialmente costes en diversos campos, tales como machine vision, Human Computer Interaction o incluso acelerar la creciente corriente de miniaturización de aparatos electrónicos.

Más información

ID de Registro: 47692
Identificador DC: http://oa.upm.es/47692/
Identificador OAI: oai:oa.upm.es:47692
Depositado por: Biblioteca ETSI Industriales
Depositado el: 08 Sep 2017 15:02
Ultima Modificación: 08 Sep 2017 15:02
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM