Sistema de visión por computador para control industrial

Anuncio
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
Descargar