81
Control de qualitat de la cèl·lula de fabricació flexible mitjançant visió artificial Titulació: Enginyeria Automàtica en Electrònica industrial AUTOR: Ivet Saludes Carasusan . DIRECTOR: Albert Oller i Pujol . DATA: Maig / 2004.

Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

Control de qualitat de la cèl·lula de fabricació flexible mitjançant visió artificial

Titulació: Enginyeria Automàtica en Electrònica industrial

AUTOR: Ivet Saludes Carasusan . DIRECTOR: Albert Oller i Pujol .

DATA: Maig / 2004.

Page 2: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

Agraïments: A totes les persones que m’han alenat a realitzar aquest projecte.

Page 3: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

3

1 Introducció ................................................................................................................. 5

1.1 La Cèl·lula de Fabricació Flexible ................................................................... 5

1.2 Definició del Problema ..................................................................................... 9

1.3 Tipus de Controls de Qualitat ......................................................................... 10

1.4 Quan s’Utilitza Visió Artificial ? ................................................................... 11

1.5 El Sistema de Control de Qualitat de la Cèl·lula ........................................... 11

1.5.1 La Cambra d’Il·luminació....................................................................... 12

1.5.2 La Cinta Transportadora......................................................................... 13

1.5.3 El Sensor Inductiu ................................................................................... 14

1.5.4 El Pivot Pneumàtic.................................................................................. 14

1.5.5 La Càmera................................................................................................ 14

1.5.6 L’Ordinador............................................................................................. 15

1.5.7 El Programari Emprat ............................................................................. 16

1.5.8 Funcionament del Sistema de Visió....................................................... 16

2 Estructura Seguida per a Resoldre el Problema..................................................... 17

2.1 Fase 1: Definir el problema ............................................................................ 17

2.2 Fase 2: Anàlisi ................................................................................................. 17

2.3 Fase 3: Disseny i Simulació............................................................................ 22

2.4 Fase 4: Implementació .................................................................................... 23

2.5 Fase 5: Obtenció de resultats .......................................................................... 23

3 Disseny i Simulació del Programa de Visió amb Matlab...................................... 24

3.1 Introducció al Tractament d’Imatges en Visió Artificial.............................. 24

3.2 Llegir la Imatge .............................................................................................. 26

3.3 Transformar la Imatge a Escala de Grisos ..................................................... 26

3.4 Tècniques de Suavitzat de la Imatge .............................................................. 26

3.5 Regió d’Interès en la Imatge........................................................................... 28

3.6 Detecció de Vores ........................................................................................... 28

3.7 Equalització de la Imatge................................................................................ 30

3.8 Segmentació de la Imatge ............................................................................... 30

3.9 Neteja de la Imatge.......................................................................................... 32

3.10 Diagnòstic de la Peça .................................................................................. 33

3.11 Visió Artificial d’Alt Nivell ....................................................................... 34

4 Implementació del Programa de Visió amb LabVIEW......................................... 35

4.1 Introducció al LabVIEW................................................................................. 35

Page 4: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

4

4.2 Introducció a l’IMAQ Vision Builder de LabVIEW .................................... 35

4.3 Desenvolupament amb l’IMAQ ..................................................................... 35

4.4 Desenvolupament del Programa de Visió amb LabVIEW ........................... 39

4.4.1 El Pannell Frontal.................................................................................... 39

4.4.2 El Diagrama amb la Programació Interna de l’Instrument Virtual...... 40

4.4.3 Adquisició de la Imatge.......................................................................... 41

4.4.4 Anàlisi de la Imatge ................................................................................ 46

4.4.5 Diagnòstic de la Peça .............................................................................. 48

4.4.6 Activació de l’Electrovàlvula ................................................................. 49

5 Conclusions.............................................................................................................. 50

6 Noves Vies de Treball ............................................................................................. 51

7 Visió Artificial en 3D .............................................................................................. 52

8 Bibliografia .............................................................................................................. 53

9 Annex 1 – Seutp de la Cèl·lula................................................................................ 54

10 Annex 2 – Setup del Sistema de Visió Artificial............................................... 57

11 Annex 3 – Especificacions del Sistema d’Adquisició d’Imatges..................... 59

12 Annex 4 – Especificacions de la Càmera i la Òptica ........................................ 64

13 Annex 5 – Especificacions del Sensor ............................................................... 68

14 Annex 6 – Especificacions del Control d’Avanç de les Peces ......................... 70

15 Annex 7 – Fitxers Matlab.................................................................................... 73

Page 5: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

5

1 Introducció

1.1 La Cèl·lula de Fabricació Flexible

La cèl·lula de fabricació flexible és un sistema de producció integrat automatitzat i orientat a la docència que realitza l’assemblat d’un pistó que consta de quatre peces de plàstic i metall (base, tapa, molla i èmbol). El procés de muntatge forma un circuit constituït per autòmats en el qual es desplacen les peces mitjançant una cinta transportadora que arrossega un carro amb les peces portant-les d’un punt de muntatge al següent. L’ordinador central automatitza tot el procés, dóna les ordres als autòmats i coordina tots els senyals i events del sistema.

A cada punt de muntatge, un autòmat pneumàtic que està controlat per un PLC realitza una part de l’assemblat. Quan aquesta tasca s’ha efectuat, el carro amb la peça es deixa continuar i la cinta l’arrossega fins al següent punt de muntatge. Un vegada realitzat l’assemblat, una altra part del circuit realitza la tasca de control de qualitat que verifica les peces una per una. Es tracta d’un sistema de visió artificial, que comprova que no hi ha hagut cap error de muntatge.

En un futur també haurà de detectar a més, si les característiques observades en les peces es corresponen amb les esperades. Això ho farà comparant amb la informació que li arribarà de l’ordinador central (de com s’havia de fabricar la peça) quan s’estableixi aquesta comunicació. Un cop es determina que la peça és bona, un autòmat la retira del circuit i l’aguarda en un magatzem automatitzat. En el cas contrari, es deriva a una altra part del circuit per a ser recuperada. A la figura 1 es pot veure un dels autòmats.

Figura 1. Autòmat pneumàtic

Una CPU centralitza el comandament dels PLCs que governen els autòmats. Un enllaç tipus PROFIBUS connecta tots els PLCs en xarxa i a l’ordinador central que realitza el comandament de les diferents parts del sistema.

A la Figura 2 pot observar-se el pannell de connexions d’un dels autòmats, on hi ha instal·lada la CPU.

Autòmat

Cinta

Page 6: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

6

Figura 2. Autòmat amb CPU que coordina tots els autòmats.

Finalment, un programa tipus SCADA que estarà instal·lat al PC permetrà que el control del procés pugui ser visualitzat i manipulat per un usuari de forma gràfica. La figura 3 mostra els ordinadors que coordinen tot el sistema de producció integrat.

Figura 3. PC’s que controlen el sistema

Es podria dir que la cèl·lula està dividida en tres parts; la primera seria el circuit primari que consta de quatre autòmats que realitzen exclusivament la tasca d’assemblat del pistó. La cinta transportadora forma un circuit tancat que porta les peces d’un autòmat al següent, fins a arribar al darrer, que selecciona si estan complertes. Si ho estan, són dipositades al circuit secundari. En la figura 4 es pot apreciar el circuit primari o d’assemblat.

CCCPPPUUU

Page 7: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

7

Figura 4. Circuit d’assemblat

El segon circuit, recull les peces bones i detecta la seva composició mitjançant tres sensors (inductiu, capacitiu i de presència) que sensen el pistó que ha arribat, de manera que combinant les respostes dels tres sensors es pot detectar si la base és rosa, negra, o metal·litzada. Aquesta informació serà transmesa al control de qualitat, que verificarà mitjançant la visió artificial, que és correcte. Aquest pas, tracta el control de qualitat de la peça, que verifica si els pistons estan correctament muntats per deixar-los passar al magatzem o derivar-los a una zona de recuperació. En la figura 5 es pot veure el circuit secundari.

Figura 5. Circuit de control de les peces fabricades

Sensors

Recuperació i control

Circuit secundari

Page 8: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

8

Es pot considerar que el darrer pas de la cèl·lula, és l’emmagatzematge de les peces un cop verificades pel control de qualitat. Aquest magatzem és una estructura automatitzada de diversos pisos que recull les peces ben muntades. La figura 6 mostra aquest subsitema.

Figura 6. Magatzem de peces OK.

El pistó consta de base, tapa, molla, i èmbol. Aquestes peces són de diversos colors, essent la base negra o vermella o metal·litzada, la tapa sempre és blava, i l’èmbol pot ser negre o metal·litzat. La figura 7 mostra aquestes peces.

Figura 7. Varietat de peces

Page 9: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

9

En la figura 8 es pot veure un exemple de pistó ben muntat.

Figura 8. Exemple d’una peça ben muntada

1.2 Definició del Problema

Tenim una cadena de producció automatitzada però no sabem si allò que fabriquem compleix la qualitat que esperàvem. Cal doncs, implementar un sistema de control que verifiqui les peces per identificar possibles components defectuosos.

El fet que el sistema estigui automatitzat, no garanteix que no es produeixin errades de muntatge, ja que poden aparèixer situacions imprevistes com per exemple:

- que manquin les peces que el robot autòmat recull del seu dipòsit per muntar-les

- que el braç robot no subjecti des d’un punt de vista mecànic la peça correctament i la dipositi en una posició incorrecta quedant mal muntada

- pot produir-se una caiguda de tensió del subministrament elèctric que ocasioni una fallada en la sincronització del procés

- pot haver-hi una caiguda de pressió del circuit pneumàtic que produeixi un desajust en la carrera del braç pneumàtic del robot autòmat

- d’altres imprecisions o desajust esporàdics del sistema que poden conduir a un assemblat incorrecte.

Aquests errors son difícilment evitables, i com d’aquesta incertesa faria que el sistema no fos fiable com a sistema de producció autònom, es resol el problema amb un control de qualitat que revisa el material fabricat per evitar que les errades de muntatge passin desapercebudes i les peces mal muntades siguin donades per bones.

En el nostre cas, els possibles errors es redueixen a:

- que falti alguna de les peces que composen el pistó,

- que els colors de les peces no siguin els anunciats pel sistema.

Page 10: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

10

La figura 9 mostra els exemples d’error de muntatge.

Figura 9. Totes les possibilitats d’error de muntatge

Per tant, cal estudiar quin tipus de control de qualitat cal implementar per a eliminar aquesta incertesa.

1.3 Tipus de Controls de Qualitat

Segons les característiques de la peça que volem revisar podem dir que es tracta d’un control per atributs o per variables.

El control per variables seria la comprovació d’una mida d’una peça en producció de la que es vol estudiar la variabilitat per a mantenir-la dins de toleràncies. Aquest tipus de control és estadístic (SPC), i es prenen mostres de la producció cada cert temps, anotant els valors que pren la variable a controlar i representar-ho gràficament per a veure la capacitat del procès. Quan aquestes mesures surten dels límits de control s’ha d’aturar el procés i analitzar els motius de la desviació.

En el control per atributs, el que es vol comprovar no són les mides sinó els atributs com la forma o el color, que no son magnituds mesurables. Si un dels atributs no és correcte la peça s’ha de treure de la producció per a ser recuperada. També s’anomena control passa-no passa. Aquest és el nostre cas, ja que són aquests atributs els que ens permeten reconèixer si la peça és bona.

El control pot ser humà o automàtic. Es pot emprar una persona per a revisar les peces una per una, com és el cas de moltes cadenes de producció. L’inconvenient és que segons estudis realitzats en l’àmbit industrial, s’ha comprovat que l’atenció de l’operari va disminuint degut a la fatiga, i com a màxim arriba al 95% en processos manuals de selecció de peces, és a dir alguns defectes passen desapercebuts. D’altra banda, els processos d’inspecció automàtics, a part de ser més fiables, empren menys temps, i no cal dedicar un operari, i això es tradueix en un estalvi econòmic. En el nostre cas, el que

Base buida

Sense tapa Sense èmbol

Peça OK

Tapa mal ajustada

Page 11: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

11

pretenem és automatitzar el procés de producció, i busquem un sistema automàtic de selecció que substitueixi un control humà.

Segons el tipus de peces, la inspecció pot ser parcial o exhaustiva. Si totes les peces són iguales, la revisió pot ser parcial, prenent algunes mostres, per a comprovar que el procés de producció està sota control. No obstant, ha de ser exhaustiu en els cas de que les peces siguin totes diferents, verificant les peces una per una, com és aquest cas.

1.4 Quan s’Utilitza Visió Artificial ?

La visió artificial s’utilitza precisament en aquells casos en que busquem substituir la visió humana per un visió computeritzada. Quan en un entorn industrial es requereix una automatització del procés d’identificació de components defectuosos, i es desitja substituir l’operari per una màquina per evitar errors humans deguts a la pèrdua d’atenció per fatiga, es recorre a la visió artificial.

Ja hem vist que el tipus de control de qualitat que necessitem és per atributs (color, forma, mida), automàtic i volem que revisi el 100% de la producció.

Està clar que aquest sistema és l’idoni per a la nostra aplicació, ja que ens permet revisar totes les peces amb fiabilitat i rapidesa en la inspecció. En la figura 10 es pot veure el sistema visió artificial per al control de qualitat de la cèl·lula.

Figura 10. Sistema de visió per al control de qualitat de la cèl·lula de fabricació flexible.

1.5 El Sistema de Control de Qualitat de la Cèl·lula

Aquest control de qualitat que és l’objecte d’aquest projecte, és la darrera etapa d’aquest sistema de producció integrat.

Després de completar el circuit, la peça arriba al control de qualitat, on es veurà si ha estat ben muntada o no. Si és així, es deixa passar la peça al següent pas on serà emmagatzemada. En cas contrari, la peça és retinguda i s’ha de treure del circuit per a ser

Page 12: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

12

recuperada. En un futur, s’haurà d’implementar la realimentació del sistema, avisant a la resta dels punts de la cèl·lula de que hi ha hagut un error de fabricació.

Per a realitzar el sistema de control de qualitat s’ha aprofitat l’estructura existent dels dos projectes final de carrera anteriors [1] i [2]. En ells es va construir a la cèl·lula un sistema de visió que revisava plaques de circuit imprès. La instal·lació comptava amb una cambra d’il·luminació on es fa la fotografia de les peces, muntada sobre la cinta transportadora (tal com es veu a les figures), un PC que analitza la imatge rebuda per la càmera, i dues fonts d’alimentació que donen corrent al sensor i l’electrovàlvula. En la figura 11 es veu el conjunt del sistema amb aquestes tres parts.

Figura 11. Parts que composen el sistema de visió artificial

Tal com ja s’ha mencionat, el control per visió és una part més del sistema, que haurà d’estar en comunicació en xarxa tipus PROFIBUS amb ell.

Concretament, el sistema ha d’enviar la informació de la seqüència de peces que van arribant al control de qualitat, de manera que aquest ha de poder comprovar que les característiques d’aquella peça que li arriba corresponen a les dades que li arriben sobre ella. En realitat, aquesta comunicació encara no ha estat implementada, i la visió artificial no rep encara la informació de les peces que està revisant.

1.5.1 La Cambra d’Il·luminació

L’armari de fusta, que fa de cambra d’il·luminació, està situat sobre la cinta transportadora muntat de tal manera que les peces entren per sota sobre un carro que és transportat per la cinta, i s’atura dins seu per tal de poder fotografiar les peces.

Per a poder fer la fotografia en condicions, la peça ha d’estar molt ben il·luminada, ja que les ombres i reflexes dificulten les tasques d’anàlisi de la imatge .

Això està resolt amb quatre fluorescents dins la cambra tancada que donen un nivell d’il·luminació d’uns 900 lúmens, suficient per a poder fer la instantània.

Fonts

d’alimentació

Cambra d’il·luminació

Ordinador

Page 13: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

13

En el moment de fer la foto, cal que la porta de l’armari estigui tancada, ja que si la llum exterior entra, el nivell de lluminositat varia i per tant, apareixen ombres i el reconeixement de patrons pot no ser efectiu. La figura 12 ens mostra la cambra.

Figura 12. Cambra d’il·luminació.

1.5.2 La Cinta Transportadora

La cinta transportadora de la cèl·lula s’encarrega de fer circular les peces sobre uns carros que són deturats mecànicament per pivots pneumàtics en arribar a l’autòmat, per a poder realitzar el corresponent assemblat.

En el cas del control de qualitat, són deturades el temps necessari per a ser fotografiades i comprovar que tot és correcte. En cas contrari, la peça és desviada en una derivació de la cinta per a ser retirada.

Aquesta, funciona amb un motors elèctrics que la fan rodar. Es pot veure en la figura13 la cinta, i els carros en planta i perfil, per tal de comprendre la manera com es desplacen els carros per les guies.

Figura 13. Vistes de la cinta i del sistema de gir del carro a les cantonades del rail

Page 14: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

14

1.5.3 El Sensor Inductiu

Un sensor inductiu detecta l’arribada del carro que transporta les peces a supervisar. Aquest senyal, és un trigger que fa servir el programa de visió per a començar a adquirir la imatge des de la càmera. A la figura 14 es mostra el sensor. (especificacions, capítol 12).

Figura 14. Sensor que detecta la presència del carro.

1.5.4 El Pivot Pneumàtic

Davant de cada autòmat hi ha un pivot pneumàtic que sobresurt i atura el carro mecànicament. Dins la cambra d’il·luminació, també n’hi ha un, però aquest està regulat per una electrovàlvula que es governa mitjançant el programa de visió artificial. Quan la peça ha estat revisada, el programa dóna la ordre per activar aquesta electrovàlvula, el pivot s’amaga i allibera el carro. En la figura 15 podem veure el pivot i la electrovàlvula. (per a veure especificacions sobre el control d’avanç de la peça, consultar capítol 13).

Figura 15. Pivot pneumàtic i la electrovàlvula que l’activa.

1.5.5 La Càmera

Per a realitzar l’adquisició de la imatge, hem fet servir una càmera de vídeo (instal·lada dins la cambra d’il·luminació) que està sempre en funcionament, i és el

Sensor inductiu

Page 15: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

15

programa de visió qui s’encarrega d’escollir el moment de fer la fotografia. En la figura 16 es pot veure la càmera emprada, una PULNIX CCD 2015 (per a veure especificacions sobre la càmera i la òptica, consultar capítol 11).

Figura 16. Càmera utilitzada per a aquest sistema de visió.

1.5.6 L’Ordinador

En la figura 17 podem veure l’ordinador que s’encarrega d’analitzar la imatge de la peça. Aquesta prové de la càmera i està mostrejada i digitalitzada per una tarja d’adquisició d’imatges instal·lada a l’ordinador. (per a veure especificacions sobre el sistema d’adquisició d’imatges, consultar el capítol 10).

Figura 17. Ordinador on està instal·lat el programa de visió artificial

Page 16: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

16

1.5.7 El Programari Emprat

Els programes que s’han emprat en aquest projecte, són Matlab 6.0, LabVIEW, i IMAQ Vision Builder. El primer s’ha fet servir durant el disseny, i els altres dos en la implementació. (per a veure introducció a aquest programmari, consultar capítols 3 i 4).

1.5.8 Funcionament del Sistema de Visió

El funcionament del control de qualitat per visió és el següent:

- El sensor inductiu detecta la presència del carro i aquest senyal és enviat a l’ordinador.

- El programa de visió desenvolupat amb LabVIEW llegeix aquest senyal i dispara la càmera.

- La càmera envia a l’ordinador la imatge captada.

- L’ordinador disposa d’una tarja d’adquisició d’imatges configurada per a que LabVIEW pugui recobrar la imatge i treballar-hi. Comença el processament de la imatge.

- Un cop realitzat l’anàlisi, enviem un senyal pel port paral·lel de l’ordinador a la electrovàlvula que mou el pivot per a que alliberi el carro.

Page 17: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

17

2 Estructura Seguida per a Resoldre el Problema

Per tal de dissenyar el control de qualitat, s’han seguit uns passos de manera estructurada. La figura 18 mostra l’organigrama del procediment seguit.

Figura 18. Organigrama de les diferents etapes seguides en el disseny de l’aplicació

2.1 Fase 1: Definir el problema

Al capítol 1.2, s’ha explicat quin és exactament el problema que volem resoldre. Ja s’ha vist que els autòmats poden produir errors de muntatge. Hem estudiat els casos possibles i concretament hem arribat a la conclusió que necessitem un sistema que supervisi les peces una per una.

2.2 Fase 2: Anàlisi

En aquest apartat estudiarem com s’ha resolt el problema que acabem de definir.

Admetem que el sistema pot fallar, i el que estem buscant, és detectar els defectes, per tant, hem de revisar allò que fabriquem. El que fem es analitzar amb l’ordinador les imatges de les peces assemblades captades per una càmera per a identificar possibles errades.

Tal com s’ha explicat al capítol 1.4, s’ha determinat que la millor manera de resoldre aquest control de qualitat és amb un sistema de visió artificial, i per tant, caldrà una o dues càmeres i una CPU que pugui processar la imatge adquirida.

En el nostre cas, els possibles errors es redueixen a:

- que manqui alguna de les parts de la peça,

Definir el problema

Anàlisi

Disseny

Simulació

Implementació

Resultats

Verificació (redisseny)

Errors en la implementació

Error greu

(definció incorrecta)

Page 18: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

18

- que la tapa no estigui ben ajustada

- que els colors de les peces no es corresponguin als anunciats pel sistema

D’aquests casos només podem comprovar el primer, per dues raons:

La primera, és que actualment disposem d’una sola càmera en blanc i negre i només podem captar una sola imatge de la peça. Això limita les possibilitats d’anàlisi, ja que hem de discriminar si la peça és bona només amb la fotografia en una sola posició, ja sigui planta o perfil. Concretament, hem escollit una imatge de planta, que ens permet veure el màxim de característiques de la peça que ens arriba muntada (en aquest cas, la presència de totes les parts que composen la peça). No obstant, quan es disposi de les dues càmeres en color, es tindrà també una imatge de perfil, i això permetrà comprovar les altres dues característiques de la peça muntada.

La segona, és que encara no s’ha implementat a la cèl·lula la comunicació entre el control de qualitat i la resta del sistema, i per tant, el control no rep del sistema la informació de les característiques de les peces que li van arribant (i que hauria de verificar).

amb aquests mitjans de que disposem, podem saber si hi ha totes les parts de la peça, i allò que no podem verificar és si la tapa està ben ajustada ni el color de la base.

2.2.1 Ordinador

La primera solució comercial de hardware que es va trobar per a realitzar la tasca del processament i anàlisi de les imatges, va ser el PC104, una innovació en el sentit d’estalvi de materials. Es pot descriure bàsicament com un placa base d’ordinador amb CPU i RAM que fa la mateixa funció que un PC amb la diferència que un cop configurada i carregat el software, es poden retirar els accessoris perifèrics que ja no seran necessaris, el que suposa una economia d’espai i de materials.

Amb els perifèrics bàsics com la pantalla i el teclat es podran instal·lar el sistema operatiu i el programa de visió, amb la opció de desconnectar-los a continuació. En realitat no és estrictament necessari veure els resultats intermedis per pantalla de les imatges processant-se sinó que el que ens interessa és que el sistema sigui autònom i finalment doni un senyal de sortida amb la decisió de si la peça és bona o no. El PC104, disposa de ports sèrie i paral·lel que farien possible la comunicació amb la resta del sistema. També es pot demanar amb dos ports USB que permetrien la connexió de dues càmeres web. Pot veure’s en la figura 19 un model de PC104.

Figura 19. PC 104

Page 19: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

19

Aquesta solució aparentment més austera que la de fer servir un ordinador sencer, és més cara o més complicada. Si volem adquirir una placa base amb els accessoris mínims com ara les bateries i un disc dur per al programari, resulta que la placa subministrada no porta ni tant sols el sistema operatiu ni els drivers per a reconèixer els perifèrics i el preu final de tot plegat és quasi bé el d’un ordinador. A més cal tenir en compte la dificultat i temps que representa tota aquesta configuració de la placa.

Si adquirim un ‘kit’, la placa ja està configurada, du els drivers, el sistema operatiu, teclat, pantalla, mouse, bateries i disc dur, però el preu és molt superior al d’un ordinador nou.

Per totes aquestes raons, s’ha resolt descartar aquesta solució i emprar un ordinador normal del laboratori per a aquesta tasca, ja que el que es buscava era la opció més barata i pràctica.

En el temps que aquest projecte estava en la fase de disseny, els projectes [1] i [2] varen construir el sistema de visió artificial per a revisar plaques de circuit imprès situant-lo al final del circuit de la cèl·lula. Finalment, quan va arribar el moment d’implementar aquest projecte es va emprar aquesta instal·lació, adaptant-la a la resolució del control de qualitat de la cèl·lula de fabricació flexible.

2.2.2 La càmera

La primera solució que es va trobar va ser fer servir dues càmeres web que captarien la imatge i aquesta seria enviada a un ordinador per a fer la posterior anàlisi.

Finalment, s’ha resolt l’aplicació fent servir la instal·lació construïda en els dos projectes final de carrera anteriors [1] i [2], que han fet servir una càmera de vídeo en blanc i negre (veure figura 16).

La solució definitiva (que encara no s’ha implementat) per aquest sistema de visió artificial, serà emprar dues càmeres que duen un microcontrolador tipus PIC. Aquest, s’encarrega de disparar les càmeres quan arriba la peça i pot donar a l’ordinador el senyal necessari per començar el processament i anàlisi de la imatge. El propi PIC es pot programar per a fer part del processament de la imatge alliberant pes de càlcul al PC. Aquest tipus de càmera té menys píxels i la mida de la imatge és més petita.

Figura 20. Imatge d’un model de càmera amb microcontrolador tipus PIC

Actualment, encara no es disposa d’aquestes dues càmeres.

Page 20: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

20

2.2.3 El Software

En una primera aproximació, es va considerar que Matlab 6.0 seria el software idoni per a realitzar el programa de visió que analitzés les imatges captades per la càmera.

Matlab és un llenguatge d’alt nivell per càlcul tècnic. Integra còmput, visualització i programació en un entorn fàcil d’usar on els problemes i solucions són expressades en llenguatge numèric. Les utilitats típiques són:

Matemàtica i còmput

Desenvolupament d’algorismes

Modelatge, simulació i prototipus

Anàlisi de dades, exploració i visualització

Gràfics científics i d’enginyeria

Desenvolupament d’aplicacions, incloent disseny de GUIs (graphical user interface)

La raó principal d’emprar Matlab és que disposa d’un toolbox de tractament d’imatges molt complerta que permet fer tot tipus d’anàlisis morfològiques sobre elles. Les demos serveixen per a conèixer quines funcions permeten filtrar, segmentar, detectar vores, etc., veure les possibilitats del Toolbox, i és una ajuda per a estudiar com resoldre la nostra aplicació. La figura 21 mostra els toolbox i una demostració en funcionament per detectar vores.

Figura 21. Programa Matlab amb una de les demostracions

En les fases de disseny i simulació s’ha creat el programa d’anàlisi d’imatges amb Matlab (veure capítol 3).

Un programa anomenat SupervisionCam [x], seria instal·lat al PC i rebria la imatge de les càmeres en tot moment, detectant el moviment de la peça quan aquesta arribés (és a

Page 21: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

21

dir, variació en la imatge captada per la càmera). Aquest software podria engegar un programa que estigués instal·lat dins el PC, en aquest cas el programa de visió artificial desenvolupat amb Matlab, convertit en executable mitjançant Visual C. En la figura 22 es mostra la pantalla de configuració del programa SupervisionCam.

Figura 22. Software que detecta moviment en les càmeres i posaria en marxa l’executable de Matlab

Finalment, la implementació no s’ha fet amb Matlab sinó amb LabVIEW. En aquest cas no ens cal emprar SupervisionCam que cridi un executable perquè el programa de visió desenvolupat amb LabVIEW està sempre en funcionament i l’adquisició per part de la càmera s’activa amb un trigger.

D’aquesta manera hem aconseguit que el sistema de visió artificial pugui funcionar de manera automàtica amb la resta del sistema. És el propi programa de visió creat amb LabVIEW qui gestiona els senyals per començar a captar la imatge de la peça, controlar el seu avanç, etc.

La implementació s’ha fet amb LabVIEW, perquè la nostra aplicació ha aprofitat la instal·lació física construïda en els projectes [1] i [2]. Com han utilitzat LabVIEW per a desenvolupar els seu programa de visió artificial i per a configurar la placa PCI 1407 d’adquisició, ha resultat més còmode treballar amb LabVIEW (aplicant el disseny i simulació fets amb Matlab). Una petita part del programa de visió desenvolupat en aquests projectes (l’adquisició per trigger, els senyals d’activació vers la electrovàlvula), s’ha incorporat a la nostra aplicació. La resta d’aquest programa és diferent, ja que encara que l’objectiu és el mateix (un programa de visió artificial per a control de qualitat) les aplicacions són diferents.

Per altra banda, LabVIEW és un software fàcil de programar i molt potent que disposa de l’IMAQ Vision Builder, un programa precisament dissenyat per a la visió artificial. Això ha fet que s’hagi pogut implementar el sistema de visió de manera relativament més fàcil que si s’hagués hagut de fer amb Matlab. De fet per a reconèixer patrons amb Matlab cal recórrer a la llibreria de xarxes neurals, i construir i entrenar un perceptró multicapa que ens reconegui els patrons dins les imatges de les peces a revisar. Veure bibliografia [3].

Page 22: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

22

2.3 Fase 3: Disseny i Simulació

En aquesta fase s’ha creat un programa d’anàlisi d’imatges amb Matlab.

Inicialment, es comptava que disposaríem de dues càmeres web que donarien una imatge de planta i una altra de perfil. En el disseny inicial del programa de tractament d’imatges i quan encara no disposàvem d’imatges reals de les peces, es van fer servir dibuixos que simulaven aquestes per a estudiar quines operacions calia fer per a obtenir els resultats desitjats.

Concretament, s’ha estudiat com llegir la imatge, transformar-la a escala de grisos, afegir soroll, filtrar, definir una regió d’interès, detectar vores, dilatar, erosionar i segmentar.

Posteriorment i durant la fase de simulació, es va fer el mateix tractant amb imatges reals de les peces, per a estudiar si el disseny era adequat. En aquest punt es va redissenyar el programa perquè es va arribar a la conclusió que de totes les operacions sobre les imatges les que ens interessaven especialment eren les de segmentació i neteja de la imatge i binarització.

El que volem saber és només el color de l’èmbol, ja que la tapa només pot ser blava, i si estudiem un regió d’interès situada al centre de la peça tenim suficient informació per a saber si hi ha totes les peces (la base, la tapa, i l’èmbol). Per a fer això, segmentem la imatge transformada en escala de grisos convertint el que originàriament eren colors, en imatges binàries (el color que volem separar queda en negre i la resta en blanc). Si a més netegem la imatge, esborrant punts aïllats, aconseguim separar correctament els colors de la peça. Al final, el que resta és veure quins colors estaven presents en la peça fotografiada. Això es fa prenent un píxel de cada una de les segementacions de la imatge per a veure si aquell interval de gris (color) estava present en la fotografia.

Aquest sistema funciona bé, encara que el reconeixement de patrons és molt més eficaç, doncs el programa busca una imatge patró en la fotografia de la peça. Només cal reconèixer dos o tres patrons corresponents als tres casos possibles (èmbol negre, èmbol metàl·lic, sense èmbol), i això en Matlab es fa mitjançant les xarxes neurals.

És per això que en el redisseny de la aplicació s’ha resolt recórrer a aquest sistema però treballant directament amb l’IMAQ de LabVIEW. El disseny de xarxes neurals amb Matlab és molt més complicat que la programació gràfica de l’IMAQ, que ho fa de manera automàtica sense accés al programador. Això representa un estalvi important de temps de disseny. Es pot concloure, que el disseny amb Matlab ens ha servit per a aprendre a processar imatges i binaritzar-les.

D’altra banda, en la fase d’implementació es veurà que amb LabVIEW hem programat fàcilment dues accions que amb Matlab hauria esta molt més complicat:

1. Captar la imatge des de la càmera per a guardar-la (o no) en un fitxer d’imatge: amb Matlab simplement la llegim d’un fitxer sense haver programat com hi arriba.

2. Emetre una ordre a l’electrovàlvula que puja o baixa el pivot pneumàtic: en el disseny amb Matlab només apareix per pantalla el resultat o diagnòstic de la peça, sense que això representi una acció envers al sistema o que hi hagi comunicació amb ell.

En el capítol 3 s’explica detalladament el procés de disseny del programa de visió creat amb Matlab.

Page 23: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

23

2.4 Fase 4: Implementació

El procés de disseny i simulació en el qual hem utilitzat Matlab ens ha servit per a definir el programa de visió artificial que ens revisi les peces, i el programa desenvolupat amb LabVIEW és la implementació d’això.

En aquesta hem aplicat les tècniques de processament de la imatge que hem dissenyat en Matlab, però fent canvis. Per exemple, en LabVIEW, només hem fet servir les funcions de binarització per llindars de gris i cerca de patrons de l’IMAQ, que han estat suficients per a extreure les característiques desitjades de la fotografia inspeccionada, necessàries per a poder determinar si la peça és bona.

El programa de visió creat, comença a adquirir la imatge quan rep el senyal de trigger. Una vegada analitzada la imatge de la peça, determina si és bona. A continuació, emet un senyal pel port paral·lel que activa l’electrovàlvula per a deixar continuar la peça tant si és bona com si no. En el cas que no sigui bona, i quan s’implementi la comunicació amb la resta del sistema, s’emetrà un informe per a que no sigui recollida pel mecanisme que la diposita en el magatzem i continuï cap a la zona de recuperació.

El criteri de cerca de patrons empleat és buscar el patró que conté la regió d’interès d’un peça amb l’èmbol negre, i una altra amb l’èmbol metàl·lic. La regió d’interès és un quadrat que agafa el centre de la peça, i engloba part de la tapa i l’orifici per on es pot veure si hi ha l’èmbol i de quin color és. D’aquesta manera, es descarta qualsevol peça que no sigui bona, ja que si no hi hagués la tapa o l’èmbol, el programa no trobaria cap dels dos patrons en la imatge de la peça.

La programació detallada es pot veure al capítol 4.

2.5 Fase 5: Obtenció de resultats

Per a comprovar que el control de qualitat funciona bé s’hauran de complir els següents requisits:

- Quan el carro arribi per la cinta i s’ha d’aturar en tocar el pivot que haurà d’estar en posició aixecada després de la anterior fotografia.

- El sensor ha de detectar la presència del carro i enviar el senyal de trigger a l’ordinador.

- El programa de visió ha de rebre el senyal de trigger, i ha d’adquirir la imatge.

- El mateix programa ha de fer l’anàlisi i el diagnòstic.

- Una vegada realitzat, ha de donar el senyal a l’electrovàlvula per a baixar el pivot i preparar-se per a la següent revisió.

Les peces que es posaran com a prova són:

- Èmbol negre: l’ha de reconèixer (peça bona)

- Èmbol metàl·lic: l’ha de reconèixer (peça bona)

- Sense èmbol: no ha de reconèixer cap patró (peça dolenta)

- Sense tapa: no ha de reconèixer cap patró (peça dolenta)

Si s’acompleixen aquests requisits, podem dir que el sistema funciona correctament.

Page 24: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

24

3 Disseny i Simulació del Programa de Visió amb Matlab

El desenvolupament del software és un estudi fet en laboratori, simulant el seu funcionament real, però quan es desplaça en línia de muntatge, cal retocar i ajustar les parts del programa que a la pràctica no donen el resultat que s’havia previst.

El programa que tracta les imatges rebudes per les dues càmeres és un fitxer.m desenvolupat amb funcions que pertanyen a la llibreria de processament d’imatges del toolbox de Matlab 6.0.

Les demos serveixen per a practicar amb exemples per veure com es poden filtrar, segmentar, detectar vores i familiaritzar-se amb les possibilitats del Toolbox per a tractar imatges.

Un cop realitzat aquest pas, s’ha estudiat com resoldre la nostra aplicació, la finalitat de la qual és reconèixer errors de muntatge en les peces fotografiades. Cal per tant, fer un preprocessament de la imatge fins reconèixer-la i extreure’n les característiques que ens interessen. Això ha requerit un evolució del fitxer.m fins arribar a l’òptim.

El que estem buscant és detectar quan l’èmbol és negre, metàl·lic o no hi és, i que la tapa estigui present. Per a arribar a aquesta conclusió, primer hem hagut de fer proves amb imatges sintètiques i finalment definir una regió d’interès al centre de la peça.

3.1 Introducció al Tractament d’Imatges en Visió Artificial

La visió artificial, intenta emular la visió humana. La percepció humana, capta la realitat exterior i la interpreta. Aquest és concretament l’objectiu que persegueix la tecnologia, és a dir, millorar les màquines i dotar-les d’una major intel·ligència per a que tinguin més prestacions i els doni més autonomia respecte al ésser humà que les ha creat. D’aquesta manera poden desenvolupar tasques que normalment requeririen el treball d’un ésser humà. L’aplicació industrial d’aquest avanç es tradueix en un estalvi de temps, recursos i sobretot, errors humans.

Per aconseguir aquests objectius, la tecnologia ha analitzat i imitat el funcionament del sistema de percepció visual de l’home. En el nostre sistema de visió, les imatges captades per l’orgue sensorial, en aquest cas l’ull, són enviades al cervell qui s’encarrega de processar-les, analitzar-les, identificar-les i reconèixer-les, per a treure’n conclusions.

En el cas de la visió artificial, les imatges provenen d’una càmera i són analitzades per un ordinador. Per a realitzar el procés d’adquisició d’imatges, es necessària una conversió de la informació de la càmera a l’ordinador. La càmera treballa amb un senyal analògic (senyal contínua de vídeo), que conté la informació lluminosa de l’escena fotografiada. Aquest senyal, ha de ser mostrejada i digitalitzada prèviament al seu processament per l’ordinador.

L’efecte combinat del nombre de línies (que provenen de la càmera de vídeo) i el nombre de mostres per línia (que provenen de la freqüència de mostreig de la tarja d’adquisició d’imatges), dóna lloc al que es coneix com resolució o nombre de píxels de la imatge. És a dir, la imatge es transforma en una matriu de nombres de N x M elements (N=nombre de línies de vídeo, M=nombre de mostres per línia), on cada un d’ells és el valor de la intensitat lluminosa en aquell punt de la imatge. Els valors van del 0, que correspon al nivell zero d’intensitat lluminosa (negre), al 255 que correspon a la màxima intensitat lluminosa (blanc) en una profunditat de píxel (nombre de valors que pot prendre un píxel) de 8 bits. La figura 23 mostra una imatge digitalitzada.

Page 25: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

25

Figura 23. La imatge representada com una matriu de píxels

En el cas de les imatges en color, enlloc d’haver una sola matriu de valors numèrics (una sola trama), n’hi ha tres de superposades corresponents als colors vermell, verd, i blau, que combinades donen lloc al color real. D’aquesta manera, la imatge es pot guardar i recuperar com un arxiu de dades.

La visió computeritzada està dividida en dues etapes. La primera, es coneix com visió de baix nivell, i consisteix en extreure de les imatges la informació destinada a la resolució d’un problema concret. Aquesta informació, poden ser característiques com ara segmentacions de color, textures, formes, etc. Aquest etapa és el que podríem dir el tractament de les imatges.

La segona, és coneguda com visió d’alt nivell, fa servir aquestes característiques per a interpretar l’escena. En aquest etapa, es realitzaran tasques com ara reconeixement d’objectes en la imatge, analitzar la forma, o determinar la posició. Un exemple seria la visió d’un robot mòbil que li permet calcular trajectòries i esquivar obstacles. En el nostre sistema de visió artificial,

En les fases de disseny i simulació que hem desenvolupat amb Matlab, només hem empleat la visió de baix nivell ja que no interpretem la realitat, sinó que només extraiem unes característiques amb les quals definim si la peça és bona o dolenta.

En canvi, la fase d’implementació correspondria a la etapa de visió computeritzada d’alt nivell, perquè el sistema reconeix una forma o patró que identifica si la peça és bona o no.

En aquest apartat, explicarem les tècniques de baix nivell aplicades al nostre sistema de visió artificial durant la fase de disseny i simulació amb Matlab, i en el capítol 4 on es descriu la implementació, explicarem les tècniques d’alt nivell usades amb LabVIEW.

Es pot dir que un sistema de visió artificial, es divideix en els següents subprocessos:

1.Captació: obtenció de la imatge

2. Preprocessament: reducció de soroll i realçament de detalls

3. Segmentació: divisió de la imatge en objectes d’interès

Page 26: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

26

4. Descripció: extracció de característiques com mida i forma d’aquests objectes

5. Reconeixement: identificació d’aquests objectes

6. Interpretació: associació d’un significat als objectes reconeguts

3.2 Llegir la Imatge

La imatge que tractem no prové de la càmera, ja que en un principi no disposàvem d’imatges reals, i el que hem fet és tractar amb dibuixos (mapa de bits), que es poden llegir des de Matlab. La funció z = imread (‘imatge.png'), assigna a la variable Z la imatge en forma de tres matrius de punts (píxels) corresponents a les tres trames RGB on cada element de la matriu correspon a la intensitat del píxel d’aquella trama R,G o B.

3.3 Transformar la Imatge a Escala de Grisos

Una vegada adquirida la imatge cal transformar-la en grisos, doncs quasi totes les funcions de processament d’imatges treballen amb una sola trama de píxels.

La funció que fa això és I = rgb2gray(z), on z és la imatge en color i I és la transformada en grisos.

3.4 Tècniques de Suavitzat de la Imatge

En aquest punt expliquem com hem aplicat tècniques de suavitzat de la imatge. Les primeres imatges que s’han fet servir per fer proves de filtrat són dibuixos en color que simulen les fotografies de les càmeres. A continuació, afegim soroll als dibuixos amb la finalitat d’emular el possible soroll que du la imatge adquirida des de la càmera després de tot el procés de captació, transport i digitalització. Després analitzem com actuen els filtres i quin resultat donen.

Obtenim una imatge una imatge borrosa degut a que els filtres no eliminen els punts de soroll sinó que els difuminen. En realitat fan un promig de l’entorn, és a dir, assignen a cada píxel el valor mig dels píxels veïns. Degut a això, la imatge queda desdibuixada, i es perden detalls dels perfils i les formes, i això no interessa si el que volem és definir les vores per a poder separar les diferents parts de la imatge.

Més endavant veurem que el soroll en les imatges reals és quasi inapreciable, i per tant, no es necessari aplicar filtres de mitjana o promitjat, sinó que tractarem la neteja de la imatge amb un altre tipus de sistema.

En el següent llistat de codi es pot veure com prenem una imatge dibuix d’exemple, la transformem en grisos, apliquem tres tipus diferents de soroll (‘speckle’, ‘gaussià’, i ‘sal i pebre’), i després filtrem la imatge amb tres tipus diferents de filtre. [explicar cada tipus]

% carregar la imatge I = imread('exemple2.bmp');

h=rgb2gray(I);

figure, imshow(I), figure, imshow(h)

% afegir soroll

Page 27: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

27

a = imnoise(h,'speckle');

b = imnoise(a,'gaussian');

c = imnoise(b,'salt & pepper');

figure, imshow(c)

% filtrar

hood=4;

d = medfilt2(c, [hood hood]);

e = ordfilt2(d,8,ones(3,3));

f = wiener2(e);

figure, imshow(f)

Codi 1. Carregar la imatge, afegir soroll i filtrar

Les següents figures mostren el resultat del codi anterior:

Figura 24. Exemple2.bmp Figura 25. Transformació a escala de grisos

Figura 26. Afegint soroll Figura 27. Filtrant el soroll

Page 28: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

28

Si es fan vàries iteracions de cada filtre, enlloc de millorar difuminem encara més la imatge. En aquest exemple el soroll afegit és molt elevat i és molt difícil recuperar la imatge, però aquestes proves ens han permès veure que en la nostra aplicació es millor eliminar el soroll per altres medis.

3.5 Regió d’Interès en la Imatge

Matlab permet seleccionar una regió d’interès (Region Of Interest = ROI) en una imatge, formant una màscara binària (blanc i negre) que es superposa a la imatge original, ocultant la regió que no ha estat escollida i deixant veure la part restant.

Aquesta funció és especialment útil quan no ens cal processar la imatge sencera, perquè ja sabem que hi ha una part que ens interessa i la resta no. Això estalvia temps de processament, ja que hem disminuït la mida de la imatge i només apliquem les funcions a aquesta zona. Hi ha un grup de funcions de Matlab que filtren només aquesta regió, no obstant la solució idònia per a la nostra aplicació ha estat preprocessar primer la imatge sencera i després definir la ROI.

En Matlab, tenim dues possibilitats: seleccionar la regió amb el mouse o bé donant-li coordenades fixes de la imatge. La funció que fa això és:

bw = roipoly(a);

que en aquest cas ens deixa marcar la regió dins de la imatge amb el mouse, perquè no li hem passat com a paràmetres les coordenades de la regió de la imatge.

El resultat es pot veure a la figura 28:

Figura 28. Màscara bw

3.6 Detecció de Vores

En el següent codi, hem fet servir una d’aquestes funcions especials per a tractar només la part d’imatge escollida, per a trobar els contorns de les diferents parts de la peça dins la fotografia.

La funció que fa això és: I = roifilt2(w1,s,BW1);

que aplica un filtre que podem dissenyar nosaltres (en aquest cas w1 i w2), aplicat a la regió d’interès (BW1 és la màscara binària), sobre la imatge original (s), i dóna com a resultat I.

Page 29: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

29

Els filtres dissenyats són:

1 2 1 -1 -2 -1

0 9 0 0 9 0

-1 -2 -1 1 2 1

on l’element central de la matriu representa el pes del píxel de la imatge que s’està processant, i els altres representen els pesos aplicats als colindants. La operació per a un píxel determinat és la suma de cada un dels píxels multiplicats pel seu corresponent pes en la matriu. El resultat és:

f(i,j) = 1·f(i-1, j-1) + 2·f(i-1, j) + 1·f(i-1, j+1) + 0·f(i, j-1) + 9·f(i, j ) + 0·f(i, j+1) - 1·f(i+1, j-1) - 2·f(i+1, j) - 1·f(i+1, j+1)

Aquests filtres, tenen un gradient en una direcció i sentit concrets. Tal com estan mostrats, detecten els caires horitzontals, ja que el gradient és vertical. En el cas del filtre de l’esquerra, dóna més pes als elements superiors de la matriu i en treu dels inferiors. Això vol dir, que es trobi sobre una vora on el nivell més clar de gris estigui per sota i el nivell més fosc de gris estigui per damunt, el píxel central prendrà un valor molt baix (negre) i quedarà blanc en el cas contrari. En el filtre de la dreta detecta el cas invers. Si transposem les matrius, podrem trobar també els caires verticals. Sobreposant l’efecte d’aquests quatre casos, trobarem totes les de la peça. De fet, aquestes matrius han estat dissenyades per a ressaltar els contorns en les quatre direccions. El codi següent indica com apliquem amb Matlab els filtres dins la regió d’interès:

BW1 = roipoly(s);

w1=[1 2 1;0 9 0;-1 -2 -1];

w2=[-1 -2 -1;0 9 0;1 2 1];

J4 = roifilt2(w1,s,BW1);

J5 = roifilt2(w1',s,BW1);

J6 = roifilt2(w2,s,BW1);

J7 = roifilt2(w2',s,BW1);

Codi 2: Aplicació dels filtres de gradient per detectar vores

La raó de voler detectar les vores de la peça és per a després omplir les zones que han quedat delimitades i després segmentar. Aquest és un procés Standard en el preprocessament d’imatges.

No obstant, els resultats, no són prou bons com es pot comprovar en la figura 29, ja que els contorn no està completament definit i tancat com per omplir-lo o separar les peces de la imatge. Finalment, s’ha resolt segmentar la imatge d’una altra manera.

Page 30: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

30

Figura 29. Aplicació de roifilt2 per a detectar vores

3.7 Equalització de la Imatge

Una tècnica que no hem empleat en la fase de disseny i simulació però si en la fase d’implementació, és la equalització de la imatge. L’histograma és una representació gràfica dels nivells d’intensitat de la imatge. Aquests, es poden variar gràcies a determinades funcions que apliquen LUTs (Look Up Table) que fan una conversió dels nivells d’intensitat actuals als desitjats. Això serveix per aclarir o enfosquir la imatge o zones d’ella.

3.8 Segmentació de la Imatge

La primera solució trobada per a segmentar la imatge, consisteix en un bucle tipus for...end que ens separa les diverses parts, o nivells de gris (originàriament colors), en vàries imatges. El programa funciona bé, però és un sistema lent perquè ha de llegir tots els píxels un per un i comparar-los amb el llindar, per a generar una nova imatge binària que contingui només aquell segment de la imatge. A continuació es mostra el codi:

%segmentació

%

figure, imshow(r)

for m=1:265

for n=1:272

if r(m,n)<60

r(m,n)=255;

end

end

end

figure, imshow(r)

for m=1:265

for n=1:272

if s(m,n)>60

s(m,n)=255;

end

end

end

figure, imshow(s)

Codi 3. Segmentació de la imatge amb bucle for

Page 31: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

31

El resultat es pot veure a la figura 30, tenint en compte que s’ha afegit soroll i s’ha filtrat, factor que més endavant es veurà que és innecessari, ja que les imatges reals són prou nítides que no cal filtrar-les.

= +

Figura 30. Resultat de la segmentació amb bucle d’imatges no reals amb soroll i filtrades

El mateix programa amb imatges reals no dóna bons resultats perquè la segmentació requereix massa temps i el filtrat de la imatge es menja part d’ella. La figura 31 mostra el resultat.

Figura 31. La imatge original (esquerra) queda menjada després del filtrat (dreta)

Totes les proves anteriors han estat aplicades a les imatges reals, i finalment, es conclou que en imatges reals no cal fer suavitzat d’imatge (perquè el soroll és inapreciable), que la Regió d’Interès (ROI) cal aplicar-la després de segmentar i la millor manera de segmentar és la següent:

% segmentació d'imatge

bw1=(a<=0.176*255)|(a>=0.294*255); % crear quatre imatges binàries

bw2=(a<=0.274*255)|(a>=0.588*255); % corresponents als quatre

bw3=(a<=0.706*255)|(a>=0.804*255); % intervals de gris escollits bw4=(a<=0.804*255)|(a>=1*255); % en la imatge

% aplicar roi

bw11=(bw1|(~bw)); % eliminar part de fora de la roi

bw22=(bw2|(~bw)); % amb el complementari de la màscara bw

Page 32: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

32

bw33=(bw3|(~bw));

bw44=(bw4|(~bw));

Codi 4. Segmentació directa

En aquest cas, el que estem fent, és binaritzar els diferents intervals de gris (que corresponen als colors originals de la imatge). De fet, el que estem fent són quatre equalitzacions de la imatge, que les representem en imatges separades.

bw1=(a<=0.176*255)|(a>=0.294*255);

En aquest cas, fem una or lògica amb els píxels de la imatge (a) que acompleixin la condició d’estar per sota del llindar inferior (0.176*255) o per damunt del llindar superior (0.294*255), seran 1 lògic i per tant quedaran representats en la imatge binària (resultat de la segmentació) com blanc, i els que estiguin entre els dos llindars seran zero, és a dir, negre.

Una vegada feta la binarització de cada segment, es fa una altra or lògica amb la màscara, i s’elimina la part de fora de la ROI. El resultat es pot veure a la figura 32.

= +

Figura 32. Segmentació de les imatges

3.9 Neteja de la Imatge

Una vegada s’ha segmentat i aplicat la ROI, cal restaurar la imatge esborrant punts aïllats de negre sobre fons blanc o de blanc sobre fons negre, que hagin pogut quedar a la imatge binaritzada. El procés és pot veure en el codi següent:

i10 = bwmorph(bw11,'majority');

i11 = bwmorph(i10,'clean');

i12 = bwmorph(i10,'dilate',6);

i13 = bwmorph(i12,'erode',15);

Codi 5. Neteja de la imatge

Bwmorph és un funció que aplica operacions morfològiques sobre imatges binàries.

Page 33: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

33

Majority és una operació morfològica de la funció bwmorph, que esborra els punts negres aïllats sobre fons blanc (zeros envoltats d’uns).

Clean fa la funció oposada a Majority, eliminant punts blancs aïllats (uns envoltats de zeros).

Dilate completa les imatges negres allà on hi han taques blanques, per dilatació de la figura.

Erode fa l’efecte contrari de l’operació dilate, erosionant les taques aïllades de negre sobre fons blanc.

3.10 Diagnòstic de la Peça

Per pantalla surt un diagnòstic dels colors de la peça com a resultat d’agafar un píxel de cada una de les imatges segmentades per a veure si està present aquell color.

És a dir, com ja tenim les quatre imatges binaritzades després de la segmentació, mirem quina de les quatre imatges està plena (té píxels negres), per veure quins dels quatre intervals de gris (colors) estan presents en la peça. Si la imatge segmentada està completament en blanc no trobarem cap píxel i això vol dir que aquell color no hi és. El codi 6, ens mostra la programació d’aquest diagnòstic.

% (agafar un píxel de cada una de les imatges de la segmentació

% per veure si és negre i està present aquell interval de gris)

if i11(280,424)==0 % negre

sprintf('centre buit')

elseif i11(195,390)==0

sprintf('tapa negra')

end

if i21(280,424)==0 % clar (blau o vermell)

sprintf('centre blau o vermell')

elseif i21(195, 390)==0

sprintf('tapa blava o vermella')

end

if i31(280,424)==0 % mes clar (blau o vermell)

sprintf('centre blau o vermell' )

elseif i31(195,390)==0

sprintf('tapa blava o vermella')

end

if i41(280,424)==0 % blanc (metàl·lic)

sprintf('centre metàl·lic' )

elseif i41(195,390)==0

sprintf('tapa metàl·lica')

end

Codi 6. Diagnòstic de la peça

Page 34: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

34

El resultat és que en la finestra de comandes de Matlab ens apareix el següent diagnòstic:

ans =

centre metàl·lic

ans =

tapa blava o vermella

3.11 Visió Artificial amb Reconeixement de Patrons

Fins aquest punt, hem dissenyat i simulat un programa de visió artificial que fa un només un processat de la imatge, ja que hem extret les característiques de la peça que ens interessaven (filtrat, segmentació, etc.), que ens ha permès determinar si és bona o no, sense fer servir la tècnica de reconeixement de patrons.

També podríem haver aplicat tècniques de reconeixement de patrons amb Matlab. Això es fa amb xarxes neurals, de les quals Matlab té una toolbox. Concretament, es tracta de construir un perceptró de tres capes (entrada, intermitja i sortida), i entrenar-la per al reconeixement del nostre patró.

No obstant, en la implementació, sí que hem emprat el reconeixement de patrons de que disposa l’IMAQ de LabVIEW. Aquesta opció és molt més còmoda, ja que no cal dissenyar-lo.

Page 35: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

35

4 Implementació del Programa de Visió amb LabVIEW

La implementació s’ha fet amb LabVIEW que era el software amb el qual s’han desenvolupat el dos projectes anteriors [1] i [2] i amb el qual han realitzat la configuració de la placa d’adquisició d’imatges PCI 1407 instal·lada al PC. A més LabVIEW ens ha permès incorporar el disseny i simulació realitzats amb Matlab mitjançant una programació més còmoda, ja que disposa de l’IMAQ que està orientat a la visió artificial.

4.1 Introducció al LabVIEW

LabVIEW és un software amb el qual podem fabricar el que s’anomena instrument virtual, ja que fa les funcions d’un instrument de laboratori però sense necessitat de fabricar-los físicament i fent servir com a únic hardware els recursos de l’ordinador.

Tota la programació es fa a través d’un GUI (Grafical User Interface). Això vol dir que la programació és gràfica. Aquest tipus de programació, és més fàcil per a l’usuari, ja que abans el mateix instrument s’havia de fer amb un llenguatge de programació tipus C, C++ o VisualC, sistema que representava molt de temps i detalls de programació en codi.

Aquests instruments, disposen d’un pannell frontal que és el que veu l’usuari, i una part oculta on hi ha la programació interna de l’instrument. En el pannell, disposem de controls i indicadors que ens permeten controlar l’instrument i visualitzar el procés quan aquest està en funcionament. La part oculta on hi ha la programació del funcionament intern, s’anomena diagrama, i està composat per funcions connectades entre sí. Les funcions estan representades per icones que disposen de connexions que es fan servir per unir amb les altres funcions i per passar els paràmetres que les configuren.

Aquest software és molt potent en el sentit que disposa de moltes funcions, i es poden construir instruments virtuals que poden emular quasi qualsevol instrument real.

4.2 Introducció a l’IMAQ Vision Builder de LabVIEW

L’IMAQ és un software de visió artificial que permet tractar imatges provenint d’arxiu o de càmera, aplicant tot tipus d’operacions morfològiques sobre elles per extreure’n les característiques i que després ens permetran fer un reconeixement de patrons. L’avantatge és que es pot incorporar el procediment d’anàlisi de les imatges dissenyat amb l’IMAQ a LabVIEW.

La imatge ens surt per pantalla i escollim del menú les funcions morfològiques o de filtrat que li volem aplicar. El conjunt d’operacions morfològiques aplicades a la imatge, es van guardant formant un fitxer de comandes (per a cada operació es genera una línia), de manera que en aplicar aquest fitxer (que es pot guardar com un arxiu) a una imatge qualsevol, s’executaran de manera seqüencial tots els passos.

Un cop realitzat el fitxer de comandes, tenim la opció Builder File, que ens genera un llistat de les funcions (icones) de LabVIEW amb els seus paràmetres, que permet convertir aquest fitxer de comandes en un instrument virtual.

4.3 Desenvolupament amb l’IMAQ

Amb l’IMAQ, hem implementat part del disseny i simulació realitzats amb Matlab. Concretament, les funcions morfològiques per al tractament de la imatge empleades en IMAQ han estat:

Page 36: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

36

a) Threshold: Equalització de la imatge de manera que ens queda binaritzada. Podem seleccionar manualment els dos llindars de gris de la imatge, entre els quals la imatge queda en negre i fora dels quals, queda en blanc.

La figura 33 mostra l’aplicació de la funció ‘Threshold’ sobre la imatge:

Figura 33. Selecció dels llindars amb la funció Threshold

b) Pattern Matching: Amb la opció ‘Learn Template’ d’aquesta funció, seleccionem en la imatge ja binaritzada, la regió que definim com a patró a trobar en les imatges que rebem de la càmera per a supervisar quan estigui implementat el programa de visió amb LabVIEW.

Les figures 34 i 35 mostren els dos patrons seleccionats de les dues imatges corresponents a una peça amb èmbol negre i una amb èmbol metàl·lic respectivament:

Figura 34. Patró de l’èmbol negre Figura 35. Patró de l’èmbol metàl·lic

Com es pot apreciar, és un objecte fàcil de trobar en una imatge per la seva nitidesa.

Page 37: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

37

La figura 36 mostra l’aplicació de la funció ‘Pattern Matching’ sobre la imatge:

Figura 36. Selecció de patrons amb la funció ‘Pattern Matching’.

c) Builder File: Emprant aquesta opció, el fitxer de comandes que hem generat se'ns tradueix a un informe on s’explica quines funcions de LabVIEW implementen aquest fitxer, i quins paràmetres s’han de passar.

En el codi 7 es pot veure el Builder File corresponent al fitxer de comandes que busca el patró d’èmbol negre.

STEP #1Threshold : Manual Threshold

IMAQ Vision VI IMAQ Threshold

IMAQ Vision palette Processing

Parameters:

Cluster"Range" 2 elements

Float (SGL) "Lower value" 85,3346481

Float (SGL) "Upper value" 196,7716522

Comment Use a Binary Color Palette to display the result image.

STEP #2Pattern Matching

IMAQ Vision VI IMAQ Load Template Image

Page 38: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

38

IMAQ Vision palette Searching and Matching

Parameters:

Path "File Path" C:\WINDOWS\Escritorio\ivetPFC\patro1.png

IMAQ Vision VI IMAQ Setup Match Pattern

IMAQ Vision palette Searching and Matching

Parameters:

Unsigned Word (U16) "Search Mode" 0

Boolean"Sub-Pixel Accuracy" False

IMAQ Vision VI IMAQ Match Pattern

IMAQ Vision palette Searching and Matching

Parameters:

Long (I32) "Number of Matches Requested" 1

Double (DBL) "Minimum Match Score" 700,

Array "Optional Rectangle"

Long (I32) [0, 0, 0, 0]

Codi 7: Builder File corresponent a l’script que cerca el patró d’èmbol negre

En aquest, podem veure que hi ha dues parts corresponents a les dues funcions definides al fitxer de comandes.

- En relació a la funció Threshold, ens diu que aquesta funció la trobarem en la paleta de funcions ‘Processing’, que els dos paràmetres que se li han de passar són el dos llindars, i que si volem visualitzar la imatge resultant, haurem de fer servir una paleta de color.

- En relació amb el ‘Pattern Matching’, tenim tres funcions que s’han d’implementar en LabVIEW.

1. La primera és carregar el patró amb la funció ‘Load Template Image’. Aquesta, es pot trobar a la paleta ‘Searching and Matching’. El paràmetre a passar és el ‘path’ d’on està guardat el patró.

2. La segona, és la configuració i paràmetres de cerca de la funció ‘Pattren Matching’.

3. La tercera, és la funció ‘Match Pattern’, que s’encarrega de cercar el patró en la imatge. Els paràmetres que li calen, són l’score o nivell de semblança entre el patró i la imatge supervisada, i el nombre de vegades que s’espera trobar el patró en la imatge.

El fitxer de comandes corresponent a la cerca del patró de peça amb èmbol metàl·lic, és idèntic a l’anterior, però canvia el patró que es passa com a paràmetre a la funció ‘Load Template Image’.

Page 39: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

39

4.4 Desenvolupament del Programa de Visió amb LabVIEW

Una vegada hem realitzat el procés de reconeixement de patrons amb l’IMAQ i tenim la traducció a diagrama de blocs, podem començar la implementació del programa de visió amb LabVIEW.

4.4.1 El Pannell Frontal

El programa desenvolupat és un instrument virtual que disposa d’un pannell de control gràfic per a l’usuari (amb controls i indicadors) i una part oculta (el diagrama) on està representada tota la programació i estructura del programa de visió. En la figura 37 es mostra el pannell.

Figura 37. Pannell de control del programa de visió artificial desenvolupat amb LabVIEW

En aquest pannell tenim quatre zones:

- Els controls: és el botó RUN / STOP que engega / atura l’execució.

- L’informe: ens diu què ha trobat. Els tres casos possibles són o èmbol negre o èmbol metàl·lic (ambdós són peça bona) o res ( peça dolenta). En els dos primers casos, es veu reflectit a l’informe i a les caselles ‘negre’ i ‘metàl·lic’ surt un ‘1’ si ha trobat un o altre.

- Resultats i situació: és un informe de com ha localitzat el patró. Ens diu la posició dins la imatge, l’angle, l’escala, i l’score (nivell de semblança).

- Accessoris: són alguns dels paràmetres de la programació interna que es veuen reflectits al pannell. El que ens interessa és el de ‘error out’, perquè ens avisa si hi ha hagut un error en la seqüència d’execució del programa.

Page 40: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

40

Si tot ha estat correcte i ha localitzat un dels dos patrons el programa dóna la ordre a l’electrovàlvula per a que alliberi el carro i el programa espera la següent inspecció.

4.4.2 El Diagrama amb la Programació Interna de l’Instrument Virtual

Tal com s’ha mencionat abans el funcionament del sistema de control de qualitat per visió artificial és el següent:

- El sensor inductiu detecta la presència del carro i aquest senyal és enviat a l’ordinador, per a que actuï com a trigger

- El programa de visió llegeix aquest senyal de trigger i comença a adquirir la imatge que capta la càmera.

- L’ordinador disposa d’una tarja d’adquisició d’imatges configurada amb LabVIEW per a que el programa de visió pugui recobrar la imatge, digitalitzar-la, i fer-ne l’anàlisi.

- Quan s’acaba l’anàlisi, enviem un senyal pel port paral·lel de l’ordinador a l’electrovàlvula que mou el pivot que detura el carro, per a que baixi i aquest quedi alliberat.

Per tant, el programa de visió té bàsicament tres etapes que corresponen a l’adquisició de la imatge, l’anàlisi, i el diagnòstic de la peça.

No obstant, el programa està estructurat amb una estructura tipus Sequence, amb quatre Frames. Aquest tipus d’estructura, simula una seqüència de ‘fotogrames’, de manera que s’executen les operacions incloses dins de cada un dels fotogrames de manera seqüencial i en funció de la disponibilitat de les dades que necessita cada operació. Quan s’acaba un frame, es comença amb el següent. En el nostre cas, es disposa de quatre passos o Frames de la seqüència, que s’executen sempre en el mateix ordre i en bucle continu. El primer, és el que atura l’execució en mode continu fins que no rep el senyal de trigger conforme el següent carro amb les peces ha arribat. Quan s’ha complert aquesta condició, es passa la següent Frame, que és el principal i és on hi ha el cos del programa de visió, on es fa l’adquisició de la imatge, l’anàlisi i el diagnòstic. En el següent Frame s’activa l’electrovàlvula per a alliberar el carro amb les peces, sigui la peça bona o dolenta, mitjançant un subVI (fa una funció d’instrument virtual però està situat dins un altre VI). Aquest, fa una escriptura al port paral·lel, senyal que és amplificada per a poder commutar l’electrovàlvula. En el darrer Frame, es reinicialitza el sistema preparant-lo per a una nova adquisició, esborrant els espais de memòria reservats per a les imatges.

D’aquesta manera, aconseguim que el programa de visió estigui sempre en funcionament (mode continu) però no estigui sempre analitzant una imatge encara que no hi hagi carro amb peces, sinó que espera a rebre el senyal del detector de presència (trigger) per a començar l’adquisició de la imatge.

Com el cos del programa de visió està situat en el segon fotograma de l’estructura Sequence, ens centrarem en la descripció d’aquest.

Com ja s’ha mencionat abans, dins aquest Frame es fa l’anàlisi de la imatge dividit en tres blocs, adquisició, reconeixement de patrons, i diagnòstic.

Page 41: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

41

4.4.3 Adquisició de la Imatge

En aquest apartat, definirem la part del diagrama que s’encarrega d’adquirir la imatge, explicant les funcions que hem fet servir i els paràmetres que passem. En la figura38 es pot veure la part corresponent a l’adquisició de la imatge.

Figura 38. Part del programa corresponent a l’adquisició de la imatge

Els icones quadrats representen funcions de LabVIEW. Cada funció té connexions disponibles per a passar els paràmetres necessaris per a configurar-la, connectar indicadors visibles al pannell frontal o connectar-les entre elles. Les línies que uneixen un bloc amb el següent són el cablejat.

Les funcions emprades en aquesta part de la programació corresponent a l’adquisició són les següents:

En la figura 39 es mostra la funció IMAQ Init, que carrega la configuració de la tarja d’adquisició d’imatges i inicialitza la configuració de l’IMAQ:

Figura 39. Help de la funció IMAQ Init

Page 42: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

42

D’aquesta funció, hem fet servir les següents connexions:

- Error In: creem un cluster d’error que apareix al pannell frontal per a visualitzar els possibles errors durant l’execució. En el diagrama, totes les funcions disposen d’aquestes dues connexions i serveixen per a encadenar-les amb la següent. D’aquest manera, es força a seguir l’execució de les funcions seguint el camí marcat per les connexions de l’error de manera seqüencial, enlloc de seguir l’ordre per defecte de LabVIEW, en el qual les funcions s’executen a mesura que disposen de les dades.

- Error Out: aquest terminal es connecta a la següent funció que volem que s’executi a continuació de l’actual.

- Interface Name: és el nom del fitxer d’imatge amb el que s’ha configurat l’IMAQ. El valor per defecte és ‘Img0’.

- Imaq Session Out: aquest terminal va connectat a la següent funció i du la informació necessària perquè la següent funció pugui continuar el procés començat.

En la figura 40 es mostra la funció IMAQ Configure Trigger, que configura les condicions del trigger per a una adquisició.

Figura 40. Help de la funció IMAQ Configure Trigger

Els terminals que s’han emprat són:

- Frame Timeout: el nombre de milisegons que espera la funció entre que rep el senyal de trigger i comença l’adquisició. El valor passat són 2000 milisegons.

- Trigger Polarity: especifica la polaritat del trigger. El valor passat és True que vol dir que quan el trigger estigui en nivell alt s’interpretarà com a TRUE o ‘1’ lògic.

Page 43: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

43

- IMAQ Session In: en aquest terminal es connecta la sortida IMAQ Session Out de l’etapa anterior.

- Trigger Line: especifica la font o canal per on arriba el senyal de trigger. Tal com està configurada la tarja el valor passat és ‘External trigger 0’.

- Trigger Action: paràmetre que especifica què ha de fer quan arribi el trigger. El valor passat és ‘Trigger start of acqusition’, que indica que comenci a adquirir la imatge quan rebi el senyal.

La següent funció és IMAQ Trigger Read, que es mostra en la figura 41.

Figura 41. Help de la funció IMAQ Trigger Read

Aquesta funció ens diu l’estat del trigger. Els terminals emprats són:

- Trigger Line: el mateix que la funció anterior.

- Polaritat: el mateix que la funció anterior.

- Trigger Status: llegeix l’estat del trigger i és representat per un indicador

Les funcions següents estan situades dins un bucle for perquè s’adquireixi la imatge un cert nombre d’iteracions, per a evitar que es prengui una sola fotografia de la peça i pogués quedar moguda degut a que el carro està encara arribant.

La funció següent és IMAQ Snap, que s’encarrega de prendre una instantània de la peça, i com està en un bucle, fa aquest procés vàries vegades. En la figura 42 es pot veure aquesta funció.

Page 44: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

44

Figura 42. Help de la funció IMAQ Snap

D’aquesta funció els terminals rellevats que hem usat són:

- Image In: aquesta connexió ve de la funció que crea un espai de memòria per a la imatge.

- Image Out: d’aquest terminal surt la imatge, i es connecta a la següent funció que és la que crea una finestra per a mostrar la imatge.

La funció WindDraw, crea una finestra per a mostrar en pantalla la imatge capturada. La figura 43 mostra aquesta funció.

Figura 43. Help de la funció IMAQ WindDraw.

Page 45: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

45

Aquesta funció serveix per a crear una finestra on es pot veure la imatge per pantalla. Els terminals que hem usat són:

- Image: és la imatge captada que prové de l’etapa anterior (IMAQ Snap)

- Window Number: el número identificatiu de la finestra. Si dues imatges diferents estan representades per el mateix número, la darrera imatge suprimirà la primera.

- Title: a la part de dalt de la finestra apareix el nom que li vulguem posar. En aquest cas, ‘imatge captada per la càmera’.

IMAQ WindZoom, modifica el factor d’escala de la imatge per a reduir o augmentar la imatge dins la finestra creada. La figura 44 mostra aquesta funció.

Figura 44. Help de la funció IMAQ WindZoom.

En aquesta funció hem passat com a paràmetres:

- Window Number (0...15): el número de finestra. En aquest cas zero (0)

- Zoom Factor: el factor de zoom, en aquest cas (-1) per a reduir una mica la imatge.

WindSize defineix i indica el tamany de la finestra. La figura 45 mostra aquesta funció.

L’únic paràmetre passat és el número de finestra (0).

Page 46: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

46

Figura 45. Help de la funció IMAQ WindSize.

4.4.4 Anàlisi de la Imatge

En aquesta part del diagrama, és on s’analitza la imatge. Prové del Builder File generat, i fa la mateixa funció que l’anàlisi creat en l’IMAQ però amb funcions de LabVIEW.

Es pot veure a la figura 46 la part de diagrama corresponent a aquesta tasca.

Figura 46. Anàlisi de la imatge.

Page 47: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

47

Tal com es pot veure a la imatge anterior, el procediment d’anàlisi de la imatge en diagrama de blocs és el següent:

- crear un espai de memòria per a la imatge

- aplicar la funció ‘Threshold’ a la imatge

- representar aquest imatge binaritzada

- crear un espai de memòria per a la imatge dels patrons

- carregar la imatge patró des d’arxiu

- carregar paràmetres de configuració de la cerca de patrons

- realitzar la cerca dels patrons

La funció IMAQ Threshold, s’encarrega igual que en l’IMAQ, de binaritzar la imatge entre dos llindars de gris, de manera que la part de la imatge que està fora d’aquests dos límits quedarà en blanc i la part compresa entre ells en negre.

Les connexions emprades en aquest funció són:

- Image Session In: aquest terminal rep la referència a la imatge que rebrà, això vol dir que se li ha de connectar la sortida del bloc que crea un espai de memòria per representar i guardar una imatge, amb el seu nom corresponent.

- Image In: és la imatge en sí, que prové de la càmera.

- Color Palette: el valor que ens interessa és 255 (blanc), ja que si no el posem la imatge no ens queda en blanc i negre sinó que també queda en vermell i el reconeixement de patrons no és efectiu.

- Image Session Out: en aquesta sortida de la funció tenim la imatge binaritzada que hem de connectar a la funció de reconeixement de patrons. Aquesta imatge també la representem en una finestra per a veure la evolució del procés d’anàlisi de la imatge.

IMAQ Load Template Image és la funció que carrega la imatge patró que s’ha de cercar dins la imatge binaritzada. Per a fer això cal, primer, crear un espai en memòria per a aquesta imatge (bloc anterior) i donar-li un nom (patró1).

Les connexions que fem servir d’aquesta funció són:

- Image In: en aquest terminal connectem la sortida de la funció que crea un espai en memòria per a la imatge.

- Image Out: aquest sortida la connectem a l’entrada de la funció que cerca els patrons, perquè conté la imatge patró.

- Path: cal passar-li com a paràmetre el path de la imatge patró perquè la pugui trobar.

Page 48: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

48

La funció següent és IMAQ Setup Match Pattern, que configura els paràmetres de cerca dels patrons.

Les connexions usades són:

- Search Mode: hem posat Shift Invariant (0), que vol dir que cercarà la imatge patró independentment de si està girada un cert angle. L’altra possibilitat era Rotation Invariant, que vol dir que no admet que la imatge estigui rotada respecte al patró.

- Subpixel Accuracy: indica si la precisió és a nivell de píxel o superior. Hem posat ‘False’, tal com recomana el Builder File.

- Image Out: són les dades de la configuració de cerca de patrons que precisa la funció següent. Si no els passem, fa servir els valors per defecte.

IMAQ Match Pattern és la funció que busca el patró dins la imatge. Els terminals que s’han emprat són:

- Image In: és la imatge on ha de cercar el patró, en aquest cas, és la imatge binaritzada provenint de la funció IMAQ Threshold.

- Image Template In: és la imatge patró que ha de trobar, que prové de la sortida de la funció IMAQ Load Template Image.

- Setup Match Pattern: són les dades de configuració de la cerca de patrons que provenen de la sortida de la funció IMAQ Setup Match Pattern.

- Number of Matches Requested: és el nombre de vegades que espera trobar el patró en la imatge. Hem posat 1.

- Minimum Score: és el nivell mínim de semblança entre el patró i la imatge trobada, tenint en compte que el màxim és 1000, hem posat 700, com aconsella IMAQ en el Builder File.

- Sortida 1: és el número de ‘matches’ (coincidències) que ha trobat del patró, que és visible com a indicador en el pannell frontal en la part ‘Informe’.

- Sortida 2: és un informe de les condicions en que ha trobat el patró (posició, angle de gir, etc.), que és visible en el pannell frontal en la part ‘Resultats i situació’.

Aquest procediment de cerca del patró es repeteix per a l’altre patró, i les funcions emprades i els paràmetres passats són els mateixos.

4.4.5 Diagnòstic de la Peça

El nombre de ’matches’ o coincidències trobats, ens serveix per a realitzar el diagnòstic o informe de la peça. Aquesta sortida pot ser zero si no s'ha trobat el patró, o 1 si l’ha trobat. Comparant aquesta sortida amb zero, obtenim un resposta booleana (true o false) que fem servir com a condició en l’estructura Case.

Si és ‘true’ s’activarà el cas true d’aquesta estructura, i la cadena de text ‘Èmbol negre’ anirà a parar, juntament amb el text ‘INFORME’ i mitjançant l’element de

Page 49: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

49

concatenació de strings de text Bundle, a l’indicador de text visible al pannell frontal (en la part ‘Informe’).

En el cas representat en la figura 47, no troba el patró corresponent a l’èmbol negre, i s’activa el cas false de l’estructura case, enviant un string de caràcters buit a l’indicador ‘Informe’. En canvi, ha trobat l’èmbol metàl·lic i per tant s’activa el cas true de l’altra estructura case, enviant l’string ‘Èmbol metàl·lic’ a l’indicador de text.

En la figura 47 podem veure la part de programació corresponent al diagnòstic de la peça.

Figura 47. Diagnòstic de la peça

4.4.6 Activació de l’Electrovàlvula

Després del diagnòstic de la peça, es passa al següent frame de la seqüència, on enviem al port paral·lel un impuls per a que s’activi l’electrovàlvula i quedi alliberat el carro amb les peces, que continuaran el seu recorregut.

En un futur, s’implementarà, com ja s’ha mencionat abans, la comunicació del diagnòstic de la peça a la resta del sistema, i l’autòmat que les emmagatzema podrà seleccionar-les en base a aquesta informació.

Es pot apreciar a la figura 48 la programació de l’escriptura al port paral·lel, que ha estat aprofitada del projecte final de carrera [2].

Figura 48. Escriptura al port paral·lel per activar l’electrovàlvula

Page 50: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

50

5 Conclusions

Es pot dir que s’ha assolit amb èxit l’objectiu d’aquest projecte, que era crear un programa de visió artificial que identifiqués les peces defectuoses dins una cadena automatitzada de producció.

De fet, encara que no disposem de dues perspectives de la peça, que és el que ens hauria donat la possibilitat de verificar-ne completament el seu estat, però podem saber si estan presents tots els components del pistó assemblat.

No obstant, la perspectiva del perfil, només tindrà sentit quan el sistema de control de qualitat rebi la llista de característiques de les peces que li van arribant i que haurà de comprovar.

En relació a la optimització dels recursos, es pot dir que s’ha resolt l’aplicació amb els recursos de que es disposava inicialment (PC, càmera, cambra d’il·luminació), sense haver-ne hagut d’adquirir d’altres.

Pel que fa al desenvolupament de l’aplicació en sí, es pot dir que durant les fases de disseny i simulació, s’ha comprovat que la definició i plantejament del problema era correcte, ja que aquest disseny ha servit per a realitzar la implementació amb IMAQ i LabVIEW sense haver de redissenyar l’aplicació.

El programa implementat requereix un temps de càlcul inferior al dissenyat amb Matlab. Per altra banda, l’avantatge del programa de visió desenvolupat amb LabVIEW, és que busca un patró per tota la imatge captada per la càmera, fent que no sigui massa important que el carro no s’aturi sempre exactament en el mateix punt.

Revisant el capítol 2.5 (Obtenció de Resultats), veiem que tots els punts que hem posat com a prova per a veure si el programa de visió artificial funciona bé, s’acompleixen.

- Quan el carro arriba per la cinta i s’atura en tocar el pivot que està en posició aixecada després de la anterior fotografia.

- El sensor detecta la presència del carro i enviar el senyal de trigger a l’ordinador.

- El programa de visió rep el senyal de trigger, i adquireix la imatge.

- El programa fa l’anàlisi i el diagnòstic.

- Una vegada realitzat, dóna el senyal a l’electrovàlvula per a baixar el pivot i preparar-se per a la següent revisió.

Les peces que s’han posat com a prova són:

- Èmbol negre: l’ha de reconegut (peça bona)

- Èmbol metàl·lic: l’ha de reconegut (peça bona)

- Sense èmbol: no ha reconegut cap patró (peça dolenta)

- Sense tapa: no ha reconegut cap patró (peça dolenta)

Es pot concloure, que el sistema funciona de manera satisfactòria.

Page 51: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

51

6 Noves Vies de Treball

Quan s’estableixi la comunicació amb la resta del sistema, es milloraran les prestacions del control de qualitat en el sentit que es disposarà de la informació de la peça que arriba, i es podrà verificar. A més l’informe del control de qualitat, serà transmès a la resta del sistema, que podrà discriminar i identificar les peces amb errades de muntatge, que seran desviades del circuit. Caldrà també disposar de dues càmeres per a obtenir dues instantànies de la peça, en planta i perfil.

Precisament, Mathworks, l’empresa que comercialitza Matlab, ha afegit recentment noves prestacions al seu software que permeten captar la imatge des de càmera web passant directament a memòria de l’ordinador, sense necessitat de tarja d’adquisició d’imatges ni drivers d’aquesta. Amb aquesta innovació, es podria acabar de desenvolupar l’aplicació amb Matlab sense haver de recórrer a LabVIEW.

En relació amb la instal·lació, pot ser que en el futur, s’hagin de fer algunes comprovacions o modificacions com per exemple:

- Estudiar, en el supòsit que es continuï en futurs projectes amb la línia de disseny i implementació amb Matlab, si caldrà un programa tipus SupervisionCam que arrenqui l’executable del programa de visió (tal com s’ha explicat a l’apartat ()) o es pot aconseguir un funcionament continu com en el cas de LabVIEW.

- Revisar l’enfocament de la peça, ja que el carro en transporta tres a la vegada, i la càmera actual només n’enfoca una. A més l’escena s’haurà de captar en planta i perfil, i això vol dir que s’ha d’obtenir la màxima informació optimitzant els recursos.

- S’ha vist que l’obertura en la cambra d’il·luminació és insuficient per a poder passar correctament tota la varietat de peces de que es disposa. Caldrà contemplar totes les possibilitats.

- Cal comprovar, quan tot el sistema de producció estigui en funcionament conjunt si les vibracions degudes als cops en la cèl·lula afecten a les càmeres, ja que la càmera actualment instal·lada i degut al sistema a la inestabilitat del sistema de subjecció, és sensible a aquestes pertorbacions. Caldrà comprovar doncs, si és significatiu.

- Hi ha una certa dificultat en reconèixer i diferenciar el color blau del vermell quan la imatge és passada a grisos, degut a que el nivell de gris resultant per ambdós colors és molt semblant, i el sistema de segmentació dissenyat amb Matlab s’haurà de millorar. Això serà un punt important a resoldre quan es tingui la imatge en perfil, ja que aleshores veurem el color de les bases.

- Aconseguir el reconeixement de patrons amb Matlab, tal com s’ha explicat al capítol 3 amb xarxes neurals, creant un perceptró de tres capes que, un cop entrenat pot reconèixer una matriu de dades de referència (imatge patró) dins una altra matriu de dades (imatge de l’escena).

Page 52: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

52

7 Visió Artificial en 3D

Per últim com a nota interessant però apart de la labor desenvolupada en aquest projecte, cal dir que, tot i desconeixent si aquesta tecnologia ja existia en el mercat, va sorgir la idea de realitzar visió artificial en tres dimensions, per a casos especials en que és important reconèixer la totalitat d’una superfície d’un objecte real. Un exemple, seria verificar la rugositat d’una bola de coixinet per a controlar l’acabat superficial.

En realitat, aquest tecnologia està en fase d’estudi però ja existeixen alguns dispositius. El sistema per a adquirir la imatge és un escannejat amb làser, on l’objecte o bé l’escanner s’han de moure per a realitzar la inspecció de tota la superfície. El principi de funcionament de l’escanner és que el feix de llum làser emès rebota en l’objecte i és llegit per un sensor, aportant la informació de la superfície de l’objecte. Aquesta informació es pot digital·litzar i visualitzar l’objecte reconstruït en un programa de 3D.

En el cas de la visió artificial per al control de qualitat en la indústria, el pas següent seria analitzar la imatge amb un programa de visió artificial preparat per a la inspecció de superfícies tridimensionals i no només per imatges planes.

De fet aquesta idea existeix en el camp de l’arquitectura, on una persona pot escannejar un edifici amb un dispositiu portàtil i després reconstruir l’objecte en un programa 3D.

Pel mateix mitjà, si escannejem l’interior d’un edifici, com per exemple un pis, la informació es pot digital·litzar i introduir en un programa de realitat virtual, essent possible per una agència immobiliària mostrar de manera virtual els pisos en venta.

Una altra aplicació d’aquest principi, seria el reconeixement d’espais reals que podria efectuar un robot mòbil que disposés d’un dispositiu scanner làser que movent-se per un recinte podria proporcionar al robot una reconstrucció digital·litzada del seu entorn (potser també amb tècniques de realitat virtual), i seria molt més fàcil calcular trajectòries i esquivar obstacles perquè en el cervell del robot existiria una concepció espacial del seu entorn i la seva posició en ell.

Tots els exemples anteriors, són algunes de les possibles aplicacions de la tecnologia de la visió artificial que en el fons, emula la visió humana. En aquest cas la visió artificial en 3D, està encara en fase de recerca, on apareixen tecnologies avançades de modelatge matemàtic d’espais, tècniques de digital·lització d’objectes reals escannejats, tècniques de realitat virtual i altres aspectes tècnics en fase d’estudi i desenvolupament [6], que una vegada estiguin resolts, representaran un gran avanç en el camp de la visió artificial computeritzada necessària, per exemple, en la intel·ligència artificial.

Page 53: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

53

8 Bibliografia

[1] Sistema de Visió Orientat a la Docència (PFC)

Autor: Alejandro Adame Vidiella

Director: Edurad Llobet i Valero

[2] Sistema de Visión Artificial (PFC)

Autor: Daniel Martínez Barrambio

Director: Edurad Llobet i Valero

[3] Estudio mediante Matlab de técnicas de visión artificial

Varios autores

http://www-dim.unirioja.es:888/api/cvitae/jpison/PDFS/ Congresos/Articulo_Matlab99_FINAL.pdf

[4] Aplicaciones de la visión por computadora Autor: Homero V. Ríos

http://www.lania.mx/biblioteca/newsletters/1999-primavera-verano/aplicaciones.html

[5] Visión Artificial

Diego Viejo Hernando

http://www.divulga-ia.com/cursos/cursos.xml?nombre=2003-7-28b&n=1

[6] Diversos proyectos final de carrera del Grupo de Algoritmia para la Visión artificial i Biometría

Universidad Rey Juan Carlos I

http://gavab.escet.urjc.es/index1.html

[7] IMAQ Vision: User Manual

National Instruments

[8] IMAQ Vision for G Reference Manual

National Instruments

[9] Programación Gráfica para el Control de Instrumentación

Antonio Mànuel Lázaro

Editorial Paraninfo

Page 54: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

54

9 Annex 1 – Seutp de la Cèl·lula

A continuació explicarem els passos necessaris per a iniciar una sessió en la cèl·lula i per a posar en marxa la part del control de qualitat.

1) El primer pas, és engegar el PC i alimentar la càmera i la cambra d’il·luminació.

Figura 49. Alimentació de la cambra d’il·luminació

2) Alimentar la cèl·lula de fabricació flexible. Posar la clau de contacte a ‘1’.

Figura 50. Clau de contacte de la cèl·lula

Interruptor d’encès dels fluorescents

Cable d’alimentació dels

fluorescents

Cable d’alimentació de

la càmera

Page 55: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

55

3) alimentar els motors de la cinta transportadora. Per a fer això, cal accionar l’interruptor ‘K1’.

Figura 51. Interruptor K1 que alimenta els motors de la cinta transportadora

4) Obrir les claus de pas del circuit pneumàtic. La clau de pas general és pot veure a la figura 52.

Figura 52. Clau general de pas de l’aire comprimit

Obrir la clau de pas que habilita la línia de l’electrovàlvula que acciona el pistó de doble efecte per a aturar el carro amb les peces. La figura 53, mostra aquesta clau de pas. Per a que el pivot torni a la seva posició original, i retingui el carro amb les peces, cal que accionem la vàlvula de buit, previ tancament de la clau general de pas. Això fa que desaparegui l’aire d’aquest circuit i el pivot pugi.

Pas general tancat

Pas general obert

Page 56: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

56

Figura 53. Línia individual de l’electrovàlvula

5) Engegar les fonts d’alimentació per a alimentar el sensor inductiu i la circuiteria externa que acciona l’electrovàlvula, ajustant-les al valors que es poden apreciar en la figura 54.

Figura 54. Fonts d’alimentació

6) Accedir a la carpeta ‘PFCIvet’ de l’escriptori del PC i executar el programa de visió anomenat ‘Control de Qualitat.vi’.

Clau línia pistó

Vàlvula de buit

Page 57: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

57

10 Annex 2 – Setup del Sistema de Visió Artificial

Els requeriments de funcionament mínims del sistema són:

Hardware:

- Pentium II o superior

- Es precisa tenir instal·lada la tarja d’adquisició IMAQ PCI-1407

- Una càmera CCD en blanc i negre que acompleixi l’Standard CCIR

- Monitor en color 1024x768 píxels

Software:

- Paquet d’aplicacions IMAQ Vision que inclou:

1. IMAQ Vision Builder

2. IMAQ Vision for G

- LabVIEW 5.0 com a mínim

- Tenir correctament instal·lats els drivers de la tarja IMAQ PCI-1407

Per a instal·lar els drivers cal seguir els següents passos:

1. Entrar en l’aplicació per a configurar dispositius de National Instruments.

2. Seleccionar el dispositiu IMAQ PCI-1407, i amb el botó de la dreta escollir el tipus de càmera CCIR tal com es pot veure a la figura 55.

Figura 55. Tipus de càmera

Page 58: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

58

3. Visualitzar les propietats del dispositiu

Figura 56. Propietats del dispositiu.

4. Introduir els valors que indica la figura 57.

Figura 57. Valors de configuració de la càmera CCIR

Page 59: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

59

11 Annex 3 – Especificacions del Sistema d’Adquisició d’Imatges

El sistema d’adquisició d’imatges consta de la tarja IMAQ PCI-1407 ( amb els seus drivers), la càmera i el software de visió.

La tarja IMAQ PCI-1407, és l’element de hardware que s’encarrega, juntament amb el seu driver NI-IMAQ, de transformar el senyal analògic de vídeo a una matriu de píxels, això es fa mostrejant la informació de la càmera. Tot aquest procés de transferència d’informació entre la tarja i el software de visió (en aquest cas LabVIEW), està gestionat pel driver NI-IMAQ.

A l’hora d’escollir la tarja d’adquisició, cal tenir en compte alguns factors com són, la memòria de la tarja (on board), la transferència ràpida de dades al PC, capacitats avançades de triggering, funcions de preprocessament, i fins i tot integració de hardware d’adquisició de dades i control de moviment.

Els dispositius IMAQ hardware de National Instruments per a vídeo analògic, disposen d’un multiplexor de vídeo de manera que poden adquirir fins a quatre canals. Operen amb el bus PCI d’alta velocitat, i disposen de quatre triggers externs i un filtre anticromàtic per eliminar el color en senyals de vídeo amb guany i offset programable. A la figura 58, es pot veure la placa IMAQ PCI-1407.

Figura 58. Tarja IMAQ PCI-1407

A més, les plaques IMAQ inclouen una look up table (LUT) per a processat i Thresholding a la pròpia tarja i la possibilitat de carregar un LUT feta a mida. També es pot seleccionar una regió d’interès (ROI) per a disminuir la mida de la imatge que es transfereix a través del bus.

Concretament, la tarja analògica IMAQ PCI-1407 de National Instruments, treballa amb una definició de 8 bits (256 nivells de gris) i permet una velocitat de conversió de 25 imatges per segon.

Gràcies al driver NI-IMAQ, es pot accedir a la tarja de vídeo sense necessitat d’haver de programar els seus registres interns. Amb això es facilita la labor del programador i

Page 60: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

60

s’optimitza el rendiment del hardware. No obstant, si el programa de visió s’hagués implementat amb Matlab, hauria estat necessari dissenyar un driver específic per a poder accedir a la tarja. El diagrama de blocs de la figura 59, mostra la relació entre hardware i software.

Figura 59. Relació entre hardware i software

A la figura 60 es pot veure el funcionament bàsic de la tarja IMAQ PCI-1407.

Figura 60. Diagrama de blocs de la tarja IMAQ PCI-1407

Page 61: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

61

Com es pot veure, el senyal de vídeo entra pel connector BNC, i es emmagatzema al búffer. A continuació, si ha arribat una petició de lectura, el senyal passa a un conversor analògic-digital (previ ajust del guany i offset), i posteriorment es transmet al bus PCI de l’ordinador.

Aquesta tarja disposa de hardware per a aplicacions en temps real, que ajuden a millorar el rendiment del sistema de visió. La digitalització de la imatge es realitza a través d’un convertidor analògic / digital flash de 8 bits. El resultat de la conversió, passa a una look up table RAM de 256x8 bits. La LUT pot ser configurada per a implementar operacions simples de preprocessat d’imatge com manipulació gamma, inversió de dades o augment de contrast.

El bus CompactPCI, està dissenyat per a treballar amb el processadors més nous (transferint dades a 100 Mbytes/s), essent ideal per a aplicacions de vídeo. La interfície lògica assegura que la tarja reuneix els requeriments estrictes de càrrega i temps de la especificació PCI. Per a assegurar els índex de transferència més ràpids, la tarja empra l’integrat MITE DMA. Es tracta d’un ASIC específic per a adquisició de dades i imatges, optimitzat per un bus PCI mastering. Aquest xip té tres controladors independents DMA per entrada analògica o de vídeo, sortida analògica i operacions de temps simultànies.

El processador MITE DMA, ofereix elevats rendiments, ja que realitza l’entrellaçat i còpia en la memòria del PC, eliminant la intervenció de la CPU. Aquest tècnica es coneix com ‘Scatter-Gather’ DMA bus mastering, i elimina la necessitat de reprogramar el controlador DMA per a cada ubicació de memòria, podent realitzar així una transferència contínua d’imatge.

Figura 61. ‘Scatter-Gather’ DMA bus mastering

Gràcies al MITE i a la potència dels PC’s, existeix menys necessitat de targes de vídeo cares amb processadors DSP. La placa també disposa de búffers FIFO de 4 KB (més de quatre línies complertes de vídeo), usades per a emmagatzemar temporalment la imatge que no està sent transmesa al bus PCI.

Per altra banda, el driver NI-IMAQ, proporciona la unió entre el hardware i el software. En realitat és una interfície software que controla els detalls de hardware, i permet que la funcionalitat d’aquest sigui fàcilment accessible al programador sense necessitat d’escriure programació en codi a nivell de registres.

A la figura 62, es pot veure aquesta relació.

Page 62: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

62

Figura 62. Interfície entre hardware i software

Aquesta eina està inclosa en el dispositiu IMAQ de National Instruments. NI-IMAQ és una extensa llibreria de funcions que es crida des de l’entorn de programació (LabVIEW en aquest cas). Aquestes funcions, inclouen rutines per a:

- Adquirir imatges contínuament en memòria, adquisició des de múltiples entrades de vídeo, o adquisició de múltiples entrades cap a múltiples búffers.

- Usos DMA per a transferir imatges, és a dir control de l’integrat Scatter-Gather MITE-DMA.

- Tractar línies digitals E/S per a controlar relés d’estat sòlid (es poden controlar electrovàlvules utilitzant la tarja DAQ PXI-6527).

- Iniciar trigger d’adquisició d’imatge per event.

- Escalar la imatge des del hardware

- Carregar una LUT a la tarja per a funcions de processat.

NI-IMAQ disposa de dos nivells de programació, alt i baix nivell, que proporciona flexibilitat i una interfície fàcil entre LabVIEW i els dispositius hardware. A més té un ajut per a reduir el nivell de desenvolupament de l’aplicació, podent-se escollir entre molts tipus diferents de mètodes d’adquisició. D’aquesta manera es poden intercanviar càmeres i targes sense haver de canviar cap tipus de codi. IMAQ hardware i NI-IMAQ, estan dissenyats per a treballar amb IMAQ Vision, oferint captures en temps real, així com extracció d’informació crítica en processos de temps real.

Pel que fa al trigger, és un dels modes de funcionament de la tarja, i evita haver d’adquirir constantment la imatge i la transferència constant d’informació al bus PCI. La tarja té un connector tipus BNC que està situat a la part posterior d’aquesta.

La figura 63, mostra les connexions.

Page 63: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

63

Figura 63. Preses dels connectors BNC a la IMAQ PCI 1407

En relació a aquestes entrades o connexions es té la informació mostrada en la figura64.

Figura 64. Informació relativa a les connexions de la tarja

També cal tenir en compte les característiques del senyal de trigger que accepta la PCI a l’hora de condicionar el senyal.

Figura 65. Característiques del senyal de trigger

D’aquesta informació deduïm que es necessita un senyal de trigger tipus TTL, amb un nivell alt superior a 2v i un nivell baix inferior a 0,8v

Page 64: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

64

12 Annex 4 – Especificacions de la Càmera i la Òptica

Una càmera és un sofisticat transductor que converteix una escena en un senyal elèctric de vídeo. Segons el tipus de senyal que proporcionen es poden dividir en dos tipus: les analògiques i les digitals. En el nostre cas, s’ha emprat una de tipus analògic. El senyal analògic que proporcionen és digitalitzat posteriorment amb la tarja d’adquisició de vídeo IMAQ PCI-1407.

La majoria de càmeres, empren un array CCD (Charge Coupled Device), que s’ha convertit en un Standard tecnològic. Aquestes càmeres acompleixen una sèrie de característiques avantatjoses respecte a d’altres tipus de càmeres. En primer lloc, és fàcil configurar-les i fer-les servir. A més aporten una alta resolució, són resistents, petites, i de baix cost. El consum de potència és també baix, pel que són aconsellables per a aplicacions amb molta càrrega de treball.

Figura 66. Matriu CCD d’una càmera

Com es pot veure a la figura 66, un CCD és una matriu rectangular de milers de semiconductors connectats entre sí. Cada píxel és un element fotosensible d’estat sòlid que genera i emmagatzema una càrrega elèctrica quan és il·luminat. El píxel o sensor és el bloc bàsic constructiu d’una imatge CCD. A la majoria de les configuracions, el sensor inclou una circuiteria que emmagatzema i transfereix la seva càrrega a un registre de desplaçament. Aquest, converteix la matriu de càrregues espacials de la imatge CCD en una imatge de vídeo variable en el temps. La informació temporal de la posició vertical i horitzontal més el valor del sensor, són combinats per a formar el senyal de vídeo analògic.

El senyal de vídeo analògic està basat en l’Standard de televisió, que és l’Standard analògic més comú per a representar senyals de vídeo. Els Standards analògics existents són el RS-170 (B/N) i el NTSC (color) associats a una velocitat de 30 imatges per segon i una resolució de 640x480 píxels, i per altre costat, el CCIR (B/N) i el PAL (color) amb 25 imatges per segon i 768x576 píxels de resolució.

Encara que la relació senyal-soroll és més gran que en una digital (on la digitalització es fa a nivell de la càmera abans d’enviar a la placa), les càmeres analògiques són més barates, fàcils de configurar, i a més poden resoldre nombroses aplicacions a un preu baix. Les càmeres poden proporcionar senyal de color o monocrom (blanc i negre), i la seva elecció dependrà del tipus d’imatge a processar. En el cas de les peces a examinar, amb un processat adequat de la imatge es suficient per a detectar errors de muntatge.

Page 65: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

65

La càmera que s’ha fet servir, és una PULNIX model PE 2015. Es tracta d’una càmera de televisió amb una matriu CCD de 752x582 píxels monocrom, i acompleix amb l’Standard CCIR (25 imatges per segon). La figura 67 mostra la càmera emprada.

Figura 67. Càmera CCD PULNIX 2015.

Les seves característiques tècniques són les que podem veure a la figura 68.

Figura 68. Característiques tècniques de la càmera CCD

Page 66: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

66

Una vegada disposem de la càmera, hem d’escollir la òptica més adient per a la nostra aplicació. Normalment, en els sistemes d’adquisició d’imatges, primer es selecciona la càmera basant-se en les necessitats de l’aplicació, ja que la mesura dels sensors CCD és un dels paràmetres imprescindibles per a trobar la òptica més adequada. Per tant, els paràmetres a considerar són:

1. Resolució, que vindrà determinada per la característica més petita de l’objecte que es vol destacar en la imatge.

2. Mida del sensor (sensor size), dimensió de l’àrea activa del sensor CCD.

3. Camp de visió (field of view), àrea sota inspecció que la càmera pot adquirir.

4. Distància de treball (working distance), que és la distància des de la òptica de la càmera a l’objecte a inspeccionar.

A la figura 69, es poden observar aquestes característiques del sistema de visió.

Figura 69. Paràmetres d’un sistema d’adquisició d’imatges

El sistema d’adquisició ha de ser dissenyat amb l’objectiu de captar imatges de suficient qualitat com per a poder extreure’n les característiques necessàries per a l’aplicació.

Dintre de les diverses especificacions dels objectius és interessant destacar-ne tres:

1. Distància focal: és la distància existent entre la matriu CCD i el punt d’enfocament de l’objectiu. Com més petita sigui la distància focal, més gran serà el camp de visió. En l’aplicació que s’ha estudiat, per a enquadrar un objecte petit com les peces, caldria apropar molt la càmera (en el cas que la distància focal fos petita), i es produirien problemes d’enfocament degut a que estaríem per sota de la distància mínima d’enfocament. Si, en canvi, es fa servir un objectiu amb una distància focal gran, el camp de visió serà més estret, i haurem d’allunyar l’objecte per a enquadrar-lo sense problemes.

Page 67: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

67

2. Un altre paràmetre a tenir en compte és la mida de la matriu CCD, que en el nostre cas és de 1/3’.

3. La muntura de l’objectiu ha de ser adequada per al tipus de càmera que es fa servir. Existeixen dos tipus de muntura: la C i la CS. Mecànicament, són compatibles, però la muntura ha de correspondre a la òptica adient per a que les imatges siguin nítides.

En la figura 70 es poden veure aquests paràmetres.

Figura 70. Paràmetres de l’enfocament de l’objecte

L’òptica escollida és multifocal de 5 a 50mm, que permet enquadrar la imatge sense necessitat d’acostar excessivament la càmera a l’objecte. La figura 71 mostra l’òptica emprada.

Figura 71. Òptica emprada

Page 68: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

68

13 Annex 5 – Especificacions del Sensor

Les característiques tècniques del sensor utilitzat es poden veure a la figura 72.

Figura 72. Sensor inductiu de proximitat PNP

Com es pot observar, el sensor es comporta com una font de corrent, i cal ajustar la càrrega per a obtenir la tensió desitjada. En aquest cas necessitem una tensió compatible TTL (aproximadament 5v), pel qual s’ha muntat una regleta amb un potenciòmetre multivolta que hem regulat per a obtenir 5 volts a la sortida.

Per tant, el senyal que proporciona el sensor és el que es pot veure a la figura 73.

Figura 73. Senyal del sensor inductiu

La tarja d’adquisició, es pot configurar per a que detecti un flanc de pujada o de baixada. En la nostra aplicació s’ha configurat per a detectar flanc de pujada. Aquest aspecte ha d’estar lligat a la programació amb LabVIEW, per a que el sistema reconegui i empri correctament aquest senyal.

La figura 74 mostra algunes característiques importants del sensor.

Page 69: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

69

Figura 74. Característiques tècniques del sensor inductiu PNP

Page 70: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

70

14 Annex 6 – Especificacions del Control d’Avanç de les Peces

Per a retenir el carro amb les peces mecànicament, es fa servir el pivot. El pivot és mogut per un pistó de doble efecte, que es comanda des de l’electrovàlvula. La figura 75 mostra el pivot.

Figura 75. Pivot pneumàtic accionat per pistó de doble efecte

Podem controlar el pivot des del programa de visió per a fer que la peça avanci o no. Per a actuar sobre la vàlvula, es fa una escriptura al port paral·lel de l’ordinador. No obstant, cal condicionar aquest senyal de sortida del port paral·lel (TTL) ja que és insuficient per a activar el relé de control de l’electrovàlvula (dóna un corrent de sortida de 20 mA).

La figura 76 mostra les diferents etapes del sistema de control d’avanç de la peça.

Figura 76. Etapes del control d’avanç de les peces

A la figura 77, es pot veure el pinout del port paral·lel (DB25), corresponent a l’etapa de l’escriptura al port paral·lel.

Page 71: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

71

Figura 77. Pinout del DB25 del port paral·lel

Com es pot veure a la figura, el byte escrit al port es pot obtenir en els pins 2 a 9. A més cada pin de sortida s’ha de referenciar a la seva massa corresponent ( és a dir, pin2-pin18 (gnd) fins a pin7-pin25(gnd)).

Existeixen un parell d’errors que poden complicar l’escriptura sèrie al port paral·lel, i per resoldre'ls és necessari recórrer a les següents operacions.

a) s’ha de connectar a massa els pins 11(busy) i 12 (paper error). Si no es realitza aquesta operació, el driver que controla el port creurà que la impressora amb la qual vol establir comunicació està ocupada, o que està en estat d’error i no escriurà cap dada en el port paral·lel.

b) El port paral·lel ha d’estar correctament llistat com un dispositiu sèrie a l’arxiu ‘Labview.ini’. Per tant, és necessari escriure en aquest arxiu la línia següent:

Cal esmentar que LabVIEW assigna la numeració del port segons la llista anterior començant per 0, així que el port paral·lel LPT1 serà el número 2.

En la següent etapa condicionem la tensió del port per a activar la electrovàlvula. La figura 78 mostra el procediment.

Serial Devices = “COM1;COM2;LPT1”

Page 72: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

72

Figura 78. Esquema del driver ULN2003

En aquesta etapa s’amplifica el senyal TTL del port paral·lel a través d’una etapa amplificador Darlington. A la sortida d’aquesta etapa es disposa d’un senyal de potència (fins a 500 mA) que ens permet poder activar un relé.

La figura 79, mostren les característiques principals d’aquest relé.

Figura 79. Característiques del relé

Page 73: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

73

15 Annex 7 – Fitxers Matlab

A continuació es llisten tots els fitxers de Matlab emprats en la fase de disseny, amb llur explicació.

% Fitxer ‘anàlisi1’

I = imread('exemple.bmp');

f=rgb2gray(I);

BW = roipoly(f);

h = [1 2 -1;2 1 -2;-1 -2 1];

J = roifilt2(h,f,BW);

K=roifill(J);

imshow(I), figure, imshow(J), figure, imshow(K)

Codi 8. Fitxer ‘anàlisi1.m’

En aquest fitxer, carreguem la imatge sintètica creada amb el ‘Paint’ de Windows. Seguidament passem a grisos amb ‘rgb2gray’. Amb ‘roipoly’ apliquem la ROI sel·leccionable amb el mouse. La funció ‘roifilt2’ aplica el filtre ‘h’ a la zona definida com a ROI en un intent de detectar vores. Després s’aplica ‘roifill’ per a eliminar punts aïllats erosionant la imatge. En aquest cas, hem detectat que el filtre no està ben definit, i només detecta vores en una direcció i sentit. A més la funció ‘roifill’ no ens dóna el resultat esperat, que més endavant resoldrem amb una altra funció.

% Fitxer ‘anàlisi11’

e=imread('exemple2.bmp');

s=rgb2gray(e);

BW1 = roipoly(s);

w1=[1 2 1;0 9 0;-1 -2 -1];

w2=[-1 -2 -1;0 9 0;1 2 1];

J4 = roifilt2(w1,s,BW1);

J5 = roifilt2(w1',s,BW1);

J6 = roifilt2(w2,s,BW1);

J7 = roifilt2(w2',s,BW1);

for m=1:265

for n=1:272

if J4(m,n)<J5(m,n)

J8(m,n)=J4(m,n);

else

J8(m,n)=J5(m,n);

end

end

Page 74: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

74

end

for m=1:265

for n=1:272

if J6(m,n)<J8(m,n)

J8(m,n)=J6(m,n);

end

end

end

for m=1:265

for n=1:272

if J7(m,n)<J8(m,n)

J8(m,n)=J7(m,n);

end

end

end

figure, imshow(J8)

Codi 9. Fitxer ‘anàlis11.m’

La diferència d’aquest fitxer amb l’anterior, és que hem redefinit el filtre. De fet, són dos filtres que s’apliquen en quatre passos (matriu directa i transposada) per a obtenir els caires en les quatre direccions. El pas següent, és ajuntar les quatre imatges resultants (amb els caires de cada direcció) en una sola mitjançant un bucle que busca els píxels més foscos de cada una de les imatges. Aquest filtre funciona bé i el seu resultat es pot veure a l’apartat (3.6), però més endavant veurem que no ens interessa detectar vores per a omplir posteriorment les figures resultants sinó segmentar la imatge directament, i obtenir vàries imatges corresponents a la separació de cada color (segment de gris).

%Fitxer ‘anàlisi2’

I = imread('exemple2.bmp');

f=rgb2gray(I);

g=rgb2gray(I);

for m=1:265

for n=1:272

if f(m,n)<100

f(m,n)=255;

end

end

end

figure,imshow(f)

for m=1:265

Page 75: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

75

for n=1:272

if g(m,n)>30

g(m,n)=255;

end

end

end

figure,imshow(g)

Codi 10. Fitxer ‘anàlisi2.m’

En aquest fitxer, creem dues variables auxiliars ‘g’ i ‘f’ contenint la imatge transformada en grisos. A continuació, separem mitjançant un bucle for els nivells de gris en la variable ‘g’, fent que tots els píxels de la imatge que tinguin una intensitat inferior a 30 es respectin, i tots els que estiguin per sobre d’aquest llindar siguin transformats a blanc (255). D’aquesta manera tindrem una imatge amb tots els punts amb una intensitat inferior a 30 sobre fons blanc. De la mateixa manera, separem tots els punts que estan per sobre de 100 en l’altra variable ‘f’. Aquest sistema de segmentació funciona bé, però és massa lent perquè ha d’anar comparant un per un tots els píxels de la imatge (272 x 265).

%Fitxer ‘anàlisi3’

I = imread('exemple2.bmp');

hood=4;

h=rgb2gray(I);

a = imnoise(h,'speckle');

b = imnoise(a,'gaussian');

c = imnoise(b,'salt & pepper');

imshow(I), figure, imshow(h), figure, imshow(c)

%d=medfilt2(c);

d = medfilt2(c, [hood hood]);

e = ordfilt2(d,8,ones(3,3));

f = wiener2(e);

figure, imshow(f)

Codi 11. Fitxer ‘anàlisi3.m’

En aquest fitxer, fem una prova de filtrat de soroll. Partint del dibuix 'exemple2.bmp', afegim soroll de tres tipus per a intentar eliminar posteriorment amb tres tipus diferents de filtre. Cal dir, tal com s’ha explicat a l’apartat (3.4), que els sistemes de filtrat fan un inferència dels punts veïns (enlloc d’eliminar punts aïllats de soroll), el que fa que la imatge quedi desdibuixada.

Page 76: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

76

%Fitxer ‘anàlisi4’

I = imread('vermell-blau-buit.png');

z = rgb2gray(I);

%treure soroll

hood = 3;

d = medfilt2(z, [hood hood]);

e = medfilt2(d, [hood hood]);

f = medfilt2(e, [hood hood]);

figure, imshow(f)

%

g = ordfilt2(f,8,ones(3,3));

i = ordfilt2(g,8,ones(3,3));

j = ordfilt2(i,8,ones(3,3));

%

k = wiener2(j);

l = wiener2(k);

p = wiener2(l);

q = wiener2(p);

r = wiener2(q);

s = wiener2(q);

t = wiener2(q);

r=z;

s=z;

t=z;

%segmentacio

figure, imshow(r)

for m=1:560

for n=1:848

if r(m,n)<200

r(m,n)=255;

end

end

end

figure, imshow(r)

for m=1:560

for n=1:848

if s(m,n)>75

Page 77: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

77

s(m,n)=255;

end

end

end

figure, imshow(s)

for m=1:560

for n=1:848

if (t(m,n)<75) & (t(m,n)<75)

t(m,n)=255;

end

end

end

%deteccio de vores 1ª imatge

figure

BW1 = roipoly(s);

w1=[1 2 1;0 9 0;-1 -2 -1];

w2=[-1 -2 -1;0 9 0;1 2 1];

J4 = roifilt2(w1,s,BW1);

J5 = roifilt2(w1',s,BW1);

J6 = roifilt2(w2,s,BW1);

J7 = roifilt2(w2',s,BW1);

for m=1:560

for n=1:848

if J4(m,n)<J5(m,n)

J8(m,n)=J4(m,n);

else

J8(m,n)=J5(m,n);

end

end

end

for m=1:560

for n=1:848

if J6(m,n)<J8(m,n)

J8(m,n)=J6(m,n);

end

end

end

for m=1:560

for n=1:848

Page 78: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

78

if J7(m,n)<J8(m,n)

J8(m,n)=J7(m,n);

end

end

end

figure, imshow(J8)

%deteccio de vores 2ª imatge

figure

BW2 = roipoly(r);

J9 = roifilt2(w1,r,BW2);

J10 = roifilt2(w1',r,BW2);

J11 = roifilt2(w2,r,BW2);

J12 = roifilt2(w2',r,BW2);

for m=1:560

for n=1:848

if J9(m,n)<J10(m,n)

J13(m,n)=J9(m,n);

else

J13(m,n)=J10(m,n);

end

end

end

for m=1:560

for n=1:848

if J11(m,n)<J13(m,n)

J13(m,n)=J11(m,n);

end

end

end

for m=1:560

for n=1:848

if J12(m,n)<J13(m,n)

J13(m,n)=J12(m,n);

end

end

end

figure, imshow(J13)

Codi 12. Fitxer ‘anàlisi 4.m’

Page 79: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

79

En aquest cas, ja comencem a treballar amb imatges reals captades per la càmera, i apliquem els filtres en un procés de vàries iteracions, però, com ja hem dit el resultat és un imatge difuminada i pitjor que la imatge original. Per altra banda, el soroll que duen les imatges reals és ínfim i no afecta significativament l’anàlisi (tal com s’ha explicat en l’apartat 3.4). Per tant, en endavant optarem per no filtrar per a mantenir la nitidesa de la imatge original. El pas següent és segmentar la imatge en dues, seleccionar una ROI i aplicar els quatre filtres de detecció de vores a la ROI, per a després ajuntar-ho tot en la mateixa imatge (J13).

%Fitxer ‘anàlisi6’

% carregar imatge

% a = imread('vermell-blau-metall.png');

a = imread('vermell-blau-buit.png');

% a = imread('base-metall.png');

% sel.leccionar roi

figure

bw=roipoly(a);

% segmentacio d'imatge

bw1=(a<=0.176*255)|(a>=0.294*255); % crear quatre imatges intervals

bw2=(a<=0.274*255)|(a>=0.588*255); % de gris diferents

bw3=(a<=0.706*255)|(a>=0.804*255);

bw4=(a<=0.804*255)|(a>=1*255);

% aplicar roi

bw11=(bw1|(~bw)); % eliminar part de fora de la roi

bw22=(bw2|(~bw));

bw33=(bw3|(~bw));

bw44=(bw4|(~bw));

% neteja d'imatges

i10 = bwmorph(bw11,'majority');

i11 = bwmorph(i10,'clean');

i12 = bwmorph(i10,'dilate',6);

i13 = bwmorph(i12,'erode',15);

i20 = bwmorph(bw22,'majority');

i21 = bwmorph(i20,'clean');

Page 80: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

80

i22 = bwmorph(i21,'dilate',6);

i23 = bwmorph(i22,'erode',15);

i30 = bwmorph(bw33,'majority');

i31 = bwmorph(i30,'clean');

i32 = bwmorph(i31,'dilate',6);

i33 = bwmorph(i32,'erode',15);

i40 = bwmorph(bw44,'majority');

i41 = bwmorph(i40,'clean');

i42 = bwmorph(i41,'dilate',6);

i43 = bwmorph(i42,'erode',15);

% informe de la peça

% (agafar un pixel de cada una de les imatges de la segmentacio

% d'intervals binaritzades per veure si aquest es negre i

% esta present aquell interval de gris)

if i11(280,424)==0 % negre

sprintf('centre buit')

elseif i11(195,390)==0

sprintf('tapa negra')

end

if i21(280,424)==0 % clar (blau o vermell)

sprintf('centre blau o vermell')

elseif i21(195, 390)==0

sprintf('tapa blava o vermella')

end

if i31(280,424)==0 % mes clar (blau o vermell)

sprintf('centre blau o vermell' )

elseif i31(195,390)==0

sprintf('tapa blava o vermella')

end

if i41(280,424)==0 % blanc (metal.lic)

sprintf('centre metal.lic' )

elseif i41(195,390)==0

sprintf('tapa metal.lica')

Page 81: Control de qualitat de la cèl·lula de fabricació flexible ...deeea.urv.cat/public/PROPOSTES/pub/pdf/594pub.pdf · control del procés pugui ser visualitzat i manipulat per un usuari

81

end

% mostrar imatges

figure, imshow(i13,'notruesize')

figure, imshow(i23,'notruesize')

figure, imshow(i33,'notruesize')

figure, imshow(i43,'notruesize')

Codi 13. Fitxer ‘anàlisi6.m’

En aquest darrer fitxer fem servir un sistema diferent per a segmentar les imatges, fent una operació booleana (‘or’ lògica) amb tots els elements de la matriu de píxels de la imatge, éssent el resultat idèntic però requereix menys temps de procés, perquè no fem servir bucle i obtenim la segmentació i la binarització a la vegada.

Després eliminem la part de fora de la ROI, que no ens interessa, i, tal com està explicat a l’apartat (3.9), amb la funció ‘bwmorph’ fem operacions morfològiques que ens serveixen per a netejar la imatge. Un cop tenim les imatges segmentades i binaritzades, prenem un píxel de cadascuna per a veure si és negre i està present aquell interval de gris (color), emetent un informe de la peça que ens diu quins colors estaven presents.