Reconocimiento de formas y colores con Labview

S.E.P. S.E.S.T.N.M. T.N.M INSTITUTO TECNOLÓGICO DE TOLUCA UNIDAD DE INGENÍERA MECATRÓNICA Reporte: Reconocimiento de

Views 203 Downloads 4 File size 4MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

S.E.P.

S.E.S.T.N.M.

T.N.M

INSTITUTO TECNOLÓGICO DE TOLUCA UNIDAD DE INGENÍERA MECATRÓNICA

Reporte: Reconocimiento de colores y formas en Labview

MATERIA: CAM PROFESOR: Ing. Jesús Paredes Pedraza

PRESENTAN: Celaya Celis Héctor De Alba Gómez Mario Ariel Díaz López Francisco Javier Gaytán García Anali Reyes Castrejón Daniel Enrique Sánchez Delgado Carlos Alberto

Metepec, México, 01 de diciembre del 2015.

ÍNDICE

1.

INTRODUCCIÓN.......................................................................3

2.

DESCRIPCIÓN DE LA PRÁCTICA.................................................4

3.

OBJETIVOS..............................................................................5

4.

DESARROLLO...........................................................................6

4.1

Adquisición en tiempo real de imágenes..................................6

4.2

Procesamiento para el reconocimiento de colores....................6

4.3

Procesamiento para el reconocimiento de formas geométricas. 7

4.4

Interfaz con la tarjeta arduino................................................8

5.

RESULTADOS...........................................................................9

5.1 Diagrama a bloques.................................................................9 5.2 Panel Frontal.........................................................................10 5.3 Tarjeta externa......................................................................10 5.4 Pruebas.................................................................................11 6.

CONCLUSIONES......................................................................12

7.

FUENTES DE CONSULTA..........................................................13

2

1. INTRODUCCIÓN

Las técnicas de control inteligente basadas en el reconocimiento de patrones son cada vez más demandadas dentro del sector industrial debido a su alta eficiencia y nivel de confiabilidad. El reconocimiento de imágenes en específico ha sido aplicado satisfactoriamente a diversos procesos de manufactura, permitiendo realizar tareas de monitoreo y control de calidad sin la necesidad de operadores humanos y de forma totalmente automatizada. En la actualidad existen plataformas de desarrollo de software que facilitan la implementación de aplicaciones para el reconocimiento de patrones en imágenes, permitiendo que desarrolladores con pocos conocimientos en las áreas de control, procesamiento de señales e inteligencia artificial sean capaces de implementar este tipo de aplicaciones. La presente práctica presenta la descripción y desarrollo de un sistema de reconocimiento de colores y formas mediante el software Labview. En ella se especifican operaciones como la programación a bloques de la aplicación y su interfaz con la tarjeta arduino.

3

2. DESCRIPCIÓN DE LA PRÁCTICA Como se mencionó anteriormente la presente práctica busca el desarrollo de una aplicación capaz de reconocer colores y formas en tiempo real. Para ello se ha hecho uso de las siguientes herramientas: 1) Software Labview de National Instruments

2) Tarjeta Arduino UNO

3) WebCam

4) Patrones geométricos de varios colores

Los colores propuestos para el reconocimiento han sido azul, rojo y verde, mientas que las figuras propuestas han sido triangulo circulo y cuadrado. 4

La práctica puede describirse bajo los siguientes parámetros: 1) Haciendo uso del módulo de “Vision and motion” de Labview, se genera un programa a bloques capaz de adquirir imágenes de la webcam en forma continua, procesarlas y reconocer patrones. 2) El programa requiere de un entrenamiento basado en muestras, por lo que se generan éstas a base de los patrones geométricos y colores a reconocer para posteriormente emplearse en el entrenamiento. 3) Mediante la librería externa “Makerhub” se genera una subrutina dentro del programa la cual permite la comunicación con la tarjeta arduino (entre otras tarjetas). 4) Al ejecutar la aplicación y mostrarle los patrones geométricos, este los reconocerá y encenderá un led virtual dentro de la aplicación según sea el caso de forma y color detectado; de forma paralela al led virtual se activará un led real mediante la tarjeta arduino.

3. OBJETIVOS



Desarrollar un programa capaz de reconocer colores y encender un led virtual dentro de una aplicación según sea el caso.



Desarrollar un programa capaz de reconocer formas geométricas y encender un led virtual dentro de una aplicación según sea el caso.



Desarrollar una subrutina capaz de sincronizar el reconocimiento de formas y colores con la activación de leds físicos mediante una tarjeta arduino.

5

4. DESARROLLO

4.1

Adquisición en tiempo real de imágenes

La adquisición de imágenes en tiempo real se ha realizado por medio del bloque de “visión acquisition”. Este bloque permite adquirir imágenes de una cámara conectada al ordenador en los formatos de una sola toma, adquisición continua, adquisición finita, etc. Para este caso se ha configurado en adquisición continua con procesamiento en línea.

Ya que la aplicación es de procesamiento continua, todos los módulos quedarán definidos dentro de un bucle “while” infinito Cabe resaltar que la imagen es inicialmente almacenada en un buffer previo a su procesamiento en el bucle antes mencionado, este buffer se muestra en la anterior imagen mediante la etiqueta IMAQ. Esto se realiza con la intención de detectar errores generados en la cámara. Al bloque de visión acquisition se le conecta un botón de stop el cual detendrá la aplicación.

4.2

Procesamiento para el reconocimiento de colores

Para el reconocimiento de colores se ha empleado el módulo de “visión assistant” dentro del software Labview. Para ello, el módulo se ha configurado bajo la definición de color color location, la cual habilita al sistema para reconocer un patrón de color al instante que este entra en nuestra área de visión. En el VI, el vision assistant se ha colocado dentro del bucle while infinito ya que el procesamiento de la imagen será continuo. Dentro de los controles de 6

salida se ha habilitado en “number of matches” con la intención de que al reconocer un color el sistema envie un valor numérico de 1 a la salida; el number of matches se habilito para cada uno de los 3 colores que el sistema reconocerá.

Debe resaltarse que a la salida del control number of matches se colocó comparador lógico de tal suerte que se genere una condición lógica verdadero respectiva al reconocerse cierto color. Estas condiciones lógicas salida activarán un conjunto de leds indicadores dentro de la aplicación como un conjunto de leds reales vía la tarjeta arduino. 4.3

un de de así

Procesamiento para el reconocimiento de formas geométricas

El desarrollo de esta función siguió un procedimiento en su mayoría equivalente al reconocimiento de colores. De forma equivalente, se empleó un segundo módulo de visión assistant conectado en serie con el primero. En esta ocasión, primeramente se empleó un “color plane extraction” de las funciones de procesamiento a color, lo anterior con la intención de transformar nuestras imágenes a color adquiridas a imágenes en escala de grises. Posteriormente, se empleó la función de “pattern matching” contenida en las utilidades de Machine Visión. En total se emplearon 3 de estas funciones, una para cada patrón geométrico.

7

De forma análoga al reconocimiento de colores, se activó el control de number of matches y se conectaron las salidas a comparadores lógicos de igualdad con la finalidad de activar indicadores (leds) físicos y virtuales. Finalemente, se conectarón 2 funciones de gran importancia al programa fuera del bucle while infinito: un indicador de error y un liberador de memoria. El indicador de error tiene la función de mostrar un cuadro de dialogo dando una descripción de un error en caso de generarse, el liberador de memoria elimina la imagen almacenada en el buffer liberando la sección de memoria empleada. 4.4

Interfaz con la tarjeta arduino

Para esta función se empleó la librería “Makerhub” descargada mediante el VI Package Manager. Después de instalarse, para su correcto funcionamiento debe actualizarse el firmware de la tarjeta arduin mediante el siguiente procedimiento: 1. Conectar la tarjeta Arduino al ordenador. 2. Abrir Labview. 3. Seleccionar la pestaña de Tools-Makerhub –> Linx -> Linx Firmware Wizard. 4. Actualizar el firmware de arduino. Una vez instalada la librería y actualizado el firmware de la tarjeta se procederá a explicar el desarrollo del programa. Primeramente se inicializó el uso de la tarjeta mediante el módulo “Initialize”, para ello se generó un control (visible también en el front panel) cuya finalidad es seleccionar el puerto COM al que ha sido conectado la tarjeta antes de correr el programa. Acto seguido, se procedió a introducir el módulo “digital write” con la finalidad de controlar el estado lógico de las salidas digitales de la tarjeta. Debe notarse el cuadro azul conectado a este módulo, el cual representa un conjunto de

8

constantes que indican los números de los pines en la tarjeta a ser controlados.

Otro elemento de gran importancia a definirse en el módulo de digital write corresponde al control que indicará el cuándo deben activarse los pines antes definidos, para ello se generó un array de variables booleanas capaz de concentrar los valores generados por los comparadores de igualdad a la salida de los módulos del “vision assistant”. Ya que el módulo de digital write admite solo valores de control booleanos, el array puede ser conectado directamente al mismo. Finalmente, se generaron los módulos necesarios para finalizar la ejecución del programa ubicados fuera del bucle while infinito. Estos módulos son un digital close, un general close y un indicador de error. El digital close deshabilita los puestos digitales en la tarjeta, borrando los valores escritos previamente en esta. El close o general close termina la conexión con la tarjeta liberando el puerto COM empleado para la comunicación. El indicador de error muestra una descripción de la naturaleza del error en caso de generarse alguno.

5. RESULTADOS 5.1 Diagrama a bloques A continuación se muestra una imagen del diagrama a bloques completo:

9

5.2 Panel Frontal El panel frontal está compuesto por 4 elementos:    

Image out: Ventana donde se muestra el video capturado por la webcam. Leds indicadores: Muestran el patrón detectado según sea el caso. Serial Port: Permite al usuario determinar el puerto en el que se ha conectado la tarjeta. Botón de stop: detiene el programa.

A continuación se muestra una imagen del panel frontal:

10

5.3 Tarjeta externa La tarjeta arduino se encuentra conectada a 6 leds indicadores que son el equivalente físico de los mostrados en el panel frontal. Cabe aclarar que en la tira de leds con colores variados, el color de los leds corresponde con el color detectado por el software A continuación se muestra su estructura:

5.4 Pruebas A continuación se muestran imágenes del software ejecutándose, haciendo el reconocimiento de distintos patrones geométricos y activando los equivalentes leds físicos mediante la tarjeta arduino. 11

6. CONCLUSIONES

12

A pesar de que el reconocimiento se muestra muy estable después de aplicar una extracción de plano y trabajar bajo escala de grises, el sistema sigue siendo susceptible a perturbaciones externas, sobre todo al cambio de luminosidad ambiental. Otra observación es la ralentización del procesamiento generada por la aplicación de esta técnica, que si bien no disminuye las capacidades funcionales del reconocimiento, si lo vuelve visualmente menos atractivo. Se puede destacar la curva de aprendizaje de Labview por ser bastante reducida,

pues

el

desarrollo

de

esta

aplicación

consumió

un

periodo

aproximado de dos semanas partiendo de un conocimiento nulo del software. Labview se presente como una buena oportunidad para generar aplicaciones industriales y es ideal para ingenieros con poco o nulo conocimientos de electrónica, control y procesamiento de señales.

7. FUENTES DE CONSULTA 

https://www.youtube.com/watch?v=VHOCkpKF7t4&index=78&list=WL



https://www.youtube.com/watch?v=ClxiSBoFxNc&index=76&list=WL



www.ni.com/labview/esa/



www.ni.com/labview/vision/

13