Metalliosien mittaus konenäöllä – käytännön esimerkki | @SeAMK-verkkolehti

Metalliosien mittaus konenäöllä – käytännön esimerkki

#

Etelä-Pohjanmaan liiton rahoittamassa EAKR-hankkeessa Laadusta kilpailukykyä konenäöllä (Laaki) tutkitaan konenäön ja koneoppimisen käyttöä laadunvarmistuksessa ja tehdään konenäködemonstraatioita hankkeeseen osallistuvia yrityksiä kiinnostavista sovelluskohteista. Yksi kiinnostuksen kohteista oli sylinterimäisistä metallisosista tehtävät mittaukset. Kuva 1 esittää mitattavan osan.

Kuva 1. Mitattava sylinterimäinen metalliosa sivulta (vasemmalla) ja päädystä (oikealla).

Osasta haluttiin mitata sen reiän halkaisija sekä reunan paksuus viisteiden kohdassa (viisteet näkyvät kuvan 1 oikeassa kuvassa osan sivuilla pystysuorina leikkauksina). Molemmat mittaukset ovat näennäisesti yksinkertaisia toteuttaa, mutta ne osoittavat hyvin mittausten tarkkuuden kannalta konenäössä olennaiset asiat: valaistuksen merkityksen sekä linssin ja kameran soveltuvuuden mittauskohteeseen. Kuva 2 näyttää osan valaistuna eri suunnista ja havainnollistaa näin valaistuksen merkitystä.

Kuva 2. Osa valaistuna yläviistosta sivuilta (vasemmalla), yläviistosta kuvan suunnassa ylhäältä ja alhaalta (keskellä) sekä suoraan alhaaltapäin (oikealla). Mittauksissa päädyttiin käyttämään vasemmanpuoleisen kuvan valaistusta, sillä sekä viisteet että sisähalkaisija näkyivät siinä riittävän selvästi. Oikeanpuoleisessa kuvassa sisähalkaisija näkyy selvimmin, mutta viisteet eivät ole nähtävissä. Keskimmäisessä kuvassa viisteet näkyvät selvästi, mutta ne levittyvät laajalle alueelle.

Polttoväli määrää linssin kuvakulman: mitä suurempi polttoväli, sitä kapeampi kuvakulma. Tämä tarkoittaa, että kuvattaessa samaa kohdetta samalta etäisyydeltä eri polttovälien linsseillä, kuva-ala pienenee polttovälin kasvaessa. Kohde siis peittää kuvasta suuremman osan. Kuvattavien osien halkaisija oli noin kaksi senttimetriä, joten optimaalisin kuva-ala olisi ollut 2 x 2 cm2. Valitettavasti millään laboratoriomme linssillä ei päästy näin pieneen kuva-alaan, vaan osa peitti parhaimmassakin tapauksessa alle kymmenesosan kuvasta. Tämä tarkoittaa, että kameran kennon pikseleitä ei saatu hyödynnettyä tehokkaasti. Mitä suuremman osan kuvasta kohde peittää, sitä enemmän pikseleitä on käytössä sen mittaamiseen ja sitä parempi mittaustarkkuus saavutetaan. Kahden megapikselin kameralla päästiin nyt mittaustarkkuuteen 20 pikseliä/millimetri. Kuvauksissa olisi tarvittu erityistä makrolinssiä, jos olisi haluttu päästä parempaan mittaustulokseen.

Koneoppiminen ei sovellu mittaussovelluksiin, joten tämä demonstraatio tehtiin klassista konenäköä käyttäen. Mittauksissa käytettiin maailman suurimman konenäköyrityksen Cognexin älykameroiden mukana tulevaa kaupallista In-Sight Explorer -ohjelmaa sekä avoimen lähdekoodin OpenCV-kirjastoa. Rakentamalla mittausrutiinin kahdella eri ohjelmalla saatiin eri menetelmiä esiteltyä kattavammin. Kuvat 3 ja 4 esittelevät rakennetut mittausrutiinit. OpenCV:n mittausrutiinien ohjelmakoodit ovat saatavilla täällä.


Kuva 3. Cognex In-Sight Explorerilla rakennettu mittausrutiini. Sisähalkaisija luettavissa riviltä Diameter, reunan minimipaksuus viisteiden kohdissa riveiltä Math_1 ja Math_2.


Kuva 4. Kolme OpenCV:llä rakennetun mittausrutiinin tuloskuvaa samasta osasta eri asennossa.

Kuvauksissa kahdeksan metalliosaa kuvattiin 10 kertaa hieman eri asennossa ja kohdissa kuva-alaa. Tällä selvitettiin mittausten toistettavuutta. Referenssimittaukset tehtiin Mitutoyon työntömitalla, sillä se oli osallistuvan yrityksenkin tapa tehdä osien laadunvarmistusmittaukset. Mittauksia tehdessä huomattiin, että reunan minimipaksuuden määrittäminen viisteiden kohdassa vaati useita mittauksia, koska ohuimman kohdan löytäminen ei ollut kovin helppoa. Mitta ei suljettaessa leuat luiskahtanut siihen itsestään. Itse mittaus siis oli huomattavasti nopeampi konenäköä käyttämällä.

Konenäkömittausten keskimääräinen ero referenssimittauksiin oli reunan paksuusmittauksissa alle 0,1 mm ja sisähalkaisijamittauksissa alle 0,2 mm molemmilla tavoilla. Reunan paksuus viisteiden kohdassa oli noin 1,5 mm, joten vieläkin korkeampi tarkkuus voisi olla tarpeen, jotta havaittaisiin pienetkin poikkeamat.

OpenCV:llä rakennettu mittausrutiini oli sisähalkaisijan mittauksessa hieman epätarkempi. Lisäksi mittausten keskihajonta oli suurempi molemmissa mittauksissa. OpenCV:ssä käyttäjällä on suurempi vastuu esikäsittelyvaiheiden valinnassa ja parametrien määrittelyssä, joten tulos olisi vielä varmasti hiottavissa. Kaikissa kuvissa kummankaan ohjelman työkalut eivät pystyneet tunnistamaan viisteiden reunoja samoilla asetuksilla kuin muissa kuvissa, joten myös valaistusta voisi vielä kehittää paremmaksi.

Demonstraatio osoitti selkeästi, että konenäköä käyttämällä voidaan automatisoida mittauksia, mutta korkea tarkkuus edellyttää kohteen mukaan mitoitettua kuvausjärjestelmää. Osat täytyisi myös saada automaattisesti kuljetettua kameran alle oikeassa asennossa esimerkiksi robotilla, jotta koko toimenpide saataisiin automaattiseksi. Demonstraatiossa pystyttiin lisäksi näyttämään, kuinka suorittaa mittaukset ja kirjata mittaustulokset Excel-taulukkoon automaattisesti suuresta kuvamäärästä. Yksityiskohtaisempi mittausraportti julkaistaan Laaki-hankkeen kotisivuilla. OpenCV:llä rakennetun mittausrutiinin ohjelmakoodi esimerkkikuvineen on Seamkin avoimessa versionhallinnassa.

Juha Hirvonen
yliopettaja
SeAMK