Konenäköjärjestelmät ja -menetelmät tutuksi | Julkaisut @SeAMK

Konenäköjärjestelmät ja -menetelmät tutuksi

Konenäkö on yksi modernin teollisuuden avainteknologioita ja eteläpohjalaisten teollisuusyritysten kiinnostus teknologiaan kasvaa koko ajan. Konenäöllä tarkoitetaan sitä, että kameran kuvaa ja siitä tehtyä laskentaa käytetään automaattiseen päätösten tekemiseen, esim. ohjaamaan laitteita.

Konenäkö voidaan jakaa perinteiseen sääntöpohjaiseen konenäköön ja koneoppimista hyödyntävään konenäköön. Perinteisessä konenäössä ihminen muodostaa säännöt kuvan tulkinnalle, koneoppimista hyödyntävässä konenäössä tietokoneohjelma puolestaan oppii itse säännöt sille esimerkkinä annettujen suurten kuvamassojen perusteella.

Klassinen konenäkö toimii loistavasti tilanteissa, joissa kuvausolosuhteet pystytään vakioimaan ja erot kuvattavien kohteiden välillä ovat kohtalaisen pieniä. Hyvä esimerkki tästä on kappaletavarateollisuus. Kamera voidaan kiinnittää kiinteään paikkaan kuljettimen yläpuolelle kuvaamaan siinä liikkuvia tuotteita, ja valaistus voidaan vakioida käyttämällä omaa valonlähdettä ja suojaamalla kamera hajavalolta. Säännöt voidaan muodostaa jos–niin-ohjelmoinnilla, esim. ”jos kuvassa näkyy valkoinen alue, jonka ympärille voidaan sovittaa halkaisijaltaan 200-pikselinen ympyrä, osa on kunnossa”. Keskenään samankaltaisten osien paikoituksessa, kohdistamisessa ja mittaamisessa perinteinen konenäkö on edelleen todella tehokas työkalu.

Koneoppimiseen perustuva konenäkö soveltuu ennakoimattomiin olosuhteisiin ja vaihteleviin kohteisiin. Hyvä esimerkki on kohteita tunnistava turvakamera, jonka tulee toimia luotettavasti säästä ja vuorokauden ajasta riippumatta. Koneoppismenetelmät vaativat suuria määriä esimerkkikuvia tunnistettavista kategorioista, vähintään satoja, mieluiten tuhansia tai kymmeniä tuhansia. Määrä toki riippuu tunnistettavista kohteista ja niiden monimutkaisuudesta.

Konenäössä useimmiten hyödynnettävät järjestelmäarkkitehtuurit voidaan jakaa PC-pohjaisiin konenäkökameraa käyttäviin järjestelmiin ja älykameroihin. Molemmilla arkkitehtuureilla on omat etunsa.

Konenäkökamera (vas.) ja älykamera (oik.) (SAMK automaatiotekniikan tutkimusryhmä, [viitattu: 12.8.2020]).

PC-pohjaisissa järjestelmissä konenäkökamera liitetään tietokoneeseen esim. verkkokaapelin avulla, ja kamera ainoastaan ottaa kuvan ja lähettää sen tietokoneelle analysoitavaksi. Varsinainen laskenta, tuloksiin reagoiminen ja tulosten tallettaminen hoidetaan siis tietokoneohjelmassa, jonka ohjelmoija on kirjoittanut itse tilanteeseen sopivaksi. Ohjelmoinnissa voidaan käyttää esimerkiksi avoimen lähdekoodin OpenCV-kirjastoa tai kaupallisia ohjelmistoja. Ohjelmoijalla on suuri vapaus menetelmien suhteen, mutta häneltä kysytään myös taitoa. Samalle PC:lle voidaan tarvittaessa liittää useampia kameroita. Kuvien siirto kameralta PC:lle aiheuttaa järjestelmiin luonnollisesti hieman viivettä.

Älykamera hoitaa sekä kuvaamisen että laskennan ja tulosten tallettamisen. Ohjelmointia varten älykamera liitetään tietokoneeseen, ja käyttäjä rakentaa ohjelman valmiista palikoista valmistajan tarjoamalla graafisella käyttöliittymällä. Ohjelman rakentaminen on helpompaa ja nopeampaa kuin rivi kerrallaan koodaamalla, mutta se on myös rajoittuneempaa kuin kirjoitettaessa ohjelma itse eikä ohjelmapalikoiden tarkka toteutus ole käyttäjän tiedossa. Koska kuvia ei tarvitse lähettää muualle analysoitavaksi, siirtoviiveet ovat alhaisempia. Älykameran etuna on myös hyvä liitettävyys muihin laitteisiin. Valmistavalle teollisuudelle suunnattuja älykameroita on tavallisesti käytetty perinteisen konenäön tarkistuksiin tuotannossa, mutta aivan viime aikoina älykameroihin on tullut myös koneoppimisominaisuuksia (esim. Cognex 2020). Älykameroiden hinnat ovat luonnollisesti korkeampia kuin pelkästään kuvaamiseen käytettyjen kameroiden.

Näiden lisäksi ohjelmoitavia logiikoita valmistava Beckhoff toi viime vuonna markkinoille oman TwinCAT Vision -kirjastonsa, jota voidaan käyttää konenäkökameroiden kanssa. Kirjaston avulla käyttäjä voi toteuttaa konenäkötarkistukset suoraan PLC-maailmassa siellä käytetyllä ST-kielellä. Näin liikkeenohjaus, konenäkö ja robotiikka saadaan saman ohjelmoitavan logiikan ympärille samaan tyyliin kuin jos ne olisivat saman PC:n ympärillä PC-pohjaisessa konenäössä. Koska kaikki tapahtuu samalla ohjelmoitavalla logiikalla, sovellusten välillä ei ole tiedonsiirtoa ja erittäin nopeat sovellukset ovat mahdollisia. TwinCAT Vision pohjautuu OpenCV:hen, joten ohjelmointi on sinällään hyvin samanlaista kuin PC-pohjaisissa järjestelmissä.

Kuhunkin sovellukseen sopivin järjestelmäarkkitehtuuri riippuu muusta järjestelmästä, nopeusvaatimuksista, muokattavuusvaatimuksista, käyttäjien ohjelmointitaidoista sekä budjetista. SeAMK Tekniikalla on meneillään Laadusta kilpailukykyä konenäöllä (Laaki) -hanke, joka pyrkii edistämään konenäön käyttöä Etelä-Pohjanmaalla. Hankkeen puitteissa kokeillaan erilaisiin esimerkkisovelluksiin eri konenäkötekniikoita ja -arkkitehtuurivaihtoehtoja.  Hanketta rahoittaa Etelä-Pohjanmaan liitto (EAKR). Lisätietoa hankkeesta löytyy täältä.

Juha Hirvonen
Yliopettaja
SeAMK Tekniikka

Lähteet:

Cognex. 2020. In-Sight D900 Vision System. [Verkkosivu]. [Viitattu 30.4.2021]. Saatavana: https://www.cognex.com/products/deep-learning/in-sight-d900

SAMK automaation tutkimusryhmä. Ei päiväystä. Perinteiset konenäköjärjestelmät. [Verkkosivu]. [Viitattu 30.4.2021]. Saatavana: https://automaatio.samk.fi/testi-sivu/perinteiset-konenakojarjestelmat/