Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/publish-book.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: 3.9
python-version: 3.10

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install .[tf,docs]
python -m pip install .[docs]
pip install jupyter-book sphinxcontrib-mermaid

- name: Build the book
Expand Down
25 changes: 16 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,24 @@

Please click the link above for all the information you need to get started! Please note that currently we support only Python 3.10+ (see conda files for guidance).

Developers Stable Release:
- Very quick start: You need to have TensorFlow installed (up to v2.10 supported across platforms) `pip install "deeplabcut[gui,tf]"` that includes all functions plus GUIs, or `pip install deeplabcut[tf]` (headless version with PyTorch and TensorFlow).

Developers Alpha Release:
- We also have an alpha release of PyTorch DeepLabCut available! [Please see here for instructions and information](https://github.com/DeepLabCut/DeepLabCut/blob/pytorch_docs/docs/pytorch/user_guide.md).
Developers Stable Release: very quick start (Python 3.10+ required) to install
DeepLabCut with the PyTorch engine

- [Install PyTorch](https://pytorch.org/get-started/locally/) (**select the desired
CUDA version if you want to use a GPU**): `pip install torch torchvision`
- Then, [install `pytables`](https://www.pytables.org/usersguide/installation.html): `conda install -c conda-forge pytables==3.8.0`
- Finally, install `DeepLabCut` (with all functions + the GUI):
`pip install --pre "deeplabcut[gui]"` or `pip install --pre "deeplabcut"` (headless
version with PyTorch)!

To use the TensorFlow engine (requires Python 3.10; TF up to v2.10 supported on Windows,
up to v2.12 on other platforms): you'll need to run `pip install "deeplabcut[gui,tf]"`
(which includes all functions plus GUIs) or `pip install "deeplabcut[tf]"` (headless
version with PyTorch and TensorFlow).

We recommend using our conda file, see [here](https://github.com/DeepLabCut/DeepLabCut/blob/main/conda-environments/README.md) or the new [`deeplabcut-docker` package](https://github.com/DeepLabCut/DeepLabCut/tree/main/docker).

# [Documentation: The DeepLabCut Process](https://deeplabcut.github.io/DeepLabCut)
# [Documentation: The DeepLabCut Process](https://deeplabcut.github.io/DeepLabCut/README.html)

Our docs walk you through using DeepLabCut, and key API points. For an overview of the toolbox and workflow for project management, see our step-by-step at [Nature Protocols paper](https://doi.org/10.1038/s41596-019-0176-0).

Expand All @@ -82,9 +91,7 @@ For a deeper understanding and more resources for you to get started with Python

🐭 pose tracking of single animals demo [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/DeepLabCut/DeepLabCut/blob/master/examples/COLAB/COLAB_DEMO_mouse_openfield.ipynb)

🐭🐭🐭 pose tracking of multiple animals demo [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/DeepLabCut/DeepLabCut/blob/master/examples/COLAB/COLAB_3miceDemo.ipynb)

- See [more demos here](https://github.com/DeepLabCut/DeepLabCut/blob/main/examples/README.md). We provide data and several Jupyter Notebooks: one that walks you through a demo dataset to test your installation, and another Notebook to run DeepLabCut from the beginning on your own data. We also show you how to use the code in Docker, and on Google Colab.
See [more demos here](https://github.com/DeepLabCut/DeepLabCut/blob/main/examples/README.md). We provide data and several Jupyter Notebooks: one that walks you through a demo dataset to test your installation, and another Notebook to run DeepLabCut from the beginning on your own data. We also show you how to use the code in Docker, and on Google Colab.

# Why use DeepLabCut?

Expand Down
2 changes: 1 addition & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ only_build_toc_files: true

sphinx:
config:
autodoc_mock_imports: ["wx"]
autodoc_mock_imports: ["wx", "matplotlib", "qtpy", "PySide6", "napari", "shiboken6"]
mermaid_output_format: raw
extra_extensions:
- numpydoc
Expand Down
2 changes: 0 additions & 2 deletions _toc.yml
Comment thread
MMathisLab marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,8 @@ parts:
chapters:
- file: docs/ModelZoo
- file: docs/recipes/UsingModelZooPupil
- file: docs/recipes/MegaDetectorDLCLive
- caption: 🧑‍🍳 Cookbook (detailed helper guides)
chapters:
- file: docs/tutorial
- file: docs/convert_maDLC
- file: docs/recipes/OtherData
- file: docs/recipes/io
Expand Down
10 changes: 8 additions & 2 deletions conda-environments/DEEPLABCUT.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@
#Licensed under GNU Lesser General Public License v3.0
#
# DeepLabCut environment
# FIRST: INSTALL CORRECT DRIVER for GPU, see https://stackoverflow.com/questions/30820513/what-is-the-correct-version-of-cuda-for-my-nvidia-driver/30820690
#
# AFTER THIS FILE IS INSTALLED, if you have a GPU be sure to install cudnn from conda-forge: conda install cudnn -c conda-forge
# FIRST: If you have an NVIDIA GPU and want to use it, check that you have drivers installed!
# To check if your GPUs are visible to PyTorch (and thus DeepLabCut), run:
# >>> python -c "import torch; print(torch.cuda.is_available())"
#
# If "False" is printed, PyTorch (and thus DeepLabCut) cannot access your GPU. For
# more information, see: https://pytorch.org/get-started/locally/
#
# install: conda env create -f DEEPLABCUT.yaml
# update: conda env update -f DEEPLABCUT.yaml
Expand All @@ -29,4 +33,6 @@ dependencies:
- ffmpeg
- pytables==3.8.0
- pip:
- torch
- torchvision
- "git+https://github.com/DeepLabCut/DeepLabCut.git@pytorch_dlc#egg=deeplabcut[gui,modelzoo,wandb]"
43 changes: 0 additions & 43 deletions conda-environments/DEEPLABCUT_M1.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion deeplabcut/refine_training_dataset/outlier_frames.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ def extract_outlier_frames(
outlieralgorithm: str, optional, default="jump".
String specifying the algorithm used to detect the outliers.

* ``'Fitting'`` fits a Auto Regressive Integrated Moving Average model to the
* ``'fitting'`` fits an Auto Regressive Integrated Moving Average model to the
data and computes the distance to the estimated data. Larger distances than
epsilon are then potentially identified as outliers
* ``'jump'`` identifies larger jumps than 'epsilon' in any body part
Expand Down
1 change: 1 addition & 0 deletions deeplabcut/utils/visualization.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
https://github.com/DeepLabCut/DeepLabCut/blob/master/AUTHORS
Licensed under GNU Lesser General Public License v3.0
"""
from __future__ import annotations

import os
from pathlib import Path
Expand Down
6 changes: 3 additions & 3 deletions docs/Governance.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(governance-model)=
# Governance Model of DeepLabCut
(adapted from https://napari.org/docs/_sources/developers/GOVERNANCE.md.txt)
(adapted from https://napari.org/stable/community/governance.html)

## Abstract

Expand Down Expand Up @@ -30,7 +30,7 @@ project in concrete ways, such as:
[GitHub pull request](https://github.com/DeepLabCut/DeepLabCut/pulls);
- reporting issues on our
[GitHub issues page](https://github.com/DeepLabCut/DeepLabCut/issues);
- proposing a change to the documentation (http://docs.deeplabcut.org) via a
- proposing a change to the [documentation](https://deeplabcut.github.io/DeepLabCut/README.html) via a
GitHub pull request;
- discussing the design of the `DeepLabCut` or its tutorials on in existing
[issues](https://github.com/DeepLabCut/DeepLabCut/issues) and
Expand All @@ -43,7 +43,7 @@ among other possibilities. Any community member can become a contributor, and
all are encouraged to do so. By contributing to the project, community members
can directly help to shape its future.

Contributors are encouraged to read the [contributing guide](https://github.com/DeepLabCut/DeepLabCut/CONTRIBUTING.md).
Contributors are encouraged to read the [contributing guide](https://github.com/DeepLabCut/DeepLabCut/blob/main/CONTRIBUTING.md).

### Core developers

Expand Down
54 changes: 37 additions & 17 deletions docs/MISSION_AND_VALUES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,54 +3,74 @@

This document is meant to help guide decisions about the future of `DeepLabCut`, be it in terms of
whether to accept new functionality, changes to the styling of the code or graphical user interfaces (GUI),
or whether to take on new dependencies, when to break into other repos, among other things. It serves as a point of reference for core developers actively working on the project, and an introduction for
or whether to take on new dependencies, when to break into other repos, among other things. It serves as a point of
reference for core developers actively working on the project, and an introduction for
newcomers who want to learn a little more about where the project is going and what the team's
values are. You can also learn more about how the project is managed by looking at our [governance model](governance-model).
values are. You can also learn more about how the project is managed by looking at our
[governance model](governance-model).

## Our founding principles

The founding DeepLabCut team came together around a shared vision for building the first open-source animal pose estimation framework
that is:
The founding DeepLabCut team came together around a shared vision for building the first open-source animal pose
estimation framework that is:

- user defined pose estimation - i.e. species or object agnostic.
- access to SOTA deep learning models that can be swiftly re-trained for customized applications
- fast (GPU-powered)
- scalable (project focused for ease of portability and sharability)


As the project has grown we've turned these original principles into the mission statement and set of values that we described below.
As the project has grown we've turned these original principles into the mission statement and set of values that we
described below.

## Our mission

DeepLabCut aims to be **the animal pose software package for Python** and to **provide access to deep learning-based pose estimation for people to use in their daily work** without the need to be able to program in a deep learning framework.
We hope to accomplish this by:
DeepLabCut aims to be **the animal pose software package for Python** and to **provide access to deep learning-based
pose estimation for people to use in their daily work** without the need to be able to program in a deep learning
framework. We hope to accomplish this by:

- being **easy to use and install**. We are careful in taking on new dependencies, sometimes making them optional, and aim support a fully (Python) packaged installation that works cross-platform.
- being **easy to use and install**. We are careful in taking on new dependencies, sometimes making them optional, and
aim support a fully (Python) packaged installation that works cross-platform.

- being **well-documented** with **comprehensive tutorials and examples**. All functions in our API have thorough docstrings clarifying expected inputs and outputs, and we maintain a separate [tutorials and information website](http://deeplabcut.org).
- being **well-documented** with **comprehensive tutorials and examples**. All functions in our API have thorough
docstrings clarifying expected inputs and outputs, and we maintain a separate
[tutorials and information website](http://deeplabcut.org).

- providing **GUI access** to all critical functionality so DeepLabCut can be used by people without coding experience.

- being **interactive** and **highly performant** in order to support large data pipelines.

- providing a **consistent and stable API** to enable plugin developers to build on top of DeepLabCut without their code constantly breaking and to enable advanced users to build out sophisticated Python workflows, if needed.
- providing a **consistent and stable API** to enable plugin developers to build on top of DeepLabCut without their
code constantly breaking and to enable advanced users to build out sophisticated Python workflows, if needed.

- **ensuring correctness**. We strive for complete test coverage of both the code and GUI, with all code reviewed by a core developer before being included in the repository.
- **ensuring correctness**. We strive for complete test coverage of both the code and GUI, with all code reviewed by a
core developer before being included in the repository.

## Our values

- We are **inclusive**. We welcome newcomers who are making their first contribution and strive to grow our most dedicated contributors into [core developers](https://github.com/orgs/DeepLabCut/teams/core-developers). We have a [Code of Conduct](https://github.com/DeepLabCut/DeepLabCut/CODE_OF_CONDUCT.md) to make DeepLabCut
- We are **inclusive**. We welcome newcomers who are making their first contribution and strive to grow our most
dedicated contributors into [core developers](https://github.com/orgs/DeepLabCut/teams/core-developers).
We have a [Code of Conduct](https://github.com/DeepLabCut/DeepLabCut/blob/main/CODE_OF_CONDUCT.md) to make DeepLabCut
a welcoming place for all.

- We are **community-engaged**. We respond to feature requests and proposals on our [issue tracker](https://github.com/DeepLabCut/DeepLabCut/issues).
- We are **community-engaged**. We respond to feature requests and proposals on our
- [issue tracker](https://github.com/DeepLabCut/DeepLabCut/issues).

- We serve **scientific applications** primarily, over “consumer or commercial” pose estimation tools. This often means prioritizing core functionality support, and rejecting implementations of “flashy” features that have little scientific value.
- We serve **scientific applications** primarily, over “consumer or commercial” pose estimation tools. This often means
prioritizing core functionality support, and rejecting implementations of “flashy” features that have little
scientific value.

- We are **domain agnostic** within the sciences. Functionality that is highly specific to particular scientific domains belongs in plugins, whereas functionality that cuts across many domains and is likely to be widely used belongs inside DeepLabCut.
- We are **domain agnostic** within the sciences. Functionality that is highly specific to particular scientific
domains belongs in plugins, whereas functionality that cuts across many domains and is likely to be widely used belongs
inside DeepLabCut.

- We value **education and documentation**. All functions should have docstrings, preferably with examples, and major functionality should be explained in our [tutorials](http://deeplabcut.org). Core developers can take an active role in finishing documentation examples.
- We value **education and documentation**. All functions should have docstrings, preferably with examples, and major
functionality should be explained in our [tutorials](http://deeplabcut.org). Core developers can take an active role
in finishing documentation examples.


## Acknowledgements

We share a lot of our mission and values with [`napari`](https://napari.org/docs/developers/MISSION_AND_VALUES.html) and [`scikit-image`](https://scikit-image.org/docs/dev/values.html) and acknowledge the influence of their mission and values statements on this document.
We share a lot of our mission and values with [`napari`](https://napari.org/stable/community/mission_and_values.html)
and [`scikit-image`](https://scikit-image.org/docs/stable/about/values.html) and acknowledge the influence of their
mission and values statements on this document.
Loading