Handleiding voor het analyseren van spreeuwenfoto’s

Het kwantificeren van vogels (Spreeuwen) in groepen op digitale foto’s met behulp van R of ImageJ

Instructiefilmpjes

Inhoud

  1. Inleiding
  2. Analyse in R
  3. Analyse met behulp van ImageJ

 

1. Inleiding

Voor het kwantificeren van groepen vliegende Spreeuwen op digitale foto’s, genomen door vrijwilligers, zijn twee methoden ontwikkeld (zie het verslag: ‘Towards a fullyautomated image analysis system applicable to ecological studies’). De eerste methode is ontworpen in R, de tweede in het programma ImageJ. De applicatie in R is voor het grootste gedeelte zo gemaakt dat het proces zo veel mogelijk automatisch  verloopt. Het uitgangspunt was dan ook om zo weinig mogelijk gebruikers input nodig te hebben om foto’s te analyseren. In het geval van ImageJ was dit niet mogelijk, deze methode vraagt dan ook meer interactie in vergelijking met de eerder genoemde methodiek, maar is daardoor wel inzichtelijker voor de wat nieuwere gebruiker. Resultaten voor beide applicaties zijn terug te vinden in het verslag, het betreft hier een bachelor stage verslag waarin beide methodes zijn ontwikkeld en waarbij meerdere foto’s zijn geanalyseerd om de effectiviteit van beide methodes vast te stellen. De theorie achter beide methodieken wordt in detail behandeld in het eerder vernoemde verslag.

2. Analyse in R

Voor het gebruik van de methode ontwikkeld in R is het script ‘four steps and functions.R’ nodig (opvragen) en het package genaamd ‘starling’. Hierin staan de functies en stappen waarmee het mogelijk wordt om met behulp van R verschillende foto’s te analyseren. Het analyseproces verloopt volgens vier eenvoudige stappen, zoals terug te vinden in het R script en in de geproduceerde package. Bij het gebruik van de volgende methode wordt geadviseerd R studio te gebruiken. Voor een gebruiker die onbekend is met het installeren van een package en het openen van een R script, kan de video ‘Analyzing bird images inside R’ hulp bieden. In deze video wordt het gehele proces doorlopen in rustige en eenvoudige stappen. Niet alleen de installatie van het package en het openen van de bestanden, maar ook de hieronder volgende vier stappen worden in de video behandeld.

1. Na het installatieproces (eindigt 1 min 15 van de tutorial video) kunnen de stappen voor het analyseren doorlopen worden, beginnend bij de eerste functie: ‘listbirdfiles’. Voor dat de functie gedraaid kan worden, is het nodig om de juiste ‘path’ te zetten naar een map die alle te analyseren foto’s bevat, dit wordt gedaan achter ‘directPictures=’. Een voorbeeld is te zien in de figuur hieronder.

Vervolgens geeft de functie een lijst van alle bestanden die in de map aanwezig zijn. In de volgende functie kan vervolgens een van deze bestanden gekozen worden om geopend te worden (zowel .jpg als .png worden ondersteund).

2. In de tweede stap is het nodig om het nummer van de gewenste afbeelding in te voeren uit de lijst die eerder werd gemaakt bij stap 1. Achter ‘image_to_open’ moet het juiste nummer van de afbeelding komen, zoals bijvoorbeeld te zien in de onderstaande afbeelding:

Het is tevens mogelijk om de ‘threshold’ (uitgelegd in het eerder genoemde verslag) aan te passen. Dit is in de meeste gevallen niet nodig, maar soms kunnen foto’s zo afwijkend zijn dat aanpassing nodig is. Het verhogen van de threshold zorgt ervoor dat meer objecten in de selectie worden meegenomen, een verlaging minder. Zowel de originele foto als een foto met een threshold worden geopend na het uitvoeren van de tweede stap. Door deze twee met elkaar te vergelijken, kan worden bepaald of de threshold juist is bepaald door de functie.

3. In de derde stap worden objecten op de achtergrond (zoals bomen en gebouwen) van de foto verwijderd, hoe dit precies gebeurt staat beschreven in het eerder genoemde verslag. De derde stap hoeft niet per se uitgevoerd te worden en kan worden overgeslagen als er geen objecten in de achtergrond aanwezig zijn. Om objecten succesvol te verwijderen, kan het soms nodig zijn om de maximale en minimale grootte van de vogels aan te passen (zie de onderstaande foto; ‘maxsize’ en ‘minsize’), vooral als foto’s onder een bepaalde resolutie zijn (bijvoorbeeld onder 1000x700).

Maar in de meeste gevallen doen de default instellingen het prima. De twee resulterende foto’s uit de derde stap (één met alleen de overgebleven foto’s en één met alle verwijderde objecten) kunnen, indien nodig, gebruikt worden om de maximale en minimale grootte van vogels aan te passen.

4. In de laatste stap worden de resterende vogels verdeeld in twee groepen, één groep met patches die bestaan uit één vogel en één groep met patches die bestaan uit meerdere vogels, doordat deze zijn samengesmolten in de foto. De verdeling van deze twee groepen kan soms wat aanpassing nodig hebben. In de onderstaande afbeelding is te zien dat de vierde functie twee waarden nodig heeft, namelijk een mogelijke aanpassing aan de eerder genoemde verdeling (‘adjustdivision’) en of stap 3 wel of niet is uitgevoerd (‘step3’).

De laatste stap geeft een foto waarop het uiteindelijke resultaat zichtbaar is. In rood zijn patches weergegeven die een Spreeuw vertegenwoordigen en in blauw twee Spreeuwen. Tevens geeft R een histogram weer van de verdeling van verschillende groottes van alle patches die Spreeuwen vertegenwoordigen (in pixel aantallen). Hierdoor is het makkelijker te achterhalen of R een juiste verdeling heeft gemaakt. De automatisch gekozen verdeling in R wordt tevens weergegeven, ditmaal in het console gebied. Naast deze gekozen verdeling wordt in het console gebied ook het totale aantal aanwezige Spreeuwen vermeld, dat bepaald is aan de hand van alle voorgaande handelingen.

 

3. Analyse met behulp van ImageJ

ImageJ is een gratis software programma bedoelt om foto’s te analyseren, het kan gratis gedownload worden van http://imagej.nih.gov/ij/download.html. Het is zowel beschikbaar voor Windows als Linux en Mac besturingssystemen. Het is gebaseerd op een coderingstaal in Java, vandaar de naam Image “J”. Java heeft dan wellicht ook updates nodig om ImageJ goed te laten functioneren. De functies binnen ImageJ kunnen worden uitgebreid met ‘packages’ van het internet, deze methode is echter zo gemaakt dat geen extra functies nodig zijn binnen ImageJ. Met ImageJ is het mogelijk om zogeheten macro scripts te maken, waardoor verschillende functies binnen het programma automatisch en volgens plan verlopen. Om de analyse voor de gebruiker zo simpel mogelijk te maken, zijn voor deze methode in ImageJ twee macro scripts gemaakt (‘ImageJ macro part 1’ en ‘ImageJ macro part 2’). Deze 2 macro’s zijn op te vragen. Het analyse proces verloopt volgens de volgende vier simpele stappen (waarbij de eerder genoemde 2 macro scripts gebruikt worden). De voorbeelden zijn geïllustreerd op een Mac, maar voor Windows en Linux besturingssystemen gelden dezelfde stappen. Het gehele proces is ook te zien in een video op youtube (https://www.youtube.com/watch?v=tHJKjWOD_kk)

1. Na een succesvolle installatie van ImageJ, is het mogelijk een foto in te laden door te navigeren naar ‘Open...’ via het menu genaamd ‘File’. Kies vervolgens de foto die geanalyseerd dient te worden. In dit geval is een van de voorbeeld foto’s gebruikt om alle volgende stappen te illustreren.

2. Vervolgens is het tijd om de eerste macro te gebruiken. Dit kan worden gedaan door onder het menu ‘Plugins’ voor ‘Macros’ te kiezen en vervolgens de optie ‘Run…’ te selecteren. Kies vervolgens de eerste macro (‘ImageJ macro part 1’).

Vervolgens openen er twee duplicaten van de eerder geselecteerde foto. Eén daarvan is nodig voor de volgende stap (met de titel ‘Draw ROI’), de tweede is nodig voor later, vandaar de titel ‘For later’.

3. Bij de derde stap is het nodig om met de hand de ‘Region of interest’ (ROI) te selecteren. Dit is het gebied waar alle objecten zich bevinden die later gekwantificeerd dienen te worden. Het selecteren van de ROI gaat met behulp van de ‘Freehand selection tool’ (het vierde knopje van links zoals te zien in de onderstaande afbeelding). Vervolgens is het mogelijk om met behulp van de muis het specifieke gebied te omcirkelen (zie onderstaande afbeelding).

Hierbij helpt het als de ROI zorgvuldig wordt bepaald, zo dat het een gesloten vorm is die alle vogels omvat.

4. Vervolgens kan de tweede macro ImageJ macro part 2’gestart worden op dezelfde manier zoals beschreven in stap 2 voor de eerste macro.

 

Vervolgens wordt automatisch het eindresultaat bepaald en geïllustreerd (in zwart wit) zoals te zien in de onderstaande afbeelding. De tabel ‘Summary’ geeft het totaal aantal gevonden objecten weer binnen de ROI (onder het kopje ‘Count’), daarnaast bevat de tabel ‘Results’ alle oppervlaktes van de verschillende gevonden objecten (onder het kopje ‘Area’). Beide tabellen kunnen als Excel tabellen worden geëxporteerd.

Auteurs: 

Selwyn Hoeks

Jaar van uitgave: 

2015

Publicatiemedium: 

Speciale uitgave

Type speciale uitgave: 

Handleiding

Publicatietaal: 

Nederlands