19 November 2019

ObsIdentify (3) Who is afraid of red, yellow and blue? De Vlinder Turing test voor mens en AI

In mijn vorige blog liet ik zien dat de achtergrond een onverwacht grote invloed heeft op het resultaat dat het OsIdentify (O) programma geeft. De Atalanta die ik daarvoor gebruikte was een foto van een kleurentekening uit een vlindergids. Niks mis mee zou je zeggen. Zo leren mensen vlinders herkennen. Maar toen ik een echte foto gebruikte voor dezelfde experimenten waren de resultaten totaal anders. Als uitgangsfoto deze Kleine Vos met een wit gemaakte achtergrond. O determineert deze met 100% zekerheid. Dat is goed.
Foto Kleine Vos met witte achtergrond. 1280x960 pixels
gebaseerd op wikipedia
De kunstmatig witte achtergrond is dus totaal geen probleem. Zelfs teksten in de achtergrond en door de vlinder heen en ander geklieder maken O niets uit:
Computer says: Kleine Vos 100% !
Computer says: Kleine Vos 100% !
update: met nog meer takjes maakt niet uit!
Hoe kan dat? Ook egaal gekleurde achtergronden brengen O niet aan het twijfelen. Zelfs zeer felle onnatuurlijke kleuren brengen O niet van stuk. Waarom niet? Ik denk dat dit komt omdat O met echte foto's van echte vlinders is getraind. Niet met plaatjes uit een vlindergids. Wij mensen vinden dat geen groot verschil. Sterker nog: het valt ons niet eens op. Ik kreeg geen protesten dat ik een plaatje uit een vlindergids gebruikte. Maar voor O was dit wel een punt. Dit lijkt mij op zich een belangrijke constatering. Daar kom ik op terug.
Ten tweede: bij een echte foto is O 100% zeker van zijn zaak en daardoor laat hij zich niet in de war brengen door wat gerommel in de achtergrond.

Atalanta  (vlindergids) O: 61,3%
750 x 556 (zie vorig blog)
Ik denk dat die lage zekerheid 61,3% van de Atalanta met witte achtergrond uit de vlindergids niet zo maar een onschuldig voorbeeld is. Het zou wel eens kunnen verklaren waarom O gevoelig is voor achtergronden.
Ik stel me dat zo voor: stel dat wij in het donker op een afstand een persoon zien, dan kunnen we ons makkelijk vergissen wie het is. Zelfs als het een bekende is. Misschien denken we: ik kan zijn/haar gezicht niet goed zien, maar waarschijnlijk is het Jan, want die loopt meestal in een rode jas. Dus: irrelevante gegevens gaan de doorslag geven.

Who is afraid of red, yellow and blue?

Om deze hypothese te testen heb ik de echte foto van de Kleine vos van hierboven met een factor 6,4 verkleind tot 200x147. Dan zie je de eerste aanwijzingen dat sommige kleuren van de achtergrond een negatieve invloed gaan hebben. Ga je nog verder verkleinen, met 8,5x tot 150x110 dan wordt O nog onzekerder:

 [150x110] Kleine vos 100%
   Kleine vos 100%
   Kleine vos 99,9%
    Kleine vos 99,8%
   Kleine vos 70,9%
   Kleine vos 66,5%

Het effect van de achtergrond is overduidelijk. Afhankelijk van de kleur zakt de zekerheid. Bij groen zelfs tot 66,5%! Waarom? Waarom is het effect van kleuren zo verschillend? What's wrong with red, yellow and blue? NB: al deze achtergrondkleuren hebben geen enkel effect wanneer ze worden toegepast op groot formaat 1280x960 pixels. Hoe dan ook, O maakt er géén andere soort van. 
Echter, ga je het O nog moeilijker maken door ook nog onscherpte toe te voegen, dan wordt het een andere soort:

 klein+onscherp:
 Kleine vos 32,9% 
 [150x110]
 +groen:
 Oostelijke vos 74,2%
 [150x110]
 +rotzooi:
 Oostelijke vos 98,9%
 [150x110]

Door een combinatie van klein formaat 150x110 en onscherpte daalt de zekerheid van Kleine vos naar 32,9%. Voeg je daar nog een groene achtergrond aan toe, dan ziet O plotseling een Oostelijke vos. Dat is een evolutionair verwante soort die in Nederland zeldzaam is maar algemeen is in Rusland. Het drietal Kleine vos, Grote vos, Oostelijke vos is voor een leek moeilijk te onderscheiden (uitleg). Voeg je nog wat rotzooi in de groene achtergrond toe, dan loopt de zekerheid op tot de foute soort Oostelijke vos 98,9%. Deze voorbeelden tonen overtuigend aan dat de achtergrond een foute soort op kan leveren wanneer O om te beginnen al onzeker is (gemaakt). O is terecht onzeker want de foto is behoorlijk onscherp en ook nog eens klein. Onder deze omstandigheden komt het achtergrond effect tevoorschijn. Wij zouden ook enigszins onzeker zijn, maar zouden ons oordeel toch nooit door de achtergrond laten bepalen? Dat is het verschil tussen mens en machine.

Neveneffect van grote onzekerheid


Onzekere voorspellingen bij Kleine vos 32,9%
Aziatisch lieveheersbeestje (25.7%)

Het neveneffect van grote onzekerheid is dat er onzinnige alternatieven opduiken: Bastaardkikker, Kleine watersalamander.  Dat valt buiten de categorie vlinders, zelfs buiten de categorie insecten. 
Ga je nog een stapje verder met onscherpte dan komt O met Aziatisch lieveheersbeestje (25.7%).


Lezersvraag: hoever zou een machine moeten gaan om te kunnen zeggen dat die weet wat een vlinder is? Mijn voorstel: (1) blijf binnen de categorie vlinders als je het niet zeker weet. Het liefst binnen de familie of genus. Voor ons is het evident dat bovenstaande afbeelding geen lieveheersbeestje is. De gids Dagvlinders van Europa van Tristan Lafranchis is gebaseerd op sleutelkenmerken en daalt af via families, onderfamilies, geslacht tot de soort. Of die methode voor een computer geschikt is weet ik niet. Het proberen waard? (2) achtergrond mag geen invloed hebben op het resultaat. (3) het algoritme moet een vlinder uit alle richtingen herkennen. Hij moet dus 'weten' dat het een 3D object is, dat een vlinder zijn vleugels schuin kan houden, dat een vlinder heel of half in beeld is, met de kop beneden of boven, dat hij ver weg is, etc. (4) het algoritme moet zowel een goede tekening als een foto van een vlinder kunnen herkennen. (5) toekomstmuziek: in een video een vliegende vlinder herkennen als vlinder. Niet de soort, want dat kan bijna niemand. Maar wel: vlinder, hommel, wesp, vlieg, mus. En misschien ook nog dit: als het de soort niet kan identificeren, dan zou de indeling in genus of familie wel aardig zijn.

Lezersvraag: Weten mensen eigenlijk wel wat een vlinder is of leggen we de lat bij mensen minder hoog dan bij machines? Geen enkele Nederlander heeft de soortenkennis van ObsIdentify! Als je bedenkt dat ObsIdentify niet alleen vlinders herkent, maar ook andere insecten, vogels, etc. (14.000 soorten) dan zijn er niet veel mensen die dat evenaren. De vogelspotter Arjan Dwarshuis haalde binnen 1 jaar 6.833 vogelsoorten (wereldrecord). Het zou interessant zijn om een Turing test of een competitie te organiseren van mens en ObsIdentify. Dat geeft een objectieve vergelijking van de prestaties van mens en machine! Categorie (I) Algemeen: alle soorten dieren en planten; categorie (II): alle Nederlandse/Europese insecten; categorie (III): alle Nederlandse/Europese/Wereld vogels. Wie meldt zich?


Met dank aan Bert Morrien voor de lezersvraag.


Alle ObsIdentify blogs

  1. 30 September 2019 Test van ObsIdentify algoritme voor automatische identificatie van dieren en planten deel 1
  2. 21 Oktober 2019 ObsIdentify software gekraakt! Vlinders identificeren zonder te weten wat een vlinder is... deel 2
  3. 19 November 2019 ObsIdentify (3) Who is afraid of red, yellow and blue? De Vlinder Turing test voor mens en AI deel 3
  4.  4 December 2019 ObsIdentify herkent Kuifeend, Kikker, Kiekendief en vele andere soorten in plaatjes van 1 pixel deel 4
  5. 23 december 2019 Hoe zeker is 100%? Soorten met 100% zekerheid herkennen in random pixels. deel 5
  6.  4 Feb 2020 Hacken voor dummies en gevorderden. Beeldherkenningssoftware ObsIdentify is makkelijk te misleiden. deel 6.
  7. 18 maart 2020 ObsIdentify geeft ALTIJD foute antwoorden buiten zijn eigen domein. Ook met hoge zekerheden. deel 7