S.E.P.
S.E.S.T.N.M.
T.N.M
INSTITUTO TECNOLÓGICO DE TOLUCA UNIDAD DE INGENÍERA MECATRÓNICA MECATRÓNICA
Reporte: Reconocimiento de colore ! "orm# en L#$%ie& L#$ %ie&
MATERIA: CAM PRO'ESOR: Ing. Jesús Paredes Pedraza
PRESENTAN: Celaya Celis Héctor De Alba Gómez Mario Ariel Daz !ó"ez #rancisco Ja$ier Gayt%n Garca Anali &eyes Castre'ón Daniel (nri)*e +%nc,ez Delgado Carlos Alberto
Mete"ec- Méico- /0 de diciembre del 1/02.
ÍNDICE
1.
INTRODUCCIÓN.......................................................................3
2.
DESCRIPCIÓN DE LA PRÁCTICA.................................................4
3.
OBJETIVOS..............................................................................5
4.
DESARROLLO...........................................................................6
4.1
Adquisici! "! #i"$%& '"() d" i$*+"!"s ..................................6
4.2 P'&c"s($i"!#& %('( ") '"c&!&ci$i"!#& d" c&)&'"s ....................6 4.3 P'&c"s($i"!#& %('( ") '"c&!&ci$i"!#& d" ,&'$(s +"&$-#'ic(s . 7 4.4 0.
I!#"',( c&! )( #('/"#( ('dui!&................................................8 RESULTADOS...........................................................................9
0.1 Di(+'($( ( )&qu"s .................................................................9 0.2 P(!") '&!#().........................................................................10 0.3 T('/"#( "#"'!(......................................................................10 0.4 P'u"(s.................................................................................11 .
CONCLUSIONES......................................................................12
5.
UENTES 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 ue facilitan la implementaci!n de aplicaciones para el reconocimiento de patrones en imágenes, permitiendo ue 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 bloues de la aplicaci!n y su interfaz con la tar#eta arduino.
3
2. DESCRIPCIÓN DE LA PRÁCTICA $omo se mencion! anteriormente la presente práctica busca el desarrollo de una aplicaci!n capaz de reconocer colores y formas en tiempo real. %ara ello se ha hecho uso de las siguientes herramientas&
16 S&,#7('" L(8i"7 d" N(#i&!() I!s#'u$"!#s
26 T('/"#( A'dui!& UNO
36 9"C($
46 P(#'&!"s +"&$-#'ic&s d" 8('i&s c&)&'"s
Los colores propuestos para el reconocimiento han sido azul, ro#o y verde, mientas ue las figuras propuestas han sido triangulo circulo y cuadrado. 4
La práctica puede describirse ba#o los siguientes parámetros& '( )aciendo uso del m!dulo de * Vision and motion” de Labview, se genera un programa a bloues capaz de aduirir imágenes de la webcam en forma continua, procesarlas y reconocer patrones. +( El programa reuiere de un entrenamiento basado en muestras, por lo ue se generan éstas a base de los patrones geométricos y colores a reconocer para posteriormente emplearse en el entrenamiento. ( -ediante la librería externa “Makerhub” se genera una subrutina dentro del programa la cual permite la comunicaci!n con la tar#eta arduino entre otras tar#etas(. /( 0l e#ecutar la aplicaci!n y mostrarle los patrones geométricos, este los reconocerá y encenderá un led virtual dentro de la aplicaci!n seg1n sea el caso de forma y color detectado2 de forma paralela al led virtual se activará un led real mediante la tar#eta arduino.
3. OBJETIVOS
•
•
•
3esarrollar un programa capaz de reconocer colores y encender un led virtual dentro de una aplicaci!n seg1n sea el caso. 3esarrollar un programa capaz de reconocer formas geométricas y encender un led virtual dentro de una aplicaci!n seg1n sea el caso. 3esarrollar una subrutina capaz de sincronizar el reconocimiento de formas y colores con la activaci!n de leds físicos mediante una tar#eta arduino.
5
4. DESARROLLO
4.1
Adquisici! "! #i"$%& '"() d" i$*+"!"s
La aduisici!n de imágenes en tiempo real se ha realizado por medio del bloue de *visi!n acuisition4. Este bloue permite aduirir imágenes de una cámara conectada al ordenador en los formatos de una sola toma, aduisici!n continua, aduisici!n finita, etc. %ara este caso se ha configurado en aduisici!n continua con procesamiento en línea.
5a ue la aplicaci!n es de procesamiento continua, todos los m!dulos uedarán definidos dentro de un bucle *while4 infinito $abe resaltar ue 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 etiueta 6-07. Esto se realiza con la intenci!n de detectar errores generados en la cámara. 0l bloue de visi!n acuisition se le conecta un bot!n de stop el cual detendrá la aplicaci!n.
4.2
P'&c"s($i"!#& %('( ") '"c&!&ci$i"!#& d" c&)&'"s
%ara el reconocimiento de colores se ha empleado el m!dulo de *visi!n assistant4 dentro del software Labview. %ara ello, el m!dulo se ha configurado ba#o la definici!n de color color location, la cual habilita al sistema para reconocer un patr!n de color al instante ue este entra en nuestra área de visi!n. En el 86, el vision assistant se ha colocado dentro del bucle while infinito ya ue el procesamiento de la imagen será continuo. 3entro de los controles de 6
salida se ha habilitado en *number of matches4 con la intenci!n de ue al reconocer un color el sistema envie un valor numérico de ' a la salida2 el number of matches se habilito para cada uno de los colores ue el sistema reconocerá.
3ebe resaltarse ue a la salida del control number of matches se coloc! un comparador l!gico de tal suerte ue se genere una condici!n l!gica de verdadero respectiva al reconocerse cierto color. Estas condiciones l!gicas de salida activarán un con#unto de leds indicadores dentro de la aplicaci!n así como un con#unto de leds reales vía la tar#eta arduino.
4.3
P'&c"s($i"!#& %('( ") '"c&!&ci$i"!#& d" ,&'$(s +"&$-#'ic(s
El desarrollo de esta funci!n sigui! un procedimiento en su mayoría euivalente al reconocimiento de colores. 3e forma euivalente, 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 extraction4 de las funciones de procesamiento a color, lo anterior con la intenci!n de transformar nuestras imágenes a color aduiridas a imágenes en escala de grises. %osteriormente, se emple! la funci!n de *pattern matching4 contenida en las utilidades de -achine 8isi!n. En total se emplearon de estas funciones, una para cada patr!n geométrico.
7
3e 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. 9inalemente, se conectar!n + 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
I!#"',( c&! )( #('/"#( ('dui!&
%ara esta funci!n se emple! la librería *-a:erhub4 descargada mediante el 86 %ac:age -anager. 3espués de instalarse, para su correcto funcionamiento debe actualizarse el firmware de la tar#eta arduin mediante el siguiente procedimiento& '. $onectar la tar#eta 0rduino al ordenador. +. 0brir Labview. . ;eleccionar la pesta"a de ? Linx =? Linx 9irmware @izard. /. 0ctualizar el firmware de arduino. Ana vez instalada la librería y actualizado el firmware de la tar#eta se procederá a explicar el desarrollo del programa. %rimeramente se inicializ! el uso de la tar#eta mediante el m!dulo * Initialize”, para ello se gener! un control visible también en el front panel( cuya finalidad es seleccionar el puerto $B- al ue ha sido conectado la tar#eta antes de correr el programa. 0cto seguido, se procedi! a introducir el m!dulo *digital write4 con la finalidad de controlar el estado l!gico de las salidas digitales de la tar#eta. 3ebe notarse el cuadro azul conectado a este m!dulo, el cual representa un con#unto de
8
constantes ue indican los n1meros de los pines en la tar#eta a ser controlados.
Btro elemento de gran importancia a definirse en el m!dulo de digital write corresponde al control ue 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 assistant4. 5a ue el m!dulo de digital write admite solo valores de control booleanos, el array puede ser conectado directamente al mismo. 9inalmente, se generaron los m!dulos necesarios para finalizar l a e#ecuci!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 tar#eta, borrando los valores escritos previamente en esta. El close o general close termina la conexi!n con la tar#eta liberando el puerto $B- empleado para la comunicaci!n. El indicador de error muestra una descripci!n de la naturaleza del error en caso de generarse alguno.
0. RESULTADOS 0.1 Di(+'($( ( )&qu"s 0 continuaci!n se muestra una imagen del diagrama a bloues completo&
9
0.2 P(!") '&!#() El panel frontal está compuesto por / elementos& •
• •
•
6mage out& 8entana donde se muestra el video capturado por la webcam. Leds indicadores& -uestran el patr!n detectado seg1n sea el caso. ;erial %ort& %ermite al usuario determinar el puerto en el ue se ha conectado la tar#eta. Cot!n de stop& detiene el programa.
0 continuaci!n se muestra una imagen del panel frontal&
10
0.3 T('/"#( "#"'!( La tar#eta arduino se encuentra conectada a D leds indicadores ue son el euivalente físico de los mostrados en el panel frontal. $abe aclarar ue en la tira de leds con colores variados, el color de los leds corresponde con el color detectado por el software 0 continuaci!n se muestra su estructura&
0.4 P'u"(s 0 continuaci!n se muestran imágenes del software e#ecutándose, haciendo el reconocimiento de distintos patrones geométricos y activando los euivalentes leds físicos mediante la tar#eta arduino. 11
. CONCLUSIONES
12
0 pesar de ue el reconocimiento se muestra muy estable después de aplicar una extracci!n de plano y traba#ar ba#o escala de grises, el sistema sigue siendo susceptible a perturbaciones externas, sobre todo al cambio de luminosidad ambiental. Btra observaci!n es la ralentizaci!n del procesamiento generada por la aplicaci!n de esta técnica, ue si bien no disminuye las capacidades funcionales del reconocimiento, si lo vuelve visualmente menos atractivo. ;e puede destacar la curva de aprendiza#e 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.
5. UENTES DE CONSULTA •
https&www.youtube.comwatchFvG8)B$:pH9It/JindexGIKJlistG@L
•
https&www.youtube.comwatchFvG$lxi;Co9xcJindexGIDJlistG@L
•
www.ni.comlabviewesa
•
www.ni.comlabviewvision
13