Alle modellen zijn ook beschikbaar via een publiekelijk beschikbare API. De API heeft de volgende endpoints:
https://museum.api.biodiversityanalysis.nl/api | root |
https://museum.api.biodiversityanalysis.nl/api/models | beschikbare modellen |
https://museum.api.biodiversityanalysis.nl/api/selector/identify | identificatie middels model |
https://museum.api.biodiversityanalysis.nl/api/selector/classes | klassen in model |
https://museum.api.biodiversityanalysis.nl/api/selector/report & | modelrapportage |
Let er op bij aanroep van endpoints géén afsluitende slash toe te voegen. De aanroep van bijvoorbeeld https://museum.api.biodiversityanalysis.nl/api/ geeft een foutmelding (‘The requested URL was not found on the server’).
Basisinformatie over de API
URL: https://museum.api.biodiversityanalysis.nl/api
Parameters: geen; Methods: GET, POST
Geeft een overzicht van de beschikbare modellen en hoe ze te benaderen.
URL: https://museum.api.biodiversityanalysis.nl/api/models
Parameters: geen; Methods: GET, POST
Endpoint om een afbeelding mee te identificeren.
URL: https://museum.api.biodiversityanalysis.nl/api/selector/identify
waarbij selector de waarde van ‘selector’ van een van de modellen uit het model-endpoint is.
Parameters: image= (als multipart/form-data); Methods: POST
Voorbeeldaanroep met cURL:
curl -XPOST -F "image=@bruce.jpg" https://museum.api.biodiversityanalysis.nl/api/haaien_roggen_eieren/identify
De response bevat een veld ‘predictions’, dat op zijn beurt een JSON-encoded lijst van voorspellingen van wat er op de geüploade afbeelding staat. Iedere voorspelling bestaat uit een klasse en de waarschijnlijkheid dat het die klasse betreft (als fractie van 1). De API geeft altijd de voorspellingen voor alle klassen in het model terug, aflopend geordend op waarschijnlijkheid.
Geeft een alfabetisch overzicht van alle klassen die een model bevat (‘herkend’).
URL: https://museum.api.biodiversityanalysis.nl/api/selector/classes
waarbij selector de waarde van ‘selector’ van een van de modellen uit het model-endpoint is.
Parameters: geen; Methods: GET, POST
Levert een rapport met een reeks kerngetallen m.b.t. de performance van een model.
URLs:
waarbij selector de waarde van ‘selector’ van een van de modellen uit het model-endpoint is.
Parameters: geen; Methods: GET, POST
Report
https://museum.api.biodiversityanalysis.nl/api/selector/report
Response bevat een aantal karakteristieken van het betreffende model:
class_list | Klassen in het model (naam; indexnummer) |
classification_report.model | Accuracy van het model. Precision, recall en F1-score voor het hele model (gemiddelde en gewogen gemiddelde). Support (aantal afbeeldingen waarmee het model getraind werd). |
classification_report.classes | Precision, recall en F1-score en support voor de iedere klasse. De indexnummers verwijzen terug naar de indexnummers uit de class_list. |
top_k | Aantal malen dat de correcte identificatie in de top 1, top 3 of top 5 van identificaties zat, voor het hele model. De top 1 is altijd gelijk aan het gewogen gemiddelde van de recall van het hele model. |
top_k_per_class | Idem per klasse, maar dan uitgedrukt als aantal afbeeldingen. Het aantal in de top 1, gedeeld door de support voor die klasse, is altijd gelijk aan de recall van die klasse. |
Confusion matrix
https://museum.api.biodiversityanalysis.nl/api/selector/report/confusion_matrix
Geeft de confusion matrix van de identificaties gedaan op de training set. De output bevat ook een uitleg hoe de confusion matrix te interpreteren.
Een aantal modellen is om inhoudelijke redenen niet publiekelijk toegankelijk. Deze zijn herkenbaar aan de tag ‘restricted’ in de output van het models-endpoint. Neem voor gebruik van deze modellen contact op met Naturalis. Heeft u toestemming om de bijbehorende endpoints te gebruiken, dan heeft u als het goed is een gebruikersnaam en wachtwoord gekregen voor toegang. De autorisatie is geïmplementeerd als Basic Authorization. Voorbeeld implementatie met behulp van cURL, als u de gebruikersnaam ‘mijn_naam’ en wachtwoord ‘geheim’ hebt gekregen:
curl -u "mijn_naam:geheim" https://museum.api.biodiversityanalysis.nl/api/vogeleieren/classes
of
curl https://mijn_naam:geheim@museum.api.biodiversityanalysis.nl/api/vogeleieren/classes