Resumen:
|
Consulta en la Biblioteca ETSI Industriales (Riunet)
[ES] Las imágenes hiperespectrales en la industria alimentaria tienen el potencial de convertirse en uno de los métodos de inspección más importantes para el control de calidad de los productos alimenticios debido a su ...[+]
[ES] Las imágenes hiperespectrales en la industria alimentaria tienen el potencial de convertirse en uno de los métodos de inspección más importantes para el control de calidad de los productos alimenticios debido a su flexibilidad y sencillez de automatización. Aplicaciones tales como el mapeo de composición, la clasificación de los productos en categorías de calidad o la detección de cuerpos extraños podrían ser implementadas con éxito a través del uso de estos sistemas.
Sin embargo, debido a la enorme cantidad de datos generados por los sistemas de imágenes hiperespectrales, y las altas tasas de producción requeridas en estas industrias, a veces una simple CPU no es capaz de procesar los datos hiperespectrales a la velocidad especificada, especialmente cuando diferentes tipos de algoritmos (pre-procesamiento de los espectros, clasificación o algoritmos de predicción) son necesarios para realizar la tarea deseada. Por esa razón, el uso de elementos de procesamiento adicionales, para ayudar a la CPU del ordenador para realizar estas operaciones, se está convirtiendo en la forma más común de satisfacer esta necesidad. Entre ellos, las GPGPUs (Unidades de Procesamiento Gráfico Propósito General) son las más adecuadas para muchas aplicaciones, debido a su potencial para aprovechar las ventajas de la programación paralela.
En este proyecto final de carrera, se ha analizado el factor de aceleración obtenido usando diferentes GPGPUs aplicadas a un algoritmo de clasificación en imágenes hiperespectrales.
En primer lugar, tres muestras de lomo de cerdo con cuerpos extraños se procesaron con una cámara de imágenes espectrales NIR, y dos modelos de clasificación con diferentes algoritmos de preprocesamiento para los espectros fueron creados con el fin de determinar la categoría de cada píxel de las imágenes. Entonces, la combinación del preprocesamiento y algoritmos de clasificación se aplicó a las imágenes de lomo con dos CPUs diferentes y dos GPUs diferentes, con el fin de comparar el tiempo requerido en cada sistema para ejecutar esas operaciones.En cuanto a las GPUs, se eleccionaron dos dispositivos distintos del fabricante NVIDIA, concretamente, la GTX 260 y la GTX 560 Ti. La GTX 260 son 24 multiprocesadores GPU, con un total de 192 núcleos, mientras que la GTX 560 Ti, tiene 48 multiprocesadores GPU, con una cantidad total de 384 núcleos.
Ambos dispositivos fueron programados con una versión paralela del algoritmo secuencial implementado anteriormente en CPUs estándar. Este algoritmo paralelo se desarrolló usando CUDA, una extensión de C y C + + para los dispositivos de múltiples núcleos. CUDA ha sido desarrollado por la propia NVIDIA, específicamente para hacer frente a sus propios dispositivos. Este lenguaje es más específico que otras soluciones de programación de múltiples núcleos, por otro lado, se aprovecha al máximo todos los recursos de hardware de estos dispositivos.
El resultado de esta modificación es un aumento de la ejecución. La versión paralela del algoritmo presenta un factor de aceleración de alrededor de 2.000 con respecto a la versión secuencial. El uso de las nuevas generaciones de GPUs permite aumentar esta aceleración incluso más.
[-]
|