Skip to main content

A tool providing multi-animal tracking capabilities on top of other Deep learning based tracking software.

Project description

DIPLOMAT

Deep learning-based Identity Preserving Labeled-Object Multi-Animal Tracking.

NOTE: DIPLOMAT is currently early beta software, there may be minor bugs and usability issues.

If you are a user (not a developer contributing code), you may want to visit:

About

DIPLOMAT provides a multi-animal pose estimation and editing interface. It relies on a trained CNN model (currently supporting SLEAP and DeepLabCut packages) and uses algorithms to first Track the animal body part in a way that reduces body part losses and identity swaps, and then provides an intuitive and memory/time efficient Interact interface to edit and re-track as needed. DIPLOMAT differs from other multi-animal tracking packages by working directly off of confidence maps instead of running peak detection, allowing for more nuanced tracking results.

UI Demo Showing user correcting tracking in a video

Correcting and rerunning the Viterbi algorithm on the Interact Interface

Example of tracking 2 Degus in a Box Example of tracking 3 Rats
Example of tracking 2 Degus Example of tracking 3 Rats

Installation

DIPLOMAT also includes four environment configuration files for setting up DIPLOMAT with mamba, which can be installed on Windows, Linux, or MacOS using the Miniforge installer. To create an environment using mamba, run one of these four commands:

# Create the environment for using DIPLOMAT with DeepLabCut
# GPU:
mamba env create -f https://raw.githubusercontent.com/TravisWheelerLab/DIPLOMAT/main/conda-environments/DIPLOMAT-DEEPLABCUT.yaml
# CPU only:
mamba env create -f https://raw.githubusercontent.com/TravisWheelerLab/DIPLOMAT/main/conda-environments/DIPLOMAT-DEEPLABCUT-CPU.yaml
# OR Create an environment for using DIPLOMAT with SLEAP instead...
# GPU:
mamba env create -f https://raw.githubusercontent.com/TravisWheelerLab/DIPLOMAT/main/conda-environments/DIPLOMAT-SLEAP.yaml
# CPU only:
mamba env create -f https://raw.githubusercontent.com/TravisWheelerLab/DIPLOMAT/main/conda-environments/DIPLOMAT-SLEAP-CPU.yaml

And then activate the environment with one of these two commands:

# Activate the DeepLabCut/DIPLOMAT environment...
mamba activate DIPLOMAT-DEEPLABCUT
# Activate the SLEAP/DIPLOMAT environment...
mamba activate DIPLOMAT-SLEAP

For a more thorough explanation of the installation process and alternative installation methods, see the documentation.

Usage

Running DIPLOMAT

To run DIPLOMAT on a video once it is installed, simply use DIPLOMAT's unsupervised and supervised commands to track a video:

# Run DIPLOMAT with no UI...
diplomat track -c path/to/config -v path/to/video
# Run DIPLOMAT with UI...
diplomat track_and_interact -c path/to/config -v path/to/video

Multiple videos can be tracked by passing them as a list:

diplomat track -c path/to/config -v [path/to/video1, path/to/video2, "path/to/video3"]

Once tracking is done, DIPLOMAT can create labeled videos via it's annotate subcommand:

diplomat annotate -c path/to/config -v path/to/video

If you need to reopen the UI to make further major modifications, you can do so using the interact subcommand:

diplomat interact -s path/to/ui_state.dipui

This displays the full UI again for making further edits. Results are saved back to the same files.

If you need to make minor modifications after tracking a video, you can do so using the tweak subcommand:

diplomat tweak -c path/to/config -v path/to/video

This will display a stripped down version of the interactive editing UI, allowing for minor tweaks to be made to the tracks, and then saved back to the same file.

For a list of additional ways DIPLOMAT can be used, see the documentation.

Additional Help

All DIPLOMAT commands are documented via help strings. To get more information about a diplomat subcommand or command, simply run it with the -h or --help flag.

# Help for all of diplomat (lists sub commands of diplomat):
diplomat --help 
# Help for the track subcommand:
diplomat track --help
# Help for the predictors subcommand space:
diplomat predictors --help

Documentation

DIPLOMAT has documentation on ReadTheDocs at https://diplomat.readthedocs.io/en/latest.

Development

DIPLOMAT is written entirely in python. To set up an environment for developing DIPLOMAT, you can simply pull down this repository and install its requirements using pip. For a further description of how to set up DIPLOMAT for development, see the Development Usage section in the documentation.

Contributing

We welcome external contributions, although it is a good idea to contact the maintainers before embarking on any significant development work to make sure the proposed changes are a good fit.

Contributors agree to license their code under the license in use by this project (see LICENSE).

To contribute:

  1. Fork the repo
  2. Make changes on a branch
  3. Create a pull request

License

See LICENSE for details.

Authors

If you have any questions, feel free to reach out to George Glidden, at georgeglidden@arizona.edu

See AUTHORS the full list of authors.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diplomat_track-0.1.11.tar.gz (270.3 kB view details)

Uploaded Source

Built Distribution

diplomat_track-0.1.11-py3-none-any.whl (323.8 kB view details)

Uploaded Python 3

File details

Details for the file diplomat_track-0.1.11.tar.gz.

File metadata

  • Download URL: diplomat_track-0.1.11.tar.gz
  • Upload date:
  • Size: 270.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for diplomat_track-0.1.11.tar.gz
Algorithm Hash digest
SHA256 f194aa58498ec17aa35d74a972b36b279c0df0cbec5801995bc467c24a3c81c0
MD5 57eeb66c3ee98438ed627683d170181f
BLAKE2b-256 1f46caf95b0aaf434ee88a4d249a948f7a678b99b8258a5a69663401db31f589

See more details on using hashes here.

Provenance

The following attestation bundles were made for diplomat_track-0.1.11.tar.gz:

Publisher: publish-to-pypi.yml on TravisWheelerLab/DIPLOMAT

Attestations:

File details

Details for the file diplomat_track-0.1.11-py3-none-any.whl.

File metadata

File hashes

Hashes for diplomat_track-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 54ff77a00e8132cd5b755e4cb09c261c798877c55d5fd112112ce6748cadc32a
MD5 1aa47015ff8fcfe0375a41dfb921532d
BLAKE2b-256 4f47af85baf2c9a59b93af04981c44feb0aa300c297890f8c9ef41db0e414835

See more details on using hashes here.

Provenance

The following attestation bundles were made for diplomat_track-0.1.11-py3-none-any.whl:

Publisher: publish-to-pypi.yml on TravisWheelerLab/DIPLOMAT

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page