Sopp eller gult blad? Ved hjelp av nevrale nettverk som etterligner hjernecellene, kan en mobilapp se forskjellen, ifølge to datastudenter ved NTNU. Hvordan virker nevrale nettverk og andre metoder for å gjenkjenne innholdet i bilder? Svaret får du her – tilpasset soppsesongen. Bilde: Arnfinn Christensen, forskning.no/GadgetsGuy and GalaxyOptimus collage, CC-BY 2.5)
Sopp eller gult blad? Ved hjelp av nevrale nettverk som etterligner hjernecellene, kan en mobilapp se forskjellen, ifølge to datastudenter ved NTNU. Hvordan virker nevrale nettverk og andre metoder for å gjenkjenne innholdet i bilder? Svaret får du her – tilpasset soppsesongen. Bilde: Arnfinn Christensen, forskning.no/GadgetsGuy and GalaxyOptimus collage, CC-BY 2.5)

Vil finne sopp med mobilen

Avansert bildegjenkjenning kan saumfare skogbunnen på jakt etter gode soppsteder, tror to norske datastudenter.

Publisert

En gang i ubestemmelig framtid vasser en turgåer gjennom utmarka. Hun veiver med en mobil og myser mot skjermen.

Er hun på jakt etter en pokémon? Nei, nå bøyer hun seg ned. Foran henne lyser en kantarell i mosen.

Drømmen om en app

En app som finner sopp? Ikke umulig, når mobilen får et kamera som ikke bare kan se, men også tolke hva det ser.

Dette er ikke framtidsdrømmer. Bildegjenkjenning er allerede storindustri. Facebook kjenner igjen vennene dine på bilder du legger ut. Kameraer knipser automatisk når du smiler.

Nå vil de to norske NTNU-studentene Stian Jensen og Andreas Løve Selvik bruke den samme teknologien til å finne sopp i skogen – med en mobilapp.

Appen er foreløpig bare en idé, beskrevet i en prosjektrapport fra i fjor høst.

Nulltoleranse for giftig sopp

– Dette er en artig applikasjon, og teknologien de beskriver, er realistisk. Men utfordringen blir å finne sopp som er delvis skjult under gress og annen vegetasjon, kommenterer Arnt-Børre Salberg, seniorforsker ved Norsk Regnesentral.

– Hvis programmet skal kunne skille forskjellige arter fra hverandre, blir det også krav til nulltoleranse for giftig sopp. Det er vanskelig å oppnå, fortsetter han.

Mer enn luftig drøm

Soppsanking er industri med lange tradisjoner i deler av verden, skriver Jensen og Selvik i rapporten. De tenker seg at systemet deres kunne brukes til å kartlegge steder med mye sopp før innsanking, for eksempel fra selvstyrte droner.

Idéen til Jensen og Selvik er ikke bare en luftig drøm. De har analysert idéen i teknisk detalj. Rapporten gir en oversikt over hvordan datamaskiner har lært å tolke bilder – for eksempel av sopp.

Sopp er populært på matbordet ikke bare i Norge. Her selges kantareller i veikanten i Russland. (Foto: Arnfinn Christensen, forskning.no)
Sopp er populært på matbordet ikke bare i Norge. Her selges kantareller i veikanten i Russland. (Foto: Arnfinn Christensen, forskning.no)

Rask og gammel metode

Ta en helt vanlig kantarell. Hvordan skjønner dataprogrammet – enten det er i mobiler eller PC-er – at dette er en sopp og ikke et gult blad?

Grovt sett finnes det to svar på spørsmålet – to metoder. En gammel – Support Vector Machines, SVM – og en ny – dype nevrale nettverk. Rapporten beskriver begge.

Kantklipper

Grovt forenklet kan vi se SVM for oss sånn: Vi legger et gult blad ved siden av en kantarell i mosen. Hva gjør SVM?

Ingenting i første omgang viser det seg. Bildet er altfor rotete til at SVM kan skjønne noe av det. Her er mosedotter og barnåler og maur og pinner og alt slags rusk og rask. Bildet må forenkles.

Inn til redning kommer noe som vi litt fleipete kan kalle en kantklipper. Den klarer å klippe ut kantene eller omrisset rundt kantarellen og bladet.

Alt skogsrusket blir liggende. Ut av kantklipperen – eller Scale-invariant Feature Transform (SIFT) som den heter på dataspråk – kommer en forenklet samling punkter som beskriver den grove formen til kantarellen eller bladet.

Som Scale-invariant i navnet tyder på, er denne beskrivelsen uavhengig av størrelse. En liten og en stor kantarell gir samme tegning, hvis punktene har samme form.

Bildeserien viser hvordan SIFT gradvis sjalter ut punkter med lav kontrast og sitter igjen med punkter langs kantene på objekter i fotografiet, til høyre. (Foto: (Figur: Wikimedia Commons, Lukas Mach, CC-BY 3.0))
Bildeserien viser hvordan SIFT gradvis sjalter ut punkter med lav kontrast og sitter igjen med punkter langs kantene på objekter i fotografiet, til høyre. (Foto: (Figur: Wikimedia Commons, Lukas Mach, CC-BY 3.0))

Skala fra rund til spiss

OK – så har SVM noe å jobbe med. La oss si at kantarellen er rund mens bladet er spisst. De har to forskjellige former.

Vi lager en linje. Linja er en skala. Til venstre på skalaen er runde former. Til høyre er spisse former.

Kantarellen legger seg pent ut til venstre. Bladet havner til høyre. Nå kan SVM gå til aksjon. Det lager et grenseskille på linja. Til venstre sopp, til høyre blad. Greit?

Sopp til venstre – blad til høyre. Jo klarere formene legger seg ut til hver sin side, desto lettere er det for Support Vector Machine å skille dem. Her går skillelinjen et godt stykke ut til venstre – mot den runde formen. Men hva hvis bladet er rundt? (Foto: (Figur: Arnfinn Christensen, forskning.no))
Sopp til venstre – blad til høyre. Jo klarere formene legger seg ut til hver sin side, desto lettere er det for Support Vector Machine å skille dem. Her går skillelinjen et godt stykke ut til venstre – mot den runde formen. Men hva hvis bladet er rundt? (Foto: (Figur: Arnfinn Christensen, forskning.no))

Kanskje ikke alltid. Noen blader er også runde. Kanskje vi ikke bare kan se på formen? Hva med å se på fargen også?

Flate for form og farge

Vi tegner en ny linje, denne gangen loddrett. Øverst er grønt, nederst gult. Så går vi ut og tar bilder av flere kantareller og blader i mosen.

Hvert blad – eller sopp – får en plass på flaten ut fra form og farge. Et grønt rundt blad havner øverst til venstre. Et spisst gult blad havner nederst til høyre.

Igjen kan SVM trekke grenseskillet som en skrålinje. Nederst til venstre lyser fortsatt kantarellen imot oss – gul og rund.

Men hva med et gult og rundt blad? Hmmm. SVM får problemer fordi SIFT ikke beskriver data godt nok. Kanskje vi trenger å se på enda mer enn rund og spiss form og farge?

Her ser SVM på to forskjellige egenskaper – rund eller spiss form og gul eller grønn farge. Da kan SVM skille bedre mellom flere forskjellige typer blader og en sopp. Men hva hvis både bladet og soppen er rund? SVM kan ta i bruk mange hundre forskjellige egenskaper for å skille gjenstander i et bilde fra hverandre. Da får vi et mange hundredimensjonalt rom. Det er ikke lett å tegne i en figur, men dataprogrammet holder uten problemer styr på det. (Foto: (Figur: Arnfinn Christensen, forskning.no))
Her ser SVM på to forskjellige egenskaper – rund eller spiss form og gul eller grønn farge. Da kan SVM skille bedre mellom flere forskjellige typer blader og en sopp. Men hva hvis både bladet og soppen er rund? SVM kan ta i bruk mange hundre forskjellige egenskaper for å skille gjenstander i et bilde fra hverandre. Da får vi et mange hundredimensjonalt rom. Det er ikke lett å tegne i en figur, men dataprogrammet holder uten problemer styr på det. (Foto: (Figur: Arnfinn Christensen, forskning.no))

Mange hundre dimensjoner

Vi kan for eksempel lete etter takkete omriss på blader mot ujevnt bølgende omriss på kantarell. Eller bladnerver inne i bladet.

Poenget er at en SVM kan jobbe med mange hundre forskjellige egenskaper samtidig. Datamaskiner er gode på sånt.

De kan se hundredimensjonale rom og tegne grenser i disse rommene som skiller de hundredimensjonale punktene av kantareller fra hundredimensjonale bladpunkter. Puh!

Forenklede hjerneceller

Så kom 2012. En ny metode skled opp for tolkning av bilder – nevrale nettverk.

Eller – rettere sagt – metoden var ikke ny. Det nye var at datamaskinene var blitt raske nok til at nevrale nettverk kunne kjøres uten at farten til mikroprosessoren sank ned i sirup.

Nevrale nettverk virker litt på samme måte som datamaskinenes store forbilde – menneskehjernen. Da er det kanskje ikke så vanskelig å skjønne at de krever mye datakraft.

– Styrken til dype nevrale nettverk er at de klarer å beskrive bildene bedre enn SIFT, kommenterer Salberg.

SIFT var kantklipperen som forenklet bildet til en sky av punkter før SVM kunne kategorisere det. Nevrale nettverk gjør altså denne jobben bedre.

De kunstige nervesignalene i et nevralt nettverk forplanter seg fra inngangsnodene via skjulte mellomnoder til utgangsnodene. Hver node er som en hjernecelle, og forbindelseslinjene ligner nervetrådene som kobler sammen hjernecellene. (Foto: (Figur: Glosser.ca, CC-SA 3.0))
De kunstige nervesignalene i et nevralt nettverk forplanter seg fra inngangsnodene via skjulte mellomnoder til utgangsnodene. Hver node er som en hjernecelle, og forbindelseslinjene ligner nervetrådene som kobler sammen hjernecellene. (Foto: (Figur: Glosser.ca, CC-SA 3.0))

Nevrale nettverk har en slags forenklede hjerneceller. De kalles noder. Hver node er forbundet med andre noder, slik som hjernecellene er forbundet med andre hjerneceller gjennom nervetråder.

Preger inn mønstre

Når hjernen lærer noe nytt, blir forbindelsene mellom noen av disse milliarder av nervetrådene sterkere og andre svakere. Slik preges mønstre inn i hjernen.

På samme måte lærer nevrale nettverk ved at noen av forbindelseslinjene mellom nodene blir sterkere og andre svakere.

Enklere enn hjernen

Selvsagt er ikke nevrale nettverk akkurat som hjernen. I de nevrale nettverkene har nodene og forbindelseslinjene bare enkle tallverdier.

Nervesignalene i hjernen er mye mer kompliserte, som vi også tidligere har skrevet om her i forskning.no.

En annen forskjell er at det nevrale nettverket sender signalene bare en vei. Data om for eksempel soppbildet går først til inngangsnodene.

Så sendes data videre gjennom forbindelseslinjene og flere lag mellomnoder. Resultatet – tolkningen – kommer i utgangsnodene.

Men hvordan klarer et nevralt nettverk å se forskjellen på en sopp og et blad?

Lærebilder

Hvis du skal rettlede maskinen, må du ha en mengde forhåndsbehandlede bilder som maskinen kan lære av. Bildene må være nøye beskrevet.

Dataprogrammet må få vite akkurat hvordan det skal lete i bildet.

Fordelen med en sånn metode er at maskinen lærer raskere. Ulempen er at du må hoste opp alle disse bildene som er nøye beskrevet på forhånd. Hvor finnes de?

Datamaskiner lærer av dataspill

Jensen og Selvik foreslår to måter å skaffe dem på. Det finnes bildedatabaser som image-net, der bilder er klassifisert etter et språkvitenskapelig system.

Det andre og mest originale forslaget deres er å bruke dataspill. I dataspillene løper du ofte gjennom svære verdener med landskaper der det passer fint å plassere bilder av sopp.

Slik kan du raskt få en svær mengde kunstig lagede, men lærerike klassifiserte bilder. Du gir det nevrale nettverket bilder som det skal prøve å tolke, og så gir du den klapp på skulderen hver gang den finner en sopp.

I starten vil dataprogrammet ofte bomme. Men smått om senn skjer en læreprosess inne i de nevrale nettverkene.

Forplantning bakover

Noen få ganger treffer det blink. Da gjør nettverket ørsmå endringer bakover i forbindelseslinjene fra utgangsnodene via mellomnodene til inngangsnodene – de kunstige nervetrådene mellom de kunstige hjernecellene.

Dette kalles forplantning bakover – backpropagation. Etter tusener på tusener av prøvinger og feilinger justerer det nevrale nettverket seg inn på noe som funker.

Spør bare ikke hvorfor det funker. Det er ikke mennesker som har programmert inn metodene på forhånd. De oppstår i møtet mellom virkelighet og datamaskin.

Denne videoen forklarer i grove trekk hvordan det nevrale nettverket lærer ved forplantning bakover – backpropagation.

Selvgående, men krevende

Betyr denne metoden at du også kan sende datamaskinen ut i svarte skauen og overlate til den å samle kunnskap selv?

– Nei, der er vi ikke ennå, men det er dit vi vil, sier Salberg fra Norsk Regnesentral.

– Dette kalles læring uten veiledning – unsupervised learning, fortsetter han.

Fordelen med en sånn metode er at du ikke trenger en masse forhåndskodede bilder. Du kan la det nevrale nettverket bryne seg på rå virkelighet.

Ulempen er at slik læring krever større datakraft. Men som vi alle vet – Moores lov sier at datakraften dobles for hvert annet år.

Kunstig netthinne

Jensen og Selvik forteller videre om alle de oppfinnsomme folkene som har presset ytelsen til nevrale nettverk enda videre.

De forteller om konvulsjonsnettverk, som etterligner forbindelsen mellom netthinnen i øyet og synssenteret i hjernen.

Her er ikke alle noder forbundet med alle andre. Isteden er de satt opp i et rutenett.

Noder som skal fange opp ting til venstre i bildet, trenger ikke å være koblet opp mot noder som skal tolke ting til høyre. Det samme med oppe og nede.

Rutenettet i konvulsjonsnettverket forenkler bildet og sender det videre til et vanlig nevralt nettverk for videre tolkning. Også andre forbedringer fintrimmer prosessen.

Uten nett i soppskogen

Jensen og Selvik sender nå stafettpinnen videre til andre soppelskere og datakyndige. Programmet kan først utvikles og læres opp på datamaskiner, før det flytter inn i en app på en mobiltelefon.

– Opplæringen av de nevrale nettverkene krever ofte mye datakraft. Den kan skje på kraftige PCer, gjerne med flere store skjermkort i parallell, sier Salberg.

Når det nevrale nettverket først er lært opp, krever det mye mindre datakraft for å tolke bildene.

Derfor er han optimistisk med tanke på at appen skal kjøre på mobilen – også uten nettilgang. Det har du jo ofte ikke i soppskogen.

Fin fangst. (Foto: Arnfinn Christensen, forskning.no)
Fin fangst. (Foto: Arnfinn Christensen, forskning.no)

Fra skyen og inn i mobilen

Andre apper som bruker nevrale nettverk trenger riktignok ofte nettilgang. Det nevrale nettverket er da ikke i mobilen, men ute i skyen.

Derfor klarer for eksempel ikke Apples personlige assistent Siri å skjønne hva du sier hvis du er frakoblet. Men det er utvikling på gang.

– Jeg tror ikke det blir noe problem å kjøre soppdetektoren uten nettilgang, sier Salberg.

Rask utvikling

Den tekniske utviklingen av mobiltelefoner går raskt. Jensen og Selvik er optimister i sin rapport.

Tidligere metoder for bildegjenkjenning utkonkurreres av den større nøyaktigheten til nevrale nettverk, konkluderer de.

Men før appen deres har blitt virkelighet, er det bare ett nevralt nettverk som virkelig duger for ihuga soppsankere – det du har oppe under ditt eget topplokk.

Referanse:

Stian Jensen og Andreas Løve Selvik: Towards Real-Time Object Detection of Mushrooms, a Preliminary Review. Prosjektrapport , Institutt for datateknikk og informasjonsvitenskap - NTNU, 2015. Spørsmål kan også rettes til veilederen til studentene – Donn Morrison.