07 febrero 2010

Procesadores multi-núcleo en nuevas aplicaciones de visión artificial

Los procesadores multi-núcleo han llegado a ser comunes, y los vendedores de software de visión artificial están rediseñando sus productos, permitiendo a los clientes equilibrar la potencia de los multi-procesadores. Sin embargo, la tarea no es trivial ya que el programador debe optimizar la energía de las funciones de procesamiento de imágenes a través de múltiples procesadores. Mientras que el incremento esperado en el rendimiento del microprocesador puede predecirse en cierta medida a partir de la ley de Amdahl, el incremento de rendimiento total será limitado por cualquier parte secuencial del programa que no pueda optimizarse funcionando en paralelo. Típicamente hay dos formas de impulsar el rendimiento de una aplicación de visión de máquinas a nivel del sistema, que se denominan paralelización a nivel de tareas y paralelización a nivel de datos. La paralelización a nivel de tareas es más conveniente en programas con funcionalidad independiente que tienen dependencia de datos o recursos compartidos mínima – tales como los sistemas multi-cámara – mientras que la paralelización a nivel de datos es más conveniente para código que repite varias etapas secuenciales con dependencias de datos entre etapas. Debido a que las aplicaciones de procesado de imágenes tienden a ser serializadas (adquirir, filtrar, extraer, clasificar, salida de datos), la paralelización a nivel de datos es una estrategia popular para impulsar el rendimiento de los procesadores multi-núcleo. En muchos paquetes de software, el número de núcleos puede ser establecido por el integrador del sistema o dejado como una función del sistema de operación. En la paralelización a nivel de tareas, las imágenes se procesan en paralelo sobre una base toma-a-toma dividiendo los datos de la imagen entre los núcleos disponibles. Para hacer esto, el programador tiene que tener en cuenta las costuras entre estas regiones y el hecho de que su tratamiento más apropiado variará con el tipo de algoritmo. Veamos algunos ejemplos de nuevas funciones en la visión artificial actual: Otras funciones disponibles hoy en día son las operaciones lógicas (para enmascarar regiones de imágenes), con las cuales se elimina el ruido de imágenes. Para ello se usan pixels de una o más imágenes de entrada para calcular los valores pixel de una imagen de salida. También podemos mencionar entre las nuevas funciones los denominados filtros morfológicos, filtros de convolución lineales, y umbral dinámico, que opera moviendo una ventana a través de la imagen e entrada. La función de búsqueda de la ocurrencia de un modelo en una imagen es también común en visión artificial- .
Bibliografía: Down to the Core. OptoIQ. May 2009 Palabras clave: Task-level parallelization
Publicar un comentario en la entrada