Programari VisionOkll: la visió artificial en el sector industrial
Raúl Alcaide, enginyer de R+D del Centre de Visió per Computador (CVC) de la UAB
21/03/2014El Centre de Visió per Computador (CVC) és un centre de recerca sense ànim de lucre que es va fundar en 1995 per la Generalitat de Catalunya i la Universitat Autònoma de Barcelona (UAB). La seva missió es divideix en dos principals objectius. D'una banda, es dedica a la recerca en el camp de la visió artificial, sent centre de referència a nivell europeu. D'altra banda, atenint-se al seu deure retorno de coneixement a la societat, dedica un gran esforç a realitzar projectes de transferència tecnològica i la formació de futurs investigadors i tècnics d'alta qualitat.
Dins del CVC poden distingir-se dues àrees ben diferenciades, una dedicada a la recerca i una altra a la de desenvolupament. En la part de recerca, els doctorands són formats en l'àmbit de la visió artificial per personal investigador qualificat a l'una que realitzen activitats de docència en el Màster de Visió per Computador i en el grau d'informàtica. La part de desenvolupament és on es realitza tota l'activitat de transferència tecnològica pròpiament. En ella, es resolen totes les necessitats de la indústria aplicant el know-how del centre en àmbits tan diversos com la seguretat, la producció o la biomedicina. El procediment habitual de l'arribada d'un projecte al centre és mitjançant un diagnòstic de viabilitat previ. En aquest diagnòstic, s'intenta realitzar una primera aproximació al problema proposat a nivell de laboratori, s'analitzen les possibles complicacions que es poden presentar i s'estima el pressupost corresponent a l'execució d'aquest projecte.
Bona il·luminació, condició indispensable
En treballar amb visió per computador és d'obligat anàlisi aconseguir unes condicions d'il·luminació òptimes per obtenir una imatge el més nítida i contrastada possible. D'aquesta manera, al moment de realitzar el processament de la imatge adquirida, els algorismes i tècniques a aplicar se simplifiquen en un alt grau. Per això, és necessari conèixer les diferents tècniques d'il·luminació (difusa, rasant, puntual, etc.), els efectes de la llum no visible en els diferents materials (infraroig i ultraviolat principalment) o els components de la llum en entorns no controlats, com pot ser la llum solar per conèixer el seu impacte sobre les imatges que s'estiguin adquirint.
Imatge capturada d'un component de l'automòbil. Els pines, en la part superior, i les llengüetes, en la part inferior, brillen respecte al fons a causa de la il·luminació difusa.
VisionOkII, el programari del CVC
La visió per computador és una tecnologia àmpliament transversal, per això els projectes de transferència abasten diverses àrees de coneixement dins de la visió, entre ells, la visió industrial. Per realitzar aquests projectes relacionats amb el control de qualitat, una de les eines de les quals es disposa és un programari dissenyat i realitzat pel CVC anomenat VisionOkII.
Captura del programari VisionOkII. En aquesta imatge es mostra el resultat després del processament prèviament parametritzat. En aquest cas, el resultat ha estat Piece Nok, a causa d'un defecte de fabricació d'un dels pines (quadrat vermell).
Aquest programari permet la connexió d'una o diverses càmeres, tant Firewire com Ethernet, i permet l'accés als seus paràmetres per ajustar-les en funció de les condicions d'il·luminació, grandària d'imatge, triggers necessaris, etc. A més, disposa d'una sèrie de controls ja predefinits per poder realitzar deteccions senzilles amb algorismes altament optimitzats. Aquesta optimització és clau, ja que en moltes ocasions és necessari donar una resposta amb temps de cicle molt curts. En el cas de necessitar alguns algorismes de més alta complexitat o molt específics, és possible ampliar la funcionalitat dissenyant algorismes a mesures perquè l'usuari final pugui utilitzar-los a través de la interficie com un control més.
Imatge capturada on poden veure's en la part central els diferents fusibles amb el gravat del nombre i el color que els identifica.
Una vegada parametritzats tant la part de visió com els algorismes, ja és possible arrencar l'execució automàtica que dóna resposta en cada cicle, indicant si la peça ha estat correctament fabricada o no i donant un senyal o una altra com a resposta.
Addicionalment, existeixen una sèrie de funcionalitats complementàries en VisionOkII que permeten gestionar la informació o emmagatzemar dades d'interès. Per a això es disposa de la possibilitat de guardar imatges defectuoses o l'historial amb la informació del procés que s'està controlant.
L'ús de VisionOkII en el camp de la visió industrial ha permès realitzar multitud de projectes d'entorn industrial amb èxit. Un exemple d'això seria el control de qualitat que es va realitzar a caixes de servei d'automòbil per a un important fabricant de components del sector. En aquest cas, calia inspeccionar la col·locació dels components en el circuit imprès, les soldadures d'aquests components, el vernissat del circuit imprès, el muntatge final de la caixa de serveis (components i connectors) i, finalment, el marcat final de la caixa de serveis (entre altres coses, la impressió de nombre de sèrie).
Imatge de peça d'automòbil il·luminada amb llum UV. Les zones brillants són degudes a aquest efecte de fluorescència produït per la il·luminació d'aquesta llum sobre el vernís.
Per analitzar la col·locació dels components en el circuit imprès, es va inspeccionar la mesura i correcta disposició de les llengüetes on es connectarien posteriorment els connectors i la correcta posició dels fusibles dins de dita. Posteriorment, es van analitzar les soldadures de tots els components. En aquest punt, va caldre tenir en compte que l'estany és un element que reflecteix molt la llum amb el que s'havien de tenir molt controlades les condicions de l'entorn per no obtenir falsos positius i/o negatius. Per al correcte vernissat es va utilitzar una llum ultraviolada ja que, a causa de l'efecte de fluorescència que produeix, les zones cobertes pel vernís brillaven possibilitant detectar si el vernissat estava correctament executat. En el muntatge final es detectava la presencia/absència dels components prèviament determinats en un model correcte, així com el correcte estat dels diferents components (llengüetes rectes, pines no doblegats, fusibles en la posició i amb el valor correcte). Finalment, en el marcat final de la caixa, s'utilitzava un algorisme anomenat 'Optical character recognition' (OCR), que permetia reconèixer els diferents caràcters perquè poguessin ser identificats i comparats amb la lectura esperada. A més, es va incloure la capacitat de lectura de codis en 1D i 2D ja que moltes vegades, per trazabilidad, se sol incloure aquest tipus de marcatge.
Imatge de peça d'automòbil amb text inscrit en la seva superfície. Conté tota la informació necessària per identificar a la peça i obtenir la seva trazabilidad. Aquest text ha de ser llegit mitjançant un algorisme anomenat 'Optical character recognition' (OCR).
Gràcies al programari dissenyat en el CVC, VisionOkII, s'han pogut desenvolupar gran part dels projectes de visió industrial. Aquest programari és una eina molt completa, versàtil i customizable que conté una sèrie de controls senzills per realitzar un control de qualitat bàsic però que permet incloure algorismes específics per a casos molt concrets on es demandin uns controls més avançats.