Post on 06-Feb-2015
1
Procesamiento Frecuencial sobre GPU en CUDA para la Segmentación Bio-Inspirada de
Imágenes en Color
Autor: Mario Enrique Casado García
Tutores: Mario Martínez Zarzuela
Francisco Javier Díaz Pernas
UNIVERSIDAD DE VALLADOLID
Proyecto Fin de CarreraIngeniero Técnico de
TelecomunicaciónSistemas de Telecomunicación
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE
TELECOMUNICACIÓN
28 de julio del 2010
2
ÍndiceIntroducciónModelo de Segmentación de ImágenesGPU ComputingProcesamiento Frecuencial de ImágenesProcesamiento Frecuencial sobre GPU en
CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Pruebas y ResultadosConclusiones y Líneas Futuras
3
IntroducciónMotivación y objetivos del PFC:
◦Ejecución sobre arquitecturas heterogéneas del modelo de segmentación propuesto: C for CUDA
◦Procesamiento en el dominio transformado de la frecuencia (Transformada Rápida de Fourier)
◦Conseguir ejecutar el modelo lo más rápido y preciso posible
Disminución del tiempo de procesamiento
4
Introducción Lenguajes de programación utilizados:
◦ C Programa escrito en C◦ C++ Organización del código en clases y métodos◦ C for CUDA 2.3 Ejecuciones en GPU◦ HTML Página web para el visualizado de los resultados
obtenidos◦ CSS Estilo de la página web◦ Batch Automatización de ejecuciones mediante archivo de
procesamiento por lotes
Librerías utilizadas:
◦ CUFFT 2.3 Transformaciones entre dominio duales; temporal y frecuencial
◦ OpenCV 2.0 Tratamiento de imágenes (cargar, salvar, …)
5
ÍndiceIntroducciónModelo de Segmentación de ImágenesGPU ComputingProcesamientoFrecuencial de ImágenesProcesamiento Frecuencial sobre GPU en
CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Pruebas y ResultadosConclusiones y Líneas Futuras
6
Modelo de Segmentación de Imágenes
Modelo de segmentación propuesto:
o COS: Células tipo 1 Células tipo 2
o CSS:• BCS Color
Células simplesCélulas complejasCompeticiónCooperación
• FCS Color:CDOC
X DifusiónX Fusión de escalas
7
Modelo de Segmentación de Imágenes
Etapas:
Células tipo 1 Convoluciones separablesCélulas tipo 2 Convoluciones separablesCélulas simples Convoluciones bidimensionalesCélulas complejas Operaciones sobre células simplesCompetición Convoluciones bidimensionalesCooperación Convoluciones bidimensionalesCDOC Convoluciones separables
g gijk ijkg
ijk g gijk ijk
BE CIK
A E I
8
ÍndiceIntroducciónModelo de Segmentación de ImágenesGPU ComputingProcesamiento Frecuencial de ImágenesProcesamiento Frecuencial sobre GPU en
CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Pruebas y ResultadosConclusiones y Líneas Futuras
9
¿Qué tiene que cumplir el algoritmo?:
◦Maximizar el paralelismo
◦Poseer elevada intensidad aritmética
◦Minimizar las transferencias CPU/GPU
◦Aprovechar anchos de banda y memoria de la GPU
GPU ComputingMotivación:
10
GPU ComputingComparativa:GPU:Ejecución:
11
ÍndiceIntroducciónModelo de Segmentación de ImágenesGPU ComputingProcesamiento Frecuencial de ImágenesProcesamiento Frecuencial sobre GPU en
CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Pruebas y ResultadosConclusiones y Líneas Futuras
12
Procesamiento Frecuencial de Imágenes
Introducción:
Imagen Original
Colores primarios
Colores secundarios
13
Procesamiento Frecuencial de Imágenes
Dominio de la frecuencia:
Dominio temporal
Dominio frecuencial
FFT
IFFT
Parte Real
Parte Imaginaria
2 2logC u v
GPU CUFFT
14
ÍndiceIntroducciónModelo de Segmentación de ImágenesGPU ComputingProcesamiento Frecuencial de ImágenesProcesamiento Frecuencial sobre GPU en
CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Pruebas y ResultadosConclusiones y Líneas Futuras
15256x256 480x320 800x600 1024x1024
0
2
4
6
8
10
12
Kernel 7x7Kernel 11x11Kernel 23x23Kernel 35x35
250x250 450x320 800x600 1000x6000
0.10.20.30.40.50.60.70.8
Kernel 7x7Kernel 11x11Kernel 23x23Kernel 35x35
Procesamiento Frecuencial sobre GPU en CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Benchmark de convoluciones sobre GPU:
◦ Implementación de convoluciones en el dominio transformado de la frecuencia
◦ Implementación de convoluciones separables en el dominio temporal
Multiplicación frecuencial
Menor computo por pixel
a(u,v) * b(u,v) A[n,m] x B[n,m]
n x m (multi.) n + m (multi.)
Píxeles
Píxeles
Mili
segundos
Mili
segundos
16
Células simples Bucle Coop./Comp.
Células simples: Gabor par 45º Cooperación: Right 90º O2
Bucle Coop./Comp.
Competición: Fcomp 0º
Procesamiento Frecuencial sobre GPU en CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Células tipo 1 Células tipo 2 CDOC
BYon BYon BYon
Células simples Células complejas Bucle Coop./Comp.
BY impar 45º Escala S Escala S
17
Procesamiento Frecuencial sobre GPU en CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Paralelización del modelo de segmentación propuesto:
Clases implementadas en el proyecto: Utilización del código:
18
Procesamiento Frecuencial sobre GPU en CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Automatización:
19
ÍndiceIntroducciónModelo de Segmentación de ImágenesGPU ComputingProcesamiento Frecuencial de ImágenesProcesamiento Frecuencial sobre GPU en
CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Pruebas y ResultadosConclusiones y Líneas Futuras
20
Pruebas y ResultadosEstructura del programaEjecución del programa…….
21
Pruebas y ResultadosTiempos:
*Con una relación de imagen de 512x256
Implementación realizada Autor Tiempo empleado
C [Antón Rodríguez-08] 2700000 ms por escala
Matlab [PFC de la UV] 180000 ms
OpenGL/Cg (GPGPU) [Martínez Zarzuela-09a] 2192 ms en 256x256
C for CUDA Actual PFC *1866,377441 ms
22
Pruebas y ResultadosGPU plofiling:
23
Pruebas y Resultados“La ejecución automatizada del modelo de
segmentación sobre las 100 imágenes de test de Berkeley ronda los 8 minutos, guardando todos los canales de todas las escalas a disco
duro ”
24
ÍndiceIntroducciónModelo de Segmentación de ImágenesGPU ComputingProcesamiento Frecuencial de ImágenesProcesamiento Frecuencial sobre GPU en
CUDA para la Segmentación Bio-Inspirada de Imágenes en Color
Pruebas y ResultadosConclusiones y Líneas Futuras
25
Conclusiones y Líneas Futuras Conclusiones:
◦ Buenos resultados de segmentación
◦ Tiempos de ejecución muy bajos
◦ Segmentación de grandes cantidades de imágenes en poco tiempo (Automatización)
◦ Dificultad en el manejo de datos en frecuencia
◦ Memoria GPU limitada
◦ Difícil optimizado de los parámetros del modelo
26
Conclusiones y Líneas FuturasLíneas futuras:
◦Interfaz gráfica
◦Librería NVIDIA CUDA CUFFT
◦Modelo de segmentación
◦Procesamiento en la GPU
•CUFFT Versión 3.0cufftPlanMany()
•Manejo de números reales
•Datos en double
27
Conclusiones y Líneas FuturasLíneas futuras:
◦Interfaz gráfica
◦Librería NVIDIA CUDA CUFFT
◦Modelo de segmentación
◦Procesamiento en la GPU
•Optimizado de los parámetros del modelo
•Todos lo cálculos en frecuencia
•Implementación de la etapa de difusión
28
Conclusiones y Líneas FuturasLíneas futuras:
◦Interfaz gráfica
◦Librería NVIDIA CUDA CUFFT
◦Modelo de segmentación
◦Procesamiento en la GPU
• Optimización y reutilización de memoria en la GPU
• Depurar y optimizar el código ejecutado en GPU
• Multi-GPU
29
Conclusiones y Líneas FuturasLíneas futuras:
◦Todo ello para conseguir una disminución del tiempo de ejecución
Segmentación de video en tiempo real o quasi-real
30
¡Gracias!¡Preguntas….!