Está en la página 1de 9

Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática

Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015

Práctica de laboratorio Parte 2


Programación de una GUI de visión artificial para seleccionar objetos en Matlab

Introducción a la Visión Artificial


Se puede definir la “Visión Artificial” como un campo de la “Inteligencia Artificial” que, mediante la utilización de las
técnicas adecuadas, permite la obtención, procesamiento y análisis de cualquier tipo de información especial obtenida a
través de imágenes digitales.

La visión industrial o visión artificial aplicada a la industria, abarca la informática, la óptica y la automatización industrial.
A diferencia de la visión artificial académica, que se centra principalmente en máquinas basadas en el procesamiento de
imágenes, las aplicaciones de visión artificial industrial integran sistemas de captura de imágenes digitales, dispositivos de
entrada/salida y redes de computadores para el control de equipos destinados a la fabricación, tales como brazos
robóticos.

Los sistemas de visión artificial aplicados a la Industria están orientados a realizar tareas de inspección, control de calidad
y control de procesos. Mediante el procesamiento de imágenes es posible detectar la presencia o ausencia de atributos
de interés tales como defectos, dimensiones, formas y colores, además de reconocer textos y leer códigos de barra, entre
otras funcionalidades. Esto, finalmente, se traduce en importantes beneficios, entre los cuales podemos destacar:

 Mejorar la calidad de sus procesos a través de la separación automática de la línea de producción de los productos
defectuosos.
 Clasificar y cuantificar fallas para generar estadísticas y reportes que ayuden a las decisiones de mantenimiento y
al cumplimiento de normas y estándares.
 Controlar el proceso a través de la indicación del tipo de desviación que se está produciendo en la línea de
producción.
 Reducción de costos por reproceso y por personal dedicado a realizar estas tareas.

Componentes de un sistema de visión artificial

Generalmente, un sistema de visión industrial se compone de un conjunto de equipos como los siguientes:

 Un sistema de iluminación: Una buena iluminación es especialmente importante para la toma de imágenes de los
productos en una línea rápida de producción, aunque algunas aplicaciones pueden utilizar la luz ambiente.
 La lente de la cámara: La correcta selección de lentes es importante para alcanzar una solución óptima.
 Una o más cámaras para adquirir las imágenes: Las cámaras pueden ser analógicas, pero el precio de las cámaras
digitales está disminuyendo, de modo que éstas se están usando más a menudo.
 Un dispositivo de interfaz para transferir las imágenes al ordenador.
 Un procesador de imagen, computador o cámara inteligente: Una opción es utilizar cámaras inteligentes que
integran el procesamiento de imágenes dentro de la propia cámara, evitando la necesidad de transferir imágenes
a un computador externo. La velocidad de proceso de estas cámaras es inferior a la de un computador y existen
aplicaciones en las que éstas no son adecuadas.
 Una interfaz para notificar el resultado del análisis a un operador: Se puede notificar de este resultado mediante
una señal electrónica que opera un mecanismo de rechazo.

Página 1
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015
Los equipos listados permiten la realización de un conjunto de procesos destinados a realizar el análisis de imágenes,
dentro de los cuales se destacan los siguientes:

 Adquisición o captura de la imagen.


 Procesamiento: Es el proceso de aplicar algoritmos para realzar, segmentar y aislar el atributo de interés.
 Generación de resultados: Esto corresponde a obtener un resultado del análisis del atributo para definir si éste
cumple con los parámetros de aceptación.
 Despliegue de la imagen y/o resultados en un monitor para ser visualizados en línea.
 Comunicación: Consiste en la capacidad para enviar tanto imágenes como datos a otros equipos, ya sea a través
de una red o comunicación serial de una red.

Funciones de un sistema de visión artificial

Con la visión artificial industrial se pueden realizar las siguientes tareas:

 Automatizar tareas repetitivas de inspección realizadas por operadores.


 Realizar controles de calidad de productos que no era posible verificar por métodos tradicionales.
 Realizar inspecciones de objetos sin contacto físico.
 Realizar la inspección del 100% de la producción (calidad total) a gran velocidad.
 Reducir el tiempo de ciclo en procesos automatizados.
 Realizar inspecciones en procesos donde existe diversidad de piezas con cambios frecuentes de producción.
 Determinar la posición de los objetos en el espacio.
 Establecer relaciones espaciales entre varios objetos (guiado de robots)
 Reconocer rasgos propios de la persona usando una imagen (control de accesos-sistemas de seguridad).

Descripción de la Práctica
En esta segunda práctica de la temática de procesamiento de imágenes, se implementará un sencillo algoritmo de visión
artificial que tiene el objetivo de introducir a los estudiantes de señales y sistemas en las aplicaciones del toolbox de
procesamiento de imágenes con Matlab. El objetivo del algoritmo es ejemplificar todos los procesos que se utilizan en el
análisis de las imágenes en un sistema de visión artificial, diseñando un programa para seleccionar objetos por la
identificación de colores mediante el modelo RGB.

Objetivos
Al terminar esta práctica, el alumno estará en capacidad de:
 Realizar un programa para clasificar objetos mediante el uso de los comandos aprendidos en la primera práctica.
 Analizar las tres capas del modelo RGB para el procesamiento de imágenes.
 Ejemplificar el uso de la visión artificial mediante un caso práctico.

Actividades de preparación de la práctica:


Videos

Página 2
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015
Después de leer atentamente la introducción a la visión artificial de este documento, debe ver los siguientes videos que
ejemplifican el uso de la visión artificial en la industria.

1. Sistema de Clasificación de Vieiras mediante Visión Artificial. http://www.youtube.com/watch?v=psNaWFNoCNM


2. Inspeccionan naranjas con visión artificial
http://www.youtube.com/watch?v=pPGQFRFiWYs
3. Inspección con Visión artificial
http://www.youtube.com/watch?v=zguNLQasEVo

Responda las siguientes preguntas:

1. ¿Qué ventajas de la implementación de la visión artificial se observan en los tres sistemas de los videos?
2. ¿Actualmente cómo se realiza la inspección de calidad de las naranjas?
3. ¿En qué partes del proceso en el último video se hace uso de la visión artificial?, ¿qué función cumplen?
4. Con base en la introducción de este documento, realice un esquema que ejemplifique los componentes de un
sistema de visión artificial y las funciones de cada uno.
5. Identifique en el esquema realizado cada uno de los componentes de los sistemas observados en los 3 videos.

Base de datos

En cualquier sistema mediante visión artificial se hace necesaria la elaboración de una base de datos con imágenes que
cumplen con las características deseadas de los objetos a procesar. En el caso que se demuestra como ejemplo en la
práctica se utilizan imágenes de plátanos.

En esta práctica se realizará la captura de una imagen para su posterior comparación con las características de una base
de datos elaborada previamente, que permitirá su reconocimiento y clasificación.

Las imágenes de la base de datos se pueden capturar y guardar con Matlab. También se pueden descargar de internet
para lo cual es muy importante tener en cuenta el tamaño de la imagen, porque como se explicaba en la práctica anterior,
si los tamaños difieren se pueden tener errores o perturbaciones que dificulten el buen funcionamiento del algoritmo.

La base de datos para la comparación se puede elaborar mediante el siguiente código que usted puede implementar en
un script. Para iniciar debe encender la cámara con las características adecuadas como en la práctica anterior.

Página 3
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015

Cada imagen de la base de datos debe tener un nombre diferente que puede ser cambiado manualmente. Después de
hacer la captura de las imágenes aptas para la base de datos, debe guardar el “workspace”, lo que le generará un archivo
.mat que posteriormente será cargado en el código de comparación.

Para esta práctica es necesario utilizar un portátil con cámara, una hoja blanca y como mínimo tres objetos de la misma
clase pero distinto color, por ejemplo 3 lapiceros, 3 manzanas, 3 plátanos, ente otros.

6. Debe realizar su base de datos, escribiendo el código utilizado en un archivo .m (script). Recuerde usar el help de
Matlab cuando le sea necesario para entender su funcionamiento.
Para capturar las imágenes es necesario tener en cuenta que el fondo debe ser el mismo para todas, así se evitan
errores en el momento de comparar pixel a pixel.

Desarrollo de la práctica
Se realizará una aplicación de los comandos de Matlab para el procesamiento de imágenes, mediante un archivo de
Matlab, en la cual se implementará una comparación de objetos. El primer paso es la captura de la imagen que va a ser
analizada (desde la cámara del computador o la cámara externa), luego se compara con otras que se tienen como
referencia en la base de datos.

Para la comparación, el primer paso será la descomposición de la imagen en cada capa del modelo RGB, lo que dará como
resultado tres matrices de los pixeles de cada color, luego se realizará una comparación de colores pixel a pixel.

Después de generada la base de datos con la cual se desea comparar las imágenes a procesar, se enciende la cámara, de
igual forma que se realizó en la GUI de la práctica anterior.

Durante la captura de la imagen del objeto, se recomienda usar los cuadros de texto de Matlab para informar al usuario
que se desea capturar la imagen, como por ejemplo, el cuadro de texto que se muestra en la imagen 1.

Use el help Msgbox para entender la forma de programar el cuadro de texto.

Página 4
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015

Imagen1: Mensaje para la captura de la imagen

Utilizar el comando pause en el código es necesario para capturar las imágenes cuando se desee, de lo contrario se
realizará la captura en el momento de ejecución del código.

pause %espera hasta que presionen la tecla enter

Para guardar la imagen se usa el siguiente comando, el nombre de la imagen (im_RGB) está sujeto a la creatividad de los
estudiantes.

Para cerrar la ventana de imagen se hace uso del comando closepreview, las demás líneas son necesarias para mostrar la
imagen y finalizar la captura de la imagen del objeto.

El siguiente paso es cargar las imágenes en la base de datos del objeto a analizar.

load('dirección_de_la_imagen');

Es necesario conocer el tamaño de las imágenes de la base de datos y la nueva imagen para verificar que sean iguales,
para lo cual se hace uso del comando size.

DIM=size(im_RGB) %dimensión de la imagen tomada

Para visualizar la comparación es necesario graficar las imágenes dentro de la misma figura, para lo cual se usa el comando
subplot (en Matlab: help subplot).

Página 5
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015
Por ejemplo

Para la comparación de colores es necesaria la descomposición de la imagen por cada una de las capas del modelo RGB
(si es necesario repase el modelo RGB del documento teórico de la práctica anterior). Dicha descomposición se realiza de
la siguiente manera para la imagen nueva llamada im_RGB3:

Es necesario realizar esta descomposición para todas las imágenes, incluyendo las de la base de datos.

Para entender la descomposición es necesario recordar que cada imagen es una matriz tridimensional que se compone
de 3 colores (Red, Green y Blue), para lo cual se separa cada color como lo indica el primer comando y da como resultado
una matriz compuesta por los pixeles de cada color.

A continuación se debe hacer la comparación entre las imágenes, para este caso se sacarán promedios de cada color para
cada imagen, dando un rango de tolerancia adecuado (según el criterio de selección del objeto, importancia de los colores
en cada objeto y el tamaño del objeto a ser reconocido).

Con el condicional if, se estará preguntando si cada objeto se encuentra dentro del rango establecido, y se clasificará
según la imagen de la base de datos, para tomar la decisión de ser aceptado o rechazado.

Página 6
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015
Ejemplo: Se tiene un plátano verde en la imagen1 y un plátano maduro en la imagen2, si la imagen del objeto capturado
es un plátano verde, el objeto es permitido y es clasificado; si el objeto a capturar es una manzana o un plátano de otro
color, el programa lo debe rechazar.

En este caso la imagen nueva es RGB3, las imágenes de la base de datos son RGB y RGB2 para lo cual sus respectivas sumas
de vectores fila son

RGB3: sumR13

RGB: sumR1

RGB2: sumR2

Se comparan una a una las imágenes de la base datos con la nueva, mediante un if anidado que compara cada color dentro
de un rango de tolerancia. Los porcentajes de tolerancia se definen según la aplicación y qué tan específico se requiera
el resultado. Uno de sus principales trabajos será encontrar experimentalmente estos porcentajes de tolerancia.

Esta comparación por colores se puede realizar con cualquier objeto y es una aplicación sencilla para demostrar una forma
de seleccionar objetos. A nivel industrial se utilizan diversos análisis de color, tamaño y forma, usando filtros específicos
de procesado de imágenes.

Los resultados obtenidos se muestran en las siguientes figuras

Página 7
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015

Imagen2: Figura de las imágenes de la base de datos y la capturada para la comparación

En el caso de que sea rechazado saldrá el siguiente mensaje

Imagen3: Mensaje de rechazo

En el caso de que sea admitido ya se encuentra dentro del rango de plátano verde el mensaje es el siguiente:

Imagen4: Mensaje de aceptación (registrado)

GUI Visión artificial

Una vez usted haya programado el algoritmo y logrado su óptimo funcionamiento. Deberá generar la segunda GUI que
debe tener como funciones:

1. Capturar la imagen del objeto a validar.


2. Sacar los mensajes de aceptación o rechazo del objeto a validar.

Este algoritmo supondrá que la base de datos de imágenes ya ha sido creada con anterioridad.

Como puede observar, lo más importante es lograr el funcionamiento del algoritmo, ya que después incluirlo en una nueva
GUI será sencillo, si ya se tiene el funcionamiento.

Página 8
Universidad Nacional de Colombia Facultad de Minas Departamento de Energía Eléctrica y Automática
Señales y Sistemas Lineales. Semestre 2015-1 Profesora Eliana Isabel Arango Zuluaga, Ph.D. 16 de Marzo de 2015
Fechas de entrega:

El plazo máximo para el envío de las dos GUI de procesamiento de imágenes (las dos guía enviadas), será el día sábado 4
de abril de 2015 a las 12:00pm.

Se deberán enviar a la cuenta: eliana.isabel.arango@gmail.com

Se programará la sustentación de ambas GUI para obtener su nota final. En la sustentación se harán preguntas concretas
a cada miembro del equipo para verificar su participación en el desarrollo de ambas GUI y de su programación.

Referencias

 Romero A., Marín A., “Visión artificial usando Matlab”, disponible en:
http://alvarounal.blogspot.com/2011/12/vision-artificial-usando-matlab-parte-1.html.
 Image Acquisition Toolbox, Tomado marzo 14 de 2012, enlace: http://www.mathworks.com/products/imaq/
 http://www.etitudela.com/celula/downloads/visionartificial.pdf [último acceso: Mayo/12/2013].
 http://www.jasvisio.com/aplicaciones-vision-artificial-industria.html [último acceso: Mayo/12/2013].
 http://www.emb.cl/electroindustria/articulo.mvc?xid=212&tip=7 [último acceso: Mayo/12/2013].

Documento elaborado por la profesora Eliana Arango en colaboración con las estudiantes Verónica Londoño y Jhovana Marín

Página 9

También podría gustarte