Beeld- en geluidsherkenning

Vincent van der Spek  ·  26 oktober 2023  16:13, gewijzigd 26 oktober 2023  16:21

Ha ha, als dat al een droom is, dan toch zeker een nachtmerrie. Stel je voor dat je zelf niet eens meer hoeft te kijken! 

Maar fijne, heldere uiteenzetting! Ik ben ook zeer content met de mededeling dat er gewerkt wordt aan het voorkomen van 'domme' waarnemingen van zeldzame soorten. Dit is een spannende ontwikkeling, maar wat mij betreft is het wel te vroeg in de ontwikkelfase openbaar ingezet. Velen van ons zijn semi-afgehaakt ('ik blijf aan de gang'), en de klachten hierover leken niet zo serieus genomen...

Dat gezegd hebbende gebruik ik het zelf ook met plezier voor onbekende soortgroepen.

Tot slot nog een vraag: ik vermoed dat er een bias richting zeldzaamheden ontstaat omdat die relatief (en misschien zelfs wel absoluut!) meer gefotografeerd worden en op wrn.nl gezet, en dat daarmee de AI beter gevoed wordt met bijv. Iberische dan met 'gewone' tjiffen (om een hinderlijke 'standaardfout' te noemen). Klopt dat?


Vincent Kalkman  ·  26 oktober 2023  19:56

Ja, er wordt inderdaad gecorrigeerd voor het aantal foto’s wat van een soort beschikbaar is. Overigens worden er sowieso per soort maar maximaal 5000 foto’s voor training gebruikt.  Naast foto’s van Waarneming.nl worden ook foto’s van Observation.org gebruikt. Hierdoor zullen de meeste vogelsoorten ruimschoots in de fotoselectie vertegenwoordigt zijn.

Wim Wiegant  ·  26 oktober 2023  22:49, gewijzigd 26 oktober 2023  23:08

Ik vond het leuk en zeer leerzaam om te lezen...!

AI kende ik vooral uit de wereld van spellen als schaak en go, en bij schaak is het onverslaanbaar, maar bij go bleek er zelfs na het verslaan van de wereldkampioen een paar jaar geleden, een enorm gat te bestaan: het programma was, met een eenvoudige strategie met veel suboptimale zetten, makkelijk te verslaan...! De AI was niet getraind op deze strategie, en maakte daarom vrij domme fouten! Ik neem aan dat dat tegenwoordig niet meer zo is, maar dat heb ik niet uitgezocht. 

Maar bij het herkennen van vogels, om maar eens de getoonde Morinelplevier als voorbeeld te nemen: ik zou denken dat met enige inspanning het onderwerp van de foto te isoleren zou kunnen zijn. Daarmee zou het probleem van het herkennen van kale akkers als Morinelplevieren toch te voorkomen moeten zijn...? 

Dat de ontwikkeling van AI (training, en daarna herkenning) en het menselijk brein bij benadering hetzelfde werken, mag het volgende voorbeeld verduidelijken. Ik ben in supermarkten, in de tijd dat ik nog altijd een stropdas aan en een pet op had, meer dan eens door heel kleine kleuters aangeroepen met: "Opa...!", hetgeen dan niet juist bleek te zijn. De non-artificial intelligence van kleine - nog trainende - kinderen werkt wel net als AI: pet, kaal, stropdas, dat moet wel opa zijn...!

Vincent Kalkman  ·  26 oktober 2023  23:30

Een van de dingen die ik heb geleerd van het samenwerken met AI-mensen is dat je niet slim moet proberen te zijn en de AI zoveel mogelijk de problemen zelf moet laten oplossen. Je kan inderdaad de foto’s van morinel bijsnijden maar we hebben het in totaal over 35.000.000 foto’s - die kan je nooit allemaal langslopen. Het probleem kan daarom het beste aan de invoer kant worden opgelost: mensen moeten beeldherkenning alleen gebruiken bij foto’s waar het te identificeren object duidelijk is. De belangrijkste tip die je deze week zal lezen is dan ook dat je goed gebruik moet maken van de optie om foto’s bij te snijden. In ObsIdentify is deze optie ingebouwd en het wel of niet bijsnijden heeft sterke invloed op de resultaten. Overigens heeft het AI-team gewerkt aan auto-zoom waarbij op basis van de attentiemap aan de gebruiker een voorstel wordt gedaan voor het bijsnijden van de foto. Dit is een van de dingen die komende jaren hopelijk beschikbaar komen.

Klaas Zwaan  ·  29 oktober 2023  20:27, gewijzigd 29 oktober 2023  20:28

Dank voor dit boeiende artikel. Ik maak steeds meer gebruik van de genoemde technieken, vooral de herkenning op basis van geluid. Voor een vogelaar met wat gehoorschade is dat ideaal.  ;-)

Ik kijk erg uit naar de ontwikkelingen op korte termijn! 

Jan Hein van Steenis  ·  30 oktober 2023  12:07

Bij planten is het probleem vaak dat waarnemers alleen de bloem fotograferen, wat dan een antwoord oplevert dat niet te controleren is. De meeste mensen komen niet verder dan bloemperkjes en tuinen, wat dan weer tot rare antwoorden van de AI leidt (bijna elke exotische waarneming die ik in Duitsland tegenkom is een tuinplant die er totaal niet op lijkt).

Voor groepen waar ik geen verstand van heb is de beeldherkenning een heel handig hulpmiddel. Plantnet wist me bij sommige soorten in Peru aardig op weg te helpen.

(Dat ook nog eens de GPS-data door Samsung compleet absurd worden overgenomen is controle echt een crime... maar dat heeft niets met beeldherkenning te maken).

Wietze Janse  ·  31 oktober 2023  08:49, gewijzigd 31 oktober 2023  20:26

Vincent,

Bedankt voor je uitgebreid verhaal en het wat meer inzicht geven in de achtergronden. Ik weet dat de nauwkeurigheid per soortgroep wisselt, ik kan niet over andere soortgroepen praten, wel over vogels. Ik test om de zoveel tijd een paar van deze applicaties uit en vergelijk dan een beetje de nauwkeurigheid. Ga nu even niet hier dieper op in, behalve dat Google Lens de laatste tijd aanzienlijk verbeterd is.


Maar de uitkomsten zijn gebaseerd (corrigeer me als ik fout zit) op het vergelijken van plaatjes en derhalve afhankelijk van de kwaliteit van de plaatjes. Juiste uitsneden zijn belangrijk om het meenemen van omgeving (zie je voorbeeld Morinelplevier) te voorkomen. Dan vraag ik me af hoe ga je dan uiteindelijk 100% nauwkeurigheid bereiken, zolang je van zoveel/teveel variabelen afhankelijk ben. Vogelaars herkennen de vogels ook op het vergelijken van plaatjes, maar daarnaast houden ze ook een set kenmerken aan, die ze checken en kijken of die aanwezig zijn. Kan die set aan kenmerken ook niet ingebouwd worden in deze AI apps? Dat na het vergelijken van de plaatjes ook gekeken wordt of een dataset van x kenmerken ook op de vogel gevonden kan worden. Daaraan zou je dan ook nog een nauwkeurigheid kunnen hangen, bijvoorbeeld met het vinden van 4 van de 5 kenmerken scoor je 80%. En als je bovenstaande inbouwt, dan kan je dat, de kenmerken waarop de determinatie gebaseerd is, ook toevoegen aan de gegeven determinatie. Dan geef je niet alleen de juiste/verkeerde (vogel)naam, maar kan je ook een set aan kenmerken meegeven waarop de determinatie gebaseerd is. Dat kan men dan achteraf nog checken of het klopt en is ook nog leerzaam. Zeker dat laatste, leerzaam, ontbreekt bij de huidige apps, reden dat ik ze nu ook alleen aanraad als opstap voor een determinatie, nooit als eindelijke uitkomst.


Gewoon wat ideeën 😊


Peter de Knijff  ·  31 oktober 2023  11:23

@Wietze, volgens mijn eigen ervaringen met AI herkenning is het juist een volslagen raadsel hoe het algoritme uiteindelijk besluit dat iets A is en niet B. Dus “onze” kenmerken kunnen heel erg goed genegeerd worden door deze software. Ik heb al bijna 10 jaar geleden (welliswaar met andere software en voor andere - forensische identificatie- doeleinden) samen met een paar buitenlandse AI experts getracht dit helder te krijgen. AI gebruiken was geen probleem, maar de exacte herkennigscriteria eruit halen (wat voor gebruik in een rechtbank cruciaal is - ja rechter, de software zegt is niet acceptabel) bleek helaas onmogelijk. 

Het zou heel fraai zijn als AI mij kan vertellen hoe exact in onze ogen sterk gelijkende taxa te herkennen zijn, maar ik vrees dat dat een brug te ver is.

Als ik heb mis heb, hoor ik het graag. Ik gebruik het overigens heel vaak als een eerste richting bij de herkenning van voor mij onbekende insecten, waarna in vrijwel alle gevallen ik alsnog zelf aan de slag ga en iets gerichter de tabellen er bij kan pakken.

Jacob Lotz  ·  31 oktober 2023  11:31, gewijzigd 31 oktober 2023  11:37

Duidelijke uitleg! Is het model ergens gedocumenteerd? Wat voor licentie heeft het model / zouden we het kunnen inzien? Ik kan me zo voorstellen dat als postdocs hier onderzoek mee doen het een keer naar een open source project gaat.


@Peter en Wietze: Ik ben ook zeker geen AI expert, maar het lijkt me dat je een model wel kan leren om kenmerken uit te leggen. Het model zal er zelf (nog) helemaal niks van begrijpen maar zou op basis van een foto aan kunnen wijzen welke kenmerken op de soort passen met bijbehorende onzekerheid. Het model zou bijvoorbeeld uit twee lagen kunnen bestaan: eerst soort herkenning en dan kenmerk herkenning.

Jan van der Laan  ·  31 oktober 2023  20:26, gewijzigd 31 oktober 2023  20:29

Lang geleden al weer studeerde ik af in de cognitieve psychologie met als afstudeerrichting kunstmatige intelligente (AI). Daar was de meest gebruikte definitie van AI om computers dingen te laten doen waar mensen op dat moment beter (en vaak nog steeds) in waren. We probeerden daar zoveel mogelijk kennis van experts te modelleren om daaruit expertsystemen te bouwen. Bv een programma dat interactief vragen stelde om bv een aankomende hartinfarct te herkennen, meningitis of rugafwijkingen aan de de hand van gegevens die verkregen werden door patient/client op een lopende band te laten lopen.

Bij het laatste onderzoek vertelde mijn professor vol trots dat ze in het systeem een hoop expertregels hadden gestopt, maar waarbij ze veel kennis hadden verkregen van één patiënt, de zg benchmark patiënt. Op een dag was er een demo met diverse fysiotherapeuten en orthopeden als publiek. De patiënt met de gekende rugafwijking liep op de lopende band en daaruit rolde de diagnose. Het was ineens een totaal andere! De bouwers van het systeem zochten de weg naar de uitgang, verborgen zich achter het podium of deden alsof ze er niet bij hoorden. Totdat een van de fysio's zei, "hmm, volgens mij heeft-ie gelijk!"

Waar we toen eigenlijk tegenaan liepen was de hardware. Parellel processing konden computers nog nauwelijks of deden er een eeuwigheid over. Tegenwoordig is de hardware er wel op toegerust en heeft AI vooral de laatste 10 jaar een enorme vlucht genomen. Eigenlijk heeft het nauwelijks nog met AI te maken en is het niets meer dan brute rekenkracht en het zo snel mogelijk op zoek gaan naar de meest passende overeenkomst.

Het menselijke brein doet ook iets soortgelijks, maar is ook in staat om snel te kunnen besluiten dat iets niet in het bestand zit en gaat dan over op een andere strategie, namelijk een zg top-down benadering via een soort beslisboom.

Wim Wiegant heeft er ooit een uitstekende lezing over gegeven (m.i. zijn beste ooit), waarbij hij als bron blijkbaar het zelfde studieboek had gebruikt (Human Information Processing van Lindsay Norman), maar ook met nieuwe ontwikkelingen kwam, bv de zg  Jennifer Anniston neuron.

Tot slot defineerden Paul de Heer en Edward van IJzendoorn min of meer de strategie die de toenmalige CDNA gebruikte om vogelwaarnemingen te beoordelen: 1) passen de waargenomen kenmerken op soort A, 2) sluiten de waargenomen kenmerken andere soorten uit en 3) rechtvaardigen de waarnemingsomstandigheden punten 1 en 2?

Deze regels kun je ook toepassen op je eigen waarnemingen. Zelf denk ik dat machine learning systemen alleen gebruik maken van stap 1. Voor ObsIdentify zou je stap 3 kunnen inbouwen: foto's die een zekere mate van onscherpte vertonen niet beoordelen en dat afdoen met de melding dat de foto te weinig details laat zien om tot een determinatie te komen. Altijd nog beter dan het advies een andere hobby te gaan zoeken (hoewel ik me die reactie kan voorstellen!).

Vincent Kalkman  ·  2 november 2023  09:39, gewijzigd 2 november 2023  09:45

Hierboven staan veel vragen en ideeen. Ik probeer ze hieronder allemaal te adresseren.

Jan Hein van Steenis: Bij planten is het probleem vaak dat waarnemers alleen de bloem fotograferen, wat dan een antwoord oplevert dat niet te controleren is.

VJK: Dit is ook een grote frustratie bij de plantenvalidatoren in Nederland (vooral bij composieten en schermbloemen). Dit is deels een kwestie van het opvoeden van waarnemers, deels kunnen we bij de beeldherkenning betere foto’s gaan afdwingen en deels (mijn persoonlijke mening) moeten we misschien af van het idee dat elke waarneming goed- of afgekeurd moet worden. Er zijn zoveel waarnemingen en zoveel zijn zo onbenullig dat het niet erg is als ze ‘open blijven staan’.

Jan Hein van Steenis: De meeste mensen komen niet verder dan bloemperkjes en tuinen, wat dan weer tot rare antwoorden van de AI leidt (bijna elke exotische waarneming die ik in Duitsland tegenkom is een tuinplant die er totaal niet op lijkt).

VJK: In Duitsland is Observation/beeldherkenning sterk in opkomst met veel onervaren waarnemers en (te) weinig validatoren. Het percentage mensen dat lukraak bloemen in de tuin gaat fotograferen is daar (denk ik) hoger. Maar ook in Nederland blijft het een bron van ergernis.

Wietze Janse: ‘Hoe ga je 100% nauwkeurigheid bereiken & kenmerken waarop de determinatie gebaseerd is, ook toevoegen aan de gegeven determinatie’.

VJK: We gaan geen 100% nauwkeurigheid bereiken maar het gaat nog komende jaren elk jaar weer wat beter worden. Bedenk dat beeldherkenning nu ongeveer 5 jaar oud is en nu al bij een mystery bird competitie op een DB-dag vermoedelijk niet op de laatste plaats zou eindigen. Beeldherkenning kijkt nu niet expliciet naar kenmerken. Om dat wel te doen moet het systeem geleerd worden wat bijvoorbeeld een duimvleugel is. Om die bij alle vogels te herkennen heb je iemand nodig die op 10.000 foto's de duimvleugel aangeeft (etc voor achterteennagel, culmen, etc) en vervolgens expliciet beslisregels aangeeft. Dit is een beetje hoe ouderwetse beeldherkenning werkt. Het kan dus wel maar het is heel veel werk en voorlopig valt er meer winst te halen met allerlei andere zaken. Een van de dingen die we graag zouden willen (maar waar geen tijd voor is) is het betrekken van de waarnemer. Stel je maakt een foto van een schermbloem en je krijgt als reactie: ‘Deze plant behoort bij de schermbloemfamilie. 'Is de stengel hol of gevuld?’ of ‘Deze plant behoort bij de schermbloemfamilie, maak een foto van het blad voor verdere determinatie’.

Peter de Knijff: ‘Dus “onze” kenmerken kunnen heel erg goed genegeerd worden door deze software.’.

VJK: Dat is inderdaad waarschijnlijk vaak waar. Overigens herkennen wij de meeste dingen ook niet aan expliciete kenmerken. Als je een vork op tafel ziet liggen denk je ook niet: ‘he, een metaal glimmend voorwerp met aan de ene kant vier stevige scherpe punten’.

Jacob Lotz: het model ergens gedocumenteerd?

VJK: We hebben natuurlijk wel interne documentatie maar nog geen fraai artikel waar alles in beschreven staat. Dat komt deels omdat de focus ligt op het door ontwikkelen van het model en het schrijven van een artikel veel tijd kost terwijl de inhoud daarvan al achterhaald is voordat het uitkomt. De test dataset en modellen waar de Postdoc mee werkt worden wel gepubliceerd bij de artikelen. In hoeverre het model geheel open source wordt is nog onderwerp van discussie waarbij een balans nodig is tussen het zoveel mogelijk beschikbaar maken van kennis over biodiversiteit en het levensvatbaar houden van de verdere ontwikkeling. Persoonlijk speelt bij mij daar nog de ergernis mee over concurrerende biodiversiteitsportals waardoor validatoren op meerdere portals waarnemingen moeten controleren. Zo zou ik niet graag zien dat er in het buitenland allerlei ondoordachte portals worden opgezet die beeldherkenning aanbieden zonder dat er een sociale structuur van waarnemers en experts achter zit.

Jan van der Laan: 'Foto's die een zekere mate van onscherpte vertonen niet beoordelen en dat afdoen met de melding dat de foto te weinig details laat zien om tot een determinatie te komen.’

VJK: Er wordt gewerkt aan het weigeren van foto’s Het gaat daarbij om selfies, kamerplanten, collectie specimens en om wazige foto’s. Dit is niet allemaal gemakkelijk (je moet bijvoorbeeld zeker weten dat alle type mensen dezelfde kans hebben om geweigerd te worden). Opmerkelijk genoeg is het uitfilteren van onscherpe foto’s niet zo heel makkelijk. Foto’s zijn namelijk zelden helemaal onscherp en meestal gaat het om opnames waarbij de achtergrond haarscherp is met op de voorgrond een wazige vlek in de vorm van een vogel of plant.

Peter de Knijff  ·  12 november 2023  17:36, gewijzigd 13 november 2023  16:17

Bedankt voor je reactie Vincent.

Een hilarisch voorbeeld van een NIA determinatie zag ik vandaag langskomen (ingevoerd als Rooddijschaduwwants - Apolygus limbatus).

Ik vind dat er een veel betere disclaimer moet komen zodat ook de onervaren gebruikers veel minder klakkeloos de determinatie accepteren. WRN.nl staat vol met dit soort gevallen, helaas een onbedoeld effect van het gebruiksgemak. In de berichtgeving over NIA wordt hier te weinig aandacht aan gegeven vind ik.

Ben Gaxiola  ·  13 november 2023  21:30, gewijzigd 14 november 2023  08:29

@Peter,

Grappig is dan wel, dat ook de menselijke admin het fout heeft. :-)

Edit: ik vraag me af of dit wel een fout vd NIA is. De tekst van de admin suggereert dat het een invoerfout is in het Duits, waar deze beesten blijkbaar dezelfde naam hebben.

Peter de Knijff  ·  14 november 2023  09:04, gewijzigd 14 november 2023  09:20

Ik ken de admin, dat is een wantsen specialist, en ja, ik vermoed nu ook dat het een taaldingetje is. Maar dan nog, klakkeloos suggesties aannemen is nu juist niet wat je moet doen. Overigens, ik heb de waarnemer een mailtje gestuurd met de juiste determinatie.

Naschrift, zelf een kopie van de foto ingevoerd, NIA geeft 99% Zwarte ruiter, wat dus best wel eens zou kunnen kloppen, en bevestigd dat dit inderdaad geen NIA dingetje is maar een taalissue. 

Gebruikers van het forum gaan akkoord met de forumregels.

Feedback?