Color based fruits classification using GPU

Color based fruits classification using GPU J. P. D’amato, C. García Bauza and G. Boroni Abstract— In fruit packaging companies, the color is a metri...
0 downloads 4 Views 652KB Size
Color based fruits classification using GPU J. P. D’amato, C. García Bauza and G. Boroni

Abstract— In fruit packaging companies, the color is a metric used to determine the fruit quality, maturation, healthiness, etc.. For apples, the color also indicates their class or variety (red delicious, granny smith, etc.). Nowadays the distinction between the different qualities of apples is based on empirical measures proposed by experts. In this paper a mechanical-digital system for capturing and classifying fruit by color in real time is presented. It’s supposed to be incorporated to an existent fruit transport line. The tracking algorithms were implemented using graphics cards, which allow processing a very large number of lines in a single commercial PC. The solution is able to emulate the human criterion in the fruits classification. Based on the images captured from the transport line, the system generates an output indicating the quality, which is used to distribute the fruit in different packages. Keywords — Image color analysis, Object detection, Parallel processing, Agriculture.

I. INTRODUCCIÓN

L

A CLASIFICACIÓN de frutas por color, en muchas empresas empaquetadoras es aún un proceso artesanal. La etapa de clasificación por color se realiza manualmente con mesas de trabajo, donde los operarios clasifican el fruto por la experiencia ad-hoc que ellos mismos han adquirido; ubicando las manzanas por su calidad en diferentes líneas. En Argentina, la mayoría de los sistemas existentes vinculados al proceso de clasificación de manzanas ubican depósitos circulares a lo largo de la cadena de transporte, en los cuales las manzanas son derivadas mediante un conjunto de bandejas móviles. Estos sistemas, que ya automatizan la clasificación según el peso del fruto, trabajan de manera digital de acuerdo a una tabla de salidas lógicas, permitiendo definir el depósito en el que deben caer las manzanas, dejándolas listas para ser empaquetadas. (Fig. 1). En estos procesos, la experiencia de los operarios es indispensable, donde la selección natural de la calidad radica en el color del fruto [1][2]. La necesidad de automatizar esta experiencia implica generar tablas de asociaciones entre colores y calidades, pero sería poco práctico si la generación de las tablas requiere analizar la totalidad de las manzanas. En El proyecto original fué financiado por la empresa José Sgrilletti SA y se desarrolló en conjunto con miembros del PLADEMA- UNCPBA. J. P. D’amato, Universidad Nacional del Centro de la Pcia. de Buenos Aires – CIC – CONICET, Tandil, Argentina, [email protected] C. G. Bauza, Universidad Nacional del Centro de la Pcia. de Buenos Aires – CIC – CONICET, Tandil, Argentina, [email protected] G. Boroni, Universidad Nacional del Centro de la Pcia. de Buenos Aires – CIC – CONICET, Tandil, Argentina, [email protected]

el trabajo de Fei-Fei [3] se propone un método que permite aplicar el conocimiento previo para la estimación de la distribución (calidades/colores) a partir del entrenamiento con 10 imágenes aproximadamente, y conservando un buen nivel de reconocimiento. Por otra parte, los sistemas de clasificación existentes utilizan bucles electrónicos y generalmente replican el hardware empleado cuando se requieren más líneas de empaques. Estos elementos añaden una complejidad y un costo considerable al sistema, donde la sincronización y la escalabilidad aparecen como los problemas potenciales para la implementación. En este trabajo se presenta una solución que implementa un método de reconocimiento del color de las frutas a partir del entrenamiento previo del sistema, junto con un mecanismo sincronización que mejora la velocidad de procesamiento mediante el uso de GPU. La incorporación de este sistema en una línea de transporte existente requirió agregar un nuevo módulo mecánico-digital que actúa de interface y que permitió combinar la salida con el sistema de clasificación por peso.

Figura 1. Esquema de vista en planta de una línea de transporte. A los costados se ubican los depósitos de frutos.

En la siguiente sección del trabajo se detallan las características físicas del prototipo desarrollado; luego se describe el algoritmo de clasificación y de sincronización propuesto y se muestran las ventajas obtenidas al utilizar la GPU como unidad de cálculo. II. LA GPU COMO UNIDAD DE PROCESAMIENTO Desde ya hace unos años, las placas gráficas (GPU) han

evolucionado dejando de ser simples procesadores lineales de triángulos a ser procesadores programables de uso genérico (también llamados GPGPU). Los primeros trabajos intentaban adaptar aplicaciones de propósito general usando bibliotecas gráficas como OpenGl o DirectX, ya que era la única forma de utilizar la capacidad de cálculo [4]. La potencia de este hardware se encuentra en su gran cantidad de hilos de procesamiento y en un manejo ordenado de memoria de alta velocidad, que aunque con una menor cantidad de instrucciones que una CPU convencional, igualmente permite solucionar una gran diversidad de problemas [5]. Hasta hoy, su mayor uso se encuentra en ámbitos científicos, pero se observa que podría ser de gran utilidad en medios industriales. III. EL SISTEMA DE ADQUISICIÓN DE IMÁGENES El prototipo mecánico construido emula un modelo a escala de una máquina industrial de varias líneas. Estas líneas se conforman de rodillos por los que se transporta la fruta, los cuales son controlados por dos motores independientes, uno de movimiento de rotación y otro de traslación. Sobre las líneas, se monta una caja con intensidad controlada de luz que encierra una o más cámaras de video. Dichas cámaras se colocan en soportes graduables que permiten ser configurados para testear distintas variantes en la adquisición de las imágenes. El sistema de luces permite generar un entorno con iluminación controlada y uniforme, que reduce brillos indeseados al reflejarse sobre la superficie del fruto, y que minimiza la entrada de luz del exterior. Este sistema guarda ciertas similaridades con el presentado en el trabajo de Calpe [6] y que fue originalmente publicado en [7]. El video se captura de forma continua utilizando una cámara comercial, a una velocidad de 30 fps. y una resolución de imagen de 720*480 píxeles. La cámara se encuentra conectada a una PC estándar mediante una conexión de video IEEE1384. En la Fig. 2 se muestran algunas imágenes del prototipo.

distintas posiciones y seleccionar las que sean de utilidad. El método de selección y procesamiento de la imagen se describe en la siguiente sección. IV. PROCESAMIENTO DE LAS IMÁGENES La adquisición de las imágenes debe estar sincronizada con el cambio de posición y rotación del fruto en la línea, de manera de asegurar que las imágenes obtenidas desde el video cubra toda la superficie del fruto. Estas imágenes son luego alineadas para recrear la “piel” o cáscara del fruto (como si el efecto fuera que estuviéramos extrayendo la piel, y estirándola sobre una superficie). Es claro que cuantas más imágenes se obtienen, más se reduce la probabilidad de perder información, aunque puede surgir cierta redundancia. Con este procedimiento se consigue que la imagen resultante sea representativa de la calidad de toda la manzana y no de una parte en particular (como lo sería si se tomara una única foto de costado o de arriba). La segunda tarea del procesamiento comprende discriminar la imagen de la fruta con respecto al fondo de rodillos tal como se propone en [8] y [9]. Esta tarea se realizó aplicando filtros de umbralado en el espacio de colores HSL (H = Cromaticidad, S = Saturación, L = Iluminación), el cual facilita la discriminación de la croma o color del fruto. Definiendo adecuadamente un umbral para los valores de iluminación (L), es posible extraer en una pasada los píxeles que corresponden al fruto (como se ve en la Fig. 3). El valor de umbral se calcula estadísticamente desde una captura de la línea vacía. Se hace correr la cinta sin frutos, y se contabiliza el nivel máximo de iluminación por frame. Luego de 50 frames, se toma como umbral el promedio. Este valor cambia de acuerdo a la cámara utilizada, pero el valor medio es de L=120.

Figura 3. Captura de la imagen sobre la línea en tres instantes de tiempo, (2) separación en canales HSL (3) Umbralado en base al canal L.

Figura 2. (Izq.) Captura desde adentro de la caja de ambiente controlado mostrando tres líneas. (Der.) Esquema del prototipo montado.

En el prototipo se implementó mecánicamente un sistema de rotación y traslación de rodillos, el cual permite que prácticamente toda la superficie de la manzana sea vista por la cámara. Así es posible tomar varias imágenes de cada fruto en

Como se mencionó anteriormente, la calidad de una manzana se define por su color. Por cada partida, un experto analiza un conjunto de manzanas y determina las distintas calidades. Para poder incorporar este conocimiento al sistema y que permita generar una clasificación, se entrena el sistema con los criterios del experto aplicando un método de aprendizaje según [3]. Para ello, se definen rangos de cromaticidad en los cuales

se encuentran generalmente los valores buscados o aceptados de la variedad de fruta analizada. Por ejemplo, en una manzana de tipo “Granny Smith”, los rangos buscados oscilan alrededor del 50 (verde-amarillo) tal como se muestra en el histograma de la Fig. 4. De estos colores se determina en qué proporción deben aparecer, ya que la calidad del fruto depende del grado de cumplimiento de cada distribución. Para el entrenamiento, el experto realiza una selección manual de una muestra de las distintas calidades. A continuación, por cada calidad, ingresa la muestra al sistema y se extraen los porcentajes de cromaticidad correspondientes. Estos se almacenan en forma de tabla, tal como se muestra en la Tabla 1. Por otra parte, este proceso debe tener en cuenta ciertas consideraciones que permitan hacer una correcta lectura de esta tabla de colores/calidades. Por ejemplo, supongamos el caso de la aparición de colores rojizos sobre una manzana verde. Estos son fácilmente distinguibles y aunque la manzana cumpla el valor buscado de cromaticidad verde, la cantidad de color rojo que contiene degradará en mayor o menor medida la calidad del fruto. Lo mismo ocurre en la variedad “Red Delicious”, en el caso de una manzana con un 90% de color rojo y un 10% de color verde, no puede ser considerada de calidad 1. Para contemplar estos casos se propuso distinguir los colores de aceptación o rechazo. Finalmente, la calidad de un fruto se define como la satisfacción simultánea de varias restricciones, algunas de ellas por cualidades positivas (cumplimiento) y otras por negativas (penalidad). Si no cumple ninguna de las características, el fruto se descarta. TABLA I INTERVALOS DE ACEPTACIÓN / PENALIDAD Y SU CALIDAD PARA MANZANA GRANNY SMITH INTERVALO 1 INTERVALO 2 INTERVALO 3 CLASES (40..60) (60..120) (0..35) 85% 12% 3% 1 60% 33% 7% 2 51% 39% 10% 3

Supongamos que se aplica el proceso de clasificación a una manzana “Granny Smith” (Fig. 4). Se extrae la distribución de la cromaticidad y se verifica que el rango de cantidad de color verde-amarillento (rango 40-60 de Cromaticidad como indica la tabla del Intervalo 1) debe ser superior al 85%.

de Clase 1, debido a la concentración del color de penalidad rojo-naranja intenso (rango 0-35 de Cromaticidad, Intervalo 3) en un porcentaje mayor al 7% queda definida como Clase 3. V. DISCRETIZACIÓN Y CLASIFICACIÓN A fin de obtener las imágenes requeridas para la clasificación, es necesario determinar adecuadamente en que momento y lugar se encuentra una manzana. Para esto, se propuso dividir la imagen en un conjunto de sectores de muestreo o celdas (Fig. 5), asociando además el tiempo a la captura. Luego, se exige que la celda coincida con el área central del fruto, lo que es análogo a que concuerde con el espacio entre rodillos. Para que el centro del fruto coincida con el de la celda, se requiere un tiempo inicial de sincronizado, el cual se calcula con el algoritmo que se describe en la siguiente sección. El tamaño de la celda se define manualmente de acuerdo a la posición de la cámara. Existe una relación directa entre el tamaño de la celda y la cantidad de las imágenes. Escogiendo un tamaño de celda que abarque todo un fruto, se utilizaron 5 imágenes para cubrir todo la superficie del fruto. Las celdas que contienen frutas se marcan como activas y se les asocia un identificador único. De esta manera, se tiene identificada unívocamente a cada manzana junto con las imágenes de la misma en distintos instantes de tiempo. Para determinar si una celda contiene una manzana, se contabilizan la cantidad de píxeles que cumplen con el filtro de iluminación (Fig. 3). Si la concentración de píxeles es mayor a una cierta cantidad, el 50% del área de la celda, entonces la celda contiene un fruto. Este conteo se realiza únicamente al ingresar el fruto al espacio visible.

Figura 5. Los pasos que sigue el algoritmo de conteo de frutos.

Si un fruto ya tiene asociado la cantidad de imágenes necesarias, se ejecuta el algoritmo de clasificación, para determinar la calidad de la fruta, y se almacena en el registro correspondiente.

Figura 4. (Izq.) Manzana Granny Smith; (Der.) Distribución de cromaticidad de la misma.

Aunque la fruta cumple esta regla para pertenecer a calidad

A. Sincronización De acuerdo a la carga de frutos y a características técnicas, la velocidad de los rodillos en las maquinarias utilizadas no es constante en el tiempo. Desde el punto de vista del sistema, los rodillos se desplazan en el tiempo, y las capturas de los frutos se desfasan, por lo que es necesario cambiar el paso de tiempo dinámicamente.

Este problema puede solucionarse mecánicamente, al incluir un dispositivo eléctrico que indique con un pulso el momento en el que pasó un rodillo, lo que involucra un nuevo dato de entrada al sistema. En este trabajo se propuso otra forma de calcular la velocidad de avance de la cinta en base a las imágenes. Se puede observar que si se extrae el perfil de iluminación de los rodillos libres de frutos de una línea, se obtiene una distribución característica como la representada en la Fig. 6. Dicho perfil permite distinguir un intervalo de picos y valles de intensidad, a partir de los cuales se puede estimar el centro del rodillo (como se observa en la Fig. 7). Tomando una serie de perfiles sucesivos y el centro de rodillo en dos intervalos de tiempo sucesivos, es posible estimar la velocidad de movimiento de la cinta.

Figura 6. (Arriba) Corte longitudinal en un tiempo de una línea de transporte; (Abajo.) Perfil de intensidades de la misma, para extraer los valles y los picos.

es el caso del algoritmo aquí presentado. El tiempo de procesamiento global se reduce considerablemente al aprovechar el potencial en paralelo, y quitando la carga de procesamiento de la CPU. C. Evaluación del proceso El caso de prueba se compone de tres lotes de distinta calidad de una variedad de manzana. Estos lotes, de 72 frutos cada uno, se seleccionaron a partir de una clasificación de usuarios expertos. Para validar el sistema, se capturó un video por cada una de las calidades y se obtuvieron las clasificaciones automáticas realizadas por el sistema. Dichos resultados (ver Tabla II) fueron presentados en un trabajo previo [7]. TABLA II RESULTADOS DE LA CLASIFICACIÓN Calidad s/Sistema 1 2 3 52 10 10 Calidad 1 s/Experto 1 24 47 2 0 12 60 3

TP (%) 72,2% 33,3% 83,3%

Para evaluar la eficiencia del nuevo algoritmo, se implementaron dos versiones utilizando una GPU NVidia GTX 260 y una CPU AMD Phenom de 2,41Ghz. Se utilizaron 3 videos diferentes donde varía la cantidad de líneas de rodillos a procesar (con 3 líneas de una resolución de 720x480 píxeles, otro con 6 líneas de 1440x480 p., y un tercero de 12 líneas con una resolución de 2880 x 480 p.) y se obtuvieron los tiempos medidos en milisegundos (ms) y en frames por segundo (fps), necesarios para obtener la calidad de los frutos (ver Tabla III). Por cada línea por frame, se muestrearon la posición de 10 frutos.

B. La utilización de GPU en el proceso Una de las limitaciones del prototipo hasta aquí presentado era la capacidad de cálculo disponible; el procesamiento estaba acotado a un reducido número de 3 líneas y a una cierta cantidad de muestras por líneas. En este sentido una solución sencilla pero costosa era aumentar y replicar el equipamiento. Como alternativa, en este trabajo se propuso utilizar la capacidad de procesamiento que brindan las GPU’s [10]. Los algoritmos de segmentación y asignación de calidad, son implementados en paralelo utilizando el estándar OpenCL. El sistema utiliza dicha API para mapear los datos capturados desde video a memoria de la placa gráfica, programar e invocar a los algoritmos de proceso y finalmente leer los resultados en CPU. El algoritmo de “segmentación” permite procesar a nivel de píxel, por lo que no existe complejidad en la paralelización de celdas (cada celda es asignada a un hilo de procesamiento diferente en la GPU). De las pruebas realizadas, se observó que se logra un mayor aprovechamiento del hardware reduciendo el tamaño de las celdas, es decir, seccionando cada fruto en más regiones. Las GPU’s se comportan eficazmente en algoritmos con una alta carga computacional y gran volumen de datos, como

TABLA III TIEMPOS DE CÁLCULO PARA DISTINTAS RESOLUCIONES DE IMAGEN Y CANTIDAD DE LÍNEAS

#Ls. 3 6 12

Tiempo ms. (CPU) 108 208 420

Tiempo ms. (GPU) 4,77 8,01 14,5

Frts./segs. (CPU)

Frts./segs. (GPU)

Speed Up (%)

277 288 285

6382 7500 8275

2264 2597 2897

Dados los tiempos de cálculo requeridos por la GPU, se observa que es posible ejecutar el algoritmo muestreando hasta 12 líneas de forma simultánea (equivalente a 4 vídeos), permitiendo mantener una mayor velocidad de captura, de aproximadamente 69 fps, sobrepasando la cantidad de 20 fps que necesitaría el sistema para que funcione en tiempo real sin perder detecciones. VI. CONCLUSIONES En este trabajo se presentó un sistema de clasificación de frutos en una línea de transporte, el cual utiliza técnicas novedosas para la determinación de la calidad del fruto, y realiza el procesamiento mediante GPU. Este sistema permite analizar múltiples líneas en un sólo equipo, lo que implica un

menor costo de adquisición por módulo, y simplifica la tarea sincronización del software con la máquina de transporte. Por otro lado, se reduce la necesidad de espacio físico, al requerirse una única PC. Actualmente se está integrando al sistema de clasificación un módulo de generación de videos de forma sintética, que acelera el proceso de prueba de los algoritmos y permite aumentar los casos de análisis. REFERENCIAS [1]

P. Sudhakara Rao, A. Gopal, R. Revathy and K. Meenakshi, Colour analysis of fruits using machine vision system for automatic sorting and grading, J. Instrum. Soc. India 34, Vol. 4, pp. 284-291, 2004. [2] C. Li, Q. Cao and F. Guo, A Method for Color Classification of Fruits Based on Machine Vision, WSEAS Transactions on Systems, Vol. 8, pp. 312-321, 2009. [3] L. Fei-Fei, R. Fergus and P. Perona, One-shot learning of object categories, IEEE TPAMI 28, Vol. 4, pp. 594–611, 2006. [4] J. D. Owens, D. Luebke, N. Govindaraju, M. Harris, J. Kruger, A. E. Lefohn and T. J. Purcell, A survey of general purpose computation on graphics hardware, Computer Graphics Forum 26, Vol. 1, pp. 80– 113, 2007. [5] J. Fung, S. Mann and C. Aimone, Openvidia: Parallel gpu computer vision, Proceedings of the ACM Multimedia 2005, pp. 849–852, 2005. [6] J. Calpe, F. Pla, J. Monfort, P. Diaz and J. C. Boada, Robust low-cost vision system for fruit grading, 8th Mediterranean Electrotechnical Conference MELECON '96, Vol. 3, pp. 1710-1713, 1996. [7] J. P. D’Amato, C. Garcia Bauza, A. Clausse y M. Vénere, “Procesamiento de imágenes para la clasificación masiva de frutos basado en el color”, Anales en las Jornadas de Investigación en Ingeniería de Software - Argentina, 2007. [8] G. Kay and G. De Jager, A versatile colour system capable of fruit sorting and accurate obiect classification, Proceedings of South African Symposium on Communications and Signal Processing (COMSIG '92), pp. 145 -148, 1992. [9] K. Nakano, Application of neural networks to the color grading of apples, Computers and electronics in agriculture, Vol.18, pp. 105116, 1997. [10] N. Govindaraju, B. Lloyd, Y. Dotsenko, B. Smith and J. Manferdelli, High performance discrete Fourier transforms on graphics processors, Proceedings of the 2008 ACM/IEEE conference on Supercomputing, pp. 1-21, 2008. Juan Pablo D’Amato nació en Tres Arroyos, Argentina, el 14 de septiembre de 1978. Se graduó en el año 2004 en la carrera de Ingeniería de Sistemas la Universidad Nacional del Centro de la Pcia. de Buenos Aires, y actualmente esta finalizando la carrera de Doctor en Ciencias de la Computación. En el período 2005-2006 fue becario de la Comisión de Investigaciones Científicas de la Pcia. de Buenos Aires, y desde el año 2006 es becario de CONICET. Entre sus campos de interés están la programación de alto desempeño y computación gráfica. Desde el año 2006 el ingeniero D’Amato es miembro del Instituto Pladema (UNCPBA), y docente permanente de la Facultad de Ciencias Exactas (UNCPBA). Cristian García Bauza nació en Trenque Lauquen, Argentina, el 22 de diciembre de 1978. Se graduó en el año 2006 en la carrera de Ingeniería de Sistemas de la Universidad Nacional del Centro de la Pcia. de Buenos Aires, y actualmente esta finalizando la carrera de Doctor en Ciencias de la Computación. Desde el año 2006 es becario de la Comisión de Investigaciones Científicas de la Pcia. de Buenos Aires. Entre sus campos de interés están la visualización tridimensional de efectos naturales y la realidad virtual aplicada al entrenamiento de operarios, junto con la simulación computacional de comportamiento físico de objetos y la arquitectura de motores gráficos. Desde el año 2006 el ingeniero García Bauza es miembro del Instituto Pladema

(UNCPBA), y docente permanente de la Facultad de Ciencias Exactas (UNCPBA). Gustavo Boroni nació en Ayacucho, Argentina, el 11 de noviembre de 1972. Se graduó en el año 1999 en la carrera de Ingeniería de Sistemas la Universidad Nacional del Centro de la Pcia de Buenos Aires, y en el año 2008 se graduó en la carrera de Doctor en Ciencias de la Computación (UNCPBA). Entre el período 2000-2005 fue becario de posgrado de la CNEA, luego desde 2005 a 2009 fue becario de posgrado del CONICET, y desde abril de 2010 es investigador asistente del CONICET. Entre sus campos de interés están la programación de métodos numéricos y computación gráfica. Desde el año 1998 el Dr. Boroni es miembro del Instituto Pladema (UNCPBA), y docente permanente de la Facultad de Ciencias Exactas (UNCPBA).

Suggest Documents