/wildlife-datasets

WildlifeDatasets: An open-source toolkit for animal re-identification

Primary LanguageJupyter NotebookMIT LicenseMIT

GitHub issues GitHub pull requests GitHub contributors GitHub forks GitHub stars GitHub watchers License

Wildlife datasets

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 · 📬Email

Wildlife datasets MegaDescriptor Wildlife tools
Datasets for identification of individual animals Trained model for individual re‑identification Tools for training re‑identification models

Wildlife Re-Identification (Re-ID) Datasets

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:

  • overview of 36 publicly available wildlife re-identification datasets.
  • utilities to mass download and convert them into a unified format and fix some wrong labels.
  • default splits for several machine learning tasks including the ability create additional splits.

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.

Summary of datasets

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.

Dataset summary

Installation

The installation of the package is simple by

pip install wildlife-datasets

Basic functionality

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
Overview of the MacaqueFaces dataset

The dataset also contains basic metadata including information about the number of individuals, time span, licences or published year.

dataset.metadata
Metadata of the MacaqueFaces dataset

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()

Additional functionality

For additional functionality including mass loading, datasets splitting or evaluation metrics we refer to the documentation or the notebooks.

Citation

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}
}