UNIVERSIDAD DE VALLADOLID
ESCUELA TÉCNICA SUPERIOR DE
INGENIEROS DE
TELECOMUNICACIÓN
Proyecto Fin de Carrera
Ingeniero Técnico de Telecomunicación
Sistemas de Telecomunicación
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
28 de julio del 2010
Francisco Javier Díaz Pernas 1
Índice
Introducción
 Modelo de Segmentación de Imágenes
 GPU Computing
 Procesamiento Frecuencial de Imágenes
 Procesamiento Frecuencial sobre GPU en
CUDA para la Segmentación BioInspirada de Imágenes en Color
 Pruebas y Resultados
 Conclusiones y Líneas Futuras

2
Introducción

Motivación y objetivos del PFC:
◦ Ejecución sobre arquitecturas heterogéneas del
modelo de segmentación propuesto: C for CUDA
Disminución del tiempo de procesamiento
◦ 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
3
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, …)
4
Índice
Introducción
 Modelo de Segmentación de Imágenes
 GPU Computing
 ProcesamientoFrecuencial de Imágenes
 Procesamiento Frecuencial sobre GPU en
CUDA para la Segmentación BioInspirada de Imágenes en Color
 Pruebas y Resultados
 Conclusiones y Líneas Futuras

5
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 simples
Células complejas
Competición
Cooperación
• FCS Color:
CDOC
X Difusión
X Fusión de escalas
6
Modelo de Segmentación de Imágenes

Etapas:
K
g
ijk
 BE  CI

g
g
A

E

I

ijk
ijk
Células tipo 1  Convoluciones separables
Células tipo 2  Convoluciones separables
Células simples  Convoluciones bidimensionales
Células complejas  Operaciones sobre células simples
Competición  Convoluciones bidimensionales
Cooperación  Convoluciones bidimensionales
CDOC  Convoluciones separables
g
ijk
g
ijk



7

Índice
Introducción
 Modelo de Segmentación de Imágenes
 GPU Computing
 Procesamiento Frecuencial de Imágenes
 Procesamiento Frecuencial sobre GPU en
CUDA para la Segmentación BioInspirada de Imágenes en Color
 Pruebas y Resultados
 Conclusiones y Líneas Futuras

8
GPU Computing
 ¿Qué
tiene que
Motivación:
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
9
GPU Computing
Comparativa:
 GPU:
 Ejecución:

10
Índice
Introducción
 Modelo de Segmentación de Imágenes
 GPU Computing
 Procesamiento Frecuencial de Imágenes
 Procesamiento Frecuencial sobre GPU en
CUDA para la Segmentación BioInspirada de Imágenes en Color
 Pruebas y Resultados
 Conclusiones y Líneas Futuras

11
Procesamiento Frecuencial de
Imágenes

Introducción:
Imagen Original
Colores primarios
Colores secundarios
12
Procesamiento Frecuencial de
Imágenes

Dominio de la frecuencia:
GPU  CUFFT
Dominio temporal
FFT
C  log
u v
2
2
Dominio frecuencial
Parte Real
IFFT
Parte Imaginaria
13
Índice
Introducción
 Modelo de Segmentación de Imágenes
 GPU Computing
 Procesamiento Frecuencial de Imágenes
 Procesamiento Frecuencial sobre GPU en
CUDA para la Segmentación BioInspirada de Imágenes en Color
 Pruebas y Resultados
 Conclusiones y Líneas Futuras

14
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
0.8
Milisegundos
0.6
Kernel 7x7
0.4
Multiplicación
frecuencial
0.2
Kernel 11x11
a(u,v) * b(u,v)  A[n,m]
x B[n,m]
Kernel 23x23
Kernel 35x35
0
250x250
450x320
800x600
1000x600
Píxeles
◦ Implementación de convoluciones separables en el
dominio temporal
12
10
Milisegundos

Kernel 7x7
8
6
Menor
computo por pixel
4
11x11
n x m (multi.)  Kernel
n
+
m (multi.)
Kernel 23x23
2
Kernel 35x35
0
256x256
480x320
800x600
1024x1024
Píxeles
15
Procesamiento Frecuencial sobre GPU en CUDA para la
Segmentación Bio-Inspirada de Imágenes en Color
Células
Células
tipo 1simples
Células tipo 2 Bucle Coop./Comp.
CDOC
Células
BYon
simples: Gabor par 45º
BYon
Cooperación: RightBYon
90º O2
Células
Bucle
simples
Coop./Comp.Células complejas
BYCompetición:
impar 45º Fcomp 0º
Escala S
Bucle Coop./Comp.
Escala S
16
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:
17
Procesamiento Frecuencial sobre GPU en CUDA para la
Segmentación Bio-Inspirada de Imágenes en Color

Automatización:
18
Índice
Introducción
 Modelo de Segmentación de Imágenes
 GPU Computing
 Procesamiento Frecuencial de Imágenes
 Procesamiento Frecuencial sobre GPU en
CUDA para la Segmentación BioInspirada de Imágenes en Color
 Pruebas y Resultados
 Conclusiones y Líneas Futuras

19
Pruebas y Resultados
Estructura del programa
 Ejecución del programa…….

20
Pruebas y Resultados

Tiempos:
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
*Con una relación de imagen de 512x256
21
Pruebas y Resultados

GPU plofiling:
22
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 ”
23
Índice
Introducción
 Modelo de Segmentación de Imágenes
 GPU Computing
 Procesamiento Frecuencial de Imágenes
 Procesamiento Frecuencial sobre GPU en
CUDA para la Segmentación BioInspirada de Imágenes en Color
 Pruebas y Resultados
 Conclusiones y Líneas Futuras

24
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
25
Conclusiones y Líneas Futuras

Líneas futuras:
◦ InterfazVersión
gráfica 3.0cufftPlanMany()
•CUFFT
•Manejo
números
realesCUFFT
◦ Libreríade
NVIDIA
CUDA
•Datos en double
◦ Modelo de segmentación
◦ Procesamiento en la GPU
26
Conclusiones y Líneas Futuras

Líneas futuras:
◦ Interfaz gráfica
•Optimizado
de los parámetros del modelo
•Todos
lo NVIDIA
cálculos en
frecuencia
◦ Librería
CUDA
CUFFT
•Implementación de la etapa de difusión
◦ Modelo de segmentación
◦ Procesamiento en la GPU
27
Conclusiones y Líneas Futuras

Líneas futuras:
Interfaz gráfica
•◦ Optimización
y reutilización de memoria en la GPU
• Depurar y optimizar el código ejecutado en GPU
◦ Librería NVIDIA CUDA CUFFT
• Multi-GPU
◦ Modelo de segmentación
◦ Procesamiento en la GPU
28
Conclusiones y Líneas Futuras

Líneas futuras:
◦ Todo ello para conseguir una disminución del
tiempo de ejecución
Segmentación de video en tiempo real o quasi-real
29
¡Preguntas….!
¡Gracias!
30
Descargar

Procesamiento Frecuencial sobre GPU en CUDA para la