Pipeline for wildlife re-identification including dataset zoo, training tools and trained models. Usage includes classifying new images in labelled databases and clustering individuals in unlabelled databases.
Documentation · Report Bug · Request Feature · :mailbox_with_mail:EmailDatasets for identification of individual animals | Trained model for individual re‑identification | Tools for training re‑identification models |
The aim of the project is to provide comprehensive overview of datasets for wildlife individual re-identification and an easy-to-use package for developers of machine learning methods. The core functionality includes:
An introductory example is provided in a Jupyter notebook. The package provides a natural synergy with Wildlife tools, which provides our MegaDescriptor model and tools for training neural networks.
[31/10/2024] Added AmvrakikosTurtles, ReunionTurtles, SouthernProvinceTurtles, ZakynthosTurtles (sea turtles), ELPephants (elephants) and Chicks4FreeID (chickens).
[13/06/2024] Added WildlifeReID-10k (unification of multiple datasets).
[09/05/2024] Added CatIndividualImages (cats), CowDataset (cows) and DogFaceNet (dogs).
[28/02/2024] Added MPDD (dogs), PolarBearVidID (polar bears) and SeaStarReID2023 (sea stars).
[04/01/2024] Received Best paper award at WACV 2024.
An overview of the provided datasets is available in the documentation, while the more numerical summary is located in a Jupyter notebook. Due to its size, it may be necessary to view it via nbviewer.
We include basic characteristics such as publication years, number of images, number of individuals, dataset time span (difference between the last and first image taken) and additional information such as source, number of poses, inclusion of timestamps, whether the animals were captured in the wild and whether the dataset contain multiple species.
The installation of the package is simple by
pip install wildlife-datasets
We show an example of downloading, extracting and processing the MacaqueFaces dataset.
from wildlife_datasets import analysis, datasets
datasets.MacaqueFaces.get_data('data/MacaqueFaces')
dataset = datasets.MacaqueFaces('data/MacaqueFaces')
The class dataset
contains the summary of the dataset. The content depends on the dataset. Each dataset contains the identity and paths to images. This particular dataset also contains information about the date taken and contrast. Other datasets store information about bounding boxes, segmentation masks, position from which the image was taken, keypoints or various other information such as age or gender.
dataset.df
The dataset also contains basic metadata including information about the number of individuals, time span, licences or published year.
dataset.summary
This particular dataset already contains cropped images of faces. Other datasets may contain uncropped images with bounding boxes or even segmentation masks.
d.plot_grid()
For additional functionality including mass loading, datasets splitting or evaluation metrics we refer to the documentation or the notebooks.
If you like our package, please cite our paper. You may be also interested in our SeaTurtleID dataset published in another paper.
@InProceedings{Cermak_2024_WACV,
author = {\v{C}erm\'ak, Vojt\v{e}ch and Picek, Luk\'a\v{s} and Adam, Luk\'a\v{s} and Papafitsoros, Kostas},
title = {{WildlifeDatasets: An Open-Source Toolkit for Animal Re-Identification}},
booktitle = {Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},
month = {January},
year = {2024},
pages = {5953-5963}
}