Tuomas Valtanen & Mikko Pajula
Marjamasiina –hankkeen tavoitteena on tuottaa tekninen prototyyppi, jonka avulla valokuvasta voidaan tunnistaa marjasadon tilanne tutkimalla marjojen lukumäärää. Tätä ongelmaa on lähdetty ratkaisemaan kone- ja syväoppimisen avulla, mikä tyypillisesti tarvitsee suuren kuva-aineiston, jotta tekoäly voidaan opettaa tunnistamaan erilaisia objekteja valokuvasta tehokkaasti.
Hankkeen tekninen toteutus sai kunnollisen startin kesän 2021 myötä, jolloin tuotettiin hankkeen alustava marjakuva-aineisto. Kuva-aineiston sisältö koostuu pääosin mustikan kuvista, tosin puolukkaakin on saatu jonkin verran kuvattua mukaan. Kuvia on kirjoitushetkellä kaiken kaikkiaan lähes 10000, ja joukossa on runsaasti kuvia marjojen kukista sekä myös raaoista ja kypsistä marjoista.
Kuvien valotus ja zoomaustaso vaihtelee kuvien välillä, sillä koneoppimisen näkökulmasta on hyvä, että aineisto on mahdollisimman monipuolinen. Valotuksen vaihtelu on tullut luonnostaan aina päivän sään mukaan, mutta zoomaustasoja on tasaisesti otettu kolmelta eri tasolta, joita ovat lähikuva, keskitaso sekä koko laskentamittauskehikon näyttävä kuvaustaso. Monipuolisuuden lisäämiseksi kuvia otti myös usea valokuvaaja usealla eri kuvauslaitteella (erilaiset puhelimet ja järjestelmäkamerat).
Koneoppimismalli, joka opetetaan tunnistamaan valokuvista marjoja, tullaan rakentamaan neuroverkkojen avulla. Neuroverkko on ikään kuin laskennallinen malli siitä, miten ihmisaivoa muistuttava rakenne toimii keinotekoisesti. Toisin sanoen, neuroverkkoja hyödyntämällä voimme löyhästi matkia tietokoneella sitä prosessia, miten ihmisaivot oppivat. Tätä oppimista voidaan mm. soveltaa kuvien tunnistamiseen siihen erikoistuneella neuroverkkorakenteella.
Kuvien tunnistamisessa neuroverkko tyypillisesti koulutetaan aineistolla, jossa tunnistetut kohteet ovat valmiiksi merkattu. Koulutusaineiston valmistaminen sisältää kuvien ottamisen lisäksi myös kuvien merkkaustyön ihmisen toimesta. Toisin sanoen, aineistoa käsittelevät henkilöt käyvät kuva-aineiston erillisen ohjelman avulla läpi, sekä merkkaavat kuvissa näkyvät mielenkiintoiset tunnistettavat asiat, joita tässä tapauksessa ovat marjojen kukat sekä raa’at ja kypsät marjat. Tätä prosessia kutsutaan yleisesti termillä annotointi, jota varten on olemassa erilaisia annotointiohjelmia.
Marjamasiina -hankkeessa annotointiohjelmaksi valittiin Label Studio -sovellus, jossa yhdistyi selkeys, tuotetun annotaatiodatan turvallinen säilytys sekä verkkopohjaisuus. Verkkosivuilta käytettävän ohjelman hyötynä on se, että kaikki henkilöt annotoivat yhtä aikaa samaa aineistoa, jolloin vältetään päällekkäistä työtä ja vältytään kuvatiedostojen sekä annotaatioiden siirtelyltä.

Yksittäisen kuvan annotointi tapahtuu Label Studiossa piirtämällä neliö tunnistetun kohteen päälle. Annotointiprosessi itsessään on yksinkertainen, mutta tästä seuraa useita käytännön haasteita:
- Kuinka laaja alue piirretään mukaan?
- Merkataanko epäselvät tapaukset?
- Kuinka pienet tai kaukaiset kohteet merkataan?
- Mitä tehdä, jos ei erota esim. kukkia toisistaan?
Tunnistamisvaiheessa erityisesti puolukka tuotti hankaluuksia, koska puolukka kasvattaa marjat ryppäässä. Puolukan kukkavaiheessa on lähes mahdotonta ihmissilmällä erottaa ylivalottuneita kukkia toisistaan nipussa. Tämä puolukan ”erikoistilanne” ratkaistiin kehittämällä oma erillinen luokittelu ryppäälle. Sama toistettiin puolukan eri kasvuvaiheille.
Ryppäinä laskeminen voi olla haastavaa, sillä ryppäissä esiintyvät määrät voivat olla tulkinnanvaraisia. Toisaalta koneoppiminen voi oppia tunnistamaan ryppäät paremmin kuin yksittäiset marjat, jolloin tarkkuutta saadaan sillä, että useampi rypäs tunnistetaan. Tämä kuitenkin todennäköisesti johtaa sellaiseen kompromissiin, jossa joudumme arvaamaan ryppäiden koon perusteella niiden keskimääräisen marjamäärän.

Marjamasiina –hankkeessa annotointia suorittaville henkilöille ohjeistettiin rajaamaan kohde mahdollisimman tarkasti, mutta kuitenkin niin, että liikaa aikaa ei kulu ja kaikki tarvittava tulee kuvaan mukaan. Epäselvät tapaukset merkitään ainoastaan silloin, jos on varmaa tietoa kohteen aidosta sisällöstä. Pienet ja kaukaiset kohteet merkataan vain, jos niistä kertyy riittävästi pikseleitä.
Erityisen kiinnostavaa on etsiä marjoja keskivartalon tasolta otetuista valokuvista. Näissä kuvissa marjat ovat pieniä, mutta ainakin ihmisen silmällä helposti tunnistettavissa. Nykyaikaisten matkapuhelinten kameroiden kuvien laatu ja erityisesti pikselitiheys mahdollistaa pienten yksityiskohtien erottamisen.

Kuvassa näkyvä kehys on marjojen laskentaruutu, jonka avulla lasketaan alueen marjat neliömetrin alueelta.
Mustikkakuvien annotoinnin aikana ilmeni myös, että kuvissa näkyy variksenmarjoja tai muita marjoja, jotka eivät ole tunnistuksen havaitsemisessa mukana. Variksenmarjat ovat vielä kohtuullisesti tunnistettavissa, mutta juolukka tuottaa jo haasteita, jos annoitoinnin suorittava henkilö ei ole koulutukseltaan agrologi. Ensimmäisten koneoppimisversioiden kohdalla näitä hankkeen ulkopuolisia marjoja ei oteta lainkaan huomioon, mutta jos niistä huomataan aiheutuvan haittaa tuloksiin, on olemassa keinoja estää koneoppimismallia tunnistamasta niitä väärin. Kun annotointiprosessi on saatettu loppuun, saadaan annotointidata koneelliseen muotoon, jolloin sitä voidaan hyödyntää neuroverkon kouluttamisprosessissa.

Annotointiohjelman tuottama lopputulos on koneluettava tiedosto, joka voidaan syöttää neuroverkon oppimisprosessiin. Koneluettavassa tiedossa näkyy mm. annotoija, kuvan tietoja sekä kuvaan merkattu mustikan kukan koordinaatit kuvassa.
Tuotetun annotointitiedon pohjalta neuroverkko opetetaan aluksi tunnistamaan marjat, minkä jälkeen tutkitaan mahdollisuutta laskea marjojen määrä kuvatulta alueella.
Nyt syksyn edetessä FrostBit Software Labin väellä onkin työnsarkaa käydä koko aineisto läpi, varsinkin kun aineistoa voi vielä ilmaantua lisääkin käsiteltäväksi. Mutta mikäpäs siinä, mieluummin liikaa kuin liian vähän aineistoa!
Odotamme mielenkiinnolla millaisiin tuloksiin tuleva tekoälymme pääsee tuotetulla kuva-aineistolla!