Skip to content

Releases: talmolab/sleap

SLEAP v1.2.0a6

04 Mar 17:47
24f0b39
Compare
Choose a tag to compare
SLEAP v1.2.0a6 Pre-release
Pre-release

Pre-release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.

Warning: This is a pre-release! Expect bugs and strange behavior when testing.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a6

pip (any OS):

pip install sleap==1.2.0a6

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.

    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0 (2.6.2 should also work)
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0 (up to 3.6.0 should also work)
      • numpy=1.18.1numpy=1.19.5 (up to 1.21.2 should also work)
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0
      • cattrs=1.0.0rccattrs=1.1.1
      • rich=9.10.0rich=10.16.1
      • scipy=1.4.1scipy=1.7.1 (1.4.1 should also work)
  • Conda packages and environments now require nvidia::cuda-nvcc=11.3 to enable platform specific optimizations (#623).

    • Note: This now requires the -c nvidia channel addition to conda commands.
  • Clean up CI/CD pipelines (#618):

    • Now building on release or when build version is bumped
    • environment.yml is not using sleap:: channel packages and instead relies on pip for flexibility
    • environment_no_cuda.yml is not using sleap:: packages and is now the default for CI
    • environment_build.yml DOES use sleap:: packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
  • GUI enhancements (#618)

    • Ensure randomly initialized points don't go beyond frame bounds (#613)
    • Add batch set button in video importer (#613)
    • Added command to return to last interacted frame (defaults to Ctrl + A) (#613)
  • Labeling GUI node visibility fixes (#619)

    • Add option for toggling display of non-visible user nodes to View menu.
    • Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
      • Fixes "ValueError: min() arg is an empty sequence" error
      • Fixes "RuntimeWarning: All-NaN axis encountered" error
  • Additional numpy conversion and label manipulation functionality (#621)

    • Add LabeledFrame convenience properties:
      • user_instances, n_user_instances, has_user_instances
      • predicted_instances, n_predicted_instances, has_predicted_instances
      • tracked_instances, n_tracked_instances, has_tracked_instances
    • Fix LabeledFrame.numpy() when there are no instances in the frame
    • Labels.numpy() revamp
      • Works with untracked and single instance data
      • Allow for specifying video as integer
  • Training profile tweaks (#622)

    • Standardize profiles and delete old ones
      • Sigma defaults to 2.5 for all profiles
      • Learning rate scheduler and early stopping now use threshold of 1e-8
      • Rotation augmentation defaults to [-15, 15] so front facing videos work by default
    • Change default inference target behavior (selected clip → current frame → none)
    • Hardcode order for built-in profiles (Defaults are now the smaller models)
    • Auto-detect single vs multi-instance model type for default tab from data
  • Fix centroid model evaluation when GT instances have NaNs (#618)

  • Fix PAF instance assembly when skeleton is not topologically sorted (#618)

    • Thanks E. Mae Guthman for the report!
  • Fix single instance model visualization during training (#620) (Fixes #604)

  • Drag and drop support for videos and projects (#632)

  • Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)

  • Training job generation tweaks (#642)

    • Training job package exports a jobs.yaml that describes the training/inference tasks.
    • Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
  • Fix path resolution in training & inference (#643) (Fixes #634)

  • Fix regression in #639 breaking multi-size inference (#645)

  • Fix data loading regression in #634 (#646)

  • Bump minor versions and relax some constraints (#647)

  • Use rich to print inference CLI inputs and provenance (#651)

  • Make PAF distance penalty more usable (#650)

    • Adds CLI args:
  --max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
                        The maximum expected length of a connected pair of
                        points as a fraction of the image size. Candidate
                        connections longer than this length will be penalized
                        during matching. Only applies to bottom-up (PAF)
                        models.
  --dist_penalty_weight DIST_PENALTY_WEIGHT
                        A coefficient to scale weight of the distance penalty.
                        Set to values greater than 1.0 to enforce the distance
                        penalty more strictly. Only applies to bottom-up (PAF)
                        models.
  • Fix multi-video inference through the GUI (#655)

  • Fix some dependencies during build (#656)

  • Lazy evaluation of frame list when provided to inference CLI (#659) (fixes #657)

  • Build conda package using tensorflow 2.6.3 (#660)

    • Pinned these conda packages for the build:
      • conda-forge::numpy=1.19.5
      • sleap::tensorflow=2.6.3
      • conda-forge::pyside2=5.13.2
      • conda-forge::h5py=3.1.0
      • conda-forge::scipy=1.7.3
    • And these pip packages:
      • imageio==2.15.0
      • certifi==2021.10.8

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment called sleap (recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a6

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment called sleap (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0a6

SLEAP v1.2.0a5

17 Feb 06:05
905c0e6
Compare
Choose a tag to compare
SLEAP v1.2.0a5 Pre-release
Pre-release

Pre-release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.

Warning: This is a pre-release! Expect bugs and strange behavior when testing.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a5

pip (any OS):

pip install sleap==1.2.0a5

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.

    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0 (2.6.2 should also work)
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0 (up to 3.6.0 should also work)
      • numpy=1.18.1numpy=1.19.5 (up to 1.21.2 should also work)
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0
      • cattrs=1.0.0rccattrs=1.1.1
      • rich=9.10.0rich=10.16.1
      • scipy=1.4.1scipy=1.7.1 (1.4.1 should also work)
  • Conda packages and environments now require nvidia::cuda-nvcc=11.3 to enable platform specific optimizations (#623).

    • Note: This now requires the -c nvidia channel addition to conda commands.
  • Clean up CI/CD pipelines (#618):

    • Now building on release or when build version is bumped
    • environment.yml is not using sleap:: channel packages and instead relies on pip for flexibility
    • environment_no_cuda.yml is not using sleap:: packages and is now the default for CI
    • environment_build.yml DOES use sleap:: packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
  • GUI enhancements (#618)

    • Ensure randomly initialized points don't go beyond frame bounds (#613)
    • Add batch set button in video importer (#613)
    • Added command to return to last interacted frame (defaults to Ctrl + A) (#613)
  • Labeling GUI node visibility fixes (#619)

    • Add option for toggling display of non-visible user nodes to View menu.
    • Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
      • Fixes "ValueError: min() arg is an empty sequence" error
      • Fixes "RuntimeWarning: All-NaN axis encountered" error
  • Additional numpy conversion and label manipulation functionality (#621)

    • Add LabeledFrame convenience properties:
      • user_instances, n_user_instances, has_user_instances
      • predicted_instances, n_predicted_instances, has_predicted_instances
      • tracked_instances, n_tracked_instances, has_tracked_instances
    • Fix LabeledFrame.numpy() when there are no instances in the frame
    • Labels.numpy() revamp
      • Works with untracked and single instance data
      • Allow for specifying video as integer
  • Training profile tweaks (#622)

    • Standardize profiles and delete old ones
      • Sigma defaults to 2.5 for all profiles
      • Learning rate scheduler and early stopping now use threshold of 1e-8
      • Rotation augmentation defaults to [-15, 15] so front facing videos work by default
    • Change default inference target behavior (selected clip → current frame → none)
    • Hardcode order for built-in profiles (Defaults are now the smaller models)
    • Auto-detect single vs multi-instance model type for default tab from data
  • Fix centroid model evaluation when GT instances have NaNs (#618)

  • Fix PAF instance assembly when skeleton is not topologically sorted (#618)

    • Thanks E. Mae Guthman for the report!
  • Fix single instance model visualization during training (#620) (Fixes #604)

  • Drag and drop support for videos and projects (#632)

  • Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)

  • Training job generation tweaks (#642)

    • Training job package exports a jobs.yaml that describes the training/inference tasks.
    • Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
  • Fix path resolution in training & inference (#643) (Fixes #634)

  • Fix regression in #639 breaking multi-size inference (#645)

  • Fix data loading regression in #634 (#646)

  • Bump minor versions and relax some constraints (#647)

  • Use rich to print inference CLI inputs and provenance (#651)

  • Make PAF distance penalty more usable (#650)

    • Adds CLI args:
  --max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
                        The maximum expected length of a connected pair of
                        points as a fraction of the image size. Candidate
                        connections longer than this length will be penalized
                        during matching. Only applies to bottom-up (PAF)
                        models.
  --dist_penalty_weight DIST_PENALTY_WEIGHT
                        A coefficient to scale weight of the distance penalty.
                        Set to values greater than 1.0 to enforce the distance
                        penalty more strictly. Only applies to bottom-up (PAF)
                        models.
  • Fix multi-video inference through the GUI (#655)
  • Fix some dependencies during build (#656)

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment called sleap (recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a5

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment called sleap (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0a5

SLEAP v1.2.0a4

16 Feb 22:38
Compare
Choose a tag to compare
SLEAP v1.2.0a4 Pre-release
Pre-release

Pre-release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.

Warning: This is a pre-release! Expect bugs and strange behavior when testing.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a4

pip (any OS):

pip install sleap==1.2.0a4

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.

    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0 (2.6.2 should also work)
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0 (up to 3.6.0 should also work)
      • numpy=1.18.1numpy=1.19.5 (up to 1.21.2 should also work)
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0
      • cattrs=1.0.0rccattrs=1.1.1
      • rich=9.10.0rich=10.16.1
      • scipy=1.4.1scipy=1.7.1 (1.4.1 should also work)
  • Conda packages and environments now require nvidia::cuda-nvcc=11.3 to enable platform specific optimizations (#623).

    • Note: This now requires the -c nvidia channel addition to conda commands.
  • Clean up CI/CD pipelines (#618):

    • Now building on release or when build version is bumped
    • environment.yml is not using sleap:: channel packages and instead relies on pip for flexibility
    • environment_no_cuda.yml is not using sleap:: packages and is now the default for CI
    • environment_build.yml DOES use sleap:: packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
  • GUI enhancements (#618)

    • Ensure randomly initialized points don't go beyond frame bounds (#613)
    • Add batch set button in video importer (#613)
    • Added command to return to last interacted frame (defaults to Ctrl + A) (#613)
  • Labeling GUI node visibility fixes (#619)

    • Add option for toggling display of non-visible user nodes to View menu.
    • Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
      • Fixes "ValueError: min() arg is an empty sequence" error
      • Fixes "RuntimeWarning: All-NaN axis encountered" error
  • Additional numpy conversion and label manipulation functionality (#621)

    • Add LabeledFrame convenience properties:
      • user_instances, n_user_instances, has_user_instances
      • predicted_instances, n_predicted_instances, has_predicted_instances
      • tracked_instances, n_tracked_instances, has_tracked_instances
    • Fix LabeledFrame.numpy() when there are no instances in the frame
    • Labels.numpy() revamp
      • Works with untracked and single instance data
      • Allow for specifying video as integer
  • Training profile tweaks (#622)

    • Standardize profiles and delete old ones
      • Sigma defaults to 2.5 for all profiles
      • Learning rate scheduler and early stopping now use threshold of 1e-8
      • Rotation augmentation defaults to [-15, 15] so front facing videos work by default
    • Change default inference target behavior (selected clip → current frame → none)
    • Hardcode order for built-in profiles (Defaults are now the smaller models)
    • Auto-detect single vs multi-instance model type for default tab from data
  • Fix centroid model evaluation when GT instances have NaNs (#618)

  • Fix PAF instance assembly when skeleton is not topologically sorted (#618)

    • Thanks E. Mae Guthman for the report!
  • Fix single instance model visualization during training (#620) (Fixes #604)

  • Drag and drop support for videos and projects (#632)

  • Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)

  • Training job generation tweaks (#642)

    • Training job package exports a jobs.yaml that describes the training/inference tasks.
    • Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
  • Fix path resolution in training & inference (#643) (Fixes #634)

  • Fix regression in #639 breaking multi-size inference (#645)

  • Fix data loading regression in #634 (#646)

  • Bump minor versions and relax some constraints (#647)

  • Use rich to print inference CLI inputs and provenance (#651)

  • Make PAF distance penalty more usable (#650)

    • Adds CLI args:
  --max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
                        The maximum expected length of a connected pair of
                        points as a fraction of the image size. Candidate
                        connections longer than this length will be penalized
                        during matching. Only applies to bottom-up (PAF)
                        models.
  --dist_penalty_weight DIST_PENALTY_WEIGHT
                        A coefficient to scale weight of the distance penalty.
                        Set to values greater than 1.0 to enforce the distance
                        penalty more strictly. Only applies to bottom-up (PAF)
                        models.
  • Fix multi-video inference through the GUI (#655)

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment called sleap (recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a4

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment called sleap (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0a4

SLEAP v1.2.0a3

13 Feb 19:22
6c50079
Compare
Choose a tag to compare
SLEAP v1.2.0a3 Pre-release
Pre-release

Pre-release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.

Warning: This is a pre-release! Expect bugs and strange behavior when testing.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a3

pip (any OS):

pip install sleap==1.2.0a3

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.

    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0 (2.6.2 should also work)
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0 (up to 3.6.0 should also work)
      • numpy=1.18.1numpy=1.19.5 (up to 1.21.2 should also work)
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0
      • cattrs=1.0.0rccattrs=1.1.1
      • rich=9.10.0rich=10.16.1
      • scipy=1.4.1scipy=1.7.1 (1.4.1 should also work)
  • Conda packages and environments now require nvidia::cuda-nvcc=11.3 to enable platform specific optimizations (#623).

    • Note: This now requires the -c nvidia channel addition to conda commands.
  • Clean up CI/CD pipelines (#618):

    • Now building on release or when build version is bumped
    • environment.yml is not using sleap:: channel packages and instead relies on pip for flexibility
    • environment_no_cuda.yml is not using sleap:: packages and is now the default for CI
    • environment_build.yml DOES use sleap:: packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
  • GUI enhancements (#618)

    • Ensure randomly initialized points don't go beyond frame bounds (#613)
    • Add batch set button in video importer (#613)
    • Added command to return to last interacted frame (defaults to Ctrl + A) (#613)
  • Labeling GUI node visibility fixes (#619)

    • Add option for toggling display of non-visible user nodes to View menu.
    • Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
      • Fixes "ValueError: min() arg is an empty sequence" error
      • Fixes "RuntimeWarning: All-NaN axis encountered" error
  • Additional numpy conversion and label manipulation functionality (#621)

    • Add LabeledFrame convenience properties:
      • user_instances, n_user_instances, has_user_instances
      • predicted_instances, n_predicted_instances, has_predicted_instances
      • tracked_instances, n_tracked_instances, has_tracked_instances
    • Fix LabeledFrame.numpy() when there are no instances in the frame
    • Labels.numpy() revamp
      • Works with untracked and single instance data
      • Allow for specifying video as integer
  • Training profile tweaks (#622)

    • Standardize profiles and delete old ones
      • Sigma defaults to 2.5 for all profiles
      • Learning rate scheduler and early stopping now use threshold of 1e-8
      • Rotation augmentation defaults to [-15, 15] so front facing videos work by default
    • Change default inference target behavior (selected clip → current frame → none)
    • Hardcode order for built-in profiles (Defaults are now the smaller models)
    • Auto-detect single vs multi-instance model type for default tab from data
  • Fix centroid model evaluation when GT instances have NaNs (#618)

  • Fix PAF instance assembly when skeleton is not topologically sorted (#618)

    • Thanks E. Mae Guthman for the report!
  • Fix single instance model visualization during training (#620) (Fixes #604)

  • Drag and drop support for videos and projects (#632)

  • Fix failing grayscale conversion at inference time on GPU (#639) (Fixes #638)

  • Training job generation tweaks (#642)

    • Training job package exports a jobs.yaml that describes the training/inference tasks.
    • Training CLI no longer specifies all video paths when building command. Fixes issue where paths are too long or there are too many videos.
  • Fix path resolution in training & inference (#643) (Fixes #634)

  • Fix regression in #639 breaking multi-size inference (#645)

  • Fix data loading regression in #634 (#646)

  • Bump minor versions and relax some constraints (#647)

  • Use rich to print inference CLI inputs and provenance (#651)

  • Make PAF distance penalty more usable (#650)

    • Adds CLI args:
  --max_edge_length_ratio MAX_EDGE_LENGTH_RATIO
                        The maximum expected length of a connected pair of
                        points as a fraction of the image size. Candidate
                        connections longer than this length will be penalized
                        during matching. Only applies to bottom-up (PAF)
                        models.
  --dist_penalty_weight DIST_PENALTY_WEIGHT
                        A coefficient to scale weight of the distance penalty.
                        Set to values greater than 1.0 to enforce the distance
                        penalty more strictly. Only applies to bottom-up (PAF)
                        models.

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment called sleap (recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia -c conda-forge sleap=1.2.0a3

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment called sleap (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0a3

SLEAP v1.2.0a2

29 Dec 10:02
a80208c
Compare
Choose a tag to compare
SLEAP v1.2.0a2 Pre-release
Pre-release

Pre-release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP, including TensorFlow to enable support for newer NVIDIA GPUs.

Warning: This is a pre-release! Expect bugs and strange behavior when testing.

Quick install

conda (Windows/Linux/GPU):

conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia sleap=1.2.0a2

pip (any OS):

pip install sleap==1.2.0a2

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.

    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0 (2.6.2 should also work)
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0 (up to 3.6.0 should also work)
      • numpy=1.18.1numpy=1.19.5 (up to 1.21.2 should also work)
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0
      • cattrs=1.0.0rccattrs=1.1.1
      • rich=9.10.0rich=10.16.1
      • scipy=1.4.1scipy=1.7.1 (1.4.1 should also work)
  • Conda packages and environments now require nvidia::cuda-nvcc=11.3 to enable platform specific optimizations (#623).

    • Note: This now requires the -c nvidia channel addition to conda commands.
  • Clean up CI/CD pipelines (#618):

    • Now building on release or when build version is bumped
    • environment.yml is not using sleap:: channel packages and instead relies on pip for flexibility
    • environment_no_cuda.yml is not using sleap:: packages and is now the default for CI
    • environment_build.yml DOES use sleap:: packages so we don't have to include tensorflow and pyside2 in the conda package for sleap
  • GUI enhancements (#618)

    • Ensure randomly initialized points don't go beyond frame bounds (#613)
    • Add batch set button in video importer (#613)
    • Added command to return to last interacted frame (defaults to Ctrl + A) (#613)
  • Labeling GUI node visibility fixes (#619)

    • Add option for toggling display of non-visible user nodes to View menu.
    • Deal with empty instances correctly. They are now not plotted at all, rather than plotted and then hidden.
      • Fixes "ValueError: min() arg is an empty sequence" error
      • Fixes "RuntimeWarning: All-NaN axis encountered" error
  • Additional numpy conversion and label manipulation functionality (#621)

    • Add LabeledFrame convenience properties:
      • user_instances, n_user_instances, has_user_instances
      • predicted_instances, n_predicted_instances, has_predicted_instances
      • tracked_instances, n_tracked_instances, has_tracked_instances
    • Fix LabeledFrame.numpy() when there are no instances in the frame
    • Labels.numpy() revamp
      • Works with untracked and single instance data
      • Allow for specifying video as integer
  • Training profile tweaks (#622)

    • Standardize profiles and delete old ones
      • Sigma defaults to 2.5 for all profiles
      • Learning rate scheduler and early stopping now use threshold of 1e-8
      • Rotation augmentation defaults to [-15, 15] so front facing videos work by default
    • Change default inference target behavior (selected clip → current frame → none)
    • Hardcode order for built-in profiles (Defaults are now the smaller models)
    • Auto-detect single vs multi-instance model type for default tab from data
  • Fix centroid model evaluation when GT instances have NaNs (#618)

  • Fix PAF instance assembly when skeleton is not topologically sorted (#618)

    • Thanks E. Mae Guthman for the report!
  • Fix single instance model visualization during training (#620)

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment called sleap (recommended):
conda create -y -n sleap -c sleap -c sleap/label/dev -c nvidia sleap=1.2.0a2

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment called sleap (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0a2

SLEAP v1.2.0a1

21 Dec 23:14
1595607
Compare
Choose a tag to compare
SLEAP v1.2.0a1 Pre-release
Pre-release

Pre-release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP, particularly TensorFlow to enable support for newer NVIDIA GPUs.

Warning: This is a pre-release! Expect bugs and strange behavior when testing.

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0 (2.6.2 should also work)
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0
      • numpy=1.18.1numpy=1.19.5
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment sleap (recommended):
conda create -n sleap -c sleap -c sleap/label/dev sleap=1.2.0a1

Or to update inside an existing environment:

conda install -c sleap -c sleap/label/dev sleap=1.2.0a1

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0a1

Or to upgrade an existing installation:

pip install --upgrade --force-reinstall sleap==1.2.0a1

SLEAP v1.2.0a0

17 Nov 23:48
a069a7e
Compare
Choose a tag to compare
SLEAP v1.2.0a0 Pre-release
Pre-release

Pre-release of SLEAP v1.2.0.

This includes updates to core libraries used in SLEAP, particularly TensorFlow to enable support for newer NVIDIA GPUs.

Warning: This is a pre-release! Expect bugs and strange behavior when testing.

Full changelog

  • Update Python, TensorFlow and others (#609): enables GPU support for Ampere and newer cards, e.g., 3080, A100, etc.
    • Fixes #454
    • Version changes:
      • python=3.6python=3.7
      • tensorflow=2.3.1tensorflow=2.7.0
      • cudatoolkit=10.1cudatoolkit=11.3.1
      • cudnn=7.6cudnn=8.2.1
      • h5py=2.10.0h5py=3.1.0
      • numpy=1.18.1numpy=1.19.5
      • imgaug=0.3.0imgaug=0.4.0
      • attrs=19.3attrs=21.2.0

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment sleap (recommended):
conda create -n sleap -c sleap -c sleap/label/dev sleap=1.2.0a0

Or to update inside an existing environment:

conda install -c sleap -c sleap/label/dev sleap=1.2.0a0

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment (recommended):
conda create -n sleap python=3.7
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.2.0a0

Or to upgrade an existing installation:

pip install --upgrade --force-reinstall sleap==1.2.0a0

SLEAP v1.1.5

02 Aug 23:34
d31000e
Compare
Choose a tag to compare

Release of SLEAP v1.1.5.

Includes some features, bug fixes and GUI enhancements.

Highlights

  • New high level APIs:

    • sleap.load_metrics() to load accuracy metrics for a trained model. See example notebook.
    • Labels.copy() to create a deep copy of a SLEAP labels file.
    • Labels.split() to generate random split of the data.
    • Labels.merge_nodes() to merge one node into another (see below).
  • Skeleton editor now supports merging nodes by renaming one with the same name as another. Merging labels with different skeletons is now supported.

Full changelog

  • Empty instance fixes (#569): Some components of the training pipeline would break when there were frames with "empty" instances, i.e., instances with no visible nodes. These are now handled appropriately and removed automatically on pipeline creation as well as DLC data import.

    • Fixes #555
    • Adds Labels.copy() utility function.
  • Small GUI fixes (#570)

    • Add background box to missing instance nodes for better visibility (#565)
    • Add option to change node label font size from menu
    • Increase max instances to be culled to in tracking editor form
    • Fix bug introduced in #562: predicted instances sometimes fail to be colored correctly
  • Fix skeleton merge conflicts (#572)

    • Fix: When merging, union of nodes is now used instead of adding multiple skeletons if node names aren't identical.
    • Feature: Add warning message in merge dialog if nodes are not matching.
    • Feature: Add Labels.merge_nodes() method to support merging one node into another with data update. This is equivalent to
      Skeleton.relabel_nodes() but takes care of updating the point data for the base node.
    • Feature: Enable node merging when renaming nodes from skeleton editor.
  • Add a utility function (Labels.split()) for generating splits (#574)

  • Add high level metrics loader (#573)

  • Fix single instance predictor not using the peak threshold when specified (#571)

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment sleap (recommended):
conda create -n sleap -c sleap sleap=1.1.5

Or to update inside an existing environment:

conda install -c sleap sleap=1.1.5

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment (recommended):
conda create -n sleap python=3.6
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.1.5

Or to upgrade an existing installation:

pip install --upgrade --force-reinstall sleap==1.1.5

SLEAP v1.1.4

17 Jun 19:31
36366a6
Compare
Choose a tag to compare

Release of SLEAP v1.1.4.

Includes minor bug fixes and GUI enhancements.

Full changelog

  • Single PR: #562
  • Export scores together with tracks in the analysis HDF5 file (#561)
(sleap) $ sleap-convert -o labels.analysis.h5 --format analysis "labels.slp"
track_names: 27
node_names: 24
tracks: (1100, 24, 2, 27)
track_occupancy: (27, 1100)
point_scores: (1100, 24, 27)
instance_scores: (1100, 27)
tracking_scores: (1100, 27)
Saved as labels.analysis.h5
  • Add support for model folder in sleap-inspect:
(sleap) $ sleap-inspect models\minimal_instance.UNet.centered_instance
=====
Model: models\minimal_instance.UNet.centered_instance
=====
=====
Heads:
=====
HeadsConfig(single_instance=None, centroid=None, centered_instance=CenteredInstanceConfmapsHeadConfig(anchor_part=None, part_names=['A', 'B'], sigma=1.5, output_stride=2, offset_refinement=True), multi_instance=None)
=====

=====
Backbone:
=====
BackboneConfig(leap=None, unet=UNetConfig(stem_stride=None, max_stride=8, output_stride=2, filters=16, filters_rate=1.5, middle_block=True, up_interpolate=False, stacks=1), hourglass=None, resnet=None, pretrained_encoder=None)
=====


=====
Training set:
=====
Frames: 1 / Instances: 2
Metrics:
Dist (90%/95%/99%): 0.7078190667087902 / 0.7086156922334715 / 0.7092529926532167
OKS VOC (mAP / mAR): 0.9504950495049505 / 0.95
PCK (mean 1.0-10.0 px): 1.0
=====

=====
Validation set:
=====
Frames: 1 / Instances: 2
Metrics:
Dist (90%/95%/99%): 1.377530428143121 / 1.4410399538615883 / 1.4918475744363626
OKS VOC (mAP / mAR): 0.8252475247524752 / 0.85
PCK (mean 1.0-10.0 px): 0.95
=====

=====
Test set:
=====
=====
  • Non-visible points now have text rendered in gray with an asterisk as a clearer visual indicator (#560)

  • Fix color cycle order changing when creating instances from predictions (#518)

  • Add Tracks menu -> Delete All Tracks command
    image

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

See the Installation page in the docs for more info.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment sleap (recommended):
conda create -n sleap -c sleap sleap=1.1.4

Or to update inside an existing environment:

conda install -c sleap sleap=1.1.4

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment (recommended):
conda create -n sleap python=3.6
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.1.4

Or to upgrade an existing installation:

pip install --upgrade --force-reinstall sleap==1.1.4

SLEAP v1.1.3

26 Mar 04:02
08bee64
Compare
Choose a tag to compare

Release of SLEAP v1.1.3.

Includes several bug fixes and documentation improvements.

Full changelog

  • #498: Fix training when frames have no instances (fixes #480).
  • #503: Fix errors occurring sometimes after training (fixes part of #500)
  • #505: Add miscellaneous utilities/fixes
    • Add --open-in-gui flag to sleap-track to launch GUI on predictions
    • Add PredictedInstance.numpy() to convert predicted instances to numpy arrays
    • Fix visualization during single instance training
    • Add Skeleton.find_neighbors() to return parents and children of a node
    • Fix serialization of MediaVideo after loading from sleap.load_video() or sleap.load_file().
    • Add Instance.fill_missing() to initialize missing nodes (e.g., after importing from DLC)
  • #501/#519/#524: Fix multi-size video support in training and inference (fixes #510, #516, #517)
  • #523: Fix using sleap-track with zipped model folders
  • Revamped docs and notebooks to clarify the Colab-based workflow (especially Training and inference on your own data using Google Drive), which are now linked from the GUI as well
  • Fix regression in v1.1.2 (#528)

Installing

We recommend using Miniconda to install and manage your Python environments. This will also make GPU support work transparently without installing additional dependencies.

Using Conda (Windows/Linux)

  1. Delete any existing environment and start fresh (recommended):
conda env remove -n sleap
  1. Create new environment sleap (recommended):
conda create -n sleap -c sleap sleap=1.1.3

Or to update inside an existing environment:

conda install -c sleap sleap=1.1.3

Using PyPI (Windows/Linux/Mac)

  1. Create a new conda environment (recommended):
conda create -n sleap python=3.6
conda activate sleap
  1. Install from PyPI:
pip install sleap==1.1.3

Or to upgrade an existing installation:

pip install --upgrade --force-reinstall sleap==1.1.3

From source (development)

  1. Clone the repository at this tag:
git clone https://github.com/murthylab/sleap --branch v1.1.3 sleap_v1.1.3
cd sleap_v1.1.3
  1. Install conda environment and activate:
conda install -f environment.yml -n sleap_v1.1.3
conda activate sleap_v1.1.3
  1. Changes made in the code will be immediately reflected when running SLEAP in this environment.