Sistema de visión por computador para control industrial M.Corbalán Dpt.E.E. EUPM. 08240 Manresa (Barcelona). UPC. E-mail: corbalan@eel.upc.es algoritmos. La parte más crítica suele hallarse en el nivel algorítmico, pues los algoritmos están limitados tanto por problemas de computación como por el soporte físico disponible. En este sentido, resulta de gran ayuda conocer las propiedades, capacidades y limitaciones del soporte material, ya sean las neuronas o los circuitos electrónicos. Resumen En los seres humanos casi el 80% de la información que recibimos del mundo exterior es a través del sistema visual. Si se desea sustituir un operador humano en una tarea de control industrial por un sistema de visión artificial se tiene que hablar de sensores ópticos que serán los “ojos” del sistema. Sin embargo, la visión humana es un proceso complejo. Aunque el acto de ver parece sencillo por la eficiencia y rapidez con que lo realiza el sistema visual humano, sabemos lo extraordinariamente complicado que resulta este proceso. En este trabajo nos proponemos elaborar un programa para medir el color píxel a píxel de una muestra mediante un sistema de visión por computador para control industrial Dado que se suple a un operador humano utilizaremos como sistema de representación del color el sistema XYZ o su equivalente (x, y, Y) y el sistema CIELAB. El sistema propuesto, que incorpora el software (llamado Medicolor), sirve para medir el color de un objeto con resolución de pixel. Una aplicación del sistema propuesto sería la inspección o control del color. Esta tarea en muchas industrias se realiza mediante inspección visual de operarios comparando la muestra a medir con una referencia. Requieren de un entrenamiento y experiencia para tratar de ser lo más repetitivos posibles y deben descansar a menudo para no cansar la vista, ya que dicho cansancio podría conducir a errores. Nuestro objetivo es automatizar estas tareas de inspección con lo que aseguramos la repetitividad y un funcionamiento continuado. Los sistemas de representación del color que utilizan como estándar en la operación de comparación se calculan a partir de los valores triestímulos. Por ello, con el sistema propuesto pretendemos medir los valores triestímulos del producto de color y sus coordenadas CIELAB. 1. Introducción La visión artificial tuvo sus comienzos hace más de 30 años. En el momento en el que los computadores digitales se hicieron suficientemente potentes y adquirieron una forma más compacta, se pensó en utilizar información obtenida por éstas últimas para dotar de “ojos” al ordenador. Evidentemente, la tarea no es tan sencilla como se pensó en un principio. Sin embargo, se han logrado grandes avances y en la actualidad sistemas de visión artificial de muy difícil índole se aplican a tareas tan diversas como la orientación de mísiles o la detección y reconocimiento de imágenes en fotografías aéreas o ilustraciones médicas. Igualmente, la visión artificial tiene importantes aplicaciones industriales, sobretodo en lo que se refiere a la automatización de las labores de inspección y clasificación de objetos, así como en el control de máquinas, especialmente robots, con realimentación visual. 2. Colorimetría. Coordenadas CIELAB. Si el sistema visual no fuera capaz de detectar las radiaciones electromagnéticas a una pequeña región del espectro electromagnético (la llamada región del visible que va aproximadamente de 400 a 700 nm), no sería posible reconocer los distintos colores que se perciben en la vida real. Se puede decir que el sistema visual realiza un análisis espectral en tiempo real de la luz que le llega y como lo integra no puede clasificar el estímulo por longitudes de onda. De acuerdo con la Comisión Internacional de la Iluminación (CIE), el color percibido se define como el aspecto de la percepción visual mediante el cual un observador puede distinguir entre dos campos del mismo tamaño, forma y textura basándose en las diferencias en la composición espectral de las radiaciones relacionadas con la observación. Desde el punto de vista del procesamiento de la información (sea por el cerebro o por un ordenador), este problema puede plantearse en muchos niveles: el nivel de computación, es decir, las tareas del cómputo que debe llevar a cabo un sistema visual; el nivel algorítmico, es decir, la sucesión de pasos que conseguirán ejecutar la tarea; y el nivel material o de soporte físico, es decir las neuronas o circuitos electrónicos que podrán realizar los El objetivo de la colorimetría es introducir un método de medida del color que permita asignar una magnitud mesurable a cada uno de los atributos perceptivos y, además, determinar el color mediante números que 53 permitan su especificación en un espacio de representación. La CIE introdujo en 1931 el sistema RGB, y con él, el sistema XYZ para la representación del color (X, Y y Z son los valores triestímulos). El color estándar CIE está basado en los colores primarios imaginarios XYZ, que no existen físicamente. Éstos son completamente teóricos e independientes de dispositivos dependientes de gamas de color, como el RGB o CMYK. Sin embargo, se han seleccionado estos colores primarios virtuales, para que todos los colores puedan ser percibidos por el "falso" ojo humano dentro de su espacio de color. El sistema XYZ está basado en las curvas de respuesta de los tres receptores de color del ojo (observador patrón). Éstos difieren ligeramente de persona a persona, pero la CIE ha definido un “observador estándar” en el que la respuesta espectral corresponde más o menos a la respuesta media de la población. Los tres colores primarios del sistema de referencia CIE XYZ se hallan en un modelo espacial con coordenadas X, Y y Z que tiene aspecto de un triángulo cromático. Se distinguen dos observadores patrón, CIE-1931 (observador de 2º) y el CIE-1964 (observador de 10º). Para muchas aplicaciones industriales es conveniente utilizar el observador patrón suplementario CIE-1964, puesto que los tamaños de las muestras que se utilizan son superiores a 4º. La precisión de la igualación de color depende del tamaño del test y por ello el observador de 10º describe en este caso con mayor precisión las observaciones visuales. Los valores triestímulos (X, Y, Z) vienen dados por: ò Y = ò ρ(λ)S(λ) y(λ)dλ, Z = ò ρ(λ)S(λ) z (λ)dλ, éYù L *=116 ê ú ë Y0 û 1 3 − 16, 1 1 éé ù X ù 3 é Y ù 3ú ê a *=500 ê −ê ú , ú êë X 0 û ë Y0 û úû ë (2) é é ù 13 é ù 13 ù Y Z b *=200 ê ê ú − ê ú ú, ê ë Y0 û Z ë 0 û úû ë donde X0, Y0, Z0 son los valores triestímulos del blanco de referencia. Las magnitudes L*, a*, y b* son adimensionales y se definen en función del tipo de estímulo y del blanco de referencia para tratar de simular a los observadores reales. Esto es, una superficie blanca lo parece con cualquier iluminante gracias a la adaptación cromática y en este sistema de representación le corresponden las mismas coordenadas CIELAB, independientemente del iluminante utilizado. Esto no es así en el diagrama (x,y) donde una superficie blanca con diferentes iluminantes tendría unas coordenadas de cromaticidad distintas. La coordenada L* recibe el nombre de luminancia y (a*, b*) son las coordenadas colorimétricas que forman un plano perpendicular a la luminancia, siendo, a su vez, perpendiculares entre sí. El corte del eje L* con los planos que forman a* y b* son los puntos acromáticos. En el eje a*, para valores positivos se va del punto acromático a los rojos, para valores negativos se va hacia los verdes. En el eje b*, para valores positivos se va del punto acromático al amarillo, para valores negativos se va hacia los azules. Hemos escogido medir el color utilizando las coordenadas CIELAB porque la mayoría de fórmulas interesantes de diferencia de color se basan en ellas. El sistema CIELAB a menudo se utiliza en tareas de control de calidad de productos de color. En estos casos, el color del producto se localiza en el espacio CIELAB, para lo que es necesario poder medir esas coordenadas, y se compara con el color del producto estándar. Se miden las diferencias de color entre la muestra producida y el estándar comparándose con las tolerancias admitidas por el cliente para saber si el color del producto es aceptable y pasa el control de calidad. A partir de las coordenadas a* y b* del sistema CIELAB (2) se pueden definir dos magnitudes colorimétricas C* y h* dadas por: X = ρ(λ)S(λ) x (λ)dλ, (1) siendo ρ(λ) la reflectancia espectral de la muestra de color, S(λ) la distribución espectral de la fuente de luz utilizada y x (λ), y(λ) y z (λ) las funciones de mezcla que caracterizan al observador patrón. Un problema del sistema de color XYZ, es que las diferencias colorimétricas entre los colores individuales no se corresponden con las diferencias de color percibidas. El sistema L*a*b* (CIE 1976) fue desarrollado con dos objetivos: tener un sistema de medida fácil, que se corresponda con el sistema de color Munsell y que fuese un sistema donde las variaciones de luminancia y cromaticidad fuesen uniformes [1]. Además el sistema CIELAB fué adoptado también como norma UNE. En la colorimetría tradicional, las coordenadas de color del sistema CIELAB se calculan a partir de los valores triestímulos del color (XYZ), esto es para muestras no oscuras son [1]: 1 C *=(a * 2 +b * 2 ) 2 , h *=arctg(b * / a*). (3) C* es el croma y toma el valor 0 para estímulos acromáticos. h* es el tono y varía entre 0 y 3600; para valores acromáticos h* es una magnitud indefinida. Ambos términos (C*, h*) definen la cromaticidad del color de un estímulo y junto con la luminancia L* determinan las coordenadas cilíndricas del espacio CIELAB. 54 3. Determinación experimental de las componentes R, G y B El proceso de la visión, como procesamiento de información, comienza tanto para una persona como para un ordenador con una matriz o tabla de niveles de gris, es decir, una representación punto a punto de la intensidad de luz de la imagen generada por un retículo de detectores. En el caso del sistema visual humano, la imagen la forma el sistema óptico del ojo y la matriz de puntos el mosaico de fotorreceptores de la retina. En un sistema artificial la imagen la forma la óptica de la cámara y la matriz de puntos su mosaico de detectores. Obsérvese que los procesos son hasta ahora completamente análogos y que, sin embargo, el medio material que los lleva a cabo es completamente diferente. Fig. 1. Sistema de captación. 4. Determinación de los valores triestímulos XYZ a partir de los valores RGB obtenidos con la cámara 3CCD Cuando queremos digitalizar una imagen en color su contenido depende del iluminante, de la señal analógica RGB proporcionada por la cámara y del proceso de conversión de la señal analógica a digital. Plantearse qué iluminación de los objetos se utiliza es fundamental para resolver algunos problemas de inspección artificial. El contenido de la señal analógica depende de la cámara de vídeo que se utilice, esto es, depende de su arquitectura de descomposición tricromática RGB, filtros, número de sistemas captadores de imagen, de su sensibilidad, resolución, relación señal/ruido, etc. En la conversión de la señal analógica a digital es posible modificar la señal captada a través de la tarjeta digitalizadora mediante el programa de captación. En dicha conversión se varían dos parámetros, la ganancia (gain) y la compensación (offset), que permiten cambiar el contraste y el brillo de la imagen que se ha captado [2]. Además, las cámaras disponen del circuito denominado balance del blanco que trata de compensar las variaciones que se registran cuando se capta con fuentes de luz diferentes [3]. El programa Medicolor determinar las coordenadas CIELAB de una muestra de color iluminada por una fuente de luz dada, a partir de los valores de las componentes R, G y B proporcionados por la cámara CCD. Según hemos visto en el apartado anterior, teóricamente para determinar las coordenadas CIELAB primero tenemos que obtener los valores triestímulos X, Y y Z de la muestra. Según la ecuación (1) necesitamos conocer la reflectancia espectral de la muestra de color; sin embargo, nosotros partimos únicamente de la tres componentes R, G y B que nos proporciona la cámara y con esa información no podemos reconstruir la reflectancia espectral de la muestra. Por tanto, vamos a describir el procedimiento alternativo que permitirá obtener los valores triestímulos X, Y y Z a partir de los valores R, G y B dados por la cámara y que incorpora el programa Medicolor. El método implementado en el programa Medicolor fue propuesto inicialmente por Simpson y Jansen [4] y desarrollado por Corbalán y otros [5]. Se basa en el hecho que tanto la respuesta espectral de los sensores de la cámara como las funciones de mezcla del observador patrón tienen el mismo número de funciones de banda limitada. Por tanto, para cada sensor i de la cámara, el producto de la respuesta espectral del sensor Ri(λ) por la distribución espectral de la fuente de luz S(λ) se corresponde, usando un modelo lineal, con el producto de las funciones de mezcla del observador patrón hj(λ) por la distribución espectral de la fuente de luz [4]. Esto es, podemos escribir El sistema de captación y digitalización propuesto esta compuesto por: la cabina de iluminación Verivide CAC 120; la cámara en color Sony DXC-930P; la tarjeta digitalizadora Matrox Meteor-II/Multi-Channel; y un ordenador. La cabina CAC 120 es una cabina de comparación de muestras de color y dispone de los iluminantes estándares: D65 (luz de día), TL84 (F11, luz fluorescente), F (luz incandescente) y UV (luz ultravioleta). La cámara tiene tres filtros dicroicos, tres sensores CCD proporcionando tres canales o salida analógicas RGB. La tarjeta digitalizadora admite el formato RGB, digitaliza cada canal R, G y B en 8-bits, tiene una transmisión de datos de 130 MSPS, dispone del control de gain y offset independientemente en los tres canales R, G y B. El ordenador utilizado es Pentium III a 500 MHz y 64 MB de RAM, admite los sistema operativos Windows 95/98 ó NT y tiene conexión a bus PCI (tarjeta digitalizadora). En la fig.1 se muestra como se captan las muestras de color. Las 40 muestras captadas forman parte de la colección The Munsell Book of Color que contiene 1150 muestras diferentes. El blanco de referencia utilizado es el modelo RS-3 Reflectance Standard. 3 S(λ )R i (λ ) = å a ijS(λ)h j (λ), i = R , G, B (4) j=1 donde aij son constantes que se obtienen por ajuste de mínimos cuadrados. Queremos que los coeficientes aij estén lo más ajustados posibles a las condiciones de captación por lo que el programa Medicolor contiene la posibilidad de tener en cuenta la distribución espectral de la fuente de luz como en (4). Asimismo, pueden haber casos en los que no haga falta tanta precisión por lo que el 55 lo que permite determinar los valores triestímulos X, Y y Z de una muestra a partir de los valores R, G y B obtenidos experimentalmente mediante la cámara CCD en color. programa también tiene la opción de calcular los coeficientes aij sin tener en cuenta la fuente de luz. Para aplicar la técnica de ajuste basada en la aproximación de mínimos cuadrados minimizamos la función f(λ) que está definida por f i (λ)=[Λ i (λ) − Γi (λ)] , i =1,2,3 2 Tomamos como hj(λ) el observador colorimétrico CIE 1964 [1], Ri(λ) la respuesta espectral de los sensores de la cámara Sony DXC-930P y dos fuentes de luz de la cabina de comparación, D65 y TL84. Aplicando el método expuesto obtenemos para cada una de las dos fuentes de luz consideradas las matrices de transformación A-1 siguientes: (5) donde Λ i (λ)=S(λ)R i (λ), 3 Γi (λ)=å a ij b j , - para la luz de día (D65): (6) j=1 æ X DL ö æ 1.36 0.27 0.35 ö æ R DL ö ÷ ÷ç ÷ ç ç ç YDL ÷=ç 0.79 0.94 0.11 ÷ ç G DL ÷. ç Z ÷ ç 0.07 − 0.06 2.02 ÷ ç B ÷ ø è DL ø è DL ø è con b j =S(λ)h j (λ). Disponemos de las curvas de respuesta espectral Ri(λ) de la cámara y de las curvas que definen las funciones de mezcla hj(λ) discretizadas cada 5 nm desde 400 a 700 nm, por lo que podemos rescribir estas respuestas como vectores que tienen cada uno de ellos N componentes H Λ i =(S(λ1 )R i (λ1 ),...,S(λ N )R i (λ N )), H H 3 (7) Γi =å a ij b j , - para la luz fluorescente (TL84): æ X F ö æ 1.28 0.46 0.37 ö æ R F ö ÷ ÷ç ÷ ç ç ç YF ÷= ç 0.67 1.06 0.08 ÷ ç G F ÷, ç Z ÷ ç 0.02 − 0.01 2.12 ÷ ç B ÷ øè F ø è Fø è H b j =(S(λ1 )h j (λ1 ),..., S(λ N )h j (λ N )). En ese caso, puede escribirse la función fi como un producto escalar. Desarrollando el producto escalar y sustituyendo los vectores resulta j=1 (8) æ X s ö æ 1.33 0.27 0.34 ö æ R s ö ÷ç ÷ ç ÷ ç ç Ys ÷=ç 0.77 0.94 0.11 ÷ ç G s ÷. ç Z ÷ ç 0.03 − 0.04 1.95 ÷ ç B ÷ øè s ø è sø è j=1 k =1 Si definimos una matriz (3×3) G con los elementos gjk = H H b j b k (comúnmente llamada una matriz Gram simétrica), H un vector (3×1) A i con elementos [ai]j (coeficientes de H H H interés) y un vector (3×1) N i con elementos [ni]j= Λ i b j , la ecuación (8) puede rescribirse en forma matricial como H H H H H H f i =Λ i Λ i − 2A iT N i + A iT G A i , (9) (14) El subíndice s se refiere a la fuente de luz genérica que se utiliza al captar. La transformación de la ecuación no se diferencia sustancialmente en sus coeficientes de las transformaciones lineales encontradas cuando se tiene en cuenta las fuentes de luz en el ajuste, ecuaciones (12) y (13). Por tanto, creemos que es una buena propuesta si se quieren obtener de forma automática las coordenadas XYZ y las CIELAB a partir de las RGB proporcionadas por una cámara en color, es decir, sin tener que cambiar los valores de la matriz al cambiar el iluminante siempre que se traten de fuentes de luz blanca. Evidentemente, las transformaciones en cuyo ajuste se ha incorporado la distribución espectral del iluminante con el que se capta (ecuaciones (12) y (13)) son específicas para cada iluminante y, por tanto, es de esperar que sean más precisas. Por tanto, la utilización de unas u otras dependerá de la aplicación para la que se desea saber las coordenadas de color. donde el superíndice T indica la traspuesta. Para encontrar el mínimo de la función fi, se calcula la derivada parcial H de fi respecto de A i , se iguala a cero y la solución para H A i vale H H A i =G -1 N i . (10) El proceso indicado en la ecuación (10) se repite para las respuestas de los tres sensores rojo (R1(λ)), verde (R2(λ)) y azul (R3(λ)) a fin de generar todos los coeficientes aij. H Una vez determinada la matriz A i se calcula su inversa, es decir, X = A -1 R. (13) Comparando las ecuaciones (12) y (13) podemos apreciar cómo no existen grandes diferencias en los valores numéricos de las matrices que representan las transformaciones calculadas para las dos fuentes de luz. Dada la semejanza que se observa entre las matrices, estudiaremos los efectos derivados de la utilización de una única matriz independiente de la fuente de luz. Esto sería semejante a considerar el equienergético en la expresión (4) para lo que se obtendría j=1 3 3 3 H H H H H H f i =Λ i Λ i − 2å a ij (Λ i b j ) + å å a ij a ik (b j b k ). (12) Los resultados que acabamos de obtener representados por las tres transformaciones lineales pueden ser de utilidad general, tanto en colorimetría como en otras áreas como puede ser en procesado de imagen. (11) 56 6. Conclusiones Se ha presentado de forma resumida qué es un sistema de visión por computador y se ha aplicado a un caso concreto para medición del color de forma automatizada. Se ha mostrado cual es el objetivo de la colorimetría y que se entiende por observador patrón. Se ha comentado que imitar las tareas del sistema visual humano no es evidente ni fácil de realizar. Sin embargo, lo que es más fácil es intentar imitar al observador patrón y para ello se debe saber calcular los valores triestímulos. Se ha propuesto un método que permita calcular los valores triestímulos XYZ a partir de los valores RGB obtenidos con la cámara 3CCD mediante una transformación lineal. Concretamente se han propuesto tres transformaciones lineales: dos son específicas para la luz del día y la luz fluorescente, respectivamente; y una es genérica para cualquier fuente de luz blanca convencional. Con la última propuesta se pretende obtener de forma automática las coordenadas XYZ sin tener que cambiar los valores de la transformación lineal cada vez que cambia la fuente de luz blanca. Por tanto, se puede medir el color mediante sistemas colorimétricos como el sistema XYZ o el CIELAB. Este último es ampliamente utilizado cuando se desea medir diferencias de color entre pares de muestras para comparar por ejemplo, tintados en empresas textiles, de plásticos, del automóvil, etc. Incluir la medición de diferencias de color sería el siguiente paso a realizar. 6. Agradecimientos Por último agradecer a Daniel Gilabert por la elaboración del programa y la toma de resultados. Referencias [1] G.Wyszecki and W.S.Stiles, Color Science. Concepts and Methods, Quantitative Data and Formulae, John Wiley & Sons, Inc., 1982. [2] M.Corbalán,M.S.Millán,M.J.Yzuel,”Color image acquisition by charge-coupled device cameras in polychromatic pattern recognition”, Opt.Eng. 35, 1996, pp.754-760 [3] M.Corbalán, M.S.Millán, and M.J.Yzuel, “Analysis of the compensanting mechanism of a colour CCD camera for changes of light”, Proc.SPIE., 3409, 1996, pp. 456-466. [4] M.L.Simpson and J.F.Jansen, “Imaging colorimetry: a new approach," Appl.Opt. 30, 1991, 4666-4671. [5] M.Corbalán,M.S.Millán,M.J.Yzuel,”Color measurement in standard CIELAB coordinates using a 3CCD camera: correction for the influence of the light source”, Opt.Eng. 39, 2000, pp.1470-1476 57