Fig. 1: Ejemplo de
transformación log-polar
Fig. 2: Procesador gráfico y
tarjeta GPU Tesla (Nvidia)
El modelo de imágenes
log-polares [
1], que se
inspira en la visión humana (Fig. 1),
se utiliza en algunos problemas de
visión por computador, pues ofrece
algunas ventajas, tales como
importantes reducciones del tiempo de
procesamiento,
lo que resulta muy interesante en aplicaciones de tiempo
real.
Aunque hay varias formas de
obtener este tipo de imágenes, la solución
más común, por su bajo
coste económico, su sencillez y su flexibilidad,
es utilizar rutinas
software para
transformar imágenes
convencionales (cartesianas) en imágenes
log-polares. Sin embargo, un
inconveniente asociado a esta solución es
el tiempo de conversión
que, en ciertos contextos, podría ser excesivo.
Una posible forma de reducir este tiempo de conversión
pasaría por
utilizar
procesadores gráficos (Fig. 2), comunmente conocidos como GPUs (
Graphical Processing Units). De
este modo se mantendría
la
flexibilidad que ofrece la implementación por
software, al tiempo que
se podría explotar la
ganancia de velocidad que las GPUs están
permitiendo en múltiples
aplicaciones, no sólo en informática gráfica
sino también en visión
por computador y otros ámbitos de aplicación [
2].
Los procesadores gráficos de última generación se
han transformado en una solución de bajo coste y elevado
rendimiento para computación de propósito general (GPGPU,
General Purpose Computation on GPUs). A su arquitectura
"manycore", con cientos de núcleos de computación,
se unen nuevas APIs de propósito general como CUDA [
3], que posibilitan al programador la
adaptación de sus códigos ya desarrollados sobre la CPU
de forma sencilla, abstrayéndole de la arquitectura
gráfica subyacente.
Resumen
En el proyecto se abordaría el diseño y la
implementación de alguna
solución
que permita realizar la transformación log-polar desde
imágenes
cartesianas. Entre otros aspectos de
interés, se analizará la ganancia
de velocidad que ofrecen diferentes
estrategias para varias
situaciones
prácticas, y los beneficios que ciertas técnicas comunes
de optimización pueden suponer para el problema tratado.
Palabras clave
Procesamiento de imágenes;
visión por computador; computación de altas
prestaciones; GPUs.
Referencias
[1] Log-polar mapping made easy /
HTML
[2] J. D. Owens et al. A Survey of General-Purpose
Computation on Graphics Hardware, Computer Graphics Forum,
26(1):80-113, 2007 /
PDF
[3] CUDA (
Compute Unified Device Architecture)
/
wikipedia
Directores
Recursos
- El proyecto se desarrollará en C/C++, usando OpenCL como
lenguaje para programar las GPUs.
- Se partirá de una implementación en C++ de la
transformación log-polar para CPUs.
- Se proporcionará acceso a las máquinas del grupo
con GPUs de última generación (series G80, GT200 y Tesla).
Observaciones
- Se puede plantear el proyecto para un@ o dos estudiantes.
- No son necesarios conocimientos previos, pero es recomendable
tener ideas de programación paralela, programación en
C/C++ y, en menor medida, de tratamiento de imágenes o
visión por computador.
- Posibilidades de publicación del trabajo desarrollado.
- Nvidia ha concedido el premio Nvidia
Professor Partnership Award al grupo de computación
y arquitectura de altas prestaciones de la UJI