272-Identify Plants, Birds, and Insects in Photos

This repository provides Python code that identifies plants, birds, and insects in photos.

This project was inspired by the amazing progress in identifying plants, animals and mushrooms in photos that has been made by iNaturalist in the past years. The iNaturalist team has trained machine learning models with their vast collection of photos and research-grade identifications. In 2019, iNaturalist released Seek by iNaturalist which identifies photos offline on the phone and identifies to a higher level than species when an identification to species cannot be made.

Google provides three models that have been trained with iNaturalist data - classification models for plants, birds, and insects. These Google models can be downloaded and used with Google's TensorFlow and TensorFlow Lite tools.

This code is based on the trained models that Google provides. It has been written to experiment with identification of species from photos and to give Seek's approach a try and compute probabilities across the taxonomic hierarchy.

This tool nature_id.py has been tested on Linux and Windows. It likely works on macOS as well.


This is a command-line tool. It is called with photos or directories that contain photos and identifies the plants, birds, and insects in these pictures.

Here is an example. This is the command for Linux and macOS:

./nature_id.py -m plants plant_images/Persicaria_amphibia.jpg
On Windows the command is:

python .\nature_id.py -m plants plant_images\Persicaria_amphibia.jpg

https://github.com/joergmlpts/nature-id

These probabitities can guide the identification: define a threshold and as result report the taxon with the lowest probability that is larger or equal to this threshold. In this example for a threshold of 95% an [code.identification to species Persicaria amphibia has been achieved. For a threshold of 99%, this is only an identification to order Caryophyllales. 95% and 99% would be unusually high thresholds; Seek, I think, uses a threshold of 70%.

These probabitities can guide the identification: define a threshold and as result report the taxon with the lowest probability that is larger or equal to this threshold. In this example for a threshold of 95% an identification to species Persicaria amphibia has been achieved. For a threshold of 99%, this is only an identification to order Caryophyllales. 95% and 99% would be unusually high thresholds; Seek, I think, uses a threshold of 70%.

Digicam PlugIn iNaturlist

https://www.researchgate.net/publication/341606228_The_Review_of_iNaturalist_Observers_Plants_WORLD_ASIA_HONG_KONG_on_May_24_2020

https://kde-bugs-dist.kde.narkive.com/panmA7c6/digikam-bug-394544-new-export-to-inaturalist

See https://www.inaturalist.org/pages/developers and
https://www.inaturalist.org/pages/api+reference which provides a place for
developers to start on this.

I'm trying to use Digikam to establish a photo processing workflow entirely
based on open source software.

On the input/import end, I'm using OsmAnd on Android to collect GPS tracks,
OpenCamera on Android to take photos. Then I use Digikam to GPS correlate
tracks & photos from my discrete camera (and also to supplement Android photos
with DOP values from the OsmAnd tracks, which the Android platform doesn't yet
support recording in EXIF natively). Currently, I do all other editing & photo
processing within Digikam.

For exporting, I typically publish (currently via batch uploads of files
through the web interfaces of each platform) to five different target
platforms: Strava (a group for stewards of our local wilderness trail),
Facebook (valuable to support discussions with a broader community not on other
platforms), Flickr (mostly as fairly large, "free" cloud storage), Wordpress
(self-hosted), and iNaturalist. Anything I can do to automate / optimize / cut
out redundancy in my workflow would greatly improve life for me.

A significant barrier in this workflow to uploading efficiently to the
iNaturalist platform is submissions through their web interface of large photo
sets. In Chromium, it is necessary to partition sets of greater than about 30
photos at a time into subsets, otherwise my Atom-based workstation with 8G RAM
runs out of memory to handle the page. Integration with Digikam done properly
would likely help with this.

The main feature request & other useful features all sound like things that
would help me too. I'd love to see something started, and then those additional
requests filed as separate wishlists once work is underway.

As a professional software developer, primarily in Ruby these days, but with
some proficiency in other languages, and also as a Debian developer of some
years, helping develop an iNaturalist export extension for digikam is certainly
something I'd be interested in exploring. I must caution, though, that I have
no KDE development experience. I don't think that's a huge barrier to me making
some sort of contribution, but it probably rules me out as being a driver for
this effort.


FUNGI OF TEMPERATE EUROPE : THE WHEELS

- Thomas Laessoe & Jens H. Petersen

http://www.mycokey.com/Downloads/FungiOfTemperateEurope_Wheels.pdf
Het gebruik van de determinatiewielen is zeker voor beginnende amateurmycologen interessant, maar ook voor
gevorderden is het een leuke tool dat meer inzicht geeft in de veelvormigheid van de fungi.


Nederlandse fossiele strandschelpen in beeld

Tot 2010 hebben de schelpenkenners gewerkt aan de fossiele tweekleppigen, stoottanden en keverslakken. Het boek daarover, dat zo’n 340 soorten omvat, is niet meer verkrijgbaar, maar wordt nu online beschikbaar gesteld door Naturalis. Met de uitgave kan je opzoeken of een stenige schelp die je hebt opgeraapt bij Hoek van Holland mogelijk een 50 miljoen jaar oude zwinkokkel is, en of een prachtige geknobbelde en geribde schelp van Terschelling wellicht een hartschelp uit de laatste tussenijstijd van 125.000 jaar geleden kan zijn.
https://repository.naturalis.nl/pub/800043/
https://repository.naturalis.nl/pub/800043/Wesselingh-en-Moerdijk-2010-De-fossiele-schelpen-van-de-Nederlandse-kust.pdf
Sommige groepen schelpen zijn echt heel erg lastig om op naam te brengen. Gelukkig kunnen we steeds weer terugvallen op de enorme verzamelingen en kundige blik van de verzamelaars, die vaak als eerste bijzondere soorten herkennen. De liefhebbers zijn de ogen en handen van de wetenschap. Velen van hen hebben zich in de loop der jaren zo verdiept in bepaalde groepen fossielen dat ze experts zijn geworden waarop ook de professionals van Naturalis een beroep doen.
https://repository.naturalis.nl/pub/800043/
Fauna in beeld
Momenteel werkt het onderzoeksnetwerk aan het tweede deel dat gaat over de fossiele slakken: een faunagroep die mogelijk wel 400 soorten omvat. De verschillende families worden in afleveringen behandeld in het tijdschrift Spirula van de Nederlandse Malacologische Vereniging en het is de bedoeling die na afloop te bundelen in een nieuw boek. Over twee jaar zou de volledige Nederlandse fossiele schelpenfauna, dankzi
https://repository.naturalis.nl/pub/800043/Wesselingh-en-Moerdijk-2010-De-fossiele-schelpen-van-de-Nederlandse-kust.pdf
einig mensen zullen zich realiseren dat een schelp die opgeraapt wordt op het strand zomaar duizenden jaren oud kan zijn. Maar langs vrijwel de hele kust zijn ook schelpen van meer dan honderdduizend jaar oud te vinden. Deze stammen uit het Eemien, de voorlaatste tussenijstijd, toen de zee tot aan Amersfoort reikte. Ook schelpen van miljoenen jaren oud zijn op de Nederlandse stranden te vinden, met name in Zeeland. Het zijn getuigen uit tijden dat er ijsbergen ronddreven in de Noordzee of dat er juist mangrovebossen langs de kust groeiden. In totaal zijn er van de Nederlandse stranden en uit de estuaria zo'n 700 soorten fossiele schelpen bekend. In deze uitgave worden de fossiele tweekleppigen, keverslakken en stoottanden behandeld. Ongeveer 350 soorten komen aan bod: hoe zien ze eruit, uit welke laag komen ze, hoe hebben ze geleefd? Deze uitgave is vooral mogelijk door de inzet van liefhebbers, door wiens collecties en kennis de fossielenrijkdom van ons land nu goed in kaart is gebracht. https://repository.naturalis.nl/pub/800043/Wesselingh-en-Moerdijk-2010-De-fossiele-schelpen-van-de-Nederlandse-kust.pdf
https://www.vliz.be/docs/HAROkit-Zoekkaart-Roggen_versieApril2016.pdf
anemoon.org/DesktopModules/Bring2mind/DMX/API/Entries/Download?command=core_download&entryid=1119&language=nl-NL&PortalId=0&TabId=165
https://edepot.wur.nl/446037
Op het strand kun je ook eieren zoeken. Namelijk de lege eikapsels van haaien en roggen. Download de zoekkaart: http://go.wnf.nl/glcmv2



m, Rewilding Europe's 'Connecting rewilding science and practice' online symposium
playlist terecht: https://youtube.com/playlist?list=PL2JVHm4iCzUYEj3t7LyM7ehZCJ7FGR-Pl

Als je graag wilt weten hoe het ervoor staat met de #otter in De Onlanden, het otterrapport voor 2020 en 2021 staat vanaf nu online: https://deonlanden.nl/wp-content/uploads/2022/01/Otterrapport-20-21-definitief.pdf
https://www.ivn.nl/file/91167/download?token=wAsYomVj
https://drentsemusea.nl/hunebedcentrum/lezingen-archeologie-vanuit-microperspectief/

  • Podcast Tips


    Lekker luchtig: Alle geschiedenis ooit
    De Dienst, De man en de maan, Cover story en Hooked
    Boeken FM vind ik fijn. Gezellig, inhoudelijk en grappig.
    Welcome to your fantasy, de geschiedenis van Chippendales?
    https://drentsemusea.nl/hunebedcentrum/lezingen-archeologie-vanuit-microperspectief/
    https://cloud.google.com/vision/docs/detecting-landmarks

    https://observation.org/download/Biodiv%20Next%20-%20Dutch_Belgian%20species%20ID%20.pptx
    https://www.inaturalist.org/journal/ahospers/61053-272-identify-plants-birds-and-insects-in-photos

    https://twitter.com/search?q=pypsa Ik dacht dat ergens door betere voorspellingen negatieve prizjen bijna zouden verdwijn maar ik kan he net vindne

    https://zenodo.org/record/7050651/files/Naturalis%20Biodiversity%20Center%20%282022%29.%20Eindrapportage%20project%20Automatische%20beeldherkenning%20voor%20museumcollecties.pdf?download=1

    Naturalis Biodiversity Center (2022). Eindrapportage project Automatische beeldherkenning voor museumcollecties.pdf

    https://www.nlbif.nl/verborgen-biodata/ wist je dit...geleid door gallenman

    https://twitter.com/hashtag/EnergyTwitterVrijMiBo?src=hashtag_click

    https://www.researchgate.net/publication/341278898_Big_Data_Ja_Natuurlijk

    https://www.researchgate.net/publication/349378026_Diet_composition_of_the_golden_jackal_Canis_aureus_in_south-east_Europe_-a_review

    https://www.knawonderwijsprijs.nl/bestandenafbeeldingen/2016/modelleren-van-vegetatiepatronen.pdf

    https://www.geologienederland.nl/wp-content/uploads/2022/09/NGV_THM_CRB_Themadag_Noordzeebodem_2022_-_Samenvattingen_lezingen_versie_2.pdf

    https://www.techthics.nl/wp-content/uploads/2022/02/erdincsacan-inclusieveartificialintelligence.pdf

    https://arxiv.org/pdf/1906.10742.pdf

    https://arxiv.org/pdf/2103.10703.pdf

    https://www.tmgonline.nl/article/10.18146/tmg.815/

    https://github.com/joergmlpts

    https://forum.inaturalist.org/t/computer-vision-update-july-2021/24728 1

    https://www.inaturalist.org/blog/63931-the-latest-computer-vision-model-updates 1
    https://forum.inaturalist.org/t/new-computer-vision-model-released/31030 1

    https://forum.inaturalist.org/t/new-vision-model-training-started/27378 1
    https://www.inaturalist.org/blog/59122-new-vision-model-training-started 1

    https://github.com/inaturalist/inatVisionTraining

    The file https://github.com/inaturalist/inatVisionTraining/blob/main/nets/nets.py 1 appears to have the relevant code for instantiating models. The main chunk of the model is Xception which involves something called “depthwise separable convolutions” (I have not read the paper yet). The output of Xception is then put through a global average pooling layer, then a dropout layer, then a dense layer (i.e. like you would find in a perceptron model), and then a softmax layer.

    With some further reading of the paper, I think the Github repo will have given me a much clearer picture of what the computer vision model actually is

  • Als API endpoint my-api.plantnet.org/v2/identify/all gebruikt wordt, wordt de foto vergeleken met planten uit de gehele wereld. Zie bovenstaande test met API met project: all (Had oorspronkelijk k-world-all geschreven)

    Als endpoint my-api.plantnet.org/v2/identify/k-middle-europe gebruikt wordt, wordt gekeken naar foto's enkel uit midden Europa.

    Dat lijkt mij al een verbetering t.o.v. een resultaat dat een niet in Nederland voorkomende plantensoort als 1e optie geeft.

    De app PlantNet zelf geeft overigens weer een ander resultaat dan de API:

    19% Ranunculus tuberosus,
    4% Ranunculus sardous
    3% Ranunculus bulbosus
    Terzijde...
    Ideaal zijn de apps nog niet. Als een leek gewoon de plant met de hoogste score accepteert en de AI engine gebruikt dat weer als input, dan is het garbage in, garbage out.

    Flora Incognita, van een Duitse universiteit. Volgens een research paper, waarin de Flora Incognita engine beschreven wordt en verschillende apps in een benchmark vergeleken worden, scoren zij erg goed.
    https://besjournals.onlinelibrary.wiley.com/doi/10.1111/2041-210X.13611
    Flora Incognita heeft overigens ook een API, maar op dit moment worden er geen keys meer beschikbaar gesteld


  • Publicado el 08 de enero de 2022 a las 09:02 PM por ahospers ahospers

    Comentarios

    https://nofreehunch.org/2023/08/09/image-classification-in-the-real-wild/
    https://forum.inaturalist.org/t/what-i-learned-after-training-my-own-computer-vision-model-on-inats-data/44052
    ooks like the web app, shut down some time back. I have restarted it and updated the links.
    Just in case, this is address http://35.224.94.168:8080/ 45 (the ip address should not change)
    This app visualizes model predictions for a Computer Vision model trained on iNaturalist data

    You can read more about how this model was trained here

    Here is a rough guide to use this app :

    Look at the predictions on a Random image from the validation set
    Look at the Accuracy Summary for different taxonomic groups
    For example to look at the summary by Kingdom
    I personally find the summary by Order most useful
    Look at the errors at different levels in the taxonomic heirarchy.
    For example to look at errors where the model got the Kingdom wrong !
    For example to look at errors where the the model got the Species wrong
    This is a personal project by Satyajit Gupte
    http://35.224.94.168:8080/about
    I would be happy to hear anything you have to say. You can reach me at gupte.satyajit@gmail.com or on iNat
    https://nofreehunch.org/2023/08/09/image-classification-in-the-real-wild/
    http://35.224.94.168:8080/
    https://nofreehunch.org/2023/07/24/make-the-most-of-your-gpu/
    https://nofreehunch.org/2023/03/22/ads-auction/
    https://nofreehunch.org/about-me/

    https://forum.inaturalist.org/t/better-use-of-location-in-computer-vision-suggestions/915/41

    Google provides three models that have been trained with iNaturalist data - classification models for plants, birds, and insects. These Google models can be downloaded and used with Google's TensorFlow and TensorFlow Lite tools.
    https://techbrij.com/setup-tensorflow-jupyter-notebook-vscode-deep-learning

    Publicado por optilete hace 9 meses

    https://techbrij.com/setup-tensorflow-jupyter-notebook-vscode-deep-learninghttps://techbrij.com/setup-tensorflow-jupyter-notebook-vscode-deep-learning

    Further Reading

    The Recipe from PyTorch

    A nice paper on tuning hyper-parameters. The same author also came up with cyclical learning rates.

    Trivial Auto Augment

    How label smoothing helps

    CutMix, another clever augmentation strategy , which I did not try out.

    Geo Prior Model that encodes location and time

    How biologists think about classification ! This is a very good read.

    Anotado por ahospers hace cerca de un año

    It seems like someone has worked on that topic. Here is a paper from 2021 I found: https://arxiv.org/pdf/2103.08894.pdf Ik kan de 2 pdfs die Sluis noemde niet vinden..zoui het gedelete zijn door HIsko?

    Bij 2 is er vanzelf invloed op door de locaties van de gevalideerde waarnemingen,
    die worden dan in feite gebruikt als een extra stukje data. Is ook veel gedetailleerder, bij
    voorbeeld planten die alleen langs de kust voorkomen, waarbij een vergelijkbare soort alleen in
    het binnenland te vinden is. Dat red je niet met nafilteren, dan moeten veel te kleine gebieden
    worden ingesteld. En bij 2 zou ook fenologie automatisch meegenomen kunnen worden, analoog aan hoe d
    e locatie mee wordt genomen. Ik kan de tweede link die ik eerder stuurde van harte aanraden, daar wo

    rdt het beter toegelicht dan ik hier in een kort bericht kan: https://arxiv.org/pdf/2203.03253v1.pdf.

    Participate in the annual iNaturalist challenges: Our collaborators Grant Van Horn and Oisin Mac Aodha continue to run machine learning challenges with iNaturalist data as part of the annual Computer Vision and Pattern Recognition conference. By participating you can help us all learn new techniques for improving these models.

    Start building your own model with the iNaturalist data now: If you can’t wait for the next CVPR conference, thanks to the Amazon Open Data Program you can start downloading iNaturalist data to train your own models now. Please share with us what you’ve learned by contributing to iNaturalist on Github.

    Donate to iNaturalist: For the rest of us, you can help by donating! Your donations help offset the substantial staff and infrastructure costs associated with training, evaluating, and deploying model updates. Thank you for your support!

    Anotado por ahospers hace 12 meses

    Deze links zocht ik wrsch Wordt dat een kwestie van de resultaten nafilteren of wordt de locatie straks meegenomen tijdens het trainen van het model (dus ipv foto geven aan model, foto + locatie geven) (location embedding, zie bijv. https://inf.news/en/tech/fe120ee6c96f52c780e3a562e6de7f88.html, maar zeker ook https://arxiv.org/pdf/2203.03253v1.pdf)? https://forum.waarneming.nl/index.php/topic,499061.msg2565165.html#msg2565165

    Anotado por ahospers hace 12 meses

    Añade un comentario

    Entra o Regístrate para añadir comentarios