guia Vision por computadora 2013-1

download guia Vision por computadora  2013-1

of 12

description

guia Vision por computadora 2013-1

Transcript of guia Vision por computadora 2013-1

  • 5/19/2018 guia Vision por computadora 2013-1

    1/12

    PONTIFICIA UNIVERSIDAD CATLICA DEL PER

    FACULTAD DE CIENCIAS E INGENIERA

    MANUFACTURA INTEGRADA POR COMPUTADORA

    ING301

    GUA DE LABORATORIO

    TEMA: VISIN MQUINA

    2013 1

  • 5/19/2018 guia Vision por computadora 2013-1

    2/12

    1

    1. IntroduccinLa visin por computadora es un rea de conocimiento especializada en laadquisicin y anlisis automtico de imgenes dentro de un computador paraextraer los datos necesarios para controlar o interpretar un proceso o actividad.

    1.1 La Cmara digital

    Es un dispositivo que consta de un sensor de imagen, el cual es un chip que

    alberga gran cantidad de elementos fotosensibles ordenadas en una matriz.

    Cada punto la imagen digital se forma dependiendo de la cantidad de luz que

    recibe cada elemento. Algunas caractersticas fundamentales de una cmara

    digital son su resolucin, su sensibilidad, y su rango dinmico.

    Figura 1: Funcionamiento de cmara digital

    2. Parmetros Importantes en Cmaras Digitales

    2.1 ResolucinLa resolucin de la cmara indica el nmero de pxeles que puede capturar. Se

    determina multiplicando el nmero de pxeles horizontales de su sensor por el

    nmero de pxeles verticales (HV). As, la cmara de la ilustracin posee una

    resolucin de 3531 = 1085 pxeles (Figura 1). Las cmaras actuales poseen

    resoluciones superiores a 1024768. Cuanto mayor sea la resolucin, mayor

    ser la definicin de la imagen digital que la cmara puede capturar.

    2.2 SensibilidadLa sensibilidad se refiere a la capacidad de la cmara para capturar imgenes

    con iluminacin muy tenue. Por ejemplo, la obtencin de imgenes de tejidos

    tratados con agentes fluorescentes exige cmaras muy sensibles. La

    sensibilidad es inversamente proporcional a la luminosidad mnima que la

    cmara puede captar y que suele expresarse en unidades lux.

  • 5/19/2018 guia Vision por computadora 2013-1

    3/12

    2

    2.3 Rango dinmicoLa luz incidente en la cmara digital induce un voltaje en el sensor. La luz cuya

    intensidad est por debajo del umbral de sensibilidad de la cmara induce un

    voltaje que no puede discriminarse del ruido generado internamente por el

    sensor. La luz muy brillante satura el sensor. La luz cuya intensidad est entre

    estos dos extremos inducir un voltaje til. Este es el rango dinmico del

    sensor. Cuanto mayor sea este rango mejor ser la cmara. puede expresarse

    en decibelios:

    )/(log10 minmax10 LLDR

    Donde:

    maxL : Luminosidad mxima antes de saturacin

    minL : Luminosidad mnima diferenciable de ruido.

    3. Representacin de Imgenes DigitalesCada punto de la imagen o pixel puede ser representado en color o en escala

    de grises. En este ltimo caso, cada pxel posee un tono (o nivel) de gris

    diferente. El nivel de gris de cada pxel se expresa mediante un nmero de N

    dgitos en sistema binario (o bits). Por ejemplo una imagen codificada en 8 bits

    el nmero binario 00000000 (equivalente al nmero 0 en el sistema decimal)

    codifica el color negro. Por el contrario, el nmero binario 11111111

    (equivalente al nmero 255 en el sistema decimal) codifica el color blanco.Cualquier otra combinacin de ocho dgitos binarios indica un tono de gris

    diferente entre el blanco y el negro. Con 8 bits, pueden conseguirse 2 8=256

    tonos de gris diferentes.

    La imagen digital tambin puede ser en color. Para capturar este tipo deimgenes, los colores de la imagen original se descomponen en los trescolores bsicos rojo (R), verde (G) y azul (B) mediante un prisma. La cmaradigital a color dispone de tres arreglos de sensores cada uno de lo cualesrecoge la imagen correspondiente a uno de los tres colores bsicos. La imagen

    digital final se obtiene como la superposicin de estas tres imgenes. El colorfinal de un pxel en la imagen compuesta, se obtiene superponiendo los colorescorrespondientes a dicho pxel en las capas componentes. Por ejemplo, paraobtener el color marrn del pxel de la ilustracin (Figura 2), es necesariosuperponer los pxeles con cdigos 11000101 (R), 10001011 (G), y 01010001(B). El color final del pxel se expresa mediante un cdigo RGB que no es msque el nmero binario que se obtiene al concatenar los cdigos R, G, y B. Laresolucin de cada una de las tres imgenes componentes es igual a la de laimagen digital compuesta. Durante el anlisis de la imagen compuesta, esposible trabajar con cada una de las tres imgenes componentes.

  • 5/19/2018 guia Vision por computadora 2013-1

    4/12

    3

    Figura 2: Representacin RGB de una imagen digital.

    4. Anlisis de Imgenes

    4.1 Segmentacin:La segmentacin es el primer paso en el proceso de anlisis de imagen por lo

    que constituye una etapa crucial que en muchas ocasiones determina el xito.

    Consiste en la divisin de imgenes en partes que la constituyen con el objetivo

    de separar regiones similares de acuerdo a criterios establecidos. Dichoscriterios corresponden generalmente al punto de vista de la percepcin humana

    tales como continuidad (contornos) y similitud (regiones).

    4.2 Segmentacin por umbralizacin:Dada una imagen F(x,y) definida en escala de grises (nivel de luminosidad) y elvalor umbral T se tiene la funcin binarizacin G(x,y) definida por:

    4.2.1 Umbralizacin por valle de histogramaSe demuestra el uso de este mtodo mediante el siguiente ejemplo en Matlab:

    I = imread('umb1.jpg'); % comando de lectura de imagenI = rgb2gray(I); % conversion a escala de grises

    figuresubplot(1,2,1); title('GrayScale'); imshow(I); % muestra imagensubplot(1,2,2); imhist(I); title('Histograma '); % histograma de laimagen

  • 5/19/2018 guia Vision por computadora 2013-1

    5/12

    4

    Se obtiene el siguiente resultado:

    a) b)Figura 3:

    a) Imagen en Escala de Grisesb) Histograma de la Imagen

    El eje X del histograma representa la intensidad luminosa de cada pixel (de 0 a

    255) de la imagen. El eje Y representa la frecuencia con que se encuentra unadeterminada intensidad. El mtodo seala que es necesario identificar losvalores mximos en el histograma, que en este caso son para las intensidadesde 50 y 180 aproximadamente. A partir de ello se obtiene que el valle delhistograma se encuentra ubicado en el punto de intensidad 120. Por lo tantoseleccionamos como umbral el valor T=120.

    En Matlab:%% calculando umbral manualmente:thresh = 120/255; % valor normalizado a 1 (dividir entre 255)

    I2=im2bw(I,thresh); % umbralizacion de la imagenfigure;imshow(I2);

    %% calculando umbral con funcin graythresh:thresh2 = graythresh(I); % obtiene un valor umbral escalado entre 0.0y 1.0I3=im2bw(I,thresh2); % umbralizacion de la imagenfigure;imshow(I3);% El resultado obtenido es similar al del mtodo del valle

    Se obtiene el siguiente resultado:

    Figura 4: Resultado de Umbralizacin

  • 5/19/2018 guia Vision por computadora 2013-1

    6/12

    5

    4.3 Descomposicin de Imagen en Componentes R, G y BEn ocasiones resulta conveniente aislar una determinada componente de colorde una imagen con el objetivo de ubicar una regin de inters. En Matlab lasimgenes a color son representadas como una matriz tridimensional. Sedemuestra en el siguiente ejemplo el proceso de descomposicin de una

    imagen:

    clcclear allimagen_RGB=imread('D:\flores.jpg'); % lectura de imagenfigure(1) % abro una venta para mostrar la imagenimshow(imagen_RGB) % muestra la imagen realTITLE('Imagen RGB - Imagen original')figure(2)imagenRED=imagen_RGB(:,:,1);imshow(imagenRED) % muestra la imagen en el mapa de color rojoTITLE('Mapa de color Rojo')figure(3)

    imagenGREEN=imagen_RGB(:,:,2);imshow(imagenGREEN) % muestra la imagen en el mapa de color verdeTITLE('Mapa de color verde')figure(4)imagenBLUE=imagen_RGB(:,:,3);imshow(imagenBLUE) % muestra la imagen en el mapa de color azulTITLE('Mapa de color azul')

    El resultado obtenido es el siguiente:

    Figura 5: Descomposicin de Imagen en capas R, G y B

  • 5/19/2018 guia Vision por computadora 2013-1

    7/12

    6

    4.4 Operaciones morfolgicas4.4.1 DilatacinEl resultado de esta operacin es el ensanchamiento de la imagen. Dada unamatriz imagen A y una matriz Kernel B, el operador conmutativo Dilatacin es

    denotado por: Bx

    xAABBA

    El significado de este operador es que para cada pixel x que pertenece a B, Aes trasladado segn las coordenadas del kernel. La unin de estas traslacioneses el resultado de la dilatacin. En la siguiente figura se observa este conceptode manera grfica. Obsrvese el desplazamiento de A a lo largo de latrayectoria del kernel B.

    Figura 6: Operacin de Dilatacin

    El cdigo utilizado en Matlab para realizar esta operacin es el siguiente:

    imag = imread('ants.jpg'); % lectura de archivo de imagen% definir patrn de dilatacin:se = strel('diamond',3); % kernel en forma de diamantedilat = imdilate(imag,se); % dilatacin de acuerdo al patrn

    figuresubplot(1,2,1); imshow(imag); title('Original');subplot(1,2,2); imshow(dilat); title('Dilatacin');

    a) b)Figura 7:

    a) Imagen originalb) Imagen Dilatada

  • 5/19/2018 guia Vision por computadora 2013-1

    8/12

    7

    4.4.2 ErosinEl resultado de esta operacin es el adelgazamiento de la imagen. Dada unamatriz imagen A y una matriz Kernel B, el operador Erosin de A por B

    denotado por A }:{ ABB

    Consiste en el desplazamiento del kernel B

    sobre la imagen A encontrando todos las posiciones en que el kernel encaja

    sobre la imagen. Para cada una de estas posiciones se marca la coordenadadel centro del kernel. El conjunto de todos estos puntos es la erosin de laimagen. En la siguiente figura se observa este concepto de manera grfica:

    Figura 8: Operacin de Erosin

    El cdigo utilizado en Matlab para realizar esta operacin es el siguiente:imag = imread('arroz.bmp'); % lectura de archivo de imagen% definir patrn de erosin:se = strel('diamond',3); % patrn en forma de diamanteerosion = imerode(imag,se); % erosin de acuerdo al patrn

    figuresubplot(1,2,1); imshow(imag); title('Original');subplot(1,2,2); imshow(erosion); title('Erosin');

    Se obtiene el siguiente resultado:

    a) b)Figura 9:

    a) Imagen originalb) Imagen Erosionada

  • 5/19/2018 guia Vision por computadora 2013-1

    9/12

    8

    4.5 Operaciones Lineales entre imgenesConsiste en la aplicacin de operaciones aritmticas entre pixel y pixel de cadaimagen por lo que estas deben ser del mismo tamao. Debe tomarse en cuentala posibilidad de saturacin de la imagen al realizar estas operaciones ya queesto puede conducir a perdida de informacin en la misma. Supngase que

    cada pixel de una imagen es representado por 8 bits de datos (nivel de luz de 0a 255), en el caso de Matlab ningn pixel puede tener un valor mayor almximo por lo que ser saturado en caso se obtenga un resultado mayor enuna operacin. Esto se observa en la siguiente figura.

    Va

    loresde8

    bits

    Valores de Salida de Operacin

    Figura 10: Saturacin en Imgenes

    Para evitar esta prdida de datos es preferible trabajar con datos del tipo dobleprecisin en Matlab (comando im2double) y emplear las funcionescorrespondientes para operar con imgenes.El siguiente cdigo en Matlab muestra un ejemplo de suma de imgenes conruido gaussiano (aleatorio con media cero), al obtener el promedio de dichasimgenes se recupera la imagen original:

    Iori = imread('text.png'); % lectura de ImagenIdob = im2double(Iori); % Imagen en formato doble precisinfigure; imshow(Idob); title('Imagen original');

    Ruido = 0.3*randn(size(Idob)); % matriz de Ruido Gaussiano (mediacero) del tamao de la imagenIruido = imadd(Idob,Ruido);figure; imshow(Iruido); title('Imagen con Ruido'); % imagen con ruidogaussianoIsum = Iruido;

    %% suma y promedio de 20 imgenes con Ruido Gaussiano:fork=1:20

    Ruido = 0.3*randn(size(Iori));% actualizacin de imagen con ruido:Iruido = imadd(im2double(Iori),Ruido);Isum = imadd(Isum,Iruido); % sumatoria de imagenes con ruido

    end

    Iprom = imdivide(Isum,k+1); % imagen promediofigure; imshow(Iprom); title('Imagen Promedio');

  • 5/19/2018 guia Vision por computadora 2013-1

    10/12

    9

    Se obtiene El siguiente resultado:

    a) b) c)Figura 11:

    a) Imagen Originalb) Imagen Con Ruidoc) Imagen Promedio

    4.6 Teora de MomentosEn aplicaciones de identificacin y clasificacin de objetos por tamao,orientacin y reconocimiento de patrones la informacin brindada por losparmetros de regiones como el centroide, orientacin de objetos y reas es degran utilidad. Matlab cuenta con comandos para obtener estas y otraspropiedad de objetos en una imagen. Para obtener dichas propiedades esnecesario primero separar regiones y etiquetarlas Se muestra un ejemplo dedeteccin de regiones y marcado de centroides:

    I = imread('figures.bmp');%% Etiquetado de la imagen:[L num] = bwlabel(I); % L:Imagen etiquetada, num:Nmero de Regionesimshow(label2rgb(L));%% Propiedades de las regiones:centroide = regionprops(L,'centroid');area = regionprops(L,'area');orientacion = regionprops(L,'orientation');%% dibujar centroides sobre la imagenhold on;fori=1:length(centroide)

    x = centroide(i).Centroid(1);y = centroide(i).Centroid(2);plot(x,y,'*');

    end

    Se obtiene el siguiente resultado:

    a) b)Figura 12:

    a) Imagen Originalb) Imagen con Centroides Marcados

    A partir de los centroides calculados pueden obtenerse la distancia entre losobjetos presentes en la imagen. En el caso de una fotografa puede aplicarse

  • 5/19/2018 guia Vision por computadora 2013-1

    11/12

    10

    una regla de proporcionalidad para obtener la distancia real entre 2 objetos,esto ltimo asumiendo que la imagen haya sido tomada en la zona lineal de lacmara.

    5 Aplicaciones

    5.1 Control de calidadEn este ejercicio se cuenta con una pieza la cual tiene 4 tornillos en losextremos, como se muestra en la Figura 13, la tarea de Ud. Consiste encodificar un programa basado en visin que permita determinar la cantidad detornillos faltantes en una serie de imgenes (verFigura 14).

    Figura 13: Ubicacin de los cuatro tornillos en la pieza

    Figura 14: Imagen con 2 tornillos faltantes

    Para ello Ud. ya cuenta con las imgenes adquiridas (carpeta control decalidad), la cual tiene una imagen base (Imagen001.jpg) donde se puedeapreciar la ubicacin de los 4 tornillos. Antes de comenzar a realizar algnprograma, elabore un esquema de solucin en papel y mustrelo al jefe deprctica.

    Sugerencia:Utilice la imagen base para realizar la comparacin con el restode imgenes (consulte la funcion imabsdiff de Matlab), observe y determinelas coordenadas del centro de cada tornillo, emplee tcnicas de umbralizacin.

  • 5/19/2018 guia Vision por computadora 2013-1

    12/12

    11

    5.2 MetrologaEn los procesos industriales muchas veces es necesario determinar la posiciny forma de objetos para que un robot pueda trabajar con ellos. Por ejemplo, setienen procesos de empaque en los que los productos llegan a travs de unafaja transportadora y se tiene un robot que los recoge y ordena en una caja.

    Otro ejemplo son los sistemas de ensamble automatizados, en donde unsistema de visin coordina y supervisa el correcto ensamble de un producto.

    En el siguiente ejercicio se plantea desarrollar un sistema de visin quedetermine la informacin necesaria para que un brazo robot pueda coger unobjeto determinado. Para ello se requiere desarrollar un algoritmo que permitadeterminar las coordenadas de los centroides de un conjunto de objetos enunidades mtricas a partir de un origen; adems de determinar la orientacinque mejor conviene para que el brazo robot coja al objeto y por ltimo, hallar elrea del objeto. El algoritmo debe brindar la informacin obtenida asociada porel tipo de forma del objeto (cuadrado, rectngulo y crculo).

    Figura 15: Imagen de propuesta para aplicacin de metrologa

    Procedimiento sugerido:1) Establecer la relacin entre unidad mtrica y pxeles de forma manual

    (se mantiene para todas las imgenes)2) Segmentar la imagen. Utilice la funcin notde Matlab para invertir los

    colores en la imagen binarizada de ser necesario.

    3) Aplicar operaciones morfolgicas4) Etiquetar los objetos5) Determinar los momentos de los objetos (centroide, rea y orientacin)6) Asociar las propiedades segn el tipo de objeto7) Determinar las caractersticas que se piden en unidades de magnitudes

    fsicas (centroides, orientacin y reas) para cada una de las imgenes.