diff --git a/.codespellrc b/.codespellrc
index 286c3a86ad..b46cf0e61f 100644
--- a/.codespellrc
+++ b/.codespellrc
@@ -1,5 +1,5 @@
[codespell]
-skip = .git,*.pdf,*.svg,deeplabcut/pose_estimation_tensorflow/models/pretrained
+skip = .git,*.pdf,*.svg,*.ipynb,deeplabcut/pose_estimation_tensorflow/models/pretrained
# MOT,SIE - legit acronyms
# tThe - for \tThe. codespell is not good detecting those yet
ignore-words-list = mot,sie,tthe,assertin,bu,td,ctd,wither
diff --git a/conda-environments/DEEPLABCUT.yaml b/conda-environments/DEEPLABCUT.yaml
index af8ff27b2a..ac2bdac634 100644
--- a/conda-environments/DEEPLABCUT.yaml
+++ b/conda-environments/DEEPLABCUT.yaml
@@ -35,4 +35,4 @@ dependencies:
- pip:
- torch
- torchvision
- - deeplabcut[gui,modelzoo,wandb]==3.0.0rc7
+ - deeplabcut[gui,modelzoo,wandb]==3.0.0rc8
diff --git a/deeplabcut/core/inferenceutils.py b/deeplabcut/core/inferenceutils.py
index cbd21a877a..35eef50cae 100644
--- a/deeplabcut/core/inferenceutils.py
+++ b/deeplabcut/core/inferenceutils.py
@@ -961,6 +961,9 @@ def calc_object_keypoint_similarity(
k_squared = (2 * sigma) ** 2
denom = 2 * scale_squared * k_squared
+ if isinstance(sigma, np.ndarray):
+ denom = denom[visible_gt]
+
if symmetric_kpts is None:
pred = xy_pred[visible_gt]
pred[np.isnan(pred)] = np.inf
diff --git a/deeplabcut/core/metrics/api.py b/deeplabcut/core/metrics/api.py
index 75d4e7bbcb..8dded92143 100644
--- a/deeplabcut/core/metrics/api.py
+++ b/deeplabcut/core/metrics/api.py
@@ -24,7 +24,7 @@ def compute_metrics(
unique_bodypart_poses: dict[str, np.ndarray] | None = None,
pcutoff: float = -1,
oks_bbox_margin: int = 0,
- oks_sigma: float = 0.1,
+ oks_sigma: float | np.ndarray = 0.1,
per_keypoint_rmse: bool = False,
compute_detection_rmse: bool = True,
) -> dict:
diff --git a/deeplabcut/core/metrics/distance_metrics.py b/deeplabcut/core/metrics/distance_metrics.py
index ac2fbc04c1..6c54817e7a 100644
--- a/deeplabcut/core/metrics/distance_metrics.py
+++ b/deeplabcut/core/metrics/distance_metrics.py
@@ -21,7 +21,7 @@
def compute_oks_matrix(
ground_truth: np.ndarray,
predictions: np.ndarray,
- oks_sigma: float,
+ oks_sigma: float | np.ndarray,
oks_bbox_margin: float = 0.0,
) -> np.ndarray:
"""Computes the OKS score for each (prediction, gt) pair in an image
@@ -53,7 +53,7 @@ def compute_oks_matrix(
def compute_oks(
data: list[tuple[np.ndarray, np.ndarray]],
oks_bbox_margin: float = 0.0,
- oks_sigma: float = 0.1,
+ oks_sigma: float | np.ndarray = 0.1,
oks_thresholds: np.ndarray | None = None,
oks_recall_thresholds: np.ndarray | None = None,
) -> dict[str, float]:
diff --git a/deeplabcut/core/trackingutils.py b/deeplabcut/core/trackingutils.py
index 83d8723c10..084bdb4502 100644
--- a/deeplabcut/core/trackingutils.py
+++ b/deeplabcut/core/trackingutils.py
@@ -28,6 +28,7 @@
TRACK_METHODS = {
"box": "_bx",
+ "ctd": "_ctd",
"skeleton": "_sk",
"ellipse": "_el",
"transformer": "_tr",
diff --git a/deeplabcut/generate_training_dataset/multiple_individuals_trainingsetmanipulation.py b/deeplabcut/generate_training_dataset/multiple_individuals_trainingsetmanipulation.py
index 1095dfef6f..0886a4f60e 100755
--- a/deeplabcut/generate_training_dataset/multiple_individuals_trainingsetmanipulation.py
+++ b/deeplabcut/generate_training_dataset/multiple_individuals_trainingsetmanipulation.py
@@ -119,6 +119,7 @@ def create_multianimaltraining_dataset(
userfeedback: bool = True,
weight_init: WeightInitialization | None = None,
engine: Engine | None = None,
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] | None = None,
):
"""
Creates a training dataset for multi-animal datasets. Labels from all the extracted
@@ -158,17 +159,38 @@ def create_multianimaltraining_dataset(
* ``efficientnet-b6``
PyTorch (call ``deeplabcut.pose_estimation_pytorch.available_models()`` for
a complete list)
- * ``resnet_50``
- * ``resnet_101``
+ * ``animaltokenpose_base``
+ * ``cspnext_m``
+ * ``cspnext_s``
+ * ``cspnext_x``
+ * ``ctd_coam_w32``
+ * ``ctd_coam_w48``
+ * ``ctd_prenet_hrnet_w32``
+ * ``ctd_prenet_hrnet_w48``
+ * ``ctd_prenet_rtmpose_m``
+ * ``ctd_prenet_rtmpose_x``
+ * ``ctd_prenet_rtmpose_x_human``
* ``dekr_w18``
* ``dekr_w32``
* ``dekr_w48``
- * ``top_down_resnet_50``
- * ``top_down_resnet_101``
+ * ``dlcrnet_stride16_ms5``
+ * ``dlcrnet_stride32_ms5``
+ * ``hrnet_w18``
+ * ``hrnet_w32``
+ * ``hrnet_w48``
+ * ``resnet_101``
+ * ``resnet_50``
+ * ``rtmpose_m``
+ * ``rtmpose_s``
+ * ``rtmpose_x``
+ * ``top_down_cspnext_m``
+ * ``top_down_cspnext_s``
+ * ``top_down_cspnext_x``
* ``top_down_hrnet_w18``
* ``top_down_hrnet_w32``
* ``top_down_hrnet_w48``
- * ``animaltokenpose_base``
+ * ``top_down_resnet_101``
+ * ``top_down_resnet_50``
detector_type: string, optional, default=None
Only for the PyTorch engine.
@@ -233,6 +255,14 @@ def create_multianimaltraining_dataset(
the value specified in the project configuration file. If no engine is specified
for the project, defaults to ``deeplabcut.compat.DEFAULT_ENGINE``.
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] , optional, default = None,
+ If using a conditional-top-down (CTD) net_type, this argument needs to be specified.
+ It defines the conditions that will be used with the CTD model.
+ It can be either:
+ * A shuffle number (ctd_conditions: int), which must correspond to a bottom-up (BU) network type.
+ * A predictions file path (ctd_conditions: string | Path), which must correspond to a .json or .h5 predictions file.
+ * A shuffle number and a particular snapshot (ctd_conditions: tuple[int, str] | tuple[int, int]), which respectively correspond to a bottom-up (BU) network type and a particular snapshot name or index.
+
Example
--------
>>> deeplabcut.create_multianimaltraining_dataset('/analysis/project/reaching-task/config.yaml',num_shuffles=1)
@@ -596,6 +626,7 @@ def create_multianimaltraining_dataset(
detector_type=detector_type,
weight_init=weight_init,
save=True,
+ ctd_conditions=ctd_conditions,
)
make_pytorch_test_config(pytorch_cfg, path_test_config, save=True)
diff --git a/deeplabcut/generate_training_dataset/trainingsetmanipulation.py b/deeplabcut/generate_training_dataset/trainingsetmanipulation.py
index 13e76fa6a0..672f27a31b 100755
--- a/deeplabcut/generate_training_dataset/trainingsetmanipulation.py
+++ b/deeplabcut/generate_training_dataset/trainingsetmanipulation.py
@@ -791,6 +791,7 @@ def create_training_dataset(
superanimal_name="",
weight_init: WeightInitialization | None = None,
engine: Engine | None = None,
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] | None = None,
):
"""Creates a training dataset.
@@ -841,20 +842,41 @@ def create_training_dataset(
* ``efficientnet-b6``
PyTorch (call ``deeplabcut.pose_estimation_pytorch.available_models()`` for
a complete list)
- * ``resnet_50``
- * ``resnet_101``
- * ``hrnet_w18``
- * ``hrnet_w32``
- * ``hrnet_w48``
+ * ``animaltokenpose_base``
+ * ``cspnext_m``
+ * ``cspnext_s``
+ * ``cspnext_x``
+ * ``ctd_coam_w32``
+ * ``ctd_coam_w48``
+ * ``ctd_prenet_cspnext_m``
+ * ``ctd_prenet_cspnext_x``
+ * ``ctd_prenet_rtmpose_x_human``
+ * ``ctd_prenet_hrnet_w32``
+ * ``ctd_prenet_hrnet_w48``
+ * ``ctd_prenet_rtmpose_m``
+ * ``ctd_prenet_rtmpose_x``
+ * ``ctd_prenet_rtmpose_x_human``
* ``dekr_w18``
* ``dekr_w32``
* ``dekr_w48``
- * ``top_down_resnet_50``
- * ``top_down_resnet_101``
+ * ``dlcrnet_stride16_ms5``
+ * ``dlcrnet_stride32_ms5``
+ * ``hrnet_w18``
+ * ``hrnet_w32``
+ * ``hrnet_w48``
+ * ``resnet_101``
+ * ``resnet_50``
+ * ``rtmpose_m``
+ * ``rtmpose_s``
+ * ``rtmpose_x``
+ * ``top_down_cspnext_m``
+ * ``top_down_cspnext_s``
+ * ``top_down_cspnext_x``
* ``top_down_hrnet_w18``
* ``top_down_hrnet_w32``
* ``top_down_hrnet_w48``
- * ``animaltokenpose_base``
+ * ``top_down_resnet_101``
+ * ``top_down_resnet_50``
detector_type: string, optional, default=None
Only for the PyTorch engine.
@@ -900,6 +922,19 @@ def create_training_dataset(
the value specified in the project configuration file. If no engine is specified
for the project, defaults to ``deeplabcut.compat.DEFAULT_ENGINE``.
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] | None, default = None,
+ If using a conditional-top-down (CTD) net_type, this argument should be
+ specified. It defines the conditions that will be used with the CTD model.
+ It can be either:
+ * A shuffle number (ctd_conditions: int), which must correspond to a
+ bottom-up (BU) network type.
+ * A predictions file path (ctd_conditions: string | Path), which must
+ correspond to a .json or .h5 predictions file.
+ * A shuffle number and a particular snapshot
+ (ctd_conditions: tuple[int, str] | tuple[int, int]), which respectively
+ correspond to a bottom-up (BU) network type and a particular snapshot
+ name or index.
+
Returns
-------
list(tuple) or None
@@ -985,6 +1020,7 @@ def create_training_dataset(
userfeedback=userfeedback,
engine=engine,
weight_init=weight_init,
+ ctd_conditions=ctd_conditions,
)
else:
scorer = cfg["scorer"]
@@ -1088,7 +1124,6 @@ def create_training_dataset(
Shuffles = validate_shuffles(cfg, Shuffles, num_shuffles, userfeedback)
- # print(trainIndices,testIndices, Shuffles, augmenter_type,net_type)
if trainIndices is None and testIndices is None:
splits = [
(
@@ -1305,6 +1340,7 @@ def create_training_dataset(
detector_type=detector_type,
weight_init=weight_init,
save=True,
+ ctd_conditions=ctd_conditions,
)
make_pytorch_test_config(pytorch_cfg, path_test_config, save=True)
@@ -1599,6 +1635,7 @@ def create_training_dataset_from_existing_split(
net_type: str | None = None,
detector_type: str | None = None,
augmenter_type: str | None = None,
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] | None = None,
posecfg_template: dict | None = None,
superanimal_name: str = "",
weight_init: WeightInitialization | None = None,
@@ -1683,6 +1720,19 @@ def create_training_dataset_from_existing_split(
engine is specified for the project, defaults to
``deeplabcut.compat.DEFAULT_ENGINE``.
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] | None, default = None,
+ If using a conditional-top-down (CTD) net_type, this argument should be
+ specified. It defines the conditions that will be used with the CTD model.
+ It can be either:
+ * A shuffle number (ctd_conditions: int), which must correspond to a
+ bottom-up (BU) network type.
+ * A predictions file path (ctd_conditions: string | Path), which must
+ correspond to a .json or .h5 predictions file.
+ * A shuffle number and a particular snapshot
+ (ctd_conditions: tuple[int, str] | tuple[int, int]), which
+ respectively correspond to a bottom-up (BU) network type and a
+ particular snapshot name or index.
+
Returns:
If training dataset was successfully created, a list of tuples is returned.
The first two elements in each tuple represent the training fraction and the
@@ -1734,6 +1784,7 @@ def create_training_dataset_from_existing_split(
superanimal_name=superanimal_name,
weight_init=weight_init,
engine=engine,
+ ctd_conditions=ctd_conditions,
)
diff --git a/deeplabcut/pose_estimation_pytorch/__init__.py b/deeplabcut/pose_estimation_pytorch/__init__.py
index e10281f105..9680c20cc8 100644
--- a/deeplabcut/pose_estimation_pytorch/__init__.py
+++ b/deeplabcut/pose_estimation_pytorch/__init__.py
@@ -41,9 +41,13 @@
COCOLoader,
COLLATE_FUNCTIONS,
DLCLoader,
+ GenerativeSampler,
+ GenSamplingConfig,
+ list_snapshots,
Loader,
PoseDataset,
PoseDatasetParameters,
+ Snapshot,
)
from deeplabcut.pose_estimation_pytorch.runners import (
build_inference_runner,
diff --git a/deeplabcut/pose_estimation_pytorch/apis/ctd.py b/deeplabcut/pose_estimation_pytorch/apis/ctd.py
new file mode 100644
index 0000000000..302bf7fe37
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/apis/ctd.py
@@ -0,0 +1,167 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+"""Methods to help with conditional top-down models"""
+from pathlib import Path
+
+import numpy as np
+
+import deeplabcut.pose_estimation_pytorch.data as data
+from deeplabcut.pose_estimation_pytorch.data.ctd import (
+ CondFromFile,
+ CondFromModel,
+)
+from deeplabcut.pose_estimation_pytorch.task import Task
+
+
+def get_condition_provider(
+ condition_cfg: dict,
+ config: str | Path | None = None,
+) -> CondFromModel:
+ """Creates a CondFromModel conditions provider for a CTD model.
+
+ Args:
+ condition_cfg: The configuration for the condition provider. This is the
+ content of "data": "conditions" in the pytorch_config
+ config: The path to the project config file, if the condition provider is
+ given as a snapshot from a DeepLabCut shuffle.
+
+ Returns:
+ The CondFromModel provider that can be used to generate conditions from a BU
+ model for a CTD model.
+ """
+ error_message = (
+ f"Misconfigured conditions in the pytorch_config: {condition_cfg}. Valid "
+ f"examples:\n" + _CONDITION_EXAMPLES_INFERENCE
+ )
+
+ if isinstance(condition_cfg, (str, Path)):
+ error_message = (
+ "To run inference with CTD models, you must specify the BU model you "
+ "want to use to generate conditions.\n"
+ ) + error_message
+ raise ValueError(error_message)
+ elif not isinstance(condition_cfg, dict):
+ raise ValueError(error_message)
+
+ if config is not None:
+ condition_cfg["config"] = Path(config)
+
+ return CondFromModel(**condition_cfg)
+
+
+def get_conditions_provider_for_video(
+ cond_provider: CondFromModel,
+ video: str | Path,
+) -> CondFromFile | None:
+ """Tries to create a conditions loader
+
+ Args:
+ cond_provider: The CondFromModel condition provider that will be used. The
+ scorer must be set, or potential conditions files for the video cannot be
+ found.
+ video: The path to the video file for which to look for the conditions.
+
+ Returns:
+ None if no condition files for this BU model and video can be found.
+ The CondFromFile provider to load the conditions for the video from a file.
+ """
+ if cond_provider.scorer is None:
+ return None
+
+ video = Path(video)
+
+ # Load pickle for multi-animal projects
+ cond_file = video.parent / f"{video.stem}{cond_provider.scorer}_full.pickle"
+ if not cond_file.exists():
+
+ # Load h5 for single-animal projects
+ cond_file = video.parent / f"{video.stem}{cond_provider.scorer}.h5"
+ if not cond_file.exists():
+ return None
+
+ return CondFromFile(filepath=cond_file)
+
+
+def load_conditions_for_evaluation(
+ loader: data.Loader, images: list[str]
+) -> dict[str, np.ndarray]:
+ """Loads the conditions needed to evaluate a CTD model
+
+ Args:
+ loader: The Loader for the CTD model to evaluate.
+ images: A list of image paths to load conditions for.
+
+ Returns:
+ The conditions for the images.
+ """
+ if loader.pose_task != Task.COND_TOP_DOWN:
+ raise ValueError(f"Conditions can only be loaded for CTD models")
+
+ # load the conditions config
+ condition_cfg = loader.model_cfg["data"].get("conditions")
+
+ # prepare error message
+ error_message = (
+ f"Misconfigured conditions in the pytorch_config: {condition_cfg}. Valid "
+ f"examples:\n" + _CONDITION_EXAMPLES_INFERENCE + _CONDITION_EXAMPLES_FROM_FILE
+ )
+
+ if isinstance(condition_cfg, (str, Path)):
+ condition_filepath = Path(condition_cfg)
+ cond_provider = CondFromFile(filepath=condition_filepath)
+ elif isinstance(condition_cfg, dict):
+ if isinstance(loader, data.DLCLoader) and "config" not in condition_cfg:
+ condition_cfg["config"] = loader.project_root / "config.yaml"
+
+ cond_provider = CondFromFile(**condition_cfg)
+ else:
+ raise ValueError(error_message)
+
+ return cond_provider.load_conditions(images, path_prefix=loader.image_root)
+
+
+_CONDITION_EXAMPLES_INFERENCE = """
+Example: Using a bottom-up model for conditions
+ ```
+ data:
+ conditions:
+ config_path: /path/to/model-dir/pytorch_config.yaml
+ snapshot_path: /path/to/model-dir/snapshot-best-150.pth
+ ```
+Example: Loading the predictions for snapshot-250.pt of shuffle 1.
+ ```
+ data:
+ conditions:
+ shuffle: 1
+ snapshot: snapshot-250.pt
+ ```
+Example: Loading the predictions for the snapshot with index 2 of shuffle 1.
+ ```
+ data:
+ conditions:
+ shuffle: 1
+ snapshot_index: 2
+ ```
+"""
+
+
+_CONDITION_EXAMPLES_FROM_FILE = """
+Example: Loading the predictions contained in an h5 file.
+ ```
+ data:
+ conditions: /path/to/bu_predictions.h5
+ ```
+Example: Loading the predictions contained in an json file.
+ ```
+ data:
+ conditions: /path/to/bu_predictions.json
+ ```
+"""
diff --git a/deeplabcut/pose_estimation_pytorch/apis/evaluation.py b/deeplabcut/pose_estimation_pytorch/apis/evaluation.py
index 7a410f391c..3743a31853 100755
--- a/deeplabcut/pose_estimation_pytorch/apis/evaluation.py
+++ b/deeplabcut/pose_estimation_pytorch/apis/evaluation.py
@@ -21,6 +21,7 @@
from tqdm import tqdm
import deeplabcut.core.metrics as metrics
+import deeplabcut.pose_estimation_pytorch.apis.ctd as ctd
import deeplabcut.pose_estimation_pytorch.apis.prune_paf_graph as prune_paf_graph
from deeplabcut.core.weight_init import WeightInitialization
from deeplabcut.pose_estimation_pytorch import utils
@@ -84,6 +85,11 @@ def predict(
for image in image_paths
]
+ elif loader.pose_task == Task.COND_TOP_DOWN:
+ # Load conditions for context
+ conditions = ctd.load_conditions_for_evaluation(loader, image_paths)
+ context = [{"cond_kpts": conditions[image]} for image in image_paths]
+
images_with_context = image_paths
if context is not None:
if len(context) != len(image_paths):
@@ -501,7 +507,9 @@ def evaluate_snapshot(
head_type = loader.model_cfg["model"]["heads"]["bodypart"]["type"]
if head_type == "DLCRNetHead":
prune_paf_graph.benchmark_paf_graphs(
- loader=loader, snapshot_path=snapshot.path, verbose=False,
+ loader=loader,
+ snapshot_path=snapshot.path,
+ verbose=False,
)
parameters = loader.get_dataset_parameters()
@@ -563,7 +571,8 @@ def evaluate_snapshot(
),
"pcutoff": (
", ".join([str(v) for v in pcutoff])
- if isinstance(pcutoff, list) else pcutoff
+ if isinstance(pcutoff, list)
+ else pcutoff
),
}
for split in ["train", "test"]:
diff --git a/deeplabcut/pose_estimation_pytorch/apis/tracklets.py b/deeplabcut/pose_estimation_pytorch/apis/tracklets.py
index 833e6e19f4..98031ef3ac 100644
--- a/deeplabcut/pose_estimation_pytorch/apis/tracklets.py
+++ b/deeplabcut/pose_estimation_pytorch/apis/tracklets.py
@@ -83,6 +83,12 @@ def convert_detections2tracklets(
if "multi-animal" not in dlc_cfg["dataset_type"]:
raise ValueError("This function is only required for multianimal projects!")
+ if track_method == "ctd":
+ raise ValueError(
+ "CTD tracking occurs directly during video analysis. No need to call "
+ "`convert_detections2tracklets` with `track_method=='ctd'`."
+ )
+
if inference_cfg is None:
inference_cfg = auxfun_multianimal.read_inferencecfg(
model_dir / "test" / "inference_cfg.yaml", cfg
diff --git a/deeplabcut/pose_estimation_pytorch/apis/utils.py b/deeplabcut/pose_estimation_pytorch/apis/utils.py
index f071dc2691..4fc7b9a5b2 100644
--- a/deeplabcut/pose_estimation_pytorch/apis/utils.py
+++ b/deeplabcut/pose_estimation_pytorch/apis/utils.py
@@ -21,6 +21,7 @@
from deeplabcut.core.config import read_config_as_dict
from deeplabcut.core.engine import Engine
+from deeplabcut.pose_estimation_pytorch.data.ctd import CondFromModel
from deeplabcut.pose_estimation_pytorch.data.dataset import PoseDatasetParameters
from deeplabcut.pose_estimation_pytorch.data.dlcloader import (
build_dlc_dataframe_columns,
@@ -33,11 +34,13 @@
from deeplabcut.pose_estimation_pytorch.data.preprocessor import (
build_bottom_up_preprocessor,
build_top_down_preprocessor,
+ build_conditional_top_down_preprocessor,
)
from deeplabcut.pose_estimation_pytorch.data.transforms import build_transforms
from deeplabcut.pose_estimation_pytorch.models import DETECTORS, PoseModel
from deeplabcut.pose_estimation_pytorch.runners import (
build_inference_runner,
+ CTDTrackingConfig,
DetectorInferenceRunner,
DynamicCropper,
InferenceRunner,
@@ -534,28 +537,40 @@ def get_inference_runners(
with_identity=with_identity,
)
else:
- # FIXME: Cannot run detectors on MPS
- detector_device = device
- if device == "mps":
- detector_device = "cpu"
-
crop_cfg = model_config["data"]["inference"].get("top_down_crop", {})
width, height = crop_cfg.get("width", 256), crop_cfg.get("height", 256)
margin = crop_cfg.get("margin", 0)
+ if pose_task == Task.COND_TOP_DOWN:
+ pose_preprocessor = build_conditional_top_down_preprocessor(
+ color_mode=model_config["data"]["colormode"],
+ transform=transform,
+ bbox_margin=model_config["data"].get("bbox_margin", 20),
+ top_down_crop_size=(width, height),
+ top_down_crop_margin=margin,
+ top_down_crop_with_context=crop_cfg.get("crop_with_context", False),
+ )
+ else: # Top-Down
+ pose_preprocessor = build_top_down_preprocessor(
+ color_mode=model_config["data"]["colormode"],
+ transform=transform,
+ top_down_crop_size=(width, height),
+ top_down_crop_margin=margin,
+ top_down_crop_with_context=crop_cfg.get("crop_with_context", True),
+ )
- pose_preprocessor = build_top_down_preprocessor(
- color_mode=model_config["data"]["colormode"],
- transform=transform,
- top_down_crop_size=(width, height),
- top_down_crop_margin=margin,
- )
pose_postprocessor = build_top_down_postprocessor(
max_individuals=max_individuals,
num_bodyparts=num_bodyparts,
num_unique_bodyparts=num_unique_bodyparts,
)
+ # FIXME: Cannot run detectors on MPS
+ detector_device = device
+ if device == "mps":
+ detector_device = "cpu"
+
if detector_path is not None:
+ detector_path = str(detector_path)
if detector_transform is None:
detector_transform = build_transforms(
model_config["detector"]["data"]["inference"]
@@ -662,6 +677,8 @@ def get_pose_inference_runner(
max_individuals: int | None = None,
transform: A.BaseCompose | None = None,
dynamic: DynamicCropper | None = None,
+ cond_provider: CondFromModel | None = None,
+ ctd_tracking: bool | CTDTrackingConfig = False,
) -> PoseInferenceRunner:
"""Builds an inference runner for pose estimation.
@@ -677,6 +694,14 @@ def get_pose_inference_runner(
cropping should not be used. Should only be used when creating inference
runners for video pose estimation with batch size 1. For top-down pose
estimation models, a `TopDownDynamicCropper` must be used.
+ cond_provider: Only for CTD models. If None, the CondProvider is created from
+ the pytorch_cfg.
+ ctd_tracking: Only for CTD models. Conditional top-down models can be used
+ to directly track individuals. Poses from frame T are given as conditions
+ for frame T+1. This also means a BU model is only needed to "initialize" the
+ pose in the first frame, and for the remaining frames only the CTD model is
+ needed. To configure conditional pose tracking differently, you can pass a
+ CTDTrackingConfig instance.
Returns:
an inference runner for pose estimation
@@ -695,6 +720,7 @@ def get_pose_inference_runner(
if transform is None:
transform = build_transforms(model_config["data"]["inference"])
+ kwargs = {}
if pose_task == Task.BOTTOM_UP or isinstance(dynamic, TopDownDynamicCropper):
pose_preprocessor = build_bottom_up_preprocessor(
color_mode=model_config["data"]["colormode"],
@@ -711,12 +737,35 @@ def get_pose_inference_runner(
width, height = crop_cfg.get("width", 256), crop_cfg.get("height", 256)
margin = crop_cfg.get("margin", 0)
- pose_preprocessor = build_top_down_preprocessor(
- color_mode=model_config["data"]["colormode"],
- transform=transform,
- top_down_crop_size=(width, height),
- top_down_crop_margin=margin,
- )
+ if pose_task == Task.COND_TOP_DOWN:
+ if cond_provider is not None:
+ kwargs["bu_runner"] = get_pose_inference_runner(
+ model_config=read_config_as_dict(cond_provider.config_path),
+ snapshot_path=cond_provider.snapshot_path,
+ batch_size=1,
+ device=device,
+ max_individuals=max_individuals,
+ )
+
+ kwargs["ctd_tracking"] = ctd_tracking
+
+ pose_preprocessor = build_conditional_top_down_preprocessor(
+ color_mode=model_config["data"]["colormode"],
+ transform=transform,
+ bbox_margin=model_config["data"].get("bbox_margin", 20),
+ top_down_crop_size=(width, height),
+ top_down_crop_margin=margin,
+ top_down_crop_with_context=crop_cfg.get("crop_with_context", False),
+ )
+ else: # Top-Down
+ pose_preprocessor = build_top_down_preprocessor(
+ color_mode=model_config["data"]["colormode"],
+ transform=transform,
+ top_down_crop_size=(width, height),
+ top_down_crop_margin=margin,
+ top_down_crop_with_context=crop_cfg.get("crop_with_context", True),
+ )
+
pose_postprocessor = build_top_down_postprocessor(
max_individuals=max_individuals,
num_bodyparts=num_bodyparts,
@@ -733,6 +782,7 @@ def get_pose_inference_runner(
postprocessor=pose_postprocessor,
dynamic=dynamic,
load_weights_only=model_config["runner"].get("load_weights_only", None),
+ **kwargs,
)
if not isinstance(runner, PoseInferenceRunner):
raise RuntimeError(f"Failed to build PoseInferenceRunner for {model_config}")
diff --git a/deeplabcut/pose_estimation_pytorch/apis/videos.py b/deeplabcut/pose_estimation_pytorch/apis/videos.py
index 571c739003..ce4935b08e 100644
--- a/deeplabcut/pose_estimation_pytorch/apis/videos.py
+++ b/deeplabcut/pose_estimation_pytorch/apis/videos.py
@@ -24,11 +24,17 @@
import deeplabcut.pose_estimation_pytorch.apis.utils as utils
import deeplabcut.pose_estimation_pytorch.runners.shelving as shelving
-from deeplabcut.core.engine import Engine
+from deeplabcut.pose_estimation_pytorch.apis.ctd import (
+ get_condition_provider,
+ get_conditions_provider_for_video,
+)
from deeplabcut.pose_estimation_pytorch.apis.tracklets import (
convert_detections2tracklets,
)
+from deeplabcut.pose_estimation_pytorch.data import DLCLoader
+from deeplabcut.pose_estimation_pytorch.data.ctd import CondFromModel
from deeplabcut.pose_estimation_pytorch.runners import (
+ CTDTrackingConfig,
DynamicCropper,
InferenceRunner,
TopDownDynamicCropper,
@@ -135,7 +141,7 @@ def video_inference(
Examples:
Bottom-up video analysis:
>>> import deeplabcut.pose_estimation_pytorch as pep
- >>> from deeplabcut.core.config_utils import read_config_as_dict
+ >>> from deeplabcut.core.config import read_config_as_dict
>>> model_cfg = read_config_as_dict("pytorch_config.yaml")
>>> runner = pep.get_pose_inference_runner(model_cfg, "snapshot.pt")
>>> video_predictions = pep.video_inference("video.mp4", runner)
@@ -143,7 +149,7 @@ def video_inference(
Top-down video analysis:
>>> import deeplabcut.pose_estimation_pytorch as pep
- >>> from deeplabcut.core.config_utils import read_config_as_dict
+ >>> from deeplabcut.core.config import read_config_as_dict
>>> model_cfg = read_config_as_dict("pytorch_config.yaml")
>>> runner = pep.get_pose_inference_runner(model_cfg, "snapshot.pt")
>>> d_runner = pep.get_pose_inference_runner(model_cfg, "snapshot-detector.pt")
@@ -153,7 +159,7 @@ def video_inference(
Top-Down pose estimation with pre-computed bounding boxes:
>>> import numpy as np
>>> import deeplabcut.pose_estimation_pytorch as pep
- >>> from deeplabcut.core.config_utils import read_config_as_dict
+ >>> from deeplabcut.core.config import read_config_as_dict
>>>
>>> video_iterator = pep.VideoIterator("video.mp4")
>>> video_iterator.set_context([
@@ -227,6 +233,8 @@ def analyze_videos(
batch_size: int | None = None,
detector_batch_size: int | None = None,
dynamic: tuple[bool, float, int] = (False, 0.5, 10),
+ ctd_conditions: dict | CondFromModel | None = None,
+ ctd_tracking: bool | dict | CTDTrackingConfig = False,
top_down_dynamic: dict | None = None,
modelprefix: str = "",
use_shelve: bool = False,
@@ -285,6 +293,20 @@ def analyze_videos(
is utilized for updating the crop window for the next frame (this is why the
margin is important and should be set large enough given the movement of the
animal).
+ ctd_conditions: Only for CTD models. If None, the configuration for the
+ condition provider will be loaded from the pytorch_config file (under the
+ "data": "conditions"). If the ctd_conditions is given as a dict, creates a
+ CondFromModel from the dict. Otherwise, a CondFromModel can be given
+ directly. Example configuration:
+ ```
+ ctd_conditions = {"shuffle": 17, "snapshot": "snapshot-best-190.pt"}
+ ```
+ ctd_tracking: Only for CTD models. Conditional top-down models can be used
+ to directly track individuals. Poses from frame T are given as conditions
+ for frame T+1. This also means a BU model is only needed to "initialize" the
+ pose in the first frame, and for the remaining frames only the CTD model is
+ needed. To configure conditional pose tracking differently, you can pass a
+ CTDTrackingConfig instance.
top_down_dynamic: Configuration for a top-down dynamic cropper. If None,
top-down dynamic cropping is not used. Can only be used when running
inference on a single animal. If an empty dict is given, default parameters
@@ -362,48 +384,41 @@ def analyze_videos(
_validate_destfolder(destfolder)
# Load the project configuration
- cfg = auxiliaryfunctions.read_config(config)
- project_path = Path(cfg["project_path"])
- train_fraction = cfg["TrainingFraction"][trainingsetindex]
- model_folder = project_path / auxiliaryfunctions.get_model_folder(
- train_fraction,
- shuffle,
- cfg,
+ loader = DLCLoader(
+ config,
+ trainset_index=trainingsetindex,
+ shuffle=shuffle,
modelprefix=modelprefix,
- engine=Engine.PYTORCH,
)
- train_folder = model_folder / "train"
-
- # Read the inference configuration, load the model
- model_cfg_path = train_folder / Engine.PYTORCH.pose_cfg_name
- model_cfg = auxiliaryfunctions.read_plainconfig(model_cfg_path)
- pose_task = Task(model_cfg["method"])
- pose_cfg_path = model_folder / "test" / "pose_cfg.yaml"
+ train_fraction = loader.project_cfg["TrainingFraction"][trainingsetindex]
+ pose_cfg_path = loader.model_folder.parent / "test" / "pose_cfg.yaml"
pose_cfg = auxiliaryfunctions.read_plainconfig(pose_cfg_path)
snapshot_index, detector_snapshot_index = utils.parse_snapshot_index_for_analysis(
- cfg,
- model_cfg,
- snapshot_index,
- detector_snapshot_index,
+ loader.project_cfg, loader.model_cfg, snapshot_index, detector_snapshot_index,
)
- if cropping is None and cfg.get("cropping", False):
- cropping = cfg["x1"], cfg["x2"], cfg["y1"], cfg["y2"]
+ if cropping is None and loader.project_cfg.get("cropping", False):
+ cropping = (
+ loader.project_cfg["x1"],
+ loader.project_cfg["x2"],
+ loader.project_cfg["y1"],
+ loader.project_cfg["y2"],
+ )
# Get general project parameters
- multi_animal = cfg["multianimalproject"]
- bodyparts = model_cfg["metadata"]["bodyparts"]
- unique_bodyparts = model_cfg["metadata"]["unique_bodyparts"]
- individuals = model_cfg["metadata"]["individuals"]
+ multi_animal = loader.project_cfg["multianimalproject"]
+ bodyparts = loader.model_cfg["metadata"]["bodyparts"]
+ unique_bodyparts = loader.model_cfg["metadata"]["unique_bodyparts"]
+ individuals = loader.model_cfg["metadata"]["individuals"]
max_num_animals = len(individuals)
if device is not None:
- model_cfg["device"] = device
+ loader.model_cfg["device"] = device
if batch_size is None:
- batch_size = cfg.get("batch_size", 1)
+ batch_size = loader.project_cfg.get("batch_size", 1)
if not multi_animal:
save_as_df = True
@@ -415,7 +430,7 @@ def analyze_videos(
use_shelve = False
dynamic = DynamicCropper.build(*dynamic)
- if pose_task != Task.BOTTOM_UP and dynamic is not None:
+ if loader.pose_task != Task.BOTTOM_UP and dynamic is not None:
print(
"Turning off dynamic cropping. It should only be used for bottom-up "
"pose estimation models, but you are using a top-down model. For top-down "
@@ -424,8 +439,8 @@ def analyze_videos(
dynamic = None
if top_down_dynamic is not None:
- if pose_task == Task.TOP_DOWN:
- td_cfg = model_cfg["data"]["inference"].get(
+ if loader.pose_task == Task.TOP_DOWN:
+ td_cfg = loader.model_cfg["data"]["inference"].get(
"top_down_crop",
{"width": 256, "height": 256},
)
@@ -434,20 +449,44 @@ def analyze_videos(
print(f"Creating a TopDownDynamicCropper with configuration {top_down_dynamic}")
dynamic = TopDownDynamicCropper(**top_down_dynamic)
- snapshot = utils.get_model_snapshots(snapshot_index, train_folder, pose_task)[0]
+ snapshot = utils.get_model_snapshots(
+ snapshot_index, loader.model_folder, loader.pose_task
+ )[0]
+
+ # Load the BU model for the conditions provider
+ cond_provider = None
+ if loader.pose_task == Task.COND_TOP_DOWN:
+ if ctd_conditions is None:
+ cond_provider = get_condition_provider(
+ condition_cfg=loader.model_cfg["data"]["conditions"],
+ config=config,
+ )
+ elif isinstance(ctd_conditions, dict):
+ cond_provider = get_condition_provider(
+ condition_cfg=ctd_conditions, config=config,
+ )
+ else:
+ cond_provider = ctd_conditions
+
+ if isinstance(ctd_tracking, dict):
+ # FIXME(niels) - add video FPS setting
+ ctd_tracking = CTDTrackingConfig.build(ctd_tracking)
+
print(f"Analyzing videos with {snapshot.path}")
pose_runner = utils.get_pose_inference_runner(
- model_config=model_cfg,
+ model_config=loader.model_cfg,
snapshot_path=snapshot.path,
max_individuals=max_num_animals,
batch_size=batch_size,
transform=transform,
dynamic=dynamic,
+ cond_provider=cond_provider,
+ ctd_tracking=ctd_tracking,
)
- detector_runner = None
+ detector_runner = None
detector_path, detector_snapshot = None, None
- if pose_task == Task.TOP_DOWN and dynamic is None:
+ if loader.pose_task == Task.TOP_DOWN and dynamic is None:
if detector_snapshot_index is None:
raise ValueError(
"Cannot run videos analysis for top-down models without a detector "
@@ -456,26 +495,20 @@ def analyze_videos(
)
if detector_batch_size is None:
- detector_batch_size = cfg.get("detector_batch_size", 1)
+ detector_batch_size = loader.project_cfg.get("detector_batch_size", 1)
detector_snapshot = utils.get_model_snapshots(
- detector_snapshot_index, train_folder, Task.DETECT
+ detector_snapshot_index, loader.model_folder, Task.DETECT
)[0]
print(f" -> Using detector {detector_snapshot.path}")
detector_runner = utils.get_detector_inference_runner(
- model_config=model_cfg,
+ model_config=loader.model_cfg,
snapshot_path=detector_snapshot.path,
max_individuals=max_num_animals,
batch_size=detector_batch_size,
)
- dlc_scorer = utils.get_scorer_name(
- cfg,
- shuffle,
- train_fraction,
- snapshot_uid=utils.get_scorer_uid(snapshot, detector_snapshot),
- modelprefix=modelprefix,
- )
+ dlc_scorer = loader.scorer(snapshot, detector_snapshot)
# Reading video and init variables
videos = utils.list_videos_in_folder(videos, videotype, shuffle=in_random_order)
@@ -490,6 +523,13 @@ def analyze_videos(
video_iterator = VideoIterator(video, cropping=cropping)
+ # Check if BU model pose predictions exist so the model does not need to be run
+ if loader.pose_task == Task.COND_TOP_DOWN:
+ vid_cond_provider = get_conditions_provider_for_video(cond_provider, video)
+ if vid_cond_provider is not None:
+ video_cond = vid_cond_provider.load_conditions()
+ video_iterator.set_context([dict(cond_kpts=c) for c in video_cond])
+
shelf_writer = None
if use_shelve:
shelf_writer = shelving.ShelfWriter(
@@ -511,8 +551,8 @@ def analyze_videos(
)
runtime.append(time.time())
metadata = _generate_metadata(
- cfg=cfg,
- pytorch_config=model_cfg,
+ cfg=loader.project_cfg,
+ pytorch_config=loader.model_cfg,
dlc_scorer=dlc_scorer,
train_fraction=train_fraction,
batch_size=batch_size,
@@ -537,7 +577,7 @@ def analyze_videos(
create_df_from_prediction(
predictions=predictions,
multi_animal=multi_animal,
- model_cfg=model_cfg,
+ model_cfg=loader.model_cfg,
dlc_scorer=dlc_scorer,
output_path=output_path,
output_prefix=output_prefix,
@@ -545,14 +585,54 @@ def analyze_videos(
)
if multi_animal:
+ assemblies_path = output_path / f"{output_prefix}_assemblies.pickle"
_generate_assemblies_file(
full_data_path=output_pkl,
- output_path=output_path / f"{output_prefix}_assemblies.pickle",
+ output_path=assemblies_path,
num_bodyparts=len(bodyparts),
num_unique_bodyparts=len(unique_bodyparts),
)
- if auto_track:
+ # when running CTD tracking, don't auto-track as CTD did the tracking
+ # for us!
+ if ctd_tracking:
+ full_data = auxiliaryfunctions.read_pickle(output_pkl)
+ full_data_meta = full_data.pop("metadata")
+
+ num_frames = full_data_meta["nframes"]
+ str_width = full_data_meta["key_str_width"]
+
+ ctd_predictions = []
+ for i in range(num_frames):
+ frame_data = full_data.get("frame" + str(i).zfill(str_width))
+ if frame_data is None:
+ pose = np.full((len(individuals), len(bodyparts), 3), np.nan)
+ ctd_predictions.append(dict(bodyparts=pose))
+ continue
+
+ # there can't be unique bodyparts for CTD models
+ # -> so coords has shape (num_bodyparts, num_idv, _)
+ coords = np.stack(frame_data["coordinates"][0], axis=0)
+ scores = np.stack(frame_data["confidence"], axis=0)
+ pose = np.concatenate([coords, scores], axis=-1)
+
+ # transpose to (num_idv, num_bodyparts, _)
+ pose = pose.transpose((1, 0, 2))
+
+ # add poses to the predictions
+ ctd_predictions.append(dict(bodyparts=pose))
+
+ create_df_from_prediction(
+ predictions=predictions,
+ multi_animal=multi_animal,
+ model_cfg=loader.model_cfg,
+ dlc_scorer=dlc_scorer,
+ output_path=output_path,
+ output_prefix=output_prefix + "_ctd",
+ save_as_csv=save_as_csv,
+ )
+
+ elif auto_track:
convert_detections2tracklets(
config=config,
videos=str(video),
@@ -811,6 +891,7 @@ def _generate_output_data(
if "bboxes" in frame_predictions:
output[key]["bboxes"] = frame_predictions["bboxes"]
+ if "bbox_scores" in frame_predictions:
output[key]["bbox_scores"] = frame_predictions["bbox_scores"]
if "identity_scores" in frame_predictions:
diff --git a/deeplabcut/pose_estimation_pytorch/config/base/aug_default.yaml b/deeplabcut/pose_estimation_pytorch/config/base/aug_default.yaml
index f238742bcb..4e8836c4ca 100644
--- a/deeplabcut/pose_estimation_pytorch/config/base/aug_default.yaml
+++ b/deeplabcut/pose_estimation_pytorch/config/base/aug_default.yaml
@@ -8,13 +8,11 @@ train:
rotation: 30
scaling: [0.5, 1.25]
translation: 0
- covering: false
crop_sampling:
width: 448
height: 448
max_shift: 0.1
method: hybrid
gaussian_noise: 12.75
- hist_eq: false
- motion_blur: false
+ motion_blur: true
normalize_images: true
diff --git a/deeplabcut/pose_estimation_pytorch/config/base/aug_top_down.yaml b/deeplabcut/pose_estimation_pytorch/config/base/aug_top_down.yaml
index 4a0d9bed50..3030925d37 100644
--- a/deeplabcut/pose_estimation_pytorch/config/base/aug_top_down.yaml
+++ b/deeplabcut/pose_estimation_pytorch/config/base/aug_top_down.yaml
@@ -11,11 +11,8 @@ train:
rotation: 30
scaling: [1.0, 1.0]
translation: 0
- collate: null
- covering: false
gaussian_noise: 12.75
- hist_eq: false
- motion_blur: false
+ motion_blur: true
normalize_images: true
top_down_crop:
width: 256
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w32.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w32.yaml
new file mode 100644
index 0000000000..cc77370773
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w32.yaml
@@ -0,0 +1,71 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.1
+ inference:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: HRNetCoAM
+ base_model_name: hrnet_w32
+ pretrained: true
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ coam_modules: [2,]
+ channel_att_only: false
+ att_heads: 1
+ kpt_encoder:
+ type: StackedKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [256, 256]
+ backbone_output_channels: 32
+ heads:
+ bodypart:
+ type: HeatmapHead
+ weight_init: normal
+ predictor:
+ type: HeatmapPredictor
+ apply_sigmoid: false
+ clip_scores: true
+ location_refinement: true
+ locref_std: 7.2801
+ target_generator:
+ type: HeatmapGaussianGenerator
+ num_heatmaps: "num_bodyparts"
+ pos_dist_thresh: 17
+ heatmap_mode: KEYPOINT
+ generate_locref: true
+ locref_std: 7.2801
+ criterion:
+ heatmap:
+ type: WeightedMSECriterion
+ weight: 1.0
+ locref:
+ type: WeightedHuberCriterion
+ weight: 0.05
+ heatmap_config:
+ channels:
+ - 32
+ kernel_size: []
+ strides: []
+ final_conv:
+ out_channels: "num_bodyparts"
+ kernel_size: 1
+ locref_config:
+ channels:
+ - 32
+ kernel_size: []
+ strides: []
+ final_conv:
+ out_channels: "num_bodyparts x 2"
+ kernel_size: 1
\ No newline at end of file
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w48.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w48.yaml
new file mode 100644
index 0000000000..f9c39c0322
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w48.yaml
@@ -0,0 +1,58 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.1
+ inference:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: HRNetCoAM
+ base_model_name: hrnet_w48
+ pretrained: true
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ coam_modules: [2,]
+ channel_att_only: false
+ att_heads: 1
+ kpt_encoder:
+ type: StackedKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [256, 256]
+ backbone_output_channels: 48
+ heads:
+ bodypart:
+ type: HeatmapHead
+ weight_init: normal
+ predictor:
+ type: HeatmapPredictor
+ apply_sigmoid: false
+ #clip_scores: true
+ location_refinement: false
+ target_generator:
+ type: HeatmapGaussianGenerator
+ num_heatmaps: "num_bodyparts"
+ pos_dist_thresh: 17
+ heatmap_mode: KEYPOINT
+ generate_locref: false
+ criterion:
+ heatmap:
+ type: WeightedMSECriterion
+ weight: 1.0
+ heatmap_config:
+ channels:
+ - 48
+ kernel_size: []
+ strides: []
+ final_conv:
+ out_channels: "num_bodyparts"
+ kernel_size: 1
\ No newline at end of file
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w48_human.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w48_human.yaml
new file mode 100644
index 0000000000..ccb278448e
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_coam_w48_human.yaml
@@ -0,0 +1,59 @@
+data:
+ bbox_margin: 5
+ gen_sampling:
+ keypoint_sigmas: [ .079, .079, .072, .072, .062, .062, .107, .107, .087, .087, .089, .089, .025, .025 ] # CrowdPose sigmas
+ keypoints_symmetry: [ [ 0, 1 ], [ 2, 3 ], [ 4, 5 ], [ 6, 7 ], [ 8, 9 ], [ 10, 11 ] ] # CrowdPose symmetries
+ inference:
+ top_down_crop:
+ width: 288
+ height: 384
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 288
+ height: 384
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: HRNetCoAM
+ base_model_name: hrnet_w48
+ pretrained: true
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ coam_modules: [2,]
+ channel_att_only: false
+ att_heads: 1
+ kpt_encoder:
+ type: StackedKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [384, 288]
+ backbone_output_channels: 48
+ heads:
+ bodypart:
+ type: HeatmapHead
+ weight_init: normal
+ predictor:
+ type: HeatmapPredictor
+ apply_sigmoid: false
+ #clip_scores: true
+ location_refinement: false
+ target_generator:
+ type: HeatmapGaussianGenerator
+ num_heatmaps: "num_bodyparts"
+ pos_dist_thresh: 17
+ heatmap_mode: KEYPOINT
+ generate_locref: false
+ criterion:
+ heatmap:
+ type: WeightedMSECriterion
+ weight: 1.0
+ heatmap_config:
+ channels:
+ - 48
+ kernel_size: []
+ strides: []
+ final_conv:
+ out_channels: "num_bodyparts"
+ kernel_size: 1
\ No newline at end of file
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_cspnext_m.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_cspnext_m.yaml
new file mode 100644
index 0000000000..9d573be789
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_cspnext_m.yaml
@@ -0,0 +1,83 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.1
+ inference:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: CondPreNet
+ backbone:
+ type: CSPNeXt
+ model_name: cspnext_m
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ deepen_factor: 0.67
+ widen_factor: 0.75
+ kpt_encoder:
+ type: ColoredKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [256, 256]
+ backbone_output_channels: 768
+ heads:
+ bodypart:
+ type: HeatmapHead
+ weight_init: normal
+ predictor:
+ type: HeatmapPredictor
+ apply_sigmoid: false
+ clip_scores: true
+ location_refinement: true
+ locref_std: 7.2801
+ target_generator:
+ type: HeatmapGaussianGenerator
+ num_heatmaps: "num_bodyparts"
+ pos_dist_thresh: 17
+ heatmap_mode: KEYPOINT
+ generate_locref: true
+ locref_std: 7.2801
+ criterion:
+ heatmap:
+ type: WeightedMSECriterion
+ weight: 1.0
+ locref:
+ type: WeightedHuberCriterion
+ weight: 0.05
+ heatmap_config:
+ channels:
+ - 768
+ - "num_bodyparts"
+ kernel_size: [3]
+ strides: [2]
+ locref_config:
+ channels:
+ - 768
+ - "num_bodyparts x 2"
+ kernel_size: [3]
+ strides: [2]
+runner:
+ optimizer:
+ type: AdamW
+ params:
+ lr: 1e-05
+ scheduler:
+ type: LRListScheduler
+ params:
+ lr_list:
+ - - 5e-04
+ - - 1e-04
+ - - 1e-05
+ milestones:
+ - 5
+ - 90
+ - 120
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_cspnext_x.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_cspnext_x.yaml
new file mode 100644
index 0000000000..afe81945ef
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_cspnext_x.yaml
@@ -0,0 +1,83 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.1
+ inference:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: CondPreNet
+ backbone:
+ type: CSPNeXt
+ model_name: cspnext_x
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ deepen_factor: 1.33
+ widen_factor: 1.25
+ kpt_encoder:
+ type: ColoredKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [256, 256]
+ backbone_output_channels: 1280
+ heads:
+ bodypart:
+ type: HeatmapHead
+ weight_init: normal
+ predictor:
+ type: HeatmapPredictor
+ apply_sigmoid: false
+ clip_scores: true
+ location_refinement: true
+ locref_std: 7.2801
+ target_generator:
+ type: HeatmapGaussianGenerator
+ num_heatmaps: "num_bodyparts"
+ pos_dist_thresh: 17
+ heatmap_mode: KEYPOINT
+ generate_locref: true
+ locref_std: 7.2801
+ criterion:
+ heatmap:
+ type: WeightedMSECriterion
+ weight: 1.0
+ locref:
+ type: WeightedHuberCriterion
+ weight: 0.05
+ heatmap_config:
+ channels:
+ - 1280
+ - "num_bodyparts"
+ kernel_size: [3]
+ strides: [2]
+ locref_config:
+ channels:
+ - 1280
+ - "num_bodyparts x 2"
+ kernel_size: [3]
+ strides: [2]
+runner:
+ optimizer:
+ type: AdamW
+ params:
+ lr: 1e-05
+ scheduler:
+ type: LRListScheduler
+ params:
+ lr_list:
+ - - 5e-04
+ - - 1e-04
+ - - 1e-05
+ milestones:
+ - 5
+ - 90
+ - 120
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_hrnet_w32.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_hrnet_w32.yaml
new file mode 100644
index 0000000000..2c69f530f5
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_hrnet_w32.yaml
@@ -0,0 +1,58 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.02
+ inference:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: CondPreNet
+ backbone:
+ type: HRNet
+ model_name: hrnet_w32
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ interpolate_branches: false
+ increased_channel_count: false # changes backbone_output_channels to 128 when true
+ kpt_encoder:
+ type: StackedKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [256, 256]
+ backbone_output_channels: 32
+ heads:
+ bodypart:
+ type: HeatmapHead
+ weight_init: normal
+ predictor:
+ type: HeatmapPredictor
+ apply_sigmoid: false
+ #clip_scores: true
+ location_refinement: false
+ target_generator:
+ type: HeatmapGaussianGenerator
+ num_heatmaps: "num_bodyparts"
+ pos_dist_thresh: 17
+ heatmap_mode: KEYPOINT
+ generate_locref: false
+ criterion:
+ heatmap:
+ type: WeightedMSECriterion
+ weight: 1.0
+ heatmap_config:
+ channels:
+ - 32
+ kernel_size: []
+ strides: []
+ final_conv:
+ out_channels: "num_bodyparts"
+ kernel_size: 1
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_hrnet_w48.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_hrnet_w48.yaml
new file mode 100644
index 0000000000..d8ff55ba1a
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_hrnet_w48.yaml
@@ -0,0 +1,58 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.02
+ inference:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: CondPreNet
+ backbone:
+ type: HRNet
+ model_name: hrnet_w48
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ interpolate_branches: false
+ increased_channel_count: false # changes backbone_output_channels to 128 when true
+ kpt_encoder:
+ type: StackedKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [256, 256]
+ backbone_output_channels: 48
+ heads:
+ bodypart:
+ type: HeatmapHead
+ weight_init: normal
+ predictor:
+ type: HeatmapPredictor
+ apply_sigmoid: false
+ #clip_scores: true
+ location_refinement: false
+ target_generator:
+ type: HeatmapGaussianGenerator
+ num_heatmaps: "num_bodyparts"
+ pos_dist_thresh: 17
+ heatmap_mode: KEYPOINT
+ generate_locref: false
+ criterion:
+ heatmap:
+ type: WeightedMSECriterion
+ weight: 1.0
+ heatmap_config:
+ channels:
+ - 48
+ kernel_size: []
+ strides: []
+ final_conv:
+ out_channels: "num_bodyparts"
+ kernel_size: 1
\ No newline at end of file
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_m.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_m.yaml
new file mode 100644
index 0000000000..6e75556833
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_m.yaml
@@ -0,0 +1,93 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.1
+ inference:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 256
+ height: 256
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: CondPreNet
+ backbone:
+ type: CSPNeXt
+ model_name: cspnext_m
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ deepen_factor: 0.67
+ widen_factor: 0.75
+ kpt_encoder:
+ type: ColoredKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [256, 256]
+ backbone_output_channels: 768
+ heads:
+ bodypart:
+ type: RTMCCHead
+ weight_init: RTMPose
+ target_generator:
+ type: SimCCGenerator
+ input_size: [256, 256]
+ smoothing_type: gaussian
+ sigma: [5.66, 5.66]
+ simcc_split_ratio: 2.0
+ label_smooth_weight: 0.0
+ normalize: false
+ criterion:
+ x:
+ type: KLDiscreteLoss
+ use_target_weight: true
+ beta: 10.0
+ label_softmax: true
+ y:
+ type: KLDiscreteLoss
+ use_target_weight: true
+ beta: 10.0
+ label_softmax: true
+ predictor:
+ type: SimCCPredictor
+ simcc_split_ratio: 2.0
+ input_size: [256, 256]
+ in_channels: 768
+ out_channels: "num_bodyparts"
+ in_featuremap_size: [8, 8] # input_size / backbone stride
+ simcc_split_ratio: 2.0
+ final_layer_kernel_size: 7
+ gau_cfg:
+ hidden_dims: 256
+ s: 128
+ expansion_factor: 2
+ dropout_rate: 0
+ drop_path: 0.0
+ act_fn: "SiLU"
+ use_rel_bias: false
+ pos_enc: false
+runner:
+ optimizer:
+ type: AdamW
+ params:
+ lr: 1e-5
+ scheduler:
+ type: LRListScheduler
+ params:
+ lr_list:
+ - - 1e-3
+ - - 1e-4
+ - - 1e-5
+ milestones:
+ - 5
+ - 300
+ - 360
+train_settings:
+ batch_size: 32
+ dataloader_workers: 4
+ dataloader_pin_memory: false
+ epochs: 400
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_x.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_x.yaml
new file mode 100644
index 0000000000..d952714ff5
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_x.yaml
@@ -0,0 +1,93 @@
+data:
+ bbox_margin: 25
+ gen_sampling:
+ keypoint_sigmas: 0.1
+ inference:
+ top_down_crop:
+ width: 384
+ height: 384
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 384
+ height: 384
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: CondPreNet
+ backbone:
+ type: CSPNeXt
+ model_name: cspnext_x
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ deepen_factor: 1.33
+ widen_factor: 1.25
+ kpt_encoder:
+ type: ColoredKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [384, 384]
+ backbone_output_channels: 1280
+ heads:
+ bodypart:
+ type: RTMCCHead
+ weight_init: RTMPose
+ target_generator:
+ type: SimCCGenerator
+ input_size: [384, 384]
+ smoothing_type: gaussian
+ sigma: [6.93, 6.93]
+ simcc_split_ratio: 2.0
+ label_smooth_weight: 0.0
+ normalize: false
+ criterion:
+ x:
+ type: KLDiscreteLoss
+ use_target_weight: true
+ beta: 10.0
+ label_softmax: true
+ y:
+ type: KLDiscreteLoss
+ use_target_weight: true
+ beta: 10.0
+ label_softmax: true
+ predictor:
+ type: SimCCPredictor
+ simcc_split_ratio: 2.0
+ input_size: [384, 384]
+ in_channels: 1280
+ out_channels: "num_bodyparts"
+ in_featuremap_size: [12, 12] # input_size / backbone stride
+ simcc_split_ratio: 2.0
+ final_layer_kernel_size: 7
+ gau_cfg:
+ hidden_dims: 256
+ s: 128
+ expansion_factor: 2
+ dropout_rate: 0
+ drop_path: 0.0
+ act_fn: "SiLU"
+ use_rel_bias: false
+ pos_enc: false
+runner:
+ optimizer:
+ type: AdamW
+ params:
+ lr: 1e-5
+ scheduler:
+ type: LRListScheduler
+ params:
+ lr_list:
+ - - 1e-3
+ - - 1e-4
+ - - 1e-5
+ milestones:
+ - 5
+ - 300
+ - 360
+train_settings:
+ batch_size: 32
+ dataloader_workers: 4
+ dataloader_pin_memory: false
+ epochs: 400
diff --git a/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_x_human.yaml b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_x_human.yaml
new file mode 100644
index 0000000000..ee911f5fdb
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/config/ctd/ctd_prenet_rtmpose_x_human.yaml
@@ -0,0 +1,94 @@
+data:
+ bbox_margin: 5
+ gen_sampling:
+ keypoint_sigmas: [ .079, .079, .072, .072, .062, .062, .107, .107, .087, .087, .089, .089, .025, .025 ] # CrowdPose sigmas
+ keypoints_symmetry: [ [ 0, 1 ], [ 2, 3 ], [ 4, 5 ], [ 6, 7 ], [ 8, 9 ], [ 10, 11 ] ] # CrowdPose symmetries
+ inference:
+ top_down_crop:
+ width: 288
+ height: 384
+ crop_with_context: false
+ train:
+ top_down_crop:
+ width: 288
+ height: 384
+ crop_with_context: false
+method: ctd
+model:
+ backbone:
+ type: CondPreNet
+ backbone:
+ type: CSPNeXt
+ model_name: cspnext_x
+ freeze_bn_stats: false
+ freeze_bn_weights: false
+ deepen_factor: 1.33
+ widen_factor: 1.25
+ kpt_encoder:
+ type: ColoredKeypointEncoder
+ num_joints: "num_bodyparts"
+ kernel_size: [15, 15]
+ img_size: [384, 288]
+ backbone_output_channels: 1280
+ heads:
+ bodypart:
+ type: RTMCCHead
+ weight_init: RTMPose
+ target_generator:
+ type: SimCCGenerator
+ input_size: [288, 384]
+ smoothing_type: gaussian
+ sigma: [6., 6.93]
+ simcc_split_ratio: 2.0
+ label_smooth_weight: 0.0
+ normalize: false
+ criterion:
+ x:
+ type: KLDiscreteLoss
+ use_target_weight: true
+ beta: 10.0
+ label_softmax: true
+ y:
+ type: KLDiscreteLoss
+ use_target_weight: true
+ beta: 10.0
+ label_softmax: true
+ predictor:
+ type: SimCCPredictor
+ simcc_split_ratio: 2.0
+ input_size: [288, 384]
+ in_channels: 1280
+ out_channels: "num_bodyparts"
+ in_featuremap_size: [9, 12] # input_size / backbone stride
+ simcc_split_ratio: 2.0
+ final_layer_kernel_size: 7
+ gau_cfg:
+ hidden_dims: 256
+ s: 128
+ expansion_factor: 2
+ dropout_rate: 0
+ drop_path: 0.0
+ act_fn: "SiLU"
+ use_rel_bias: false
+ pos_enc: false
+runner:
+ optimizer:
+ type: AdamW
+ params:
+ lr: 1e-5
+ scheduler:
+ type: LRListScheduler
+ params:
+ lr_list:
+ - - 1e-3
+ - - 1e-4
+ - - 1e-5
+ milestones:
+ - 5
+ - 300
+ - 360
+train_settings:
+ batch_size: 32
+ dataloader_workers: 4
+ dataloader_pin_memory: false
+ epochs: 400
diff --git a/deeplabcut/pose_estimation_pytorch/config/make_pose_config.py b/deeplabcut/pose_estimation_pytorch/config/make_pose_config.py
index 396a431c05..0a05698dd2 100644
--- a/deeplabcut/pose_estimation_pytorch/config/make_pose_config.py
+++ b/deeplabcut/pose_estimation_pytorch/config/make_pose_config.py
@@ -23,6 +23,7 @@
replace_default_values,
update_config,
)
+from deeplabcut.pose_estimation_pytorch.task import Task
from deeplabcut.utils import auxiliaryfunctions, auxfun_multianimal
@@ -34,6 +35,7 @@ def make_pytorch_pose_config(
detector_type: str | None = None,
weight_init: WeightInitialization | None = None,
save: bool = False,
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] | None = None,
) -> dict:
"""Creates a PyTorch pose configuration file for a DeepLabCut project
@@ -66,6 +68,14 @@ def make_pytorch_pose_config(
weight_init: Specify how model weights should be initialized. If None, ImageNet
pretrained weights from Timm will be loaded when training.
save: Whether to save the model configuration file to the ``pose_config_path``.
+ ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] , optional, default = None,
+ If using a conditional-top-down (CTD) net_type, this argument needs to be specified.
+ It defines the conditions that will be used with the CTD model.
+ It can be either:
+ * A shuffle number (ctd_conditions: int), which must correspond to a bottom-up (BU) network type.
+ * A predictions file path (ctd_conditions: string | Path), which must correspond to a .json or .h5 predictions file.
+ * A shuffle number and a particular snapshot (ctd_conditions: tuple[int, str] | tuple[int, int]), which respectively correspond to a bottom-up (BU) network type and a particular snapshot name or index.
+
Returns:
the PyTorch pose configuration file
@@ -117,8 +127,8 @@ def make_pytorch_pose_config(
**default_value_kwargs,
)
- is_top_down = model_cfg.get("method", "BU").upper() == "TD"
- if is_top_down:
+ task = Task(model_cfg.get("method", "BU").upper())
+ if task == Task.TOP_DOWN:
model_cfg = add_detector(
configs_dir,
model_cfg,
@@ -127,8 +137,13 @@ def make_pytorch_pose_config(
)
# add the default augmentations to the config
- aug_filename = "aug_top_down.yaml" if is_top_down else "aug_default.yaml"
+ aug_filename = "aug_default.yaml" if task == Task.BOTTOM_UP else "aug_top_down.yaml"
aug_cfg = {"data": read_config_as_dict(configs_dir / "base" / aug_filename)}
+
+ # Add conditions for CTD models if specified
+ if task == Task.COND_TOP_DOWN and ctd_conditions is not None:
+ _add_ctd_conditions(aug_cfg, ctd_conditions)
+
pose_config = update_config(pose_config, aug_cfg)
# add the model to the config
@@ -140,7 +155,7 @@ def make_pytorch_pose_config(
# add a unique bodypart head if needed
if len(unique_bpts) > 0:
- if is_top_down:
+ if task != Task.BOTTOM_UP:
raise ValueError(
f"You selected a top-down model architecture ({net_type}), but you have"
f" unique bodyparts, which is not yet implemented for top-down models."
@@ -157,7 +172,7 @@ def make_pytorch_pose_config(
# add an identity head if needed
if with_identity:
- if is_top_down:
+ if task != Task.BOTTOM_UP:
raise ValueError(
f"You selected a top-down model architecture ({net_type}), but you have"
f" set `identity: true`, which is not yet implemented for top-down"
@@ -181,6 +196,55 @@ def make_pytorch_pose_config(
return pose_config
+def _add_ctd_conditions(
+ aug_cfg: dict, ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int]
+):
+ """
+ Args:
+ aug_cfg: dict, data augmentation configuration
+ ctd_conditions: Only for using conditional-top-down (CTD) models. It defines
+ the conditions that will be used with the CTD model. It can be:
+ * A shuffle number (ctd_conditions: int), which must correspond to a
+ bottom-up (BU) network type.
+ * A predictions file path (ctd_conditions: string | Path), which must
+ correspond to a .json or .h5 predictions file.
+ * A shuffle number and a particular snapshot (ctd_conditions:
+ tuple[int, str] | tuple[int, int]), which respectively correspond to a
+ bottom-up (BU) network type and a particular snapshot name or index.
+ """
+ if isinstance(ctd_conditions, int):
+ conditions = {"shuffle": ctd_conditions}
+
+ elif isinstance(ctd_conditions, str) or isinstance(ctd_conditions, Path):
+ ctd_conditions = Path(ctd_conditions)
+ if not ctd_conditions.exists():
+ raise FileNotFoundError(f"Invalid path: {ctd_conditions}")
+ if ctd_conditions.suffix not in (".h5", ".json"):
+ raise ValueError(f"Invalid conditions file extension.")
+ conditions = str(ctd_conditions.resolve())
+
+ elif isinstance(ctd_conditions, tuple):
+ if len(ctd_conditions) != 2:
+ raise ValueError(f"Invalid conditions tuple length.")
+ if not isinstance(ctd_conditions[0], int):
+ raise TypeError("Conditions shuffle number must be of type int.")
+ if isinstance(ctd_conditions[1], int):
+ conditions = {
+ "shuffle": ctd_conditions[0],
+ "snapshot_index": ctd_conditions[1],
+ }
+ elif isinstance(ctd_conditions[1], str):
+ conditions = {"shuffle": ctd_conditions[0], "snapshot": ctd_conditions[1]}
+ else:
+ raise TypeError(
+ "Conditions snapshot must be of type int (index) or string (snapshot name)."
+ )
+ else:
+ raise TypeError("Conditions ctd_conditions is of invalid type.")
+
+ aug_cfg["data"]["conditions"] = conditions
+
+
def make_pytorch_test_config(
model_config: dict,
test_config_path: str | Path,
@@ -439,7 +503,8 @@ def add_detector(
read_config_as_dict(configs_dir / "detectors" / f"{detector_type}.yaml"),
)
detector_config = replace_default_values(
- detector_config, num_individuals=num_individuals,
+ detector_config,
+ num_individuals=num_individuals,
)
config["detector"] = dict(sorted(detector_config.items()))
return config
diff --git a/deeplabcut/pose_estimation_pytorch/data/__init__.py b/deeplabcut/pose_estimation_pytorch/data/__init__.py
index e4ae41d5b1..f21800860e 100644
--- a/deeplabcut/pose_estimation_pytorch/data/__init__.py
+++ b/deeplabcut/pose_estimation_pytorch/data/__init__.py
@@ -16,6 +16,10 @@
PoseDatasetParameters,
PoseDataset,
)
+from deeplabcut.pose_estimation_pytorch.data.generative_sampling import (
+ GenerativeSampler,
+ GenSamplingConfig,
+)
from deeplabcut.pose_estimation_pytorch.data.image import top_down_crop
from deeplabcut.pose_estimation_pytorch.data.postprocessor import (
build_bottom_up_postprocessor,
@@ -28,4 +32,5 @@
build_top_down_preprocessor,
Preprocessor,
)
+from deeplabcut.pose_estimation_pytorch.data.snapshots import list_snapshots, Snapshot
from deeplabcut.pose_estimation_pytorch.data.transforms import build_transforms
diff --git a/deeplabcut/pose_estimation_pytorch/data/base.py b/deeplabcut/pose_estimation_pytorch/data/base.py
index 8a2f60d9c4..df5c474c79 100644
--- a/deeplabcut/pose_estimation_pytorch/data/base.py
+++ b/deeplabcut/pose_estimation_pytorch/data/base.py
@@ -22,6 +22,10 @@
PoseDataset,
PoseDatasetParameters,
)
+from deeplabcut.pose_estimation_pytorch.data.generative_sampling import (
+ GenSamplingConfig,
+)
+from deeplabcut.pose_estimation_pytorch.data.snapshots import list_snapshots, Snapshot
from deeplabcut.pose_estimation_pytorch.data.utils import (
_compute_crop_bounds,
bbox_from_keypoints,
@@ -46,7 +50,14 @@ class Loader(ABC):
Returns a dictionary containing dataset parameters derived from the configuration.
"""
- def __init__(self, model_config_path: str | Path) -> None:
+ def __init__(
+ self,
+ project_root: str | Path,
+ image_root: str | Path,
+ model_config_path: str | Path,
+ ) -> None:
+ self.project_root = Path(project_root)
+ self.image_root = Path(image_root)
self.model_config_path = Path(model_config_path)
self.model_cfg = config_utils.read_config_as_dict(str(model_config_path))
self.pose_task = Task(self.model_cfg["method"])
@@ -57,6 +68,30 @@ def model_folder(self) -> Path:
"""Returns: The path of the folder containing the model data"""
return self.model_config_path.parent
+ def snapshots(
+ self,
+ detector: bool = False,
+ best_in_last: bool = True,
+ ) -> list[Snapshot]:
+ """Lists snapshots saved for the model.
+
+ Args:
+ detector: If the Loader is for a Top-Down model, passing detector=True
+ will return the snapshots for the detector. Otherwise, the snapshots
+ for the pose model are returned.
+ best_in_last: Whether to place the snapshot with the best performance in the
+ last position in the list, even if it wasn't the last epoch.
+
+ Returns:
+ The snapshots stored in a folder, sorted by the number of epochs they were
+ trained for. If best_in_last=True and a best snapshot exists, it will be the
+ last one in the list.
+ """
+ prefix = self.pose_task.snapshot_prefix
+ if detector:
+ prefix = Task.DETECT.snapshot_prefix
+ return list_snapshots(self.model_folder, prefix, best_in_last=best_in_last)
+
def update_model_cfg(self, updates: dict) -> None:
"""Updates the model configuration
@@ -216,6 +251,13 @@ def create_dataset(
parameters = self.get_dataset_parameters()
data = self.load_data(mode)
data["annotations"] = self.filter_annotations(data["annotations"], task)
+ ctd_config = None
+ if self.pose_task == Task.COND_TOP_DOWN:
+ ctd_config = GenSamplingConfig(
+ bbox_margin=self.model_cfg["data"].get("bbox_margin", 20),
+ **self.model_cfg["data"].get("gen_sampling", {}),
+ )
+
dataset = PoseDataset(
images=data["images"],
annotations=data["annotations"],
@@ -223,6 +265,7 @@ def create_dataset(
mode=mode,
task=task,
parameters=parameters,
+ ctd_config=ctd_config,
)
return dataset
diff --git a/deeplabcut/pose_estimation_pytorch/data/cocoloader.py b/deeplabcut/pose_estimation_pytorch/data/cocoloader.py
index 0fa4f872bf..c2b4636e6a 100644
--- a/deeplabcut/pose_estimation_pytorch/data/cocoloader.py
+++ b/deeplabcut/pose_estimation_pytorch/data/cocoloader.py
@@ -49,8 +49,8 @@ def __init__(
train_json_filename: str = "train.json",
test_json_filename: str = "test.json",
):
- super().__init__(Path(model_config_path))
- self.project_root = Path(project_root)
+ image_root = Path(project_root) / "images"
+ super().__init__(project_root, image_root, Path(model_config_path))
self.train_json_filename = train_json_filename
self.test_json_filename = test_json_filename
self._dataset_parameters = None
@@ -73,6 +73,7 @@ def get_dataset_parameters(self) -> PoseDatasetParameters:
crop_cfg = self.model_cfg["data"]["train"].get("top_down_crop", {})
crop_w, crop_h = crop_cfg.get("width", 256), crop_cfg.get("height", 256)
crop_margin = crop_cfg.get("margin", 0)
+ crop_with_context = crop_cfg.get("crop_with_context", True)
self._dataset_parameters = PoseDatasetParameters(
bodyparts=bodyparts,
@@ -82,6 +83,7 @@ def get_dataset_parameters(self) -> PoseDatasetParameters:
color_mode=self.model_cfg.get("color_mode", "RGB"),
top_down_crop_size=(crop_w, crop_h),
top_down_crop_margin=crop_margin,
+ top_down_crop_with_context=crop_with_context,
)
return self._dataset_parameters
@@ -161,8 +163,7 @@ def validate_categories(coco_json: dict) -> dict:
return coco_json
- @staticmethod
- def validate_images(project_root: str | Path, coco_json: dict) -> dict:
+ def validate_images(self, coco_json: dict) -> dict:
"""Goes over images and annotations to look for potential errors
This code tries to ensure that training a model on this project does not crash
@@ -188,7 +189,7 @@ def validate_images(project_root: str | Path, coco_json: dict) -> dict:
if image_filename.is_absolute():
image_path = image_filename
else:
- image_path = Path(project_root) / "images" / image["file_name"]
+ image_path = self.image_root / image["file_name"]
image["file_name"] = str(image_path)
if not image_path.exists():
@@ -248,7 +249,7 @@ def load_data(self, mode: str = "train") -> dict:
raise AttributeError(f"Unknown mode: {mode}")
data = COCOLoader.validate_categories(data)
- data = COCOLoader.validate_images(self.project_root, data)
+ data = self.validate_images(data)
annotations_per_image = {}
for annotation in data["annotations"]:
diff --git a/deeplabcut/pose_estimation_pytorch/data/ctd.py b/deeplabcut/pose_estimation_pytorch/data/ctd.py
new file mode 100644
index 0000000000..1996f6a199
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/data/ctd.py
@@ -0,0 +1,481 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+from __future__ import annotations
+
+import json
+import pickle
+from abc import ABC
+from pathlib import Path
+
+import numpy as np
+import pandas as pd
+
+from deeplabcut.pose_estimation_pytorch.data.dlcloader import DLCLoader
+from deeplabcut.pose_estimation_pytorch.data.snapshots import Snapshot
+from deeplabcut.pose_estimation_pytorch.task import Task
+
+
+class CondProvider(ABC):
+ """A class providing conditions for a CTD model."""
+
+ @classmethod
+ def get_loader_and_snapshot(
+ cls,
+ config: str | Path,
+ shuffle: int,
+ trainset_index: int = 0,
+ modelprefix: str = "",
+ snapshot: str | None = None,
+ snapshot_index: int | None = None,
+ ) -> tuple[DLCLoader, Snapshot]:
+ """Creates a DLCLoader for the BU shuffle and the path to conditions snapshot.
+
+ One of `snapshot` or `snapshot_index` must be provided.
+
+ Args:
+ config: Path to the DeepLabCut project config, or the project config itself
+ trainset_index: The index of the TrainingsetFraction for which to load data
+ shuffle: The index of the shuffle for which to load data.
+ modelprefix: The modelprefix for the shuffle.
+ snapshot: The name of the snapshot to use.
+ snapshot_index: The index of the snapshot to use. If `snapshot` is
+ provided, the `snapshot_index` is not used.
+
+ Returns:
+ loader: The DLCLoader for the BU shuffle.
+ snapshot: The BU Snapshot to use for conditions.
+
+ Raises:
+ ValueError: If the given shuffle is not for a BU model.
+ """
+ loader = DLCLoader(
+ config,
+ trainset_index=trainset_index,
+ shuffle=shuffle,
+ modelprefix=modelprefix,
+ )
+ if loader.pose_task != Task.BOTTOM_UP:
+ raise ValueError(
+ "Conditions can only be loaded from shuffles for bottom-up models, but "
+ f"shuffle {shuffle} has task {loader.pose_task} (config={config}, "
+ f"trainset_index={trainset_index}, modelprefix={modelprefix})."
+ )
+
+ if snapshot is not None:
+ snapshot_path = loader.model_folder / snapshot
+ if not snapshot_path.exists():
+ raise ValueError(f"Snapshot file {snapshot_path} does not exist.")
+ bu_snapshot = Snapshot.from_path(snapshot_path)
+
+ else:
+ if snapshot_index is None:
+ snapshot_index = -1
+
+ snapshots = loader.snapshots()
+ if len(snapshots) == 0:
+ raise ValueError(
+ f"No snapshots found for shuffle={shuffle} in {loader.model_folder}"
+ )
+
+ if snapshot_index > len(snapshots):
+ snapshot_str = "\n".join(
+ [f" {i}: {s.path.name}" for i, s in enumerate(snapshots)]
+ )
+ raise ValueError(
+ f"Snapshot index {snapshot_index} is out of range. Existing "
+ f"snapshots: {snapshot_str}"
+ )
+
+ bu_snapshot = snapshots[snapshot_index]
+
+ return loader, bu_snapshot
+
+
+class CondFromFile(CondProvider):
+ """A class providing conditions for a CTD model from a file
+
+ Args:
+ filepath: The path to the file containing the conditions for the CTD model.
+ These conditions must be pose predictions made by a BU model on the data
+ images: Only load the conditions for the given image keys.
+ kwargs: A `CondFromFile` instance can also be created from a DeepLabCut
+ shuffle by passing kwargs and setting `filepath=None`. See examples for more
+ information.
+ """
+
+ def __init__(
+ self,
+ filepath: str | Path | None = None,
+ **kwargs,
+ ) -> None:
+ if filepath is None:
+ # Load the conditions filepath from the Shuffle
+ bu_loader, bu_snapshot = self.get_loader_and_snapshot(**kwargs)
+ bu_scorer = bu_loader.scorer(bu_snapshot)
+ filepath = bu_loader.evaluation_folder / f"{bu_scorer}.h5"
+ if not filepath.exists():
+ raise ValueError(
+ f"Conditions file {filepath} does not exist. Please make sure "
+ f"snapshot {bu_snapshot.path.name} for {kwargs['shuffle']} "
+ f"was evaluated (which is when the predictions file is created)."
+ )
+
+ if not filepath.exists():
+ raise ValueError(
+ "Conditions file {conditions_filepath} does not exist. Please check "
+ f"the given path."
+ )
+
+ self.filepath = filepath
+
+ def load_conditions(
+ self,
+ images: list[str] | None = None,
+ path_prefix: str | None = None,
+ ) -> dict[str, np.ndarray] | list[np.ndarray]:
+ """Loads conditions for a model from a file.
+
+ When loading conditions for individual images, the `images` must be provided
+ (indicating which images to load conditions for). A dict is returned containing
+ the conditions for each requested image.
+
+ When loading conditions for a video, the `images` parameter must be set to None.
+ A list is returned containing the conditions for each frame.
+
+ Args:
+ images: A list of image paths to load conditions for.
+ path_prefix: Optional prefix to prepend to image paths when looking up
+ conditions. This is useful when the paths in the conditions file are
+ relative but the provided image paths are absolute, or vice versa.
+
+ Returns:
+ If "images" is given: a dictionary mapping image paths to condition arrays.
+ Each array has shape (num_conditions, num_bodyparts, 3).
+ If "images" is None: a list containing the conditions for each frame.
+ """
+ suffix = Path(self.filepath).suffix.lower()
+ if suffix == ".h5":
+ return self.load_conditions_h5(self.filepath, images, path_prefix)
+ elif suffix == ".json":
+ return self.load_conditions_json(self.filepath, images, path_prefix)
+ elif suffix == ".pickle":
+ return self.load_conditions_pickle(self.filepath)
+
+ raise ValueError(
+ f"Unknown file suffix {suffix}. Can only read conditions from HDF5 or JSON "
+ f"files. Received {self.filepath}."
+ )
+
+ @staticmethod
+ def load_conditions_h5(
+ filepath: str | Path,
+ images: list[str] | None = None,
+ path_prefix: str | Path | None = None,
+ ) -> dict[str, np.ndarray] | list[np.ndarray]:
+ """Loads conditions for a model from a pandas DataFrame stored in an HDF file
+
+ When loading conditions for individual images, the `images` must be provided
+ (indicating which images to load conditions for). A dict is returned containing
+ the conditions for each requested image.
+
+ When loading conditions for a video, the `images` parameter must be set to None.
+ A list is returned containing the conditions for each frame.
+
+ The DataFrame must be in the same format as DeepLabCut Predictions. For
+ predictions on images (e.g. on a training/test set), the DataFrame should be in
+ the format:
+
+ ```
+ scorer model-name ...
+ individuals idv0 ... idvM
+ bodyparts bpt0 ... bptN
+ coords x y likelihood ... x y likelihood
+ ----------------------------------------------------------------------------
+ (labeled-data, v0, 0.png) 87.0 62.0 0.73 ... 83.2 99.1 0.8326
+ ```
+
+ While for conditions for videos, the DataFrame should be in the format:
+
+ ```
+ scorer model-name ...
+ individuals idv0 ... idvM
+ bodyparts bpt0 ... bptN
+ coords x y likelihood ... x y likelihood
+ ----------------------------------------------------------------------------
+ frame0000.png 87.0 62.0 0.73 ... 83.2 99.1 0.8326
+ ```
+
+ Args:
+ images: A list of image paths to load conditions for
+ filepath: Path to the JSON file containing conditions.
+ path_prefix: Optional prefix to prepend to image paths when looking up
+ conditions. This is useful when the paths in the conditions file are
+ relative but the provided image paths are absolute, or vice versa.
+
+ Returns:
+ If "images" is given: a dictionary mapping image paths to condition arrays.
+ Each array has shape (num_conditions, num_bodyparts, 3).
+ If "images" is None: a list containing the conditions for each frame.
+ """
+ def _parse_row(df_row) -> np.ndarray:
+ # Row to numpy and reshape
+ pose = df_row.to_numpy().reshape((num_conditions, num_bodyparts, 3))
+
+ # Remove missing data
+ missing_keypoints = np.any(np.isnan(pose) | (pose < 0), axis=2)
+ pose[missing_keypoints] = 0
+
+ # Only keep conditions with at least one visible keypoint
+ visible_conditions = np.any(~missing_keypoints, axis=1)
+ if np.sum(visible_conditions) > 0:
+ pose = pose[visible_conditions]
+ else:
+ pose = np.zeros((0, num_bodyparts, 3))
+
+ return pose
+
+ if path_prefix is not None:
+ path_prefix = Path(path_prefix)
+
+ df = pd.read_hdf(filepath)
+ if not isinstance(df, pd.DataFrame):
+ raise ValueError(f"{filepath} is not a dataframe.")
+
+ num_bodyparts = len(df.columns.get_level_values("bodyparts").unique())
+ num_conditions = 1
+ if "individuals" in df.columns.names:
+ num_conditions = len(df.columns.get_level_values("individuals").unique())
+
+ # Parse as list and return
+ if images is None:
+ parsed = []
+ for _, cond in df.iterrows():
+ parsed.append(_parse_row(cond))
+
+ return parsed
+
+ image_set = set(images)
+ conditions = {}
+ for filename, row in df.iterrows():
+ if isinstance(filename, tuple):
+ filename = str(Path(*filename))
+
+ if path_prefix is not None and filename not in image_set:
+ filename = str(path_prefix / filename)
+
+ if filename in image_set:
+ conditions[filename] = _parse_row(row)
+
+ missing = image_set.difference(set(conditions.keys()))
+ if len(missing) > 0:
+ print(
+ f"Warning: did not find conditions for {len(missing)} of the {len(images)} "
+ f"images. Missing conditions:"
+ )
+ for img_path in missing:
+ print(f" - {img_path}")
+
+ return conditions
+
+ @staticmethod
+ def load_conditions_json(
+ filepath: str | Path,
+ images: list[str] | None = None,
+ path_prefix: str | Path | None = None,
+ ) -> dict[str, np.ndarray] | list[np.ndarray]:
+ """Loads conditions for a model from a JSON file.
+
+ When loading conditions for individual images, the `images` must be provided
+ (indicating which images to load conditions for). A dict is returned containing
+ the conditions for each requested image. The JSON data structure should be:
+
+ ```
+ {
+ "img000.png": [ # conditions for image 0
+ [ # condition 0 pose
+ [x, y, score], # keypoint 0
+ [x, y, score], # keypoint 1
+ ...
+ [x, y, score], # keypoint N
+ ],
+ [ ... ], # condition 1
+ ...
+ [ ... ] # condition M
+ ],
+ "img001.png": [...] # conditions for image 1
+ }
+ ```
+
+ When loading conditions for a video, the `images` parameter must be set to None.
+ A list is returned containing the conditions for each frame. The JSON data
+ structure should be:
+
+ ```
+ [
+ [ # conditions for frame 0
+ [ # condition 0 pose
+ [x, y, score], # keypoint 0
+ [x, y, score], # keypoint 1
+ ...
+ [x, y, score], # keypoint N
+ ],
+ [ ... ], # condition 1
+ ...
+ [ ... ] # condition M
+ ],
+ [ ... ], # conditions for frame 1
+ ...
+ [ ... ] # conditions for frame N
+ ]
+ ```
+
+ Args:
+ images: A list of image paths to load conditions for.
+ filepath: Path to the JSON file containing conditions.
+ path_prefix: Optional prefix to prepend to image paths when looking up
+ conditions. This is useful when the paths in the conditions file are
+ relative but the provided image paths are absolute, or vice versa.
+
+ Returns:
+ A dictionary mapping image paths to condition arrays. Each array has shape
+ (num_conditions, num_bodyparts, 3).
+ """
+ with open(filepath, "r") as f:
+ conditions = json.load(f)
+
+ # Parse list and return
+ if images is None:
+ if not isinstance(conditions, list):
+ raise ValueError(
+ f"Conditions are expected to be of type list when `images=None`, "
+ f"got {type(conditions)}."
+ )
+
+ parsed = []
+ for cond in conditions:
+ if len(cond) == 0:
+ parsed.append(np.zeros((0, 0, 3)))
+ else:
+ parsed.append(np.asarray(cond))
+ return parsed
+
+ if not isinstance(conditions, dict):
+ raise ValueError(
+ f"Conditions are expected to be of type dict, got {type(conditions)}. "
+ "They should be in the format 'labeled-data/video-0/img0000.png' -> "
+ "list[list[list[float]]], where the list represents an array of shape "
+ "(num_conditions, num_bodyparts, 3)."
+ )
+
+ path_with_prefix_to_key = {}
+ if path_prefix is not None:
+ path_with_prefix_to_key = {
+ str(Path(path_prefix) / k): k for k in conditions.keys()
+ }
+
+ parsed = {}
+ missing = []
+ for img_path in images:
+ if img_path in conditions:
+ pose = np.asarray(conditions[img_path])
+ elif img_path in path_with_prefix_to_key:
+ pose = np.asarray(conditions[path_with_prefix_to_key[img_path]])
+ else:
+ pose = np.zeros((0, 0, 3))
+ missing.append(img_path)
+
+ if len(pose) == 0:
+ pose = np.zeros((0, 0, 3))
+
+ parsed[img_path] = pose
+
+ if len(missing) > 0:
+ print(
+ f"Warning: did not find conditions for {len(missing)} of the "
+ f"{len(images)} images. Missing conditions:"
+ )
+ for img_path in missing:
+ print(f" - {img_path}")
+
+ return parsed
+
+ @staticmethod
+ def load_conditions_pickle(filepath: str | Path) -> list[np.ndarray]:
+ """Loads conditions from a `*_assemblies.pickle` file containing predictions
+
+ Args:
+ filepath: Path to the Pickle file containing conditions.
+ """
+ with open(filepath, "rb") as f:
+ data = pickle.load(f)
+
+ frames = [f for f in data.keys() if isinstance(f, int)]
+ n_frames = max(*frames)
+
+ parsed = []
+ for i in range(n_frames):
+ assemblies = data.get(i)
+ if assemblies is None or len(assemblies) == 0:
+ pose = np.zeros((0, 0, 3))
+ else:
+ pose = np.stack(assemblies, axis=0)[:, :, :3]
+
+ mask = np.any(np.all(pose > 0, axis=-1), axis=-1)
+ if np.sum(mask) == 0:
+ pose = np.zeros((0, 0, 3))
+ else:
+ pose = pose[mask]
+
+ parsed.append(pose)
+ return parsed
+
+
+class CondFromModel(CondProvider):
+ """A class providing conditions for a CTD model from a BU model.
+
+ Attributes:
+ config_path: (Path)
+ The path to the `pytorch_config.yaml` for the BU model to use as conditions.
+ snapshot_path: (Path)
+ The path to the BU snapshot to use to generate conditions for the CTD model.
+ scorer: str
+ The scorer name for the BU model. This can be used to look for files
+ containing conditions instead of recomputing them.
+
+ Args:
+ config_path: (Path)
+ The path to the `pytorch_config.yaml` for the BU model to use as conditions.
+ snapshot_path: (Path)
+ The path to the BU snapshot to use to generate conditions for the CTD model.
+ **kwargs: A `CondFromModel` instance can also be created from a DeepLabCut
+ shuffle. See examples for more information.
+ """
+
+ def __init__(
+ self,
+ config_path: str | Path | None = None,
+ snapshot_path: str | Path | None = None,
+ scorer: str | None = None,
+ **kwargs,
+ ) -> None:
+ if config_path is not None and snapshot_path is not None:
+ config_path = Path(config_path)
+ snapshot_path = Path(config_path)
+ elif "config" in kwargs and "shuffle" in kwargs:
+ bu_loader, snapshot = self.get_loader_and_snapshot(**kwargs)
+ config_path = bu_loader.model_config_path
+ snapshot_path = snapshot.path
+ if scorer is None:
+ scorer = bu_loader.scorer(snapshot)
+
+ self.config_path = config_path
+ self.snapshot_path = snapshot_path
+ self.scorer = scorer
diff --git a/deeplabcut/pose_estimation_pytorch/data/dataset.py b/deeplabcut/pose_estimation_pytorch/data/dataset.py
index 3a9333bc8a..faf0201a73 100644
--- a/deeplabcut/pose_estimation_pytorch/data/dataset.py
+++ b/deeplabcut/pose_estimation_pytorch/data/dataset.py
@@ -13,19 +13,25 @@
from dataclasses import dataclass
import albumentations as A
-import cv2
import numpy as np
from torch.utils.data import Dataset
-from deeplabcut.pose_estimation_pytorch.data.image import top_down_crop
+from deeplabcut.pose_estimation_pytorch.data.generative_sampling import (
+ GenerativeSampler,
+ GenSamplingConfig,
+)
+from deeplabcut.pose_estimation_pytorch.data.image import load_image, top_down_crop
from deeplabcut.pose_estimation_pytorch.data.utils import (
_crop_image_keypoints,
_extract_keypoints_and_bboxes,
apply_transform,
+ bbox_from_keypoints,
+ calc_bbox_overlap,
map_id_to_annotations,
map_image_path_to_id,
out_of_bounds_keypoints,
pad_to_length,
+ safe_stack,
)
from deeplabcut.pose_estimation_pytorch.task import Task
@@ -40,6 +46,7 @@ class PoseDatasetParameters:
individuals: the names of individuals
with_center_keypoints: whether to compute center keypoints for individuals
color_mode: {"RGB", "BGR"} the mode to load images in
+ ctd_config: for CTD models, the configuration for bbox calculation and error sampling
top_down_crop_size: for top-down models, the (width, height) to crop bboxes to
top_down_crop_margin: for top-down models, the margin to add around bboxes
"""
@@ -49,8 +56,10 @@ class PoseDatasetParameters:
individuals: list[str]
with_center_keypoints: bool = False
color_mode: str = "RGB"
+ ctd_config: GenSamplingConfig | None = None
top_down_crop_size: tuple[int, int] | None = None
top_down_crop_margin: int | None = None
+ top_down_crop_with_context: bool = True
@property
def num_joints(self) -> int:
@@ -75,6 +84,7 @@ class PoseDataset(Dataset):
transform: A.BaseCompose | None = None
mode: str = "train"
task: Task = Task.BOTTOM_UP
+ ctd_config: GenSamplingConfig | None = None
def __post_init__(self):
self.image_path_id_map = map_image_path_to_id(self.images)
@@ -94,8 +104,20 @@ def __post_init__(self):
self.td_crop_size = self.parameters.top_down_crop_size
self.td_crop_margin = self.parameters.top_down_crop_margin
+ if self.task == Task.COND_TOP_DOWN:
+ if self.ctd_config is None:
+ raise ValueError(
+ "Must specify a ``ctd_config`` in your PoseDatasetParameters for "
+ "CTD models."
+ )
+
+ self.generative_sampler = GenerativeSampler(
+ self.parameters.num_joints,
+ **self.ctd_config.to_dict(),
+ )
+
def __len__(self):
- # TODO: TD should only return the number of annotations that aren't unique_bodyparts
+ # TODO: TD/CTD should only return the number of annotations that aren't unique_bodyparts
if self.task in (Task.BOTTOM_UP, Task.DETECT):
return len(self.images)
@@ -117,17 +139,29 @@ def _get_raw_item(self, index: int) -> tuple[str, list[dict], int]:
Otherwise, it returns the image path and a list of annotations for all instances in the image.
"""
img = self.images[index]
-
anns = [self.annotations[idx] for idx in self.annotation_idx_map[img["id"]]]
-
return img["file_name"], anns, img["id"]
def _get_raw_item_crop(self, index: int) -> tuple[str, list[dict], int]:
ann = self.annotations[index]
-
img = self.images[self.img_id_to_index[ann["image_id"]]]
return img["file_name"], [ann], img["id"]
+ def _get_raw_item_crop_context(self, index: int) -> tuple[str, list[dict], int]:
+ """
+ Includes keypoints from other individuals in the image ("context").
+ """
+ ann = self.annotations[index]
+ img = self.images[self.img_id_to_index[ann["image_id"]]]
+ near_anns = []
+ for idx in self.annotation_idx_map[img["id"]]:
+ # we consider near annotations to be those whose bounding boxes overlap with
+ # the current item
+ # HACK: add same annotation as near keypoints so that we don't have empty list
+ if calc_bbox_overlap(ann["bbox"], self.annotations[idx]["bbox"]) > 0:
+ near_anns.append(self.annotations[idx])
+ return img["file_name"], [ann] + near_anns, img["id"]
+
def __getitem__(self, index: int) -> dict:
"""
Gets the item at the specified index from the dataset.
@@ -155,8 +189,8 @@ def __getitem__(self, index: int) -> dict:
}
"""
image_path, anns, image_id = self._get_data_based_on_task(index)
-
- image, original_size = self._load_image(image_path)
+ image = load_image(image_path, color_mode=self.parameters.color_mode)
+ original_size = image.shape
(
keypoints,
keypoints_unique,
@@ -176,35 +210,83 @@ def __getitem__(self, index: int) -> dict:
offsets = (0, 0)
scales = (1.0, 1.0)
- if self.task == Task.TOP_DOWN:
- if len(bboxes) > 1:
+ if self.task in (Task.TOP_DOWN, Task.COND_TOP_DOWN):
+ if self.parameters.top_down_crop_size is None:
+ raise ValueError(
+ "You must specify a cropped image size for top-down models"
+ )
+ if len(bboxes) > 1 and self.task == Task.TOP_DOWN:
raise ValueError(
"There can only be one bbox per item in TD datasets, found "
f"{bboxes} for {index} (image {image_path})"
)
bboxes = bboxes.astype(int)
+ if self.task == Task.COND_TOP_DOWN:
+ near_keypoints = keypoints[1:]
+ keypoints = keypoints[:1]
+ synthesized_keypoints = self.generative_sampler(
+ keypoints=keypoints.reshape(-1, 3),
+ near_keypoints=near_keypoints.reshape(len(near_keypoints), -1, 3),
+ area=bboxes[0, 2] * bboxes[0, 3],
+ image_size=original_size,
+ )
+
+ # if conditional keypoints are empty, we take original bbox
+ if np.any(synthesized_keypoints[..., -1] > 0):
+ bboxes[0] = bbox_from_keypoints(
+ synthesized_keypoints,
+ original_size[0],
+ original_size[1],
+ self.ctd_config.bbox_margin,
+ )
+
if bboxes[0, 2] == 0 or bboxes[0, 3] == 0:
# bbox was augmented out of the image; blank image, no keypoints
keypoints[..., 2] = 0.0
+ if self.task == Task.COND_TOP_DOWN:
+ keypoints = safe_stack(
+ [keypoints, keypoints],
+ (2, 1, self.parameters.num_joints, 3),
+ )
+
image = np.zeros(
(self.td_crop_size[1], self.td_crop_size[0], image.shape[-1]),
dtype=image.dtype,
)
else:
image, offsets, scales = top_down_crop(
- image, bboxes[0], self.td_crop_size, margin=self.td_crop_margin,
+ image,
+ bboxes[0],
+ self.parameters.top_down_crop_size,
+ self.parameters.top_down_crop_margin,
+ crop_with_context=self.parameters.top_down_crop_with_context,
)
+
keypoints[:, :, 0] = (keypoints[:, :, 0] - offsets[0]) / scales[0]
keypoints[:, :, 1] = (keypoints[:, :, 1] - offsets[1]) / scales[1]
+ if self.task == Task.COND_TOP_DOWN:
+ synthesized_keypoints[:, 0] = (
+ synthesized_keypoints[:, 0] - offsets[0]
+ ) / scales[0]
+ synthesized_keypoints[:, 1] = (
+ synthesized_keypoints[:, 1] - offsets[1]
+ ) / scales[1]
+ keypoints = safe_stack(
+ [keypoints, synthesized_keypoints[None, ...]],
+ (2, 1, self.parameters.num_joints, 3),
+ )
+
bboxes = bboxes[:1]
bboxes[..., 0] = (bboxes[..., 0] - offsets[0]) / scales[0]
bboxes[..., 1] = (bboxes[..., 1] - offsets[1]) / scales[1]
bboxes[..., 2] = bboxes[..., 2] / scales[0]
bboxes[..., 3] = bboxes[..., 3] / scales[1]
+ bboxes = np.clip(
+ bboxes, 0, self.parameters.top_down_crop_size[0] - 1
+ ) # TODO: clip based on [x,y,x,y]?
- # as a RandomBBoxTransform can be added, keypoints may be outside of the
- # image after the crop
+ # RandomBBoxTransform may move keypoints outside the cropped image
oob_mask = out_of_bounds_keypoints(keypoints, self.td_crop_size)
if np.sum(oob_mask) > 0:
keypoints[oob_mask, 2] = 0.0
@@ -238,6 +320,10 @@ def _prepare_final_data_dict(
offsets: tuple[int, int],
scales: tuple[float, float],
) -> dict[str, np.ndarray | dict[str, np.ndarray]]:
+ context = dict()
+ if self.task == Task.COND_TOP_DOWN:
+ context["cond_keypoints"] = keypoints[1, :, :, :].astype(np.single)
+
return {
"image": image.transpose((2, 0, 1)),
"image_id": image_id,
@@ -248,6 +334,7 @@ def _prepare_final_data_dict(
"annotations": self._prepare_final_annotation_dict(
keypoints, keypoints_unique, bboxes, annotations_merged
),
+ "context": context,
}
def _prepare_final_annotation_dict(
@@ -258,7 +345,7 @@ def _prepare_final_annotation_dict(
anns: dict,
) -> dict[str, np.ndarray]:
num_animals = self.parameters.max_num_animals
- if self.task == Task.TOP_DOWN:
+ if self.task in (Task.TOP_DOWN, Task.COND_TOP_DOWN):
num_animals = 1
bbox_widths = np.maximum(1, bboxes[..., 2])
@@ -267,6 +354,17 @@ def _prepare_final_annotation_dict(
if "individual_id" not in anns:
anns["individual_id"] = -np.ones(len(anns["category_id"]), dtype=int)
+ individual_ids = anns["individual_id"]
+ is_crowd = anns["iscrowd"]
+ labels = anns["category_id"]
+ if self.task == Task.COND_TOP_DOWN:
+ keypoints = keypoints[0]
+ area = area[:1]
+ bboxes = bboxes[:1]
+ individual_ids = individual_ids[:1]
+ is_crowd = is_crowd[:1]
+ labels = labels[:1]
+
# we use ..., :3 to pass the visibility flag along
return {
"keypoints": pad_to_length(keypoints[..., :3], num_animals, 0).astype(
@@ -276,19 +374,13 @@ def _prepare_final_annotation_dict(
"with_center_keypoints": self.parameters.with_center_keypoints,
"area": pad_to_length(area, num_animals, 0).astype(np.single),
"boxes": pad_to_length(bboxes, num_animals, 0).astype(np.single),
- "is_crowd": pad_to_length(anns["iscrowd"], num_animals, 0).astype(int),
- "labels": pad_to_length(anns["category_id"], num_animals, -1).astype(int),
- "individual_ids": pad_to_length(
- anns["individual_id"], num_animals, -1
- ).astype(int),
+ "is_crowd": pad_to_length(is_crowd, num_animals, 0).astype(int),
+ "labels": pad_to_length(labels, num_animals, -1).astype(int),
+ "individual_ids": pad_to_length(individual_ids, num_animals, -1).astype(
+ int
+ ),
}
- def _load_image(self, image_path):
- image = cv2.imread(image_path)
- if self.parameters.color_mode == "RGB":
- image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
- return image, image.shape
-
def _get_data_based_on_task(self, index: int) -> tuple[str, list[dict], int]:
"""
Retrieve data based on the specified task.
@@ -309,7 +401,9 @@ def _get_data_based_on_task(self, index: int) -> tuple[str, list[dict], int]:
"""
if self.task == Task.TOP_DOWN:
return self._get_raw_item_crop(index)
- elif self.task in [Task.BOTTOM_UP, Task.DETECT]:
+ elif self.task == Task.COND_TOP_DOWN:
+ return self._get_raw_item_crop_context(index)
+ elif self.task in (Task.BOTTOM_UP, Task.DETECT):
return self._get_raw_item(index)
raise ValueError(f"Unknown task: {self.task}")
diff --git a/deeplabcut/pose_estimation_pytorch/data/dlcloader.py b/deeplabcut/pose_estimation_pytorch/data/dlcloader.py
index 4370273ce3..c8f43d007e 100644
--- a/deeplabcut/pose_estimation_pytorch/data/dlcloader.py
+++ b/deeplabcut/pose_estimation_pytorch/data/dlcloader.py
@@ -13,6 +13,7 @@
import logging
import pickle
+import re
from pathlib import Path
import numpy as np
@@ -23,6 +24,7 @@
from deeplabcut.core.engine import Engine
from deeplabcut.pose_estimation_pytorch.data.base import Loader
from deeplabcut.pose_estimation_pytorch.data.dataset import PoseDatasetParameters
+from deeplabcut.pose_estimation_pytorch.data.snapshots import Snapshot
from deeplabcut.pose_estimation_pytorch.data.utils import read_image_shape_fast
@@ -67,13 +69,13 @@ def __init__(
engine=Engine.PYTORCH,
modelprefix=modelprefix,
)
-
- super().__init__(
+ model_config_path = (
self._project_root
/ self._model_folder
/ "train"
/ Engine.PYTORCH.pose_cfg_name
)
+ super().__init__(self._project_root, self._project_root, model_config_path)
# lazy-load split and DataFrames
self._split: dict[str, list[int]] | None = None
@@ -133,6 +135,28 @@ def split(self) -> dict[str, list[int]]:
return self._split
+ def scorer(
+ self,
+ snapshot: Snapshot | str | Path,
+ detector_snapshot: Snapshot | str | Path | None = None,
+ ) -> str:
+ """Returns the scorer for this DLCLoader and the given snapshot."""
+ task, date = self.project_cfg["Task"], self.project_cfg["date"]
+ name = "".join([p.capitalize() for p in self.model_cfg["net_type"].split("_")])
+
+ if not isinstance(snapshot, Snapshot):
+ snapshot = Snapshot.from_path(Path(snapshot))
+
+ snapshot_id = f"snapshot_{snapshot.uid()}"
+ if detector_snapshot is not None:
+ if not isinstance(detector_snapshot, Snapshot):
+ detector_snapshot = Snapshot.from_path(Path(detector_snapshot))
+
+ detect_id = detector_snapshot.uid()
+ snapshot_id = f"detector_{detect_id}_{snapshot_id}"
+
+ return f"DLC_{name}_{task}{date}shuffle{self.shuffle}_{snapshot_id}"
+
def get_dataset_parameters(self) -> PoseDatasetParameters:
"""Retrieves dataset parameters based on the instance's configuration.
@@ -142,6 +166,7 @@ def get_dataset_parameters(self) -> PoseDatasetParameters:
crop_cfg = self.model_cfg["data"]["train"].get("top_down_crop", {})
crop_w, crop_h = crop_cfg.get("width", 256), crop_cfg.get("height", 256)
crop_margin = crop_cfg.get("margin", 0)
+ crop_with_context = crop_cfg.get("crop_with_context", True)
return PoseDatasetParameters(
bodyparts=self.model_cfg["metadata"]["bodyparts"],
@@ -151,6 +176,7 @@ def get_dataset_parameters(self) -> PoseDatasetParameters:
color_mode=self.model_cfg.get("color_mode", "RGB"),
top_down_crop_size=(crop_w, crop_h),
top_down_crop_margin=crop_margin,
+ top_down_crop_with_context=crop_with_context,
)
def load_data(self, mode: str = "train") -> dict:
@@ -272,6 +298,59 @@ def load_split(
test_ids = [int(i) for i in meta[2]]
return {"train": train_ids, "test": test_ids}
+ @staticmethod
+ def load_predictions(
+ bu_snapshot: Path,
+ bu_predictions: Path,
+ parameters: PoseDatasetParameters,
+ ) -> pd.DataFrame:
+ if bu_predictions is None:
+ pred_path = Path(
+ str(bu_snapshot).replace("dlc-models", "evaluation-results")
+ ).parent.parent
+ cfg = af.read_config(pred_path.parent.parent.parent / "config.yaml")
+ scorer = af.get_scorer_name(
+ cfg=cfg,
+ shuffle=int(re.search(r"shuffle(\d+)", str(bu_snapshot)).group(1)),
+ trainFraction=int(
+ re.search(r"trainset(\d+)", str(bu_snapshot)).group(1)
+ )
+ / 100,
+ engine=Engine.PYTORCH,
+ trainingsiterations=re.search(
+ r"snapshot-(.+)\.pth", str(bu_snapshot)
+ ).group(1),
+ modelprefix="",
+ )
+
+ pred_file = pred_path / f"{scorer[0]}.h5"
+ dlc_preds = pd.read_hdf(pred_file, key="df_with_missing")
+
+ # FIXME: Implement the case where snapshot is loaded
+ raise NotImplementedError("Need to implement the case with loaded snapshot")
+
+ else:
+ pred_path = bu_predictions.parent.parent
+ dlc_preds = pd.read_hdf(bu_predictions, key="df_with_missing")
+
+ predictions = {}
+ for idx in dlc_preds.index.unique():
+ if type(idx) == tuple:
+ img_path = pred_path.parent.parent / Path(*idx)
+ else:
+ img_path = pred_path.parent.parent / Path(idx)
+
+ keypoints = dlc_preds.loc[idx].values.reshape(
+ -1, len(parameters.bodyparts), 3
+ )[..., :2]
+ keypoints = keypoints[~np.isnan(keypoints).all(axis=-1).all(axis=-1)]
+ cond_keypoints = np.zeros((*keypoints.shape[:-1], 3))
+ cond_keypoints[..., :2] = keypoints
+ cond_keypoints[..., 2] = 2
+ predictions[str(img_path)] = cond_keypoints
+
+ return predictions
+
@staticmethod
def split_data(
dlc_df: pd.DataFrame,
diff --git a/deeplabcut/pose_estimation_pytorch/data/generative_sampling.py b/deeplabcut/pose_estimation_pytorch/data/generative_sampling.py
new file mode 100644
index 0000000000..84fe6ae01a
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/data/generative_sampling.py
@@ -0,0 +1,436 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+"""A file containing code to perform generative sampling of keypoints for CTD
+
+This code comes from PoseFix (see https://arxiv.org/pdf/1812.03595.pdf), and was then
+adapted for BUCTD (github.com/amathislab/BUCTD/blob/main/lib/dataset/pose_synthesis.py,
+see `synthesize_pose_fish(...)`).
+They say:
+> ... synthesized poses need to be diverse and realistic. To satisfy these properties,
+> we generate synthesized poses randomly based on the error distributions of real poses
+> as described in [24]. The distributions include the frequency of each pose error
+> (i.e., jitter, inversion, swap, and miss) according to the joint type, number of
+> visible keypoints, and overlap in the input image.
+> ...
+> Types of Keypoints:
+> Good. Good status is defined as a very small displacement from the GT keypoint.
+> Jitter. Jitter error is defined as a small displacement from the GT keypoint.
+> Inversion. Inversion error occurs when a pose estimation model is confused between
+> semantically similar parts that belong to the same instance.
+> Swap. Swap error represents a confusion between the same or similar parts which belong
+> to different persons.
+> Miss. Miss error represents a large displacement from the GT keypoint position.
+
+In BUCTD and their adaptation to the maDLC fish dataset, they set:
+ if cfg.DATASET.DATASET == 'coco':
+ kps_symmetry = [(1, 2), (3, 4), (5, 6), ...]
+ kps_sigmas = np.array([.26, .25, .25, ...]) / 10.0
+ elif cfg.DATASET.DATASET == 'crowdpose':
+ kps_sigmas = np.array([.79, .79, .72, ...])/10.0
+ kps_symmetry= [(0, 1), (2, 3), (4, 5), ...] # l/r shoulder, l/r elbow, wrist,
+ else:
+ kps_symmetry = []
+ kps_sigmas = np.array([1.] * num_kpts)/10.0
+"""
+from __future__ import annotations
+
+import math
+import random
+from dataclasses import dataclass, asdict
+
+import numpy as np
+
+
+@dataclass(frozen=True)
+class GenSamplingConfig:
+ """Configuration for CTD models.
+
+ Args:
+ bbox_margin: The margin added around conditional keypoints
+ keypoint_sigmas: The sigma for each keypoint.
+ keypoints_symmetry: Indices of symmetric keypoints (e.g. left/right eye)
+ jitter_prob: The probability of applying jitter. Jitter error is defined as
+ a small displacement from the GT keypoint.
+ swap_prob: The probability of applying a swap error. Swap error represents
+ a confusion between the same or similar parts which belong to different
+ persons.
+ inv_prob: The probability of applying an inversion error. Inversion error
+ occurs when a pose estimation model is confused between semantically
+ similar parts that belong to the same instance.
+ miss_prob: The probability of applying a miss error. Miss error represents a
+ large displacement from the GT keypoint position.
+ """
+ bbox_margin: int
+ keypoint_sigmas: float | list[float] = 0.1
+ keypoints_symmetry: list[tuple[int, int]] | None = None
+ jitter_prob: float = 0.16
+ swap_prob: float = 0.08
+ inv_prob: float = 0.03
+ miss_prob: float = 0.10
+
+ def to_dict(self) -> dict:
+ return {
+ "keypoint_sigmas": self.keypoint_sigmas,
+ "keypoints_symmetry": self.keypoints_symmetry,
+ "jitter_prob": self.jitter_prob,
+ "swap_prob": self.swap_prob,
+ "inv_prob": self.inv_prob,
+ "miss_prob": self.miss_prob,
+ }
+
+
+class GenerativeSampler:
+ """Performs generative sampling of keypoints for CTD model training"""
+
+ def __init__(
+ self,
+ num_keypoints: int,
+ keypoint_sigmas: float | list[float] = 0.1,
+ keypoints_symmetry: list[tuple[int, int]] | None = None,
+ jitter_prob: float = 0.16,
+ swap_prob: float = 0.08,
+ inv_prob: float = 0.03,
+ miss_prob: float = 0.10,
+ ):
+ """
+ Args:
+ num_keypoints: the number of keypoints per individual
+ keypoint_sigmas: the sigma for each keypoint
+ keypoints_symmetry: indices of keypoints that are symmetric (e.g., left and
+ right eye)
+ jitter_prob: The probability of applying jitter. Jitter error is defined as
+ a small displacement from the GT keypoint.
+ swap_prob: The probability of applying a swap error. Swap error represents
+ a confusion between the same or similar parts which belong to different
+ persons.
+ inv_prob: The probability of applying an inversion error. Inversion error
+ occurs when a pose estimation model is confused between semantically
+ similar parts that belong to the same instance.
+ miss_prob: The probability of applying a miss error. Miss error represents a
+ large displacement from the GT keypoint position.
+ """
+ if isinstance(keypoint_sigmas, float):
+ keypoint_sigmas = num_keypoints * [keypoint_sigmas]
+
+ self.keypoint_sigmas = np.array(keypoint_sigmas)
+ self.keypoints_symmetry = keypoints_symmetry
+ self.num_keypoints = num_keypoints
+ self.jitter_prob = jitter_prob
+ self.swap_prob = swap_prob
+ self.inv_prob = inv_prob
+ self.miss_prob = miss_prob
+
+ def __call__(
+ self,
+ keypoints: np.ndarray,
+ near_keypoints: np.ndarray,
+ area: float,
+ image_size: tuple[int, int],
+ ) -> np.ndarray:
+ """Samples keypoints
+
+ PoseFix uses conditional keypoints (estimated by a bottom-up model) when ground
+ truth keypoints are not available. For simplicity, we omit that. See
+ https://github.com/mks0601/PoseFix_RELEASE/blob/master/main/gen_batch.py#L76
+
+ Args:
+ keypoints: (num_keypoints, x-y-visibility) the ground truth keypoints
+ near_keypoints: (num_other_individuals, num_keypoints, x-y-visibility) joints
+ from other individuals near this one, for which keypoints might be swapped
+ area: the total area of the bounding box surrounding the keypoints
+
+ Returns:
+ the generative sampled keypoints, of shape (num_keypoints, x-y-visibility)
+ """
+ if not keypoints.shape[0] == self.num_keypoints:
+ raise ValueError(f"Expected {self.num_keypoints} kpts, had {keypoints}")
+
+ ks_10_dist = self.get_distance_wrt_keypoint_sim(0.10, area)
+ ks_50_dist = self.get_distance_wrt_keypoint_sim(0.50, area)
+ ks_85_dist = self.get_distance_wrt_keypoint_sim(0.85, area)
+
+ synth_joints = keypoints.copy()
+ # FIXME: In the original codebase, if some keypoints are not annotated then they
+ # use the predictions made by a pose model. This is complex to integrate into
+ # the current codebase (where is the prediction file saved? how do we load
+ # predictions? which model?) so we ignore it for now
+ # for j in range(self.num_keypoints):
+ # # in case of not annotated joints, use other models`s result and add noise
+ # if keypoints[j, 2] == 0:
+ # synth_joints[j] = estimated_joints[j]
+
+ # num_valid_joint = np.sum(keypoints[:, 2] > 0)
+
+ N = 500 # TODO: do not know how this is set
+ for j in range(self.num_keypoints):
+
+ # source keypoint position candidates to generate error on that (gt, swap, inv, swap+inv)
+ coord_list = []
+ # on top of gt
+ gt_coord = np.expand_dims(synth_joints[j, :2], 0)
+ coord_list.append(gt_coord)
+ # on top of swap gt
+ swap_coord = near_keypoints[near_keypoints[:, j, 2] > 0, j, :2]
+ coord_list.append(swap_coord)
+
+ # on top of inv gt, swap inv gt
+ if self.keypoints_symmetry is None or len(self.keypoints_symmetry) == 0:
+ # randomly sample keypoint pairs to swap
+ kps_symmetry = np.random.choice(
+ list(range(self.num_keypoints)),
+ size=(self.num_keypoints // 2, 2),
+ replace=False,
+ )
+ else:
+ kps_symmetry = self.keypoints_symmetry
+
+ pair_idx = None
+ for q, w in kps_symmetry:
+ if j == q or j == w:
+ if j == q:
+ pair_idx = w
+ else:
+ pair_idx = q
+
+ if pair_idx is not None and (keypoints[pair_idx, 2] > 0):
+ inv_coord = np.expand_dims(synth_joints[pair_idx, :2], 0)
+ coord_list.append(inv_coord)
+ else:
+ coord_list.append(np.empty([0, 2]))
+
+ if pair_idx is not None:
+ swap_inv_coord = near_keypoints[
+ near_keypoints[:, pair_idx, 2] > 0, pair_idx, :2
+ ]
+ coord_list.append(swap_inv_coord)
+ else:
+ coord_list.append(np.empty([0, 2]))
+
+ # shape (s, 2)
+ tot_coord_list = np.concatenate(coord_list)
+
+ assert len(coord_list) == 4
+
+ # jitter error
+ synth_jitter = np.zeros(3)
+ jitter_prob = self.jitter_prob
+
+ angle = np.random.uniform(0, 2 * math.pi, [N])
+ r = np.random.uniform(ks_85_dist[j], ks_50_dist[j], [N])
+ jitter_idx = 0 # gt
+ x = tot_coord_list[jitter_idx][0] + r * np.cos(angle)
+ y = tot_coord_list[jitter_idx][1] + r * np.sin(angle)
+ dist_mask = True
+ for i in range(len(tot_coord_list)):
+ if i == jitter_idx:
+ continue
+ dist_mask = np.logical_and(
+ dist_mask,
+ np.sqrt(
+ (tot_coord_list[i][0] - x) ** 2
+ + (tot_coord_list[i][1] - y) ** 2
+ )
+ > r,
+ )
+
+ x = x[dist_mask].reshape(-1)
+ y = y[dist_mask].reshape(-1)
+ if len(x) > 0:
+ rand_idx = random.randrange(0, len(x))
+ synth_jitter[0] = x[rand_idx]
+ synth_jitter[1] = y[rand_idx]
+ synth_jitter[2] = 1
+
+ # miss error
+ synth_miss = np.zeros(3)
+ miss_prob = self.miss_prob
+
+ miss_pt_list = []
+ for miss_idx in range(len(tot_coord_list)):
+ angle = np.random.uniform(0, 2 * math.pi, [4 * N])
+ r = np.random.uniform(ks_50_dist[j], ks_10_dist[j], [4 * N])
+ x = tot_coord_list[miss_idx][0] + r * np.cos(angle)
+ y = tot_coord_list[miss_idx][1] + r * np.sin(angle)
+ dist_mask = True
+ for i in range(len(tot_coord_list)):
+ if i == miss_idx:
+ continue
+ dist_mask = np.logical_and(
+ dist_mask,
+ np.sqrt(
+ (tot_coord_list[i][0] - x) ** 2
+ + (tot_coord_list[i][1] - y) ** 2
+ )
+ > ks_50_dist[j],
+ )
+ x = x[dist_mask].reshape(-1)
+ y = y[dist_mask].reshape(-1)
+ if len(x) > 0:
+ if miss_idx == 0:
+ coord = np.transpose(np.vstack([x, y]), [1, 0])
+ miss_pt_list.append(coord)
+ else:
+ rand_idx = np.random.choice(range(len(x)), size=len(x) // 4)
+ x = np.take(x, rand_idx)
+ y = np.take(y, rand_idx)
+ coord = np.transpose(np.vstack([x, y]), [1, 0])
+ miss_pt_list.append(coord)
+ if len(miss_pt_list) > 0:
+ miss_pt_list = np.concatenate(miss_pt_list, axis=0).reshape(-1, 2)
+ rand_idx = random.randrange(0, len(miss_pt_list))
+ synth_miss[0] = miss_pt_list[rand_idx][0]
+ synth_miss[1] = miss_pt_list[rand_idx][1]
+ synth_miss[2] = 1
+
+ # inversion prob
+ synth_inv = np.zeros(3)
+ inv_prob = self.inv_prob
+ if pair_idx is not None and keypoints[pair_idx, 2] > 0:
+ angle = np.random.uniform(0, 2 * math.pi, [N])
+ r = np.random.uniform(0, ks_50_dist[j], [N])
+ inv_idx = len(coord_list[0]) + len(coord_list[1])
+ x = tot_coord_list[inv_idx][0] + r * np.cos(angle)
+ y = tot_coord_list[inv_idx][1] + r * np.sin(angle)
+ dist_mask = True
+ for i in range(len(tot_coord_list)):
+ if i == inv_idx:
+ continue
+ dist_mask = np.logical_and(
+ dist_mask,
+ np.sqrt(
+ (tot_coord_list[i][0] - x) ** 2
+ + (tot_coord_list[i][1] - y) ** 2
+ )
+ > r,
+ )
+ x = x[dist_mask].reshape(-1)
+ y = y[dist_mask].reshape(-1)
+ if len(x) > 0:
+ rand_idx = random.randrange(0, len(x))
+ synth_inv[0] = x[rand_idx]
+ synth_inv[1] = y[rand_idx]
+ synth_inv[2] = 1
+
+ # swap prob
+ synth_swap = np.zeros(3)
+ swap_exist = (len(coord_list[1]) > 0) or (len(coord_list[3]) > 0)
+ swap_prob = self.swap_prob
+
+ if swap_exist:
+ swap_pt_list = []
+ for swap_idx in range(len(tot_coord_list)):
+ if swap_idx == 0 or swap_idx == len(coord_list[0]) + len(
+ coord_list[1]
+ ):
+ continue
+ angle = np.random.uniform(0, 2 * math.pi, [N])
+ r = np.random.uniform(0, ks_50_dist[j], [N])
+ x = tot_coord_list[swap_idx][0] + r * np.cos(angle)
+ y = tot_coord_list[swap_idx][1] + r * np.sin(angle)
+ dist_mask = True
+ for i in range(len(tot_coord_list)):
+ if i == 0 or i == len(coord_list[0]) + len(coord_list[1]):
+ dist_mask = np.logical_and(
+ dist_mask,
+ np.sqrt(
+ (tot_coord_list[i][0] - x) ** 2
+ + (tot_coord_list[i][1] - y) ** 2
+ )
+ > r,
+ )
+ x = x[dist_mask].reshape(-1)
+ y = y[dist_mask].reshape(-1)
+ if len(x) > 0:
+ coord = np.transpose(np.vstack([x, y]), [1, 0])
+ swap_pt_list.append(coord)
+
+ if len(swap_pt_list) > 0:
+ swap_pt_list = np.concatenate(swap_pt_list, axis=0).reshape(-1, 2)
+ rand_idx = random.randrange(0, len(swap_pt_list))
+ synth_swap[0] = swap_pt_list[rand_idx][0]
+ synth_swap[1] = swap_pt_list[rand_idx][1]
+ synth_swap[2] = 1
+
+ # good prob
+ synth_good = np.zeros(3)
+ good_prob = 1 - (jitter_prob + miss_prob + inv_prob + swap_prob)
+ assert good_prob >= 0
+ angle = np.random.uniform(0, 2 * math.pi, [N // 4])
+ r = np.random.uniform(0, ks_85_dist[j], [N // 4])
+ good_idx = 0 # gt
+ x = tot_coord_list[good_idx][0] + r * np.cos(angle)
+ y = tot_coord_list[good_idx][1] + r * np.sin(angle)
+ dist_mask = True
+ for i in range(len(tot_coord_list)):
+ if i == good_idx:
+ continue
+ dist_mask = np.logical_and(
+ dist_mask,
+ np.sqrt(
+ (tot_coord_list[i][0] - x) ** 2
+ + (tot_coord_list[i][1] - y) ** 2
+ )
+ > r,
+ )
+
+ x = x[dist_mask].reshape(-1)
+ y = y[dist_mask].reshape(-1)
+ if len(x) > 0:
+ rand_idx = random.randrange(0, len(x))
+ synth_good[0] = x[rand_idx]
+ synth_good[1] = y[rand_idx]
+ synth_good[2] = 1
+
+ if synth_jitter[2] == 0:
+ jitter_prob = 0
+ if synth_inv[2] == 0:
+ inv_prob = 0
+ if synth_swap[2] == 0:
+ swap_prob = 0
+ if synth_miss[2] == 0:
+ miss_prob = 0
+ if synth_good[2] == 0:
+ good_prob = 0
+
+ normalizer = jitter_prob + miss_prob + inv_prob + swap_prob + good_prob
+ if normalizer == 0:
+ synth_joints[j] = 0
+ continue
+
+ jitter_prob = jitter_prob / normalizer
+ miss_prob = miss_prob / normalizer
+ inv_prob = inv_prob / normalizer
+ swap_prob = swap_prob / normalizer
+ good_prob = good_prob / normalizer
+
+ prob_list = [jitter_prob, miss_prob, inv_prob, swap_prob, good_prob]
+ synth_list = [synth_jitter, synth_miss, synth_inv, synth_swap, synth_good]
+ sampled_idx = np.random.choice(5, 1, p=prob_list)[0]
+ synth_joints[j] = synth_list[sampled_idx]
+ synth_joints[j, 2] = 2
+
+ nan_mask = np.isnan(synth_joints).any(axis=1)
+ synth_joints[nan_mask, 2] = 0
+ np.clip(synth_joints[:, 0], 0, image_size[1], out=synth_joints[:, 0])
+ np.clip(synth_joints[:, 1], 0, image_size[0], out=synth_joints[:, 1])
+ return synth_joints
+
+ def get_distance_wrt_keypoint_sim(self, ks: float, area: float) -> np.ndarray:
+ """
+ Args:
+ ks: the desired keypoint similarity
+ area: the area of the bounding box for the individual
+
+ Returns:
+ For each bodypart, the L2 distance for which the keypoint similarity is
+ equal to ks
+ """
+ return np.sqrt(-2 * area * ((self.keypoint_sigmas * 2) ** 2) * np.log(ks))
diff --git a/deeplabcut/pose_estimation_pytorch/data/image.py b/deeplabcut/pose_estimation_pytorch/data/image.py
index 115b76beb2..f62548c2ed 100644
--- a/deeplabcut/pose_estimation_pytorch/data/image.py
+++ b/deeplabcut/pose_estimation_pytorch/data/image.py
@@ -1,6 +1,18 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+"""Classes and functions to manipulate images"""
from __future__ import annotations
import copy
+from pathlib import Path
import cv2
import numpy as np
@@ -10,6 +22,25 @@
from deeplabcut.pose_estimation_pytorch.data.utils import _compute_crop_bounds
+def load_image(filepath: str | Path, color_mode: str = "RGB") -> np.ndarray:
+ """Loads an image from a file using cv2
+
+ Args:
+ filepath: the path of the file containing the image to load
+ color_mode: {'RGB', 'BGR'} the color mode to load the image with
+
+ Returns:
+ the image as a numpy array
+ """
+ image = cv2.imread(str(filepath))
+ if color_mode == "RGB":
+ image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
+ elif not color_mode == "BGR":
+ raise ValueError(f"Unsupported `color_mode`: {color_mode}")
+
+ return image
+
+
def resize_and_random_crop(
image: np.ndarray,
targets: dict,
@@ -87,6 +118,17 @@ def get_resize_preserve_ratio(
h = max_long_side
return h, w
+
+ def scale_kpts(
+ keypoints: np.ndarray, kpt_scale: np.ndarray, kpt_offset: np.ndarray,
+ tgt_h: int, tgt_w: int
+ ) -> np.ndarray:
+ scaled_kpts = keypoints.copy()
+ scaled_kpts[..., :2] = (scaled_kpts[..., :2] / kpt_scale) - kpt_offset
+ scaled_kpts[(scaled_kpts[..., 0] >= tgt_w)] = -1
+ scaled_kpts[(scaled_kpts[..., 1] >= tgt_h)] = -1
+ scaled_kpts[(scaled_kpts[..., :2] < 0).any(axis=-1)] = -1
+ return scaled_kpts
oh, ow = image.shape[1:]
if isinstance(size, int):
@@ -126,21 +168,20 @@ def get_resize_preserve_ratio(
targets["offsets"] = ox + (offset_x * sx), oy + (offset_y * sy)
targets["scales"] = sx * scale_x, sy * scale_y
- # update annotations
+ # update annotations and context
anns = targets.get("annotations", {})
+ context = targets.get("context", {})
kpt_scale = np.array([scale_x, scale_y])
kpt_offset = np.array([offset_x, offset_y])
for kpt_key in ["keypoints", "keypoints_unique"]:
keypoints = anns.get(kpt_key)
if keypoints is not None and len(keypoints) > 0:
- scaled_kpts = keypoints.copy()
- scaled_kpts[..., :2] = (scaled_kpts[..., :2] / kpt_scale) - kpt_offset
- scaled_kpts[(scaled_kpts[..., 0] >= tgt_w)] = -1
- scaled_kpts[(scaled_kpts[..., 1] >= tgt_h)] = -1
- scaled_kpts[(scaled_kpts[..., :2] < 0).any(axis=-1)] = -1
- anns[kpt_key] = scaled_kpts
-
+ anns[kpt_key] = scale_kpts(keypoints, kpt_scale, kpt_offset, tgt_h, tgt_w)
+ cond_keypoints = context.get("cond_keypoints")
+ if cond_keypoints is not None and len(cond_keypoints) > 0:
+ context["cond_keypoints"] = scale_kpts(cond_keypoints, kpt_scale, kpt_offset, tgt_h, tgt_w)
+
bbox_scale = np.array([scale_x, scale_y, scale_x, scale_y])
bbox_offset = np.array([offset_x, offset_y, 0, 0])
for bbox_key in ["boxes"]:
@@ -171,6 +212,7 @@ def top_down_crop(
output_size: tuple[int, int],
margin: int = 0,
center_padding: bool = False,
+ crop_with_context: bool = True,
) -> tuple[np.array, tuple[int, int], tuple[float, float]]:
"""
Crops images around bounding boxes for top-down pose estimation. Computes offsets so
@@ -187,6 +229,7 @@ def top_down_crop(
output_size: the (width, height) of the output cropped image
margin: a margin to add around the bounding box before cropping
center_padding: whether to center the image in the padding if any is needed
+ crop_with_context: Whether to keep context around the bounding box when cropping
Returns:
cropped_image, (offset_x, offset_y), (scale_x, scale_y)
@@ -200,12 +243,13 @@ def top_down_crop(
w += 2 * margin
h += 2 * margin
- input_ratio = w / h
- output_ratio = out_w / out_h
- if input_ratio > output_ratio: # h/w < h0/w0 => h' = w * h0/w0
- h = w / output_ratio
- elif input_ratio < output_ratio: # w/h < w0/h0 => w' = h * w0/h0
- w = h * output_ratio
+ if crop_with_context:
+ input_ratio = w / h
+ output_ratio = out_w / out_h
+ if input_ratio > output_ratio: # h/w < h0/w0 => h' = w * h0/w0
+ h = w / output_ratio
+ elif input_ratio < output_ratio: # w/h < w0/h0 => w' = h * w0/h0
+ w = h * output_ratio
# cx,cy,w,h will now give the right ratio -> check if padding is needed
x1, y1 = int(round(cx - (w / 2))), int(round(cy - (h / 2)))
@@ -227,6 +271,19 @@ def top_down_crop(
y2 = image_h
w, h = x2 - x1, y2 - y1
+ if not crop_with_context:
+ input_ratio = w / h
+ output_ratio = out_w / out_h
+ if input_ratio > output_ratio: # h/w < h0/w0 => h' = w * h0/w0
+ w_pad = int(w - h * output_ratio) // 2
+ pad_top += w_pad
+ pad_bottom += w_pad
+
+ elif input_ratio < output_ratio: # w/h < w0/h0 => w' = h * w0/h0
+ h_pad = int(h - (w / output_ratio)) // 2
+ pad_left += h_pad
+ pad_right += h_pad
+
pad_x = pad_left + pad_right
pad_y = pad_top + pad_bottom
if center_padding:
diff --git a/deeplabcut/pose_estimation_pytorch/data/postprocessor.py b/deeplabcut/pose_estimation_pytorch/data/postprocessor.py
index 7775db41b7..f941a86b14 100644
--- a/deeplabcut/pose_estimation_pytorch/data/postprocessor.py
+++ b/deeplabcut/pose_estimation_pytorch/data/postprocessor.py
@@ -114,7 +114,8 @@ def build_bottom_up_postprocessor(
if with_identity:
components.append(
AssignIndividualIdentities(
- identity_key="identity_scores", pose_key="bodyparts",
+ identity_key="identity_scores",
+ pose_key="bodyparts",
)
)
@@ -279,6 +280,9 @@ def __call__(
) -> tuple[dict[str, np.ndarray], Context]:
for name in predictions:
output = predictions[name]
+ if isinstance(output, list):
+ output = np.array(output)
+
if (
name in self.max_individuals
and len(output) < self.max_individuals[name]
@@ -307,7 +311,7 @@ def __call__(
for name in predictions:
output = predictions[name]
if len(output) > self.max_individuals[name]:
- predictions[name] = output[:self.max_individuals[name]]
+ predictions[name] = output[: self.max_individuals[name]]
return predictions, context
@@ -381,6 +385,25 @@ def __call__(
rescaled_individuals.append(output_rescaled)
rescaled = np.stack(rescaled_individuals)
+ # rescoring: https://github.com/amathislab/BUCTD/blob/main/lib/dataset/crowdpose.py#L182-L206
+ if "cond_kpts" in context:
+ kpt_scores = rescaled[:, :, 2].copy()
+ valid_kpt_scores = kpt_scores >= 0.2
+
+ num_valid_kpts = np.sum(valid_kpt_scores, axis=1)
+ num_valid_kpts[num_valid_kpts == 0] = 1
+ kpt_scores[~valid_kpt_scores] = 0
+ kpt_score_sums = np.sum(kpt_scores, axis=1)
+ idv_scores = kpt_score_sums / num_valid_kpts
+
+ cond_kpt_scores = np.mean(
+ context["cond_kpts"][:, :, 2], axis=1
+ )
+
+ rescaled[:, :, 2] = (cond_kpt_scores * idv_scores).reshape(
+ -1, 1
+ )
+
updated_predictions[name] = rescaled
else:
updated_predictions[name] = outputs.copy()
diff --git a/deeplabcut/pose_estimation_pytorch/data/preprocessor.py b/deeplabcut/pose_estimation_pytorch/data/preprocessor.py
index 61df02b019..8322cda2d6 100644
--- a/deeplabcut/pose_estimation_pytorch/data/preprocessor.py
+++ b/deeplabcut/pose_estimation_pytorch/data/preprocessor.py
@@ -16,11 +16,14 @@
from typing import Any, TypeVar
import albumentations as A
-import cv2
import numpy as np
import torch
-from deeplabcut.pose_estimation_pytorch.data.image import top_down_crop
+from deeplabcut.pose_estimation_pytorch.data.image import (
+ load_image,
+ top_down_crop
+)
+from deeplabcut.pose_estimation_pytorch.data.utils import bbox_from_keypoints
Image = TypeVar("Image", torch.Tensor, np.ndarray, str, Path)
@@ -85,6 +88,7 @@ def build_top_down_preprocessor(
transform: A.BaseCompose,
top_down_crop_size: tuple[int, int],
top_down_crop_margin: int = 0,
+ top_down_crop_with_context: bool = True,
) -> Preprocessor:
"""Creates a preprocessor for top-down pose estimation
@@ -98,6 +102,7 @@ def build_top_down_preprocessor(
transform: the transform to apply to the image
top_down_crop_size: the (width, height) to resize cropped bboxes to
top_down_crop_margin: the margin to add around detected bboxes for the crop
+ top_down_crop_with_context: whether to keep context when applying the top-down crop
Returns:
A default top-down Preprocessor
@@ -105,13 +110,60 @@ def build_top_down_preprocessor(
return ComposePreprocessor(
components=[
LoadImage(color_mode),
- TopDownCrop(output_size=top_down_crop_size, margin=top_down_crop_margin),
+ TopDownCrop(
+ output_size=top_down_crop_size,
+ margin=top_down_crop_margin,
+ with_context=top_down_crop_with_context,
+ ),
AugmentImage(transform),
ToTensor(),
]
)
+def build_conditional_top_down_preprocessor(
+ color_mode: str,
+ transform: A.BaseCompose,
+ bbox_margin: int,
+ top_down_crop_size: tuple[int, int],
+ top_down_crop_margin: int = 0,
+ top_down_crop_with_context: bool = False,
+) -> Preprocessor:
+ """Creates a preprocessor for conditional top-down pose estimation
+
+ Creates a preprocessor that loads an image, computes bounding boxes from conditional
+ keypoints (given as a context (through a "cond_kpts" key), crops all bounding boxes,
+ runs some transforms on each cropped image (such as normalization), creates a tensor
+ from the numpy array (going from (num_ind, h, w, 3) to (num_ind, 3, h, w)).
+
+ Args:
+ color_mode: whether to load the image as an RGB or BGR
+ transform: the transform to apply to the image
+ bbox_margin: The margin to add around keypoints when generating bounding boxes
+ from conditional keypoints.
+ top_down_crop_size: the (width, height) to resize cropped bboxes to
+ top_down_crop_margin: the margin to add around detected bboxes for the crop
+ top_down_crop_with_context: whether to keep context when applying the top-down crop
+
+ Returns:
+ A default conditional top-down Preprocessor
+ """
+ return ComposePreprocessor(
+ components=[
+ LoadImage(color_mode),
+ ComputeBoundingBoxesFromCondKeypoints(bbox_margin=bbox_margin),
+ TopDownCrop(
+ output_size=top_down_crop_size,
+ margin=top_down_crop_margin,
+ with_context=top_down_crop_with_context,
+ ),
+ AugmentImage(transform),
+ ConditionalKeypointsToModelInputs(),
+ ToTensor(),
+ ]
+ )
+
+
class ComposePreprocessor(Preprocessor):
"""
Class to preprocess an image and turn it into a batch of
@@ -130,20 +182,16 @@ def __call__(self, image: Image, context: Context) -> tuple[Image, Context]:
class LoadImage(Preprocessor):
"""Loads an image from a file, if not yet loaded"""
- def __init__(self, color_mode: str = "RBG") -> None:
+ def __init__(self, color_mode: str = "RGB") -> None:
self.color_mode = color_mode
def __call__(self, image: Image, context: Context) -> tuple[np.ndarray, Context]:
if isinstance(image, (str, Path)):
- image_ = cv2.imread(str(image))
- if self.color_mode == "RGB":
- image_ = cv2.cvtColor(image_, cv2.COLOR_BGR2RGB)
- else:
- image_ = image
+ image = load_image(image, color_mode=self.color_mode)
- h, w = image_.shape[:2]
+ h, w = image.shape[:2]
context["image_size"] = w, h
- return image_, context
+ return image, context
class AugmentImage(Preprocessor):
@@ -315,14 +363,21 @@ class TopDownCrop(Preprocessor):
Args:
output_size: The (width, height) of crops to output
margin: The margin to add around detected bounding boxes before cropping
+ with_context: Whether to keep context in the top-down crop
"""
- def __init__(self, output_size: int | tuple[int, int], margin: int = 0) -> None:
+ def __init__(
+ self,
+ output_size: int | tuple[int, int],
+ margin: int = 0,
+ with_context: bool = True,
+ ) -> None:
if isinstance(output_size, int):
output_size = (output_size, output_size)
self.output_size = output_size
self.margin = margin
+ self.with_context = with_context
def __call__(
self, image: np.ndarray, context: Context
@@ -334,7 +389,11 @@ def __call__(
images, offsets, scales = [], [], []
for bbox in context["bboxes"]:
crop, offset, scale = top_down_crop(
- image, bbox, self.output_size, margin=self.margin
+ image,
+ bbox,
+ self.output_size,
+ margin=self.margin,
+ crop_with_context=self.with_context,
)
images.append(crop)
offsets.append(offset)
@@ -351,3 +410,52 @@ def __call__(
context["top_down_crop_size"] = self.output_size
return images, context
+
+
+class ComputeBoundingBoxesFromCondKeypoints(Preprocessor):
+ """Generates bounding boxes from predicted keypoints
+
+ Args:
+ cond_kpt_key: The key under which cond. keypoints are stored in the context.
+ bbox_margin: The margin to add around keypoints when generating bounding boxes.
+ """
+
+ def __init__(self, cond_kpt_key: str = "cond_kpts", bbox_margin: int = 0) -> None:
+ self.cond_kpt_key = cond_kpt_key
+ self.bbox_margin = bbox_margin
+
+ def __call__(
+ self, image: np.ndarray, context: Context
+ ) -> tuple[np.ndarray, Context]:
+ """TODO: numpy implementation"""
+ if "cond_kpts" not in context:
+ raise ValueError(
+ f"Must include cond kpts to ComputeBBoxes, found {context}"
+ )
+
+ h, w = image.shape[:2]
+ context["bboxes"] = [
+ bbox_from_keypoints(cond_kpts, h, w, self.bbox_margin)
+ for cond_kpts in context[self.cond_kpt_key]
+ ]
+ return image, context
+
+
+class ConditionalKeypointsToModelInputs(Preprocessor):
+
+ def __init__(self, cond_kpt_key: str = "cond_kpts") -> None:
+ self.cond_kpt_key = cond_kpt_key
+
+ def __call__(
+ self, image: np.ndarray, context: Context
+ ) -> tuple[np.ndarray, Context]:
+ cond_keypoints = context[self.cond_kpt_key]
+ if len(cond_keypoints) == 0:
+ return image, context
+
+ rescaled = cond_keypoints.copy()
+ rescaled[..., :2] = (
+ rescaled[..., :2] - np.array(context["offsets"])[:, None]
+ ) / np.array(context["scales"])[:, None]
+ context["model_kwargs"] = {"cond_kpts": np.expand_dims(rescaled, axis=1)}
+ return image, context
diff --git a/deeplabcut/pose_estimation_pytorch/data/snapshots.py b/deeplabcut/pose_estimation_pytorch/data/snapshots.py
new file mode 100644
index 0000000000..dce0a64d39
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/data/snapshots.py
@@ -0,0 +1,74 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+"""Code to handle storing models"""
+from __future__ import annotations
+
+import re
+import warnings
+from dataclasses import dataclass, field
+from pathlib import Path
+
+import numpy as np
+import torch
+
+
+@dataclass(frozen=True)
+class Snapshot:
+ """A snapshot for a model"""
+
+ best: bool
+ epochs: int | None
+ path: Path
+
+ def uid(self) -> str:
+ return self.path.stem.split("-")[-1]
+
+ @staticmethod
+ def from_path(path: Path) -> "Snapshot":
+ best = "-best" in path.stem
+ epochs = int(path.stem.split("-")[-1])
+ return Snapshot(best=best, epochs=epochs, path=path)
+
+
+def list_snapshots(
+ model_folder: Path,
+ snapshot_prefix: str,
+ best_in_last: bool = True,
+) -> list[Snapshot]:
+ """Lists snapshots in a model folder.
+
+ Args:
+ model_folder: The model in which the snapshots are found.
+ snapshot_prefix: The prefix for the snapshot names.
+ best_in_last: Whether to place the snapshot with the best performance in the
+ last position in the list, even if it wasn't the last epoch.
+
+ Returns:
+ The snapshots stored in a folder, sorted by the number of epochs they were
+ trained for. If ``best_in_last=True`` and a best snapshot exists, it will be
+ the last one in the list.
+ """
+ def _sort_key(snapshot: Snapshot) -> int:
+ return snapshot.epochs
+
+ def _sort_key_best_as_last(snapshot: Snapshot) -> tuple[int, int]:
+ return 1 if snapshot.best else 0, snapshot.epochs
+
+ pattern = r"^(" + snapshot_prefix + r"(-best)?-\d+\.pt)$"
+ snapshots = [
+ Snapshot.from_path(f) for f in model_folder.iterdir() if re.match(pattern, f.name)
+ ]
+
+ sort_key = _sort_key
+ if best_in_last:
+ sort_key = _sort_key_best_as_last
+ snapshots.sort(key=sort_key)
+ return snapshots
diff --git a/deeplabcut/pose_estimation_pytorch/data/utils.py b/deeplabcut/pose_estimation_pytorch/data/utils.py
index 68101913ca..17ab49986a 100644
--- a/deeplabcut/pose_estimation_pytorch/data/utils.py
+++ b/deeplabcut/pose_estimation_pytorch/data/utils.py
@@ -16,10 +16,7 @@
import albumentations as A
import numpy as np
-import torch
from PIL import Image
-from torchvision.ops import box_convert
-from torchvision.transforms import functional as F
@lru_cache(maxsize=None)
@@ -370,6 +367,34 @@ def calc_area_from_keypoints(keypoints: np.ndarray) -> np.ndarray:
return w * h
+def calc_bbox_overlap(bbox1: np.ndarray, bbox2: np.ndarray) -> np.ndarray:
+ """
+ Calculate the overlap between two bounding boxes
+
+ Args:
+ bbox1: the first bounding box in the format (x, y, w, h)
+ bbox2: the second bounding box in the format (x, y, w, h)
+
+ Returns:
+ The overlap between
+ """
+ x1, y1, w1, h1 = bbox1
+ x2, y2, w2, h2 = bbox2
+
+ x1_max = x1 + w1
+ y1_max = y1 + h1
+ x2_max = x2 + w2
+ y2_max = y2 + h2
+
+ x_overlap = max(0, min(x1_max, x2_max) - max(x1, x2))
+ y_overlap = max(0, min(y1_max, y2_max) - max(y1, y2))
+
+ intersection = x_overlap * y_overlap
+ union = w1 * h1 + w2 * h2 - intersection
+
+ return intersection / union
+
+
def _annotation_to_keypoints(annotation: dict, h: int, w: int) -> np.array:
"""
Convert the coco annotations into array of keypoints returns the array of the
diff --git a/deeplabcut/pose_estimation_pytorch/models/backbones/__init__.py b/deeplabcut/pose_estimation_pytorch/models/backbones/__init__.py
index fba0d66b2a..8879d8b244 100644
--- a/deeplabcut/pose_estimation_pytorch/models/backbones/__init__.py
+++ b/deeplabcut/pose_estimation_pytorch/models/backbones/__init__.py
@@ -15,3 +15,5 @@
from deeplabcut.pose_estimation_pytorch.models.backbones.cspnext import CSPNeXt
from deeplabcut.pose_estimation_pytorch.models.backbones.hrnet import HRNet
from deeplabcut.pose_estimation_pytorch.models.backbones.resnet import ResNet, DLCRNet
+from deeplabcut.pose_estimation_pytorch.models.backbones.hrnet_coam import HRNetCoAM
+from deeplabcut.pose_estimation_pytorch.models.backbones.cond_prenet import CondPreNet
diff --git a/deeplabcut/pose_estimation_pytorch/models/backbones/cond_prenet.py b/deeplabcut/pose_estimation_pytorch/models/backbones/cond_prenet.py
new file mode 100644
index 0000000000..f3e23731a4
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/models/backbones/cond_prenet.py
@@ -0,0 +1,120 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+import numpy as np
+import torch
+import torch.nn as nn
+
+from deeplabcut.pose_estimation_pytorch.models.backbones.base import (
+ BACKBONES,
+ BaseBackbone,
+)
+from deeplabcut.pose_estimation_pytorch.models.modules import ( # ColoredKeypointEncoder,; StackedKeypointEncoder,
+ BaseKeypointEncoder,
+ KEYPOINT_ENCODERS,
+)
+
+
+@BACKBONES.register_module
+class CondPreNet(BaseBackbone):
+ """
+ Wrapper module that adds a conditional preNet before any backbone.
+ This allows to process image and condition features and prepare them for the main backbone.
+ """
+
+ def __init__(
+ self,
+ kpt_encoder: dict | BaseKeypointEncoder,
+ backbone: dict | BaseBackbone,
+ img_size: tuple[int, int] = (256, 256),
+ **kwargs,
+ ):
+ """
+ Initialize the PreNetWrapper.
+
+ Args:
+ backbone: The backbone model to wrap.
+ img_size: The (height, width) of the input images.
+ """
+ pretrained = kwargs.pop("pretrained", False)
+ if not isinstance(backbone, BaseBackbone):
+ backbone["pretrained"] = pretrained
+ backbone = BACKBONES.build(backbone)
+
+ super().__init__(stride=backbone.stride, **kwargs)
+
+ if not isinstance(kpt_encoder, BaseKeypointEncoder):
+ if "img_size" not in kpt_encoder:
+ kpt_encoder["img_size"] = img_size
+ kpt_encoder = KEYPOINT_ENCODERS.build(kpt_encoder)
+ self.cond_enc = kpt_encoder
+
+ self.backbone = backbone
+ self.rgb_preNet = self._make_preNet(
+ num_inputs=3, num_outputs=3, input_image=True
+ )
+ self.cond_preNet = self._make_preNet(
+ num_inputs=self.cond_enc.num_channels, num_outputs=3, input_image=False
+ )
+
+ self.init_weights()
+
+ def _make_preNet(self, num_inputs, num_outputs, input_image=False):
+ if not input_image: # cond
+ preNet = nn.Sequential(
+ nn.Conv2d(
+ num_inputs, num_outputs, kernel_size=7, stride=1, padding="same"
+ ),
+ nn.BatchNorm2d(num_outputs),
+ )
+ else:
+ preNet = nn.Sequential(
+ nn.Conv2d(num_inputs, 64, kernel_size=3, stride=1, padding="same"),
+ nn.BatchNorm2d(64),
+ nn.Conv2d(64, num_outputs, kernel_size=7, stride=1, padding="same"),
+ nn.BatchNorm2d(num_outputs),
+ )
+ return preNet
+
+ def forward(self, x: torch.Tensor, cond_kpts: np.ndarray | torch.Tensor) -> torch.Tensor:
+ """Forward pass through the conditional preNet + backbone.
+
+ Args:
+ x: Input tensor of shape (batch_size, channels, height, width).
+ cond_kpts: Conditional keypoints of shape (batch_size, num_joints, 2).
+
+ Returns:
+ the feature map
+ """
+ # create conditional heatmap
+ if isinstance(cond_kpts, torch.Tensor):
+ cond_kpts = cond_kpts.detach().numpy()
+
+ cond_hm = self.cond_enc(cond_kpts.squeeze(1), x.size()[2:])
+ cond_hm = torch.from_numpy(cond_hm).float().to(x.device)
+ cond_hm = cond_hm.permute(0, 3, 1, 2) # (B, C, H, W)
+
+ x0 = self.rgb_preNet(x)
+ x1 = self.cond_preNet(cond_hm)
+ x = x0 + x1
+
+ return self.backbone(x)
+
+ def init_weights(self):
+ """Initialize PreNet weights from a Normal distribution."""
+ for prenet in [self.rgb_preNet, self.cond_preNet]:
+ for m in prenet.modules():
+ if isinstance(m, nn.Conv2d):
+ nn.init.normal_(m.weight, std=0.001)
+ if m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.BatchNorm2d):
+ nn.init.constant_(m.weight, 1)
+ nn.init.constant_(m.bias, 0)
diff --git a/deeplabcut/pose_estimation_pytorch/models/backbones/hrnet.py b/deeplabcut/pose_estimation_pytorch/models/backbones/hrnet.py
index 3180bb53e4..6af4905723 100644
--- a/deeplabcut/pose_estimation_pytorch/models/backbones/hrnet.py
+++ b/deeplabcut/pose_estimation_pytorch/models/backbones/hrnet.py
@@ -60,6 +60,22 @@ def __init__(
self.model = _load_hrnet(model_name, pretrained, increased_channel_count)
self.interpolate_branches = interpolate_branches
+ def prepare_output(self, y_list: list) -> torch.Tensor:
+ if not self.interpolate_branches:
+ return y_list[0]
+
+ x0_h, x0_w = y_list[0].size(2), y_list[0].size(3)
+ x = torch.cat(
+ [
+ y_list[0],
+ F.interpolate(y_list[1], size=(x0_h, x0_w), mode="bilinear"),
+ F.interpolate(y_list[2], size=(x0_h, x0_w), mode="bilinear"),
+ F.interpolate(y_list[3], size=(x0_h, x0_w), mode="bilinear"),
+ ],
+ 1,
+ )
+ return x
+
def forward(self, x: torch.Tensor) -> torch.Tensor:
"""Forward pass through the HRNet backbone.
@@ -77,20 +93,8 @@ def forward(self, x: torch.Tensor) -> torch.Tensor:
>>> y = backbone(x)
"""
y_list = self.model(x)
- if not self.interpolate_branches:
- return y_list[0]
- x0_h, x0_w = y_list[0].size(2), y_list[0].size(3)
- x = torch.cat(
- [
- y_list[0],
- F.interpolate(y_list[1], size=(x0_h, x0_w), mode="bilinear"),
- F.interpolate(y_list[2], size=(x0_h, x0_w), mode="bilinear"),
- F.interpolate(y_list[3], size=(x0_h, x0_w), mode="bilinear"),
- ],
- 1,
- )
- return x
+ return self.prepare_output(y_list)
def _load_hrnet(
diff --git a/deeplabcut/pose_estimation_pytorch/models/backbones/hrnet_coam.py b/deeplabcut/pose_estimation_pytorch/models/backbones/hrnet_coam.py
new file mode 100644
index 0000000000..a52a58001e
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/models/backbones/hrnet_coam.py
@@ -0,0 +1,203 @@
+# ------------------------------------------------------------------------------
+# Copyright (c) Microsoft
+# Licensed under the MIT License.
+# Written by Bin Xiao (Bin.Xiao@microsoft.com)
+# Modified to Conditional Top Down by Mu Zhou, Lucas Stoffl et al. (ICCV 2023)
+# ------------------------------------------------------------------------------
+
+from __future__ import annotations
+
+import numpy as np
+import torch
+import torch.nn as nn
+
+from deeplabcut.pose_estimation_pytorch.models.backbones.base import BACKBONES
+from deeplabcut.pose_estimation_pytorch.models.backbones.hrnet import HRNet
+from deeplabcut.pose_estimation_pytorch.models.modules import ( # ColoredKeypointEncoder,; StackedKeypointEncoder,
+ BaseKeypointEncoder,
+ CoAMBlock,
+ KEYPOINT_ENCODERS,
+ SelfAttentionModule_CoAM,
+)
+
+
+@BACKBONES.register_module
+class HRNetCoAM(HRNet):
+ """HRNet backbone with Conditional Attention Module (CoAM).
+
+ This version returns high-resolution feature maps of size 1/4 * original_image_size.
+
+ Attributes:
+ model: the HRNet model
+ coam_stages: CoAM blocks for each stage
+ """
+
+ def __init__(
+ self,
+ kpt_encoder: dict | BaseKeypointEncoder,
+ base_model_name: str = "hrnet_w32",
+ pretrained: bool = True,
+ coam_modules: tuple[int, ...] = (2,),
+ selfatt_coam_modules: tuple[int, ...] | None = None,
+ channel_att_only: bool = False,
+ att_heads: int = 1,
+ img_size: tuple[int, int] = (256, 256),
+ **kwargs,
+ ) -> None:
+ """Constructs an ImageNet pretrained HRNet from timm and creates CoAM blocks.
+
+ Args:
+ base_model_name: Type of HRNet (e.g., 'hrnet_w32', 'hrnet_w48').
+ pretrained: If True, loads the model with ImageNet pretrained weights.
+ coam_modules: List of stages to apply CoAM.
+ selfatt_coam_modules: List of stages to apply Self-Attention-CoAM.
+ channel_att_only: Whether to use only channel attention block in CoAM.
+ att_heads: Number of attention heads.
+ cond_enc: Type of conditional encoding ('stacked', 'colored', or greyscale).
+ img_size: The (height, width) size of the input images.
+ num_joints: Number of joints in the dataset.
+ """
+
+ super().__init__(model_name=base_model_name, pretrained=pretrained, **kwargs)
+
+ self.coam_modules = coam_modules
+ self.selfatt_coam_modules = selfatt_coam_modules
+ self.channel_att_only = channel_att_only
+ if not isinstance(kpt_encoder, BaseKeypointEncoder):
+ if "img_size" not in kpt_encoder:
+ kpt_encoder["img_size"] = img_size
+ kpt_encoder = KEYPOINT_ENCODERS.build(kpt_encoder)
+
+ self.cond_enc = kpt_encoder
+
+ self.coam_stages = nn.ModuleList([None, None, None, None])
+ self.selfatt_coam_stages = nn.ModuleList([None, None, None, None])
+
+ spat_dims = [
+ (int(img_size[0] / 4), int(img_size[1] / 4)),
+ (int(img_size[0] / 8), int(img_size[1] / 8)),
+ (int(img_size[0] / 16), int(img_size[1] / 16)),
+ (int(img_size[0] / 32), int(img_size[1] / 32)),
+ ]
+
+ assert not (
+ set(coam_modules) & set(selfatt_coam_modules)
+ if selfatt_coam_modules
+ else set()
+ ), "CoAM and Self-Attention-CoAM cannot be used at the same time"
+
+ all_output_channels = [
+ self.model.stage2_cfg["num_channels"],
+ self.model.stage3_cfg["num_channels"],
+ self.model.stage4_cfg["num_channels"],
+ ]
+
+ for coam_pos in self.coam_modules:
+ if coam_pos == 4:
+ spat_dims_ = [spat_dims[0]]
+ channels = [all_output_channels[-1][0]]
+ else:
+ spat_dims_ = spat_dims[: coam_pos + 1]
+ channels = all_output_channels[coam_pos - 1]
+
+ self.coam_stages[coam_pos - 1] = CoAMBlock(
+ spat_dims=spat_dims_,
+ channel_list=channels,
+ cond_enc=self.cond_enc,
+ n_heads=att_heads,
+ channel_only=self.channel_att_only,
+ )
+
+ if self.selfatt_coam_modules:
+ for selfatt_coam_pos in self.selfatt_coam_modules:
+ if selfatt_coam_pos == 4:
+ spat_dims_ = [spat_dims[0]]
+ channels = [all_output_channels[-1][0]]
+ else:
+ spat_dims_ = spat_dims[: selfatt_coam_pos + 1]
+ channels = all_output_channels[coam_pos - 1]
+ self.selfatt_coam_stages[selfatt_coam_pos - 1] = (
+ SelfAttentionModule_CoAM(
+ spat_dims=spat_dims_, channel_list=channels
+ )
+ )
+
+ def stages(self, x, cond_hm) -> list[torch.Tensor]:
+ x = self.model.layer1(x)
+
+ xl = [t(x) for i, t in enumerate(self.model.transition1)]
+
+ if self.coam_stages[0]:
+ xl = self.coam_stages[0](xl, cond_hm)
+ elif self.selfatt_coam_stages[0]:
+ xl = self.selfatt_coam_stages[0](xl)
+
+ yl = self.model.stage2(xl)
+
+ xl = [
+ t(yl[-1]) if not isinstance(t, nn.Identity) else yl[i]
+ for i, t in enumerate(self.model.transition2)
+ ]
+
+ if self.coam_stages[1]:
+ xl = self.coam_stages[1](xl, cond_hm)
+ elif self.selfatt_coam_stages[1]:
+ xl = self.selfatt_coam_stages[1](xl)
+
+ yl = self.model.stage3(xl)
+
+ xl = [
+ t(yl[-1]) if not isinstance(t, nn.Identity) else yl[i]
+ for i, t in enumerate(self.model.transition3)
+ ]
+
+ if self.coam_stages[2]:
+ xl = self.coam_stages[2](xl, cond_hm)
+ elif self.selfatt_coam_stages[2]:
+ xl = self.selfatt_coam_stages[2](xl)
+
+ yl = self.model.stage4(xl)
+
+ if self.coam_stages[3]:
+ yl = self.coam_stages[3](yl, cond_hm)
+ elif self.selfatt_coam_stages[3]:
+ yl = self.selfatt_coam_stages[3](yl)
+
+ return yl
+
+ def forward(self, x: torch.Tensor, cond_kpts: np.ndarray):
+ """Forward pass through the HRNetCoAM backbone.
+
+ Args:
+ x: Input tensor of shape (batch_size, channels, height, width).
+ cond_kpts: Conditional keypoints of shape (batch_size, num_joints, 2).
+
+ Returns:
+ the feature map
+ """
+
+ # create conditional heatmap
+ if isinstance(cond_kpts, torch.Tensor):
+ cond_kpts = cond_kpts.detach().numpy()
+ cond_hm = self.cond_enc(cond_kpts.squeeze(1), x.size()[2:])
+ cond_hm = torch.from_numpy(cond_hm).float().to(x.device)
+ cond_hm = cond_hm.permute(0, 3, 1, 2) # (B, C, H, W)
+
+ # Stem
+ x = self.model.conv1(x)
+ x = self.model.bn1(x)
+ x = self.model.act1(x)
+ x = self.model.conv2(x)
+ x = self.model.bn2(x)
+ x = self.model.act2(x)
+
+ # Stages
+ y = self.stages(x, cond_hm)
+
+ if self.model.incre_modules is not None:
+ raise NotImplementedError(
+ "Incremental HRNet modules not supported for HRNetCoAM"
+ )
+ x = [incre(f) for f, incre in zip(x, self.model.incre_modules)]
+
+ return self.prepare_output(y)
diff --git a/deeplabcut/pose_estimation_pytorch/models/model.py b/deeplabcut/pose_estimation_pytorch/models/model.py
index 64d7f6c5cf..4701f7efec 100644
--- a/deeplabcut/pose_estimation_pytorch/models/model.py
+++ b/deeplabcut/pose_estimation_pytorch/models/model.py
@@ -63,7 +63,7 @@ def __init__(
for name, head in heads.items()
}
- def forward(self, x: torch.Tensor) -> dict[str, dict[str, torch.Tensor]]:
+ def forward(self, x: torch.Tensor, **backbone_kwargs) -> dict[str, dict[str, torch.Tensor]]:
"""
Forward pass of the PoseModel.
@@ -75,7 +75,7 @@ def forward(self, x: torch.Tensor) -> dict[str, dict[str, torch.Tensor]]:
"""
if x.dim() == 3:
x = x[None, :]
- features = self.backbone(x)
+ features = self.backbone(x, **backbone_kwargs)
if self.neck:
features = self.neck(features)
diff --git a/deeplabcut/pose_estimation_pytorch/models/modules/__init__.py b/deeplabcut/pose_estimation_pytorch/models/modules/__init__.py
index be8cb6fead..d8d306b504 100644
--- a/deeplabcut/pose_estimation_pytorch/models/modules/__init__.py
+++ b/deeplabcut/pose_estimation_pytorch/models/modules/__init__.py
@@ -16,6 +16,16 @@
from deeplabcut.pose_estimation_pytorch.models.modules.conv_module import (
HighResolutionModule,
)
+from deeplabcut.pose_estimation_pytorch.models.modules.coam_module import (
+ CoAMBlock,
+ SelfAttentionModule_CoAM
+)
+from deeplabcut.pose_estimation_pytorch.models.modules.kpt_encoders import (
+ BaseKeypointEncoder,
+ ColoredKeypointEncoder,
+ StackedKeypointEncoder,
+ KEYPOINT_ENCODERS
+)
from deeplabcut.pose_estimation_pytorch.models.modules.gated_attention_unit import (
GatedAttentionUnit,
)
diff --git a/deeplabcut/pose_estimation_pytorch/models/modules/coam_module.py b/deeplabcut/pose_estimation_pytorch/models/modules/coam_module.py
new file mode 100644
index 0000000000..45fd5fc68d
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/models/modules/coam_module.py
@@ -0,0 +1,397 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+import numpy as np
+
+import torch
+import torch.nn as nn
+from torch.nn import init
+import torchvision.transforms.functional as TF
+
+
+class CoAMBlock(nn.Module):
+ """
+ Conditional Attention Module (CoAM) block.
+ """
+
+ def __init__(
+ self, spat_dims, channel_list, cond_enc, n_heads=1, channel_only=False
+ ):
+ super(CoAMBlock, self).__init__()
+ self.att_layers = []
+ self.spat_dims = spat_dims
+ self.cond_enc = cond_enc
+ d_cond = cond_enc.num_channels
+ for i in range(len(spat_dims)):
+ att_layer = DAModule(
+ d_model=channel_list[i],
+ d_cond=d_cond,
+ kernel_size=3,
+ H=spat_dims[i][1],
+ W=spat_dims[i][0],
+ n_heads=n_heads,
+ channel_only=channel_only,
+ )
+ self.att_layers.append(att_layer)
+ self.att_layers = nn.ModuleList(self.att_layers)
+
+ def forward(self, y_list, cond_hm):
+ # if not isinstance(self.cond_enc, (StackedKeypointEncoder, ColoredKeypointEncoder)):
+ # cond_hm = cond_hm[:,0].unsqueeze(1) # we only want one channel of the heatmap
+ y_list_att = []
+ for i in range(len(y_list)):
+ y_att = self.att_layers[i](
+ y_list[i],
+ TF.resize(cond_hm, (self.spat_dims[i][1], self.spat_dims[i][0])),
+ )
+ y_list_att.append(y_att)
+ return y_list_att
+
+
+# modified from https://github.com/xmu-xiaoma666/External-Attention-pytorch/blob/master/model/attention/DANet.py
+class PositionAttentionModule(nn.Module):
+ def __init__(
+ self, d_model=512, d_cond=3, kernel_size=3, H=7, W=7, n_heads=1, self_att=False
+ ):
+ super().__init__()
+ self.cnn = nn.Conv2d(
+ d_model, d_model, kernel_size=kernel_size, padding=(kernel_size - 1) // 2
+ )
+ self.pa = ScaledDotProductAttention(
+ in_dim_q=d_model, in_dim_k=d_model, d_k=d_model, d_v=d_model, h=n_heads
+ )
+ self.self_att = self_att
+ if not self_att:
+ self.cnn_cond = nn.Conv2d(
+ d_cond, d_cond, kernel_size=kernel_size, padding=(kernel_size - 1) // 2
+ )
+ self.pa = ScaledDotProductAttention(
+ in_dim_q=d_cond, in_dim_k=d_model, d_k=d_model, d_v=d_model, h=n_heads
+ )
+
+ def forward(self, x, cond=None):
+ bs, c, h, w = x.shape
+ y = self.cnn(x)
+ y = y.view(bs, c, -1).permute(0, 2, 1) # bs,h*w,c
+
+ if not self.self_att:
+ _, c_cond, _, _ = cond.shape
+ y_cond = self.cnn_cond(cond)
+ y_cond = y_cond.view(bs, c_cond, -1).permute(0, 2, 1)
+ y = self.pa(y_cond, y, y) # bs,h*w,c
+
+ else:
+ y = self.pa(y, y, y)
+
+ return y
+
+
+class ChannelAttentionModule(nn.Module):
+ def __init__(
+ self, d_model=512, d_cond=3, kernel_size=3, H=7, W=7, n_heads=1, self_att=False
+ ):
+ super().__init__()
+ self.cnn = nn.Conv2d(
+ d_model, d_model, kernel_size=kernel_size, padding=(kernel_size - 1) // 2
+ )
+ self.self_att = self_att
+ if not self_att:
+ self.cnn_cond = nn.Conv2d(
+ d_cond, d_model, kernel_size=kernel_size, padding=(kernel_size - 1) // 2
+ )
+ self.pa = SimplifiedScaledDotProductAttention(H * W, h=n_heads)
+
+ def forward(self, x, cond=None):
+ bs, c, h, w = x.shape
+ y = self.cnn(x)
+ y = y.view(bs, c, -1) # bs,c,h*w
+
+ if not self.self_att:
+ y_cond = self.cnn_cond(cond)
+ y_cond = y_cond.view(bs, c, -1)
+ y = self.pa(y_cond, y, y) # bs,c_cond,h*w
+ else:
+ y = self.pa(y, y, y) # bs,c,h*w
+
+ return y
+
+
+class DAModule(nn.Module):
+ def __init__(
+ self,
+ d_model=512,
+ d_cond=3,
+ kernel_size=3,
+ H=7,
+ W=7,
+ n_heads=1,
+ channel_only=False,
+ ):
+ super().__init__()
+ self.channel_only = channel_only
+ if not channel_only:
+ self.position_attention_module = PositionAttentionModule(
+ d_model=d_model,
+ d_cond=d_cond,
+ kernel_size=kernel_size,
+ H=H,
+ W=W,
+ n_heads=n_heads,
+ )
+ self.channel_attention_module = ChannelAttentionModule(
+ d_model=d_model,
+ d_cond=d_cond,
+ kernel_size=kernel_size,
+ H=H,
+ W=W,
+ n_heads=n_heads,
+ )
+
+ def forward(self, input, cond):
+
+ bs, c, h, w = input.shape
+
+ c_out = self.channel_attention_module(input, cond)
+ c_out = c_out.view(bs, c, h, w)
+
+ if self.channel_only:
+ return input * c_out
+
+ p_out = self.position_attention_module(input, cond)
+ p_out = p_out.permute(0, 2, 1).view(bs, c, h, w)
+
+ return input + (p_out + c_out)
+
+
+class SelfDAModule(nn.Module):
+ def __init__(self, d_model=512, kernel_size=3, H=7, W=7):
+ super().__init__()
+ self.position_attention_module = PositionAttentionModule(
+ d_model=d_model,
+ d_cond=None,
+ kernel_size=kernel_size,
+ H=H,
+ W=W,
+ self_att=True,
+ )
+ self.channel_attention_module = ChannelAttentionModule(
+ d_model=d_model,
+ d_cond=None,
+ kernel_size=kernel_size,
+ H=H,
+ W=W,
+ self_att=True,
+ )
+
+ def forward(self, input):
+
+ bs, c, h, w = input.shape
+
+ p_out = self.position_attention_module(input)
+ c_out = self.channel_attention_module(input)
+
+ p_out = p_out.permute(0, 2, 1).view(bs, c, h, w)
+ c_out = c_out.view(bs, c, h, w)
+
+ return p_out + c_out
+
+
+class SelfAttentionModule_CoAM(nn.Module):
+ def __init__(self, spat_dims, channel_list):
+ super(SelfAttentionModule_CoAM, self).__init__()
+ self.att_layers = []
+ for i in range(len(spat_dims)):
+ att_layer = SelfDAModule(
+ d_model=channel_list[i],
+ kernel_size=3,
+ H=spat_dims[i][0],
+ W=spat_dims[i][1],
+ )
+ self.att_layers.append(att_layer)
+ self.att_layers = nn.ModuleList(self.att_layers)
+
+ def forward(self, y_list, *args):
+ y_list_att = []
+ for i in range(len(y_list)):
+ y_att = self.att_layers[i](y_list[i])
+ y_list_att.append(y_att)
+ return y_list_att
+
+
+# taken from: https://github.com/xmu-xiaoma666/External-Attention-pytorch/blob/master/model/attention/SelfAttention.py
+class ScaledDotProductAttention(nn.Module):
+ """
+ Scaled dot-product attention
+ """
+
+ def __init__(self, in_dim_q, in_dim_k, d_k, d_v, h, dropout=0.1, rev=False):
+ """
+ :param d_model: Output dimensionality of the model
+ :param d_k: Dimensionality of queries and keys
+ :param d_v: Dimensionality of values
+ :param h: Number of heads
+ """
+ super(ScaledDotProductAttention, self).__init__()
+
+ # 'rev': condition is key/value and orig. feature map is query
+ if rev:
+ d_model = in_dim_q
+ else:
+ d_model = in_dim_k
+ self.fc_q = nn.Linear(in_dim_q, h * d_k)
+ self.fc_k = nn.Linear(in_dim_k, h * d_k)
+ self.fc_v = nn.Linear(in_dim_k, h * d_v)
+ self.fc_o = nn.Linear(h * d_v, d_model)
+ self.dropout = nn.Dropout(dropout)
+
+ self.d_model = d_model
+ self.d_k = d_k
+ self.d_v = d_v
+ self.h = h
+
+ self.init_weights()
+
+ def init_weights(self):
+ for m in self.modules():
+ if isinstance(m, nn.Conv2d):
+ init.kaiming_normal_(m.weight, mode="fan_out")
+ if m.bias is not None:
+ init.constant_(m.bias, 0)
+ elif isinstance(m, nn.BatchNorm2d):
+ init.constant_(m.weight, 1)
+ init.constant_(m.bias, 0)
+ elif isinstance(m, nn.Linear):
+ init.normal_(m.weight, std=0.001)
+ if m.bias is not None:
+ init.constant_(m.bias, 0)
+
+ def forward(
+ self, queries, keys, values, attention_mask=None, attention_weights=None
+ ):
+ """
+ Computes
+ :param queries: Queries (b_s, nq, d_model)
+ :param keys: Keys (b_s, nk, d_model)
+ :param values: Values (b_s, nk, d_model)
+ :param attention_mask: Mask over attention values (b_s, h, nq, nk). True indicates masking.
+ :param attention_weights: Multiplicative weights for attention values (b_s, h, nq, nk).
+ :return:
+ """
+ b_s, nq = queries.shape[:2]
+ nk = keys.shape[1]
+
+ q = (
+ self.fc_q(queries).view(b_s, nq, self.h, self.d_k).permute(0, 2, 1, 3)
+ ) # (b_s, h, nq, d_k)
+ k = (
+ self.fc_k(keys).view(b_s, nk, self.h, self.d_k).permute(0, 2, 3, 1)
+ ) # (b_s, h, d_k, nk)
+ v = (
+ self.fc_v(values).view(b_s, nk, self.h, self.d_v).permute(0, 2, 1, 3)
+ ) # (b_s, h, nk, d_v)
+
+ att = torch.matmul(q, k) / np.sqrt(self.d_k) # (b_s, h, nq, nk)
+ if attention_weights is not None:
+ att = att * attention_weights
+ if attention_mask is not None:
+ att = att.masked_fill(attention_mask, -np.inf)
+ att = torch.softmax(att, -1)
+ att = self.dropout(att)
+
+ out = (
+ torch.matmul(att, v)
+ .permute(0, 2, 1, 3)
+ .contiguous()
+ .view(b_s, nq, self.h * self.d_v)
+ ) # (b_s, nq, h*d_v)
+ out = self.fc_o(out) # (b_s, nq, d_model)
+ return out
+
+
+# taken from: https://github.com/xmu-xiaoma666/External-Attention-pytorch/blob/master/model/attention/SimplifiedSelfAttention.py
+class SimplifiedScaledDotProductAttention(nn.Module):
+ """
+ Scaled dot-product attention
+ """
+
+ def __init__(self, d_model, h, dropout=0.1):
+ """
+ :param d_model: Output dimensionality of the model
+ :param d_k: Dimensionality of queries and keys
+ :param d_v: Dimensionality of values
+ :param h: Number of heads
+ """
+ super(SimplifiedScaledDotProductAttention, self).__init__()
+
+ self.d_model = d_model
+ self.d_k = d_model // h
+ self.d_v = d_model // h
+ self.h = h
+
+ self.fc_o = nn.Linear(h * self.d_v, d_model)
+ self.dropout = nn.Dropout(dropout)
+
+ self.init_weights()
+
+ def init_weights(self):
+ for m in self.modules():
+ if isinstance(m, nn.Conv2d):
+ init.kaiming_normal_(m.weight, mode="fan_out")
+ if m.bias is not None:
+ init.constant_(m.bias, 0)
+ elif isinstance(m, nn.BatchNorm2d):
+ init.constant_(m.weight, 1)
+ init.constant_(m.bias, 0)
+ elif isinstance(m, nn.Linear):
+ init.normal_(m.weight, std=0.001)
+ if m.bias is not None:
+ init.constant_(m.bias, 0)
+
+ def forward(
+ self, queries, keys, values, attention_mask=None, attention_weights=None
+ ):
+ """
+ Computes
+ :param queries: Queries (b_s, nq, d_model)
+ :param keys: Keys (b_s, nk, d_model)
+ :param values: Values (b_s, nk, d_model)
+ :param attention_mask: Mask over attention values (b_s, h, nq, nk). True indicates masking.
+ :param attention_weights: Multiplicative weights for attention values (b_s, h, nq, nk).
+ :return:
+ """
+ b_s, nq = queries.shape[:2]
+ nk = keys.shape[1]
+
+ q = queries.view(b_s, nq, self.h, self.d_k).permute(
+ 0, 2, 1, 3
+ ) # (b_s, h, nq, d_k)
+ k = keys.view(b_s, nk, self.h, self.d_k).permute(
+ 0, 2, 3, 1
+ ) # (b_s, h, d_k, nk)
+ v = values.view(b_s, nk, self.h, self.d_v).permute(
+ 0, 2, 1, 3
+ ) # (b_s, h, nk, d_v)
+
+ att = torch.matmul(q, k) / np.sqrt(self.d_k) # (b_s, h, nq, nk)
+ if attention_weights is not None:
+ att = att * attention_weights
+ if attention_mask is not None:
+ att = att.masked_fill(attention_mask, -np.inf)
+ att = torch.softmax(att, -1)
+ att = self.dropout(att)
+
+ out = (
+ torch.matmul(att, v)
+ .permute(0, 2, 1, 3)
+ .contiguous()
+ .view(b_s, nq, self.h * self.d_v)
+ ) # (b_s, nq, h*d_v)
+ out = self.fc_o(out) # (b_s, nq, d_model)
+ return out
diff --git a/deeplabcut/pose_estimation_pytorch/models/modules/kpt_encoders.py b/deeplabcut/pose_estimation_pytorch/models/modules/kpt_encoders.py
new file mode 100644
index 0000000000..6fe530e488
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/models/modules/kpt_encoders.py
@@ -0,0 +1,257 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+from __future__ import annotations
+
+from abc import ABC, abstractmethod
+
+import cv2
+import numpy as np
+import torch
+import torchvision.transforms.functional as TF
+import matplotlib.pyplot as plt
+
+from deeplabcut.pose_estimation_pytorch.registry import Registry, build_from_cfg
+from deeplabcut.pose_estimation_pytorch.data.utils import out_of_bounds_keypoints
+
+
+KEYPOINT_ENCODERS = Registry("kpt_encoders", build_func=build_from_cfg)
+
+
+class BaseKeypointEncoder(ABC):
+ """Encodes keypoints into heatmaps
+
+ Modified from BUCTD/data/JointsDataset
+ """
+
+ def __init__(
+ self,
+ num_joints: int,
+ kernel_size: tuple[int, int] = (15, 15),
+ img_size: tuple[int, int] = (256, 256),
+ ) -> None:
+ """
+ Args:
+ num_joints: The number of joints to encode
+ kernel_size: The Gaussian kernel size to use when blurring a heatmap
+ img_size: The (height, width) of the input images
+ """
+ self.kernel_size = kernel_size
+ self.num_joints = num_joints
+ self.img_size = img_size
+
+ @property
+ def num_channels(self):
+ pass
+
+ @abstractmethod
+ def __call__(self, keypoints: np.ndarray, size: tuple[int, int]) -> np.ndarray:
+ """
+ Args:
+ keypoints: the keypoints to encode
+ size: the (height, width) of the heatmap in which the keypoints should
+ be encoded
+
+ Returns:
+ the encoded keypoints
+ """
+ raise NotImplementedError
+
+ def blur_heatmap(self, heatmap: np.ndarray) -> np.ndarray:
+ """Applies a Gaussian blur to a heatmap
+
+ Taken from BUCTD/data/JointsDataset, generate_heatmap
+
+ Args:
+ heatmap: the heatmap to blur (with values in [0, 1] or [0, 255])
+
+ Returns:
+ The heatmap with a Gaussian blur, such that max(heatmap) = 255
+ """
+ heatmap = cv2.GaussianBlur(heatmap, self.kernel_size, sigmaX=0)
+ am = np.amax(heatmap)
+ if am == 0:
+ return heatmap
+ heatmap /= am / 255
+ return heatmap
+
+ # def blur_heatmap_batch(self, heatmaps: torch.tensor) -> np.ndarray:
+ # heatmaps = TF.gaussian_blur(heatmaps.permute(0,3,1,2), self.kernel_size).permute(0,2,3,1).numpy()
+ # am = np.amax(heatmaps)
+ # if am == 0:
+ # return heatmaps
+ # heatmaps /= (am / 255)
+ # return heatmaps
+
+
+@KEYPOINT_ENCODERS.register_module
+class StackedKeypointEncoder(BaseKeypointEncoder):
+ """Encodes keypoints into heatmaps, where each
+
+ Modified from BUCTD/data/JointsDataset, get_stacked_condition
+ """
+
+ def __init__(self, **kwargs) -> None:
+ super().__init__(**kwargs)
+
+ @property
+ def num_channels(self):
+ return self.num_joints
+
+ def __call__(self, keypoints: np.ndarray, size: tuple[int, int]) -> np.ndarray:
+ """
+ Args:
+ keypoints: the keypoints to encode
+ size: the (height, width) of the heatmap in which the keypoints should
+ be encoded
+
+ Returns:
+ the encoded keypoints
+ """
+
+ batch_size, _, _ = keypoints.shape
+
+ kpts = keypoints.copy()
+ kpts[keypoints[..., 2] <= 0] = 0
+
+ # Mark keypoints as visible, remove NaNs
+ kpts[kpts[..., 2] > 0, 2] = 2
+ kpts = np.nan_to_num(kpts)
+
+ oob_mask = out_of_bounds_keypoints(kpts, self.img_size)
+ if np.sum(oob_mask) > 0:
+ kpts[oob_mask] = 0
+ kpts = kpts.astype(int)
+
+ zero_matrix = np.zeros((batch_size, size[0], size[1], self.num_channels))
+
+ def _get_condition_matrix(zero_matrix, kpts):
+ for i, pose in enumerate(kpts):
+ x, y, vis = pose.T
+ mask = vis > 0
+ x_masked, y_masked, joint_inds_masked = (
+ x[mask],
+ y[mask],
+ np.arange(self.num_joints)[mask],
+ )
+ zero_matrix[i, y_masked - 1, x_masked - 1, joint_inds_masked] = 255
+ return zero_matrix
+
+ condition = _get_condition_matrix(zero_matrix, kpts)
+
+ for i in range(batch_size):
+ condition_heatmap = self.blur_heatmap(condition[i])
+ condition[i] = condition_heatmap
+
+ return condition
+
+
+@KEYPOINT_ENCODERS.register_module
+class ColoredKeypointEncoder(BaseKeypointEncoder):
+ """Encodes keypoints into a given number of color channels
+
+ Modified from BUCTD/data/JointsDataset, get_condition_image_colored
+ """
+
+ def __init__(
+ self, colors: list[tuple[int, int, int]] | None = None, **kwargs
+ ) -> None:
+ """
+ Args:
+ colors: the color to use for each keypoint
+ """
+ super().__init__(**kwargs)
+ if colors is None:
+ colors = self.get_colors_from_cmap("rainbow", self.num_joints)
+ self.colors = np.array(colors)
+
+ @property
+ def num_channels(self):
+ return 3
+
+ def __call__(self, keypoints: np.ndarray, size: tuple[int, int]) -> np.ndarray:
+ """
+ Args:
+ keypoints: batch of keypoints to encode with shape (batch_size, num_joints, 2)
+ size: the (height, width) of the heatmap in which the keypoints should be encoded
+
+ Returns:
+ encoded keypoints with shape (batch_size, num_joints, height, width, 3)
+ """
+
+ batch_size, num_kpts, _ = keypoints.shape
+
+ if not num_kpts == len(self.colors):
+ raise ValueError(
+ f"Cannot encode the keypoints. Initialized with {len(self.colors)} "
+ f"colors, but there are {num_kpts} to encode"
+ )
+
+ # kpts = keypoints.detach().numpy()
+ kpts = keypoints.copy()
+ kpts[keypoints[..., 2] <= 0] = 0
+
+ # Mark keypoints as visible, remove NaNs
+ kpts[kpts[..., 2] > 0, 2] = 2
+ kpts = np.nan_to_num(kpts)
+
+ oob_mask = out_of_bounds_keypoints(kpts, self.img_size)
+ if np.sum(oob_mask) > 0:
+ kpts[oob_mask] = 0
+ kpts = kpts.astype(int)
+
+ zero_matrix = np.zeros((batch_size, size[0], size[1], self.num_channels))
+
+ def _get_condition_matrix(zero_matrix, kpts):
+ for i, pose in enumerate(kpts):
+ x, y, vis = pose.T
+ mask = vis > 0
+ x_masked, y_masked, colors_masked = x[mask], y[mask], self.colors[mask]
+ zero_matrix[i, y_masked - 1, x_masked - 1] = colors_masked
+ return zero_matrix
+
+ def _get_condition_matrix_optim(zero_matrix, kpts):
+ x, y = np.array(kpts).T
+ mask = (
+ (0 < x)
+ & (x < zero_matrix.shape[2])
+ & (0 < y)
+ & (y < zero_matrix.shape[1])
+ )
+ colors_masked = np.repeat(
+ self.colors[:, None, :], len(zero_matrix), 1
+ ) * np.repeat(mask[:, :, None], 3, 2)
+ kpt_indices = np.stack([x.T, y.T]).transpose(1, 2, 0)
+ batch_indices = np.repeat(
+ np.arange(len(zero_matrix))[:, None, None], self.num_joints, axis=1
+ )
+ kpt_input = np.concatenate([batch_indices, kpt_indices], dtype=int, axis=2)
+ zero_matrix[
+ kpt_input[..., 0], kpt_input[..., 2] - 1, kpt_input[..., 1] - 1
+ ] = colors_masked.transpose(1, 0, 2)
+ return zero_matrix
+
+ condition = _get_condition_matrix(zero_matrix, kpts)
+ # condition = _get_condition_matrix_optim(zero_matrix, kpts)
+
+ for i in range(batch_size):
+ condition_heatmap = self.blur_heatmap(condition[i])
+ condition[i] = condition_heatmap
+ # condition = self.blur_heatmap_batch(torch.from_numpy(condition))
+
+ return condition
+
+ def get_colors_from_cmap(self, cmap_name, num_colors):
+ cmap = plt.get_cmap(cmap_name)
+ colors_float = [cmap(i) for i in np.linspace(0, 256, num_colors, dtype=int)]
+ colors = [
+ (int(r * 255), int(g * 255), int(b * 255)) for r, g, b, _ in colors_float
+ ]
+ return colors
diff --git a/deeplabcut/pose_estimation_pytorch/post_processing/nms.py b/deeplabcut/pose_estimation_pytorch/post_processing/nms.py
new file mode 100644
index 0000000000..05e1dce2cb
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/post_processing/nms.py
@@ -0,0 +1,92 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+"""Methods for non-maximum suppression of detected poses."""
+import numpy as np
+
+from deeplabcut.core.inferenceutils import calc_object_keypoint_similarity
+
+
+def nms_oks(
+ predictions: np.ndarray,
+ oks_threshold: float,
+ oks_sigmas: float | np.ndarray = 0.1,
+ oks_margin: float = 1.0,
+ score_threshold: float | None = None,
+ order: np.ndarray | None = None,
+) -> np.ndarray:
+ """Implementation of NMS using OKS.
+
+ Args:
+ predictions: The predicted poses, of shape (num_predictions, num_keypoints, 3).
+ oks_threshold: The threshold for NMS. Keeps predictions for which the OKS score
+ is below this threshold.
+ oks_sigmas: The sigmas to use to compute OKS scores.
+ oks_margin: The margin to add around keypoints when computing area.
+ score_threshold: If not None, computes NMS using only keypoints for which the
+ score is above this threshold.
+ order: If predictions should be sorted by another means than score, the order
+ to use in NMS.
+
+ Returns:
+ An array of length num_predictions indicating which keypoints should be kept.
+ """
+ if len(predictions) == 0:
+ return np.zeros(0, dtype=bool)
+ elif len(predictions) == 1:
+ return np.ones(1, dtype=bool)
+
+ predictions = predictions.copy()
+
+ # mask keypoints with score below the threshold
+ if score_threshold is None:
+ score_threshold = 0.0
+ predictions[predictions[:, :, 2] < score_threshold] = np.nan
+
+ # get visibility masks for the keypoints and individuals
+ kpt_vis = np.all(~np.isnan(predictions), axis=-1)
+ idv_vis = np.sum(kpt_vis, axis=-1) > 1 # need at least 2 keypoints to compute OKS
+
+ # if no keypoints match the visibility criteria, mask all
+ if np.sum(idv_vis) == 0:
+ return np.zeros(len(predictions), dtype=bool)
+
+ # mask keypoints that aren't visible
+ predictions[~kpt_vis] = np.nan
+
+ if order is None:
+ # compute scores for each individual
+ scores = np.zeros(len(predictions))
+ scores[idv_vis] = np.nanmean(predictions[idv_vis, :, 2], axis=-1)
+
+ # only compute OKS for non-zero score poses
+ order = scores.argsort()[::-1]
+ order = order[scores[order] > 0]
+
+ # NMS suppression
+ keep = np.zeros(len(predictions), dtype=bool)
+ while len(order) > 0:
+ i = order[0]
+ order = order[1:]
+ keep[i] = True
+
+ oks_scores = [
+ calc_object_keypoint_similarity(
+ predictions[i],
+ predictions[j],
+ sigma=oks_sigmas,
+ margin=oks_margin,
+ )
+ for j in order
+ ]
+ to_keep = [s < oks_threshold and not np.isnan(s) for s in oks_scores]
+ order = [idx for idx, kept in zip(order, to_keep) if kept]
+
+ return keep
diff --git a/deeplabcut/pose_estimation_pytorch/runners/__init__.py b/deeplabcut/pose_estimation_pytorch/runners/__init__.py
index 45ee627bf1..6d3aa5fac7 100644
--- a/deeplabcut/pose_estimation_pytorch/runners/__init__.py
+++ b/deeplabcut/pose_estimation_pytorch/runners/__init__.py
@@ -16,6 +16,7 @@
Runner,
set_load_weights_only,
)
+from deeplabcut.pose_estimation_pytorch.runners.ctd import CTDTrackingConfig
from deeplabcut.pose_estimation_pytorch.runners.dynamic_cropping import (
DynamicCropper,
TopDownDynamicCropper,
diff --git a/deeplabcut/pose_estimation_pytorch/runners/ctd.py b/deeplabcut/pose_estimation_pytorch/runners/ctd.py
new file mode 100644
index 0000000000..b53e319daa
--- /dev/null
+++ b/deeplabcut/pose_estimation_pytorch/runners/ctd.py
@@ -0,0 +1,85 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+"""Configuration for CTD tracking"""
+from dataclasses import dataclass
+
+
+@dataclass
+class CTDTrackingConfig:
+ """Configuration for CTD tracking.
+
+ Args:
+ bu_on_lost_idv: When True, the BU model is run when there are fewer conditions
+ found than the expected number of individuals in the video.
+ bu_min_frequency: The minimum frequency at which the BU model is run to generate
+ conditions. If None, the BU model is only run to initialize the pose in the
+ first frame, and then is not run again. If a positive number N, the BU model
+ is run every N frames. The BU predictions are then combined with the CTD
+ predictions to continue the tracklets.
+ bu_max_frequency: The maximum frequency at which the BU model can be run. Must
+ be greater than `bu_min_frequency`. When there are fewer conditions than
+ individuals expected in the video and `bu_on_lost_idv` is True, the BU model
+ may be run on every frame. This can happen if individuals can disappear from
+ the video, and each frame may have a variable number of individuals. If
+ `bu_max_frequency` is set to N, then the BU model will be run at most every
+ N-th frame, which improves the inference speed of the model.
+ threshold_bu_add: The OKS threshold below which a BU pose must be (wrt. any
+ existing CTD pose) to be added to the poses.
+ threshold_ctd: The score threshold below which detected keypoints are NOT given
+ to the CTD model to predict pose for the next frame.
+ threshold_nms: The OKS threshold for non-maximum suppression to remove
+ duplicates poses when two CTD model predictions converge to a single animal.
+ """
+ bu_on_lost_idv: bool = True
+ bu_min_frequency: int | None = None
+ bu_max_frequency: int | None = 100
+ threshold_bu_add: float = 0.25
+ threshold_ctd: float = 0.01
+ threshold_nms: float = 0.9
+
+ @staticmethod
+ def build(config: dict, video_fps: float | None = None) -> "CTDTrackingConfig":
+ """Builds a CTD tracking configuration from a configuration dictionary.
+
+ Examples:
+ Building a CTDTrackingConfig from a basic dict:
+ >>> ctd_tracking = CTDTrackingConfig.build(
+ >>> dict(bu_on_lost_idv=True, threshold_nms=0.75)
+ >>> )
+
+ Building a CTDTrackingConfig from a basic dict:
+ >>> ctd_tracking = CTDTrackingConfig.build(
+ >>> dict(
+ >>> bu_on_lost_idv=True,
+ >>> bu_max_frequency=5, # When no FPS is given, this is in frames!
+ >>> threshold_nms=0.5,
+ >>> )
+ >>> )
+
+ Building a CTDTrackingConfig from a dict for a video with a given FPS:
+ >>> ctd_tracking = CTDTrackingConfig.build(
+ >>> dict(
+ >>> bu_on_lost_idv=True,
+ >>> bu_min_frequency=1, # When an FPS is given, this is in seconds!
+ >>> bu_max_frequency=5, # When an FPS is given, this is in seconds!
+ >>> threshold_ctd=0.1,
+ >>> threshold_nms=0.9
+ >>> ),
+ >>> video_fps=30.0,
+ >>> )
+ """
+ kwargs = {**config}
+ if video_fps is not None:
+ if "bu_min_frequency" in config:
+ kwargs["bu_min_frequency"] = int(config["bu_min_frequency"] * video_fps)
+ if "bu_max_frequency" in config:
+ kwargs["bu_max_frequency"] = int(config["bu_max_frequency"] * video_fps)
+ return CTDTrackingConfig(**kwargs)
diff --git a/deeplabcut/pose_estimation_pytorch/runners/inference.py b/deeplabcut/pose_estimation_pytorch/runners/inference.py
index 94a49de140..6ff4f5375e 100644
--- a/deeplabcut/pose_estimation_pytorch/runners/inference.py
+++ b/deeplabcut/pose_estimation_pytorch/runners/inference.py
@@ -18,9 +18,12 @@
import torch
import torch.nn as nn
+import deeplabcut.pose_estimation_pytorch.post_processing.nms as nms
+import deeplabcut.pose_estimation_pytorch.runners.ctd as ctd
import deeplabcut.pose_estimation_pytorch.runners.shelving as shelving
+from deeplabcut.core.inferenceutils import calc_object_keypoint_similarity
from deeplabcut.pose_estimation_pytorch.data.postprocessor import Postprocessor
-from deeplabcut.pose_estimation_pytorch.data.preprocessor import Preprocessor
+from deeplabcut.pose_estimation_pytorch.data.preprocessor import LoadImage, Preprocessor
from deeplabcut.pose_estimation_pytorch.models.detectors import BaseDetector
from deeplabcut.pose_estimation_pytorch.models.model import PoseModel
from deeplabcut.pose_estimation_pytorch.runners.base import ModelType, Runner
@@ -79,13 +82,20 @@ def __init__(
weights_only=load_weights_only,
)
+ self.model.to(self.device)
+ self.model.eval()
+
self._batch: torch.Tensor | None = None
+ self._model_kwargs: dict[str, np.ndarray | torch.Tensor] = {}
+
self._contexts: list[dict] = []
self._image_batch_sizes: list[int] = []
self._predictions: list = []
@abstractmethod
- def predict(self, inputs: torch.Tensor) -> list[dict[str, dict[str, np.ndarray]]]:
+ def predict(
+ self, inputs: torch.Tensor, **kwargs
+ ) -> list[dict[str, dict[str, np.ndarray]]]:
"""Makes predictions from a model input and output
Args:
@@ -126,9 +136,6 @@ def inference(
}
]
"""
- self.model.to(self.device)
- self.model.eval()
-
results = []
for data in images:
self._prepare_inputs(data)
@@ -159,6 +166,25 @@ def _prepare_inputs(
else:
inputs = torch.as_tensor(inputs)
+ # add new model_kwargs from the inputs
+ model_kwargs = context.pop("model_kwargs", {})
+ for k, v in model_kwargs.items():
+ curr_v = self._model_kwargs.get(k)
+ if curr_v is None or len(curr_v) == 0:
+ curr_v = v
+ elif len(v) == 0:
+ continue
+ elif isinstance(curr_v, np.ndarray):
+ curr_v = np.concatenate([curr_v, v], axis=0)
+ elif isinstance(curr_v, torch.Tensor):
+ curr_v = torch.cat([curr_v, v], dim=0)
+ else:
+ raise ValueError(
+ f"model_kwargs {k} must be a numpy array or torch tensor - "
+ f"found '{type(v)}'."
+ )
+ self._model_kwargs[k] = curr_v
+
self._contexts.append(context)
self._image_batch_sizes.append(len(inputs))
@@ -186,7 +212,6 @@ def _extract_results(self, shelf_writer: shelving.ShelfWriter) -> list:
num_predictions = self._image_batch_sizes[0]
image_predictions = self._predictions[:num_predictions]
context = self._contexts[0]
-
if self.postprocessor is not None:
# TODO: Should we return context?
# TODO: typing update - the post-processor can remove a dict level
@@ -214,13 +239,21 @@ def _process_batch(self) -> None:
called, otherwise this method will raise an error.
"""
batch = self._batch[: self.batch_size]
- self._predictions += self.predict(batch)
+ model_kwargs = {
+ mk: v[: self.batch_size] for mk, v in self._model_kwargs.items()
+ }
+
+ self._predictions += self.predict(batch, **model_kwargs)
# remove processed inputs from batch
if len(self._batch) <= self.batch_size:
self._batch = None
+ self._model_kwargs = {}
else:
self._batch = self._batch[self.batch_size :]
+ self._model_kwargs = {
+ mk: v[self.batch_size :] for mk, v in self._model_kwargs.items()
+ }
def _inputs_waiting_for_processing(self) -> bool:
"""Returns: Whether there are inputs which have not yet been processed"""
@@ -244,7 +277,9 @@ def __init__(
"your batch size to 1."
)
- def predict(self, inputs: torch.Tensor) -> list[dict[str, dict[str, np.ndarray]]]:
+ def predict(
+ self, inputs: torch.Tensor, **kwargs
+ ) -> list[dict[str, dict[str, np.ndarray]]]:
"""Makes predictions from a model input and output
Args:
@@ -264,7 +299,7 @@ def predict(self, inputs: torch.Tensor) -> list[dict[str, dict[str, np.ndarray]]
# dynamic cropping can use patches
inputs = self.dynamic.crop(inputs)
- outputs = self.model(inputs.to(self.device))
+ outputs = self.model(inputs.to(self.device), **kwargs)
raw_predictions = self.model.get_predictions(outputs)
if self.dynamic is not None:
@@ -285,6 +320,342 @@ def predict(self, inputs: torch.Tensor) -> list[dict[str, dict[str, np.ndarray]]
return predictions
+class CTDInferenceRunner(PoseInferenceRunner):
+ """Runner for pose estimation inference
+
+ Args:
+ model: The CTD model to run inference with.
+ bu_runner: A runner for the BU model to run inference with. If no BU runner is
+ given, conditions must be given in the context for the data. Otherwise an
+ error will be raised during inference.
+ tracking: Whether to track using the CTD model. If
+ """
+
+ def __init__(
+ self,
+ model: PoseModel,
+ bu_runner: PoseInferenceRunner | None = None,
+ ctd_tracking: bool | ctd.CTDTrackingConfig = False,
+ **kwargs,
+ ):
+ super().__init__(model, **kwargs)
+ self.bu_runner = bu_runner
+ if bu_runner is not None:
+ self.bu_runner.model.eval()
+
+ self.tracking = None
+ if isinstance(ctd_tracking, ctd.CTDTrackingConfig):
+ self.tracking = ctd_tracking
+ elif ctd_tracking: # generate default config
+ self.tracking = ctd.CTDTrackingConfig()
+
+ if self.tracking and self.batch_size != 1:
+ print("CTD tracking can only be used with batch size 1. Updating it.")
+ self.batch_size = 1
+
+ self._image_loader = LoadImage()
+
+ # Stored poses and IDX -> ID map for CTD tracking
+ self._bu_age = -1
+ self._missing_idvs = False
+ self._prev_pose = None
+ self._idx_to_id = None
+ self._ctd_track_ages = None # the age of each CTD tracklet
+
+ @torch.no_grad()
+ def inference(
+ self,
+ images: (
+ Iterable[str | Path | np.ndarray]
+ | Iterable[tuple[str | Path | np.ndarray, dict[str, Any]]]
+ ),
+ shelf_writer: shelving.ShelfWriter | None = None,
+ ) -> list[dict[str, np.ndarray]]:
+ """Run CTD model inference on the given dataset
+
+ Args:
+ images: the images to run inference on, optionally with context
+ shelf_writer: by default, data are saved in a list and returned at the end
+ of inference. Passing a shelf manager writes data to disk on-the-fly
+ using a "shelf" (a pickle-based, persistent, database-like object by
+ default, resulting in constant memory footprint). The returned list is
+ then empty.
+
+ Returns:
+ a dict containing head predictions for each image
+ [
+ {
+ "bodypart": {"poses": np.array},
+ "unique_bodypart": {"poses": np.array},
+ }
+ ]
+ """
+ if self.tracking:
+ return self._ctd_tracking_inference(images, shelf_writer)
+
+ results = []
+ for data in images:
+ data = self.add_conditions(data)
+ self._prepare_inputs(data)
+ self._process_full_batches()
+ results += self._extract_results(shelf_writer)
+
+ # Process the last batch even if not full
+ if self._inputs_waiting_for_processing():
+ self._process_batch()
+ results += self._extract_results(shelf_writer)
+
+ return results
+
+ def predict(
+ self, inputs: torch.Tensor, **kwargs
+ ) -> list[dict[str, dict[str, np.ndarray]]]:
+ """Makes predictions from a model input and output
+
+ Args:
+ the inputs to the model, of shape (batch_size, ...)
+
+ Returns:
+ predictions for each of the 'batch_size' inputs, made by each head, e.g.
+ [
+ {
+ "bodypart": {"poses": np.ndarray},
+ "unique_bodypart": {"poses": np.ndarray},
+ }
+ ]
+ """
+ outputs = self.model(inputs.to(self.device), **kwargs)
+ raw_predictions = self.model.get_predictions(outputs)
+ predictions = [
+ {
+ head: {
+ pred_name: pred[b].cpu().numpy()
+ for pred_name, pred in head_outputs.items()
+ }
+ for head, head_outputs in raw_predictions.items()
+ }
+ for b in range(len(inputs))
+ ]
+
+ return predictions
+
+ def add_conditions(
+ self,
+ data: str | Path | np.ndarray | tuple[str | Path | np.ndarray, dict],
+ ) -> tuple[np.ndarray, dict]:
+ if isinstance(data, (str, Path, np.ndarray)):
+ inputs, context = data, {}
+ else:
+ inputs, context = data
+
+ # Load the image once - then given as a numpy array to CTD
+ image, _ = self._image_loader(inputs, context)
+
+ # If the conditional keypoints are in the context, return the context
+ if "cond_kpts" in context:
+ return image, context
+
+ # Run the pre-processor
+ if self.bu_runner.preprocessor is not None:
+ inputs, context = self.bu_runner.preprocessor(image, context)
+ else:
+ inputs = torch.as_tensor(image)
+
+ # Get and post-process the predictions
+ predictions = self.bu_runner.predict(inputs)
+ if self.bu_runner.postprocessor is not None:
+ predictions, context = self.bu_runner.postprocessor(predictions, context)
+
+ # Extract the conditions
+ conds = predictions["bodyparts"][..., :3]
+ pred_mask = ~np.all(np.any(conds <= 0 | np.isnan(conds), axis=2), axis=1)
+ if np.sum(pred_mask) > 0:
+ conds = conds[pred_mask]
+ else:
+ conds = np.zeros((0, conds.shape[1], 3))
+
+ return image, {"cond_kpts": conds}
+
+ def _ctd_tracking_inference(
+ self,
+ images: (
+ Iterable[str | Path | np.ndarray]
+ | Iterable[tuple[str | Path | np.ndarray, dict[str, Any]]]
+ ),
+ shelf_writer: shelving.ShelfWriter | None = None,
+ ) -> list[dict[str, np.ndarray]]:
+ results = []
+ for data in images:
+ inputs, context = self._prepare_ctd_inputs(data)
+ model_kwargs = context.pop("model_kwargs", {})
+ predictions = self.predict(inputs, **model_kwargs)
+ if self.postprocessor is not None:
+ # Pop the "cond_kpts" from the context so there's no re-scoring
+ # This is required when tracking with CTD, otherwise scores go to 0
+ if self._prev_pose is not None:
+ context.pop("cond_kpts")
+
+ predictions, _ = self.postprocessor(predictions, context)
+
+ # Set the predictions as context for the next frame
+ self._ctd_tracking_postprocess(predictions, context["image_size"])
+
+ if shelf_writer is not None:
+ shelf_writer.add_prediction(
+ bodyparts=predictions["bodyparts"],
+ unique_bodyparts=predictions.get("unique_bodyparts"),
+ identity_scores=predictions.get("identity_scores"),
+ features=predictions.get("features"),
+ )
+ else:
+ results.append(predictions)
+
+ return results
+
+ def _prepare_ctd_inputs(self, data) -> tuple[torch.Tensor, dict[str, Any]]:
+ # If there's no valid poses, use the BU model to get conditions
+ self._bu_age += 1
+ if (
+ self._prev_pose is None
+ or (
+ self._missing_idvs
+ and self.tracking.bu_on_lost_idv
+ and self._bu_age >= self.tracking.bu_max_frequency
+ )
+ or (
+ self.tracking.bu_min_frequency is not None
+ and self._bu_age >= self.tracking.bu_min_frequency
+ )
+ ):
+ self._bu_age = 0
+ inputs, context = self.add_conditions(data)
+
+ if self._prev_pose is not None:
+ context["cond_kpts"] = self._merge_conditions(context["cond_kpts"])
+
+ else:
+ if isinstance(data, (str, Path, np.ndarray)):
+ inputs, context = data, {}
+ else:
+ inputs, context = data
+
+ context["cond_kpts"] = self._prev_pose
+
+ if self.preprocessor is None:
+ return torch.as_tensor(inputs), context
+
+ inputs, context = self.preprocessor(inputs, context)
+ return inputs, context
+
+ def _ctd_tracking_postprocess(
+ self, predictions: dict[str, np.ndarray], image_size: tuple[int, int],
+ ) -> None:
+ """Post-processes predictions. In-place changes to the predictions dict."""
+ # reorder the previous poses so the indices match the track IDs
+ if self._idx_to_id is not None:
+ predictions["bodyparts"] = predictions["bodyparts"][self._idx_to_id]
+
+ # mask all keypoints below the CTD tracking threshold
+ prev_pose = predictions["bodyparts"][..., :3].copy()
+ prev_pose[prev_pose[..., 2] <= self.tracking.threshold_ctd] = np.nan
+
+ # mask all keypoints outside the image
+ w, h = image_size
+ prev_pose[prev_pose[..., 0] < 0] = np.nan
+ prev_pose[prev_pose[..., 1] < 0] = np.nan
+ prev_pose[prev_pose[..., 0] >= w] = np.nan
+ prev_pose[prev_pose[..., 1] >= h] = np.nan
+
+ # apply NMS on the conditions, keeping older tracks
+ order = None
+ if self._ctd_track_ages is not None:
+ ordering = self._ctd_track_ages.copy()
+
+ # sort by track age, then score
+ vis = np.sum(np.all(~np.isnan(prev_pose), axis=-1), axis=-1) > 1
+ scores = np.nanmean(prev_pose[vis, :, 2], axis=-1)
+ ordering[vis] += scores
+
+ # only keep non-zero scores
+ order = ordering.argsort()[::-1]
+ order = order[ordering[order] > 0]
+
+ nms_mask = nms.nms_oks(
+ prev_pose,
+ oks_threshold=self.tracking.threshold_nms,
+ oks_sigmas=0.1,
+ oks_margin=1.0,
+ score_threshold=self.tracking.threshold_ctd,
+ order=order,
+ )
+
+ # Set the previous pose and ID ordering
+ if np.any(nms_mask):
+ self._prev_pose = prev_pose[nms_mask]
+
+ # get the IDs of the kept poses
+ found_idx_to_id = np.where(nms_mask)[0]
+ missing_ids = np.where(~nms_mask)[0]
+ self._idx_to_id = np.concatenate([found_idx_to_id, missing_ids])
+
+ # add 1 to the age of kept tracks
+ if self._ctd_track_ages is None:
+ self._ctd_track_ages = np.zeros(len(self._idx_to_id))
+ self._ctd_track_ages[nms_mask] += 1
+ self._ctd_track_ages[~nms_mask] = 0
+
+ # check if there are any missing individuals
+ self._missing_idvs = len(self._prev_pose) != len(self._idx_to_id)
+ else:
+ self._prev_pose = None
+ self._idx_to_id = None
+ self._idx_ages = None
+
+ def _merge_conditions(self, bu_cond: np.ndarray) -> np.ndarray:
+ """
+ Merges conditions made by a BU model with existing conditions from CTD tracking.
+ """
+ # prepare the BU conditions for matching
+ bu_cond = bu_cond.copy()[:, :, :3]
+ # mask low-quality keypoints
+ bu_cond[bu_cond[..., 2] < self.tracking.threshold_ctd] = np.nan
+
+ # remove non-visible individuals
+ kpt_vis = np.all(~np.isnan(bu_cond), axis=-1)
+ idv_vis = np.sum(kpt_vis, axis=-1) > 1 # need at least 2 kpts for OKS
+
+ # if no valid BU predictions are left, return the CTD conditions
+ if np.sum(idv_vis) == 0:
+ return self._prev_pose
+
+ # match BU conditions to CTD poses from the highest score to the lowest
+ bu_cond = bu_cond[idv_vis]
+ new_conditions = []
+ for bu_pose in bu_cond:
+ best_oks = 0
+ for ctd_pose in self._prev_pose:
+ best_oks = max(
+ best_oks,
+ calc_object_keypoint_similarity(bu_pose, ctd_pose, sigma=0.1)
+ )
+
+ if best_oks < self.tracking.threshold_bu_add:
+ new_conditions.append((best_oks, bu_pose))
+
+ # add the conditions with the lowest OKS score
+ new_conditions = [
+ c[1] for c in sorted(new_conditions, key=lambda x: x[0])
+ ]
+
+ # if there are no new conditions,
+ if len(new_conditions) == 0:
+ return self._prev_pose
+
+ new_conditions = np.stack(new_conditions, axis=0)
+ cond_pose = np.concatenate([self._prev_pose, new_conditions], axis=0)
+ return cond_pose[:len(self._idx_to_id)]
+
+
class DetectorInferenceRunner(InferenceRunner[BaseDetector]):
"""Runner for object detection inference"""
@@ -296,7 +667,9 @@ def __init__(self, model: BaseDetector, **kwargs):
"""
super().__init__(model, **kwargs)
- def predict(self, inputs: torch.Tensor) -> list[dict[str, dict[str, np.ndarray]]]:
+ def predict(
+ self, inputs: torch.Tensor, **kwargs
+ ) -> list[dict[str, dict[str, np.ndarray]]]:
"""Makes predictions from a model input and output
Args:
@@ -327,12 +700,13 @@ def build_inference_runner(
task: Task,
model: nn.Module,
device: str,
- snapshot_path: str | Path,
+ snapshot_path: str | Path | None = None,
batch_size: int = 1,
preprocessor: Preprocessor | None = None,
postprocessor: Postprocessor | None = None,
dynamic: DynamicCropper | None = None,
load_weights_only: bool | None = None,
+ **kwargs,
) -> InferenceRunner:
"""
Build a runner object according to a pytorch configuration file
@@ -356,6 +730,7 @@ def build_inference_runner(
https://pytorch.org/docs/stable/generated/torch.load.html
If None, the default value is used:
`deeplabcut.pose_estimation_pytorch.get_load_weights_only()`
+ **kwargs: Other arguments for the InferenceRunner.
Returns:
The inference runner.
@@ -368,6 +743,7 @@ def build_inference_runner(
preprocessor=preprocessor,
postprocessor=postprocessor,
load_weights_only=load_weights_only,
+ **kwargs,
)
if task == Task.DETECT:
if dynamic is not None:
@@ -386,4 +762,7 @@ def build_inference_runner(
)
dynamic = None
+ if task == Task.COND_TOP_DOWN:
+ return CTDInferenceRunner(**kwargs)
+
return PoseInferenceRunner(dynamic=dynamic, **kwargs)
diff --git a/deeplabcut/pose_estimation_pytorch/runners/snapshots.py b/deeplabcut/pose_estimation_pytorch/runners/snapshots.py
index 74203f5be1..a5e9f23cf6 100755
--- a/deeplabcut/pose_estimation_pytorch/runners/snapshots.py
+++ b/deeplabcut/pose_estimation_pytorch/runners/snapshots.py
@@ -11,7 +11,6 @@
"""Code to handle storing models"""
from __future__ import annotations
-import re
import warnings
from dataclasses import dataclass, field
from pathlib import Path
@@ -19,21 +18,7 @@
import numpy as np
import torch
-
-@dataclass(frozen=True)
-class Snapshot:
- best: bool
- epochs: int | None
- path: Path
-
- def uid(self) -> str:
- return self.path.stem.split("-")[-1]
-
- @staticmethod
- def from_path(path: Path) -> "Snapshot":
- best = "-best" in path.stem
- epochs = int(path.stem.split("-")[-1])
- return Snapshot(best=best, epochs=epochs, path=path)
+from deeplabcut.pose_estimation_pytorch.data.snapshots import list_snapshots, Snapshot
@dataclass
@@ -182,25 +167,9 @@ def snapshots(self, best_in_last: bool = True) -> list[Snapshot]:
trained for. If ``best_in_last=True`` and a best snapshot exists, it will be
the last one in the list.
"""
-
- def _sort_key(snapshot: Snapshot) -> int:
- return snapshot.epochs
-
- def _sort_key_best_as_last(snapshot: Snapshot) -> tuple[int, int]:
- return 1 if snapshot.best else 0, snapshot.epochs
-
- pattern = r"^(" + self.snapshot_prefix + r"(-best)?-\d+\.pt)$"
- snapshots = [
- Snapshot.from_path(f)
- for f in self.model_folder.iterdir()
- if re.match(pattern, f.name)
- ]
-
- sort_key = _sort_key
- if best_in_last:
- sort_key = _sort_key_best_as_last
- snapshots.sort(key=sort_key)
- return snapshots
+ return list_snapshots(
+ self.model_folder, self.snapshot_prefix, best_in_last=best_in_last
+ )
def snapshot_path(self, epoch: int, best: bool = False) -> Path:
"""
diff --git a/deeplabcut/pose_estimation_pytorch/runners/train.py b/deeplabcut/pose_estimation_pytorch/runners/train.py
index d9788c2922..2bfed99117 100644
--- a/deeplabcut/pose_estimation_pytorch/runners/train.py
+++ b/deeplabcut/pose_estimation_pytorch/runners/train.py
@@ -435,7 +435,11 @@ def step(
inputs = batch["image"]
inputs = inputs.to(self.device).float()
- outputs = self.model(inputs)
+ if 'cond_keypoints' in batch['context']:
+ cond_kpts = batch['context']['cond_keypoints']
+ outputs = self.model(inputs, cond_kpts=cond_kpts)
+ else:
+ outputs = self.model(inputs)
if self._data_parallel:
underlying_model = self.model.module
diff --git a/deeplabcut/pose_estimation_pytorch/task.py b/deeplabcut/pose_estimation_pytorch/task.py
index 944b9bc441..12a5049043 100644
--- a/deeplabcut/pose_estimation_pytorch/task.py
+++ b/deeplabcut/pose_estimation_pytorch/task.py
@@ -27,6 +27,7 @@ class Task(TaskDataMixin, Enum):
BOTTOM_UP = ("BU", "BottomUp"), "snapshot"
DETECT = ("DT", "Detect"), "snapshot-detector"
TOP_DOWN = ("TD", "TopDown"), "snapshot"
+ COND_TOP_DOWN = ("CTD", "CondTopDown", "ConditionalTopDown"), "snapshot"
@classmethod
def _missing_(cls, value):
diff --git a/deeplabcut/pose_estimation_tensorflow/predict_videos.py b/deeplabcut/pose_estimation_tensorflow/predict_videos.py
index cb9eb5e25f..dd4c66c0e8 100644
--- a/deeplabcut/pose_estimation_tensorflow/predict_videos.py
+++ b/deeplabcut/pose_estimation_tensorflow/predict_videos.py
@@ -1436,6 +1436,11 @@ def _convert_detections_to_tracklets(
f"Invalid tracking method. Only {', '.join(trackingutils.TRACK_METHODS)} are currently supported."
)
+ if track_method == "ctd":
+ raise ValueError(
+ "CTD tracking is only available for BUCTD models with the PyTorch engine."
+ )
+
joints = data["metadata"]["all_joints_names"]
partaffinityfield_graph = data["metadata"]["PAFgraph"]
paf_inds = data["metadata"]["PAFinds"]
diff --git a/deeplabcut/refine_training_dataset/stitch.py b/deeplabcut/refine_training_dataset/stitch.py
index 274802370e..8e87974633 100644
--- a/deeplabcut/refine_training_dataset/stitch.py
+++ b/deeplabcut/refine_training_dataset/stitch.py
@@ -1147,6 +1147,11 @@ def stitch_tracklets(
cfg = auxiliaryfunctions.read_config(config_path)
track_method = auxfun_multianimal.get_track_method(cfg, track_method=track_method)
+ if track_method == "ctd":
+ raise ValueError(
+ "CTD tracking occurs directly during video analysis. No need to call "
+ "`stitch_tracklets` with `track_method=='ctd'`."
+ )
if animal_names is None:
animal_names = cfg["individuals"]
diff --git a/deeplabcut/utils/auxfun_multianimal.py b/deeplabcut/utils/auxfun_multianimal.py
index 5f0314f887..f9dd5ab346 100644
--- a/deeplabcut/utils/auxfun_multianimal.py
+++ b/deeplabcut/utils/auxfun_multianimal.py
@@ -74,7 +74,8 @@ def get_track_method(cfg, track_method=""):
# check if it exists:
if track_method not in TRACK_METHODS:
raise ValueError(
- f"Invalid tracking method. Only {', '.join(TRACK_METHODS)} are currently supported."
+ f"Invalid tracking method. Only {', '.join(TRACK_METHODS)} are "
+ "currently supported."
)
return track_method
else: # default
diff --git a/deeplabcut/utils/make_labeled_video.py b/deeplabcut/utils/make_labeled_video.py
index 57622710ca..a9cdb46825 100644
--- a/deeplabcut/utils/make_labeled_video.py
+++ b/deeplabcut/utils/make_labeled_video.py
@@ -169,16 +169,15 @@ def CreateVideo(
# Draw bounding boxes if required and present
if plot_bboxes and bboxes_list:
bboxes = bboxes_list[index]["bboxes"]
- bbox_scores = bboxes_list[index]["bbox_scores"]
- n_bboxes = bboxes.shape[0]
+ bbox_scores = bboxes_list[index].get("bbox_scores")
+ n_bboxes = len(bboxes)
for i in range(n_bboxes):
- bbox = bboxes[i, :]
+ bbox = bboxes[i]
x, y = bbox[0], bbox[1]
x += x1
y += y1
w, h = bbox[2], bbox[3]
- confidence = bbox_scores[i]
- if confidence < bboxes_pcutoff:
+ if bbox_scores is not None and bbox_scores[i] < bboxes_pcutoff:
continue
rect_coords = rectangle_perimeter(start=(y, x), extent=(h, w))
@@ -351,14 +350,13 @@ def CreateVideoSlow(
# Draw bounding boxes of required and present
if plot_bboxes and bboxes_list:
bboxes = bboxes_list[index]["bboxes"]
- bbox_scores = bboxes_list[index]["bbox_scores"]
- n_bboxes = bboxes.shape[0]
+ bbox_scores = bboxes_list[index].get("bbox_scores")
+ n_bboxes = len(bboxes)
for i in range(n_bboxes):
- bbox = bboxes[i, :]
+ bbox = bboxes[i]
bbox_origin = (bbox[0], bbox[1])
(bbox_width, bbox_height) = (bbox[2], bbox[3])
- bbox_confidence = bbox_scores[i]
- if bbox_confidence < bboxes_pcutoff:
+ if bbox_scores is not None and bbox_scores[i] < bboxes_pcutoff:
continue
rectangle = patches.Rectangle(
bbox_origin,
diff --git a/deeplabcut/version.py b/deeplabcut/version.py
index d5bb567e70..dfffb33496 100644
--- a/deeplabcut/version.py
+++ b/deeplabcut/version.py
@@ -9,5 +9,5 @@
# Licensed under GNU Lesser General Public License v3.0
#
-__version__ = "3.0.0rc7"
+__version__ = "3.0.0rc8"
VERSION = __version__
diff --git a/docs/maDLC_UserGuide.md b/docs/maDLC_UserGuide.md
index 8f5b5a964e..f6df4a15fd 100644
--- a/docs/maDLC_UserGuide.md
+++ b/docs/maDLC_UserGuide.md
@@ -653,10 +653,24 @@ You can drop "Indices" to run this on all training/testing images (this is very
### (I) Analyze new Videos
+````{versionadded} 3.0.0
+With the addition of conditional top-down models in DeepLabCut 3.0, it's now possible to
+track individuals directly **during video analysis**. If you choose to train any model
+with a name that starts with `ctd_`, you'll be able to call `deeplabcut.analyze_videos`
+with `ctd_tracking=True`. To learn more about tracking with CTD, see the [
+`COLAB_BUCTD_and_CTD_tracking`](
+https://github.com/DeepLabCut/DeepLabCut/main/examples/COLAB/COLAB_BUCTD_and_CTD_tracking.ipynb)
+COLAB notebook.
+````
+
**-------------------- DECISION POINT -------------------**
**ATTENTION!**
-**Pose estimation and tracking should be thought of as separate steps.** If you do not have good pose estimation evaluation metrics at this point, stop, check original labels, add more data, etc --> don't move forward with this model. If you think you have a good model, please test the "raw" pose estimation performance on a video to validate performance:
+**Pose estimation and tracking should be thought of as separate steps.** If you do not
+have good pose estimation evaluation metrics at this point, stop, check original labels,
+add more data, etc --> don't move forward with this model. If you think you have a good
+model, please test the "raw" pose estimation performance on a video to validate
+performance:
Please run:
diff --git a/docs/pytorch/architectures.md b/docs/pytorch/architectures.md
index 53dfaca621..dc17a3fe86 100644
--- a/docs/pytorch/architectures.md
+++ b/docs/pytorch/architectures.md
@@ -20,7 +20,7 @@ print(available_detectors())
## Neural Networks Architectures
Several architectures are currently implemented in DeepLabCut PyTorch (more will come,
-and you can add more easily in our new model registry).
+and you can add more easily in our new model registry). Also check out the explanations of bottom-up/top-down below.
**ResNets**
- Adapted from [He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2016.](https://openaccess.thecvf.com/content_cvpr_2016/html/He_Deep_Residual_Learning_CVPR_2016_paper.html) and [Insafutdinov, Eldar et al. "DeeperCut: A Deeper, Stronger, and Faster Multi-Person Pose Estimation Model". European Conference on Computer Vision (ECCV) 2016.]
@@ -73,9 +73,61 @@ but it might improve performance), you can simply edit your `pytorch_config.yaml
Of course, any multi-animal model can also be used for single-animal projects!
-## Information on Multi-Animal Models
-
-### Backbones with Part-Affinity Fields
+## Approaches to multi-animal pose estimation
+
+Single-animal pose estimation is quite straightforward: the model takes an image as
+input, and it outputs the predicted coordinate of each bodypart.
+
+Multi-animal pose estimation is more complex. Not only do you need to localize bodyparts
+in the image, but you also need to group bodyparts per individual. There are two main
+approaches to multi-animal pose estimation.
+
+The first approach, **bottom-up** pose estimation, starts by detecting bodyparts in the
+image before figuring out how they belong together (i.e., which keypoints belong to the
+same animal).
+
+
+
+The second approach, **top-down** pose estimation, uses a two-step approach. A first
+model (an object detector) is used to localize every animal present in the image through
+its bounding box. Then, the pose for each animal is determined by predicting bodyparts
+in each bounding box. The pose estimation
+
+
+
+The top-down approach tends to be more accurate in less crowded scenes, as the pose
+model only needs to process the pixels related to a single animal. However, in more
+crowded scenes, the pose estimation task becomes ambiguous. Multiple overlapping
+individuals will have very similar bounding boxes, and the pose model has no way of
+knowing which animal it is supposed to predict keypoints for.
+
+The bottom-up approach does not have this ambiguïty, and also has the advantage of
+only needing to run a pose estimation model, instead of needing to run an object
+detector first. However, grouping keypoints is a difficult problem.
+
+A new approach to pose estimation, named bottom-up conditioned top-down (or BUCTD), was
+introduced in [Zhou, Stoffl, Mathis, Mathis. "Rethinking Pose Estimation in Crowds:
+Overcoming the Detection Information Bottleneck and Ambiguity." Proceedings of the
+IEEE/CVF International Conference on Computer Vision (ICCV). 2023](
+https://openaccess.thecvf.com/content/ICCV2023/papers/Zhou_Rethinking_Pose_Estimation_in_Crowds_Overcoming_the_Detection_Information_Bottleneck_ICCV_2023_paper.pdf)
+. It's a hybrid two-stage approach leveraging the strengths of the bottom-up and
+top-down approaches to overcome the ambiguïty introduced through bounding boxes. Instead
+of using an object detection model to localize individuals, it uses a bottom-up pose
+estimation model. The predictions made by the bottom-up model are given as proposals (or
+_conditions_) to the pose estimation model. This is illustrated in the figure below. In modern language, one could state that CTD models are "pose-promptable".
+
+
+
+ Zhou, Mu, et al. "Rethinking pose estimation in crowds: overcoming the
+detection information bottleneck and ambiguity." Proceedings of the IEEE/CVF
+International Conference on Computer Vision. 2023.
+
+
+### Bottom-up Models
+
+#### Backbones with Part-Affinity Fields
As in DeepLabCut 2.X, the base multi-animal model is composed of a backbone (encoder)
and a head predicting keypoints and part-affinity fields (PAFs). These PAFs are used to
diff --git a/docs/pytorch/assets/bottom-up-approach.png b/docs/pytorch/assets/bottom-up-approach.png
new file mode 100644
index 0000000000..025c292c8d
Binary files /dev/null and b/docs/pytorch/assets/bottom-up-approach.png differ
diff --git a/docs/pytorch/assets/buctd_figure_1.png b/docs/pytorch/assets/buctd_figure_1.png
new file mode 100644
index 0000000000..97c208de2f
Binary files /dev/null and b/docs/pytorch/assets/buctd_figure_1.png differ
diff --git a/docs/pytorch/assets/top-down-approach.png b/docs/pytorch/assets/top-down-approach.png
new file mode 100644
index 0000000000..c28265bcb1
Binary files /dev/null and b/docs/pytorch/assets/top-down-approach.png differ
diff --git a/examples/COLAB/COLAB_BUCTD_and_CTD_tracking.ipynb b/examples/COLAB/COLAB_BUCTD_and_CTD_tracking.ipynb
new file mode 100644
index 0000000000..3328bceea9
--- /dev/null
+++ b/examples/COLAB/COLAB_BUCTD_and_CTD_tracking.ipynb
@@ -0,0 +1,2379 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "87e3afb1",
+ "metadata": {
+ "id": "87e3afb1"
+ },
+ "source": [
+ "# DeepLabCut - Tutorial for BUCTD models\n",
+ "\n",
+ "\n",
+ "
\n",
+ "\n",
+ "\n",
+ "**This tutorial introduces the use of [bottom-up conditioned top-down](https://openaccess.thecvf.com/content/ICCV2023/papers/Zhou_Rethinking_Pose_Estimation_in_Crowds_Overcoming_the_Detection_Information_Bottleneck_ICCV_2023_paper.pdf) pose estimation models (also named BUCTD or CTD) in DeepLabCut. This architecture is state-of-the-art in crowded images (when animals are interacting closly with one another), and carry the huge advantage that they can be used to directly track animals, removing the need for tracklet creation or stitching.**\n",
+ "\n",
+ "Some resources that can be useful:\n",
+ "\n",
+ "- [github.com/DeepLabCut/DeepLabCut](https://github.com/DeepLabCut/DeepLabCut)\n",
+ "- [DeepLabCut's Documentation: User Guide for Multi-Animal projects](https://deeplabcut.github.io/DeepLabCut/docs/maDLC_UserGuide.html)\n",
+ "- [Zhou, Stoffl, Mathis, Mathis. \"Rethinking Pose Estimation in Crowds: Overcoming the Detection Information Bottleneck and Ambiguity.\" Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV). 2023](https://openaccess.thecvf.com/content/ICCV2023/papers/Zhou_Rethinking_Pose_Estimation_in_Crowds_Overcoming_the_Detection_Information_Bottleneck_ICCV_2023_paper.pdf)\n",
+ "\n",
+ "## Introduction\n",
+ "\n",
+ "This notebook is an introduction to training and using CTD models in DeepLabCut, through the [maDLC Tri-Mouse Benchmark Dataset](https://zenodo.org/records/5851157) presented Lauer et al. 2022 (Nature Methods). For more information, you can check out the [DeepLabCut Benchmark Datasets](https://benchmark.deeplabcut.org/datasets.html).\n",
+ "\n",
+ "In this notebook, we'll\n",
+ "\n",
+ "- train an bottom-up model that can provide conditions for the CTD model\n",
+ "- evaluate the bottom-up model\n",
+ "- (optional/advanced) learn how the CTD model is trained with generative sampling\n",
+ "- train the CTD model\n",
+ "- evaluate the CTD model\n",
+ "- **(Nice feature of CTD models)** use the CTD model to track individuals\n",
+ "\n",
+ "Note: This notebook **can also be run locally**. However, using a GPU is recommended to train the models and run video inference. Just skip the _Installing DeepLabCut on COLAB_ section"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ad548ee1",
+ "metadata": {
+ "id": "ad548ee1"
+ },
+ "source": [
+ "### ⚠️⚠️ Change the Runtime type to use a GPU!⚠️⚠️\n",
+ "\n",
+ "First, go to \"Runtime\" ->\"change runtime type\"->select \"Python3\", and then select \"GPU\"."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2d41bf5e",
+ "metadata": {
+ "id": "2d41bf5e"
+ },
+ "source": [
+ "### Installing DeepLabCut on COLAB"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4428d550",
+ "metadata": {
+ "id": "4428d550"
+ },
+ "source": [
+ "Let's install the latest version of DeepLabCut, straight from GitHub."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "ae9ebeae",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "collapsed": true,
+ "executionInfo": {
+ "elapsed": 134753,
+ "status": "ok",
+ "timestamp": 1744357127034,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "ae9ebeae",
+ "outputId": "6643acbb-c848-42c3-b222-d9797a67249b"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Collecting deeplabcut\n",
+ " Cloning https://github.com/DeepLabCut/DeepLabCut.git (to revision lucas/buctd_v2) to /tmp/pip-install-p_2aupou/deeplabcut_38affa993eac4f18a4fcf05ba8f80e79\n",
+ " Running command git clone --filter=blob:none --quiet https://github.com/DeepLabCut/DeepLabCut.git /tmp/pip-install-p_2aupou/deeplabcut_38affa993eac4f18a4fcf05ba8f80e79\n",
+ " Running command git checkout -b lucas/buctd_v2 --track origin/lucas/buctd_v2\n",
+ " Switched to a new branch 'lucas/buctd_v2'\n",
+ " Branch 'lucas/buctd_v2' set up to track remote branch 'lucas/buctd_v2' from 'origin'.\n",
+ " Resolved https://github.com/DeepLabCut/DeepLabCut.git to commit 12cf3fa01b91bbc8c73c1efcecebf83815164da0\n",
+ " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
+ " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
+ " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
+ "Collecting albumentations<=1.4.3 (from deeplabcut)\n",
+ " Downloading albumentations-1.4.3-py3-none-any.whl.metadata (37 kB)\n",
+ "Collecting dlclibrary>=0.0.7 (from deeplabcut)\n",
+ " Downloading dlclibrary-0.0.7-py3-none-any.whl.metadata (4.2 kB)\n",
+ "Requirement already satisfied: einops in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (0.8.1)\n",
+ "Collecting filterpy>=1.4.4 (from deeplabcut)\n",
+ " Downloading filterpy-1.4.5.zip (177 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m178.0/178.0 kB\u001b[0m \u001b[31m10.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "Collecting ruamel.yaml>=0.15.0 (from deeplabcut)\n",
+ " Downloading ruamel.yaml-0.18.10-py3-none-any.whl.metadata (23 kB)\n",
+ "Collecting imgaug>=0.4.0 (from deeplabcut)\n",
+ " Downloading imgaug-0.4.0-py2.py3-none-any.whl.metadata (1.8 kB)\n",
+ "Requirement already satisfied: imageio-ffmpeg in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (0.6.0)\n",
+ "Requirement already satisfied: numba>=0.54 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (0.60.0)\n",
+ "Collecting matplotlib!=3.7.0,!=3.7.1,<3.9,>=3.3 (from deeplabcut)\n",
+ " Downloading matplotlib-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB)\n",
+ "Requirement already satisfied: networkx>=2.6 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (3.4.2)\n",
+ "Collecting numpy<2.0.0,>=1.18.5 (from deeplabcut)\n",
+ " Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m61.0/61.0 kB\u001b[0m \u001b[31m5.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: pandas!=1.5.0,>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (2.2.2)\n",
+ "Requirement already satisfied: scikit-image>=0.17 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (0.25.2)\n",
+ "Requirement already satisfied: scikit-learn>=1.0 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (1.6.1)\n",
+ "Requirement already satisfied: scipy>=1.9 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (1.14.1)\n",
+ "Requirement already satisfied: statsmodels>=0.11 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (0.14.4)\n",
+ "Collecting tables==3.8.0 (from deeplabcut)\n",
+ " Downloading tables-3.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.2 kB)\n",
+ "Requirement already satisfied: timm in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (1.0.15)\n",
+ "Requirement already satisfied: torch>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (2.6.0+cu124)\n",
+ "Requirement already satisfied: torchvision in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (0.21.0+cu124)\n",
+ "Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (4.67.1)\n",
+ "Requirement already satisfied: pycocotools in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (2.0.8)\n",
+ "Requirement already satisfied: pyyaml in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (6.0.2)\n",
+ "Requirement already satisfied: Pillow>=7.1 in /usr/local/lib/python3.11/dist-packages (from deeplabcut) (11.1.0)\n",
+ "Requirement already satisfied: cython>=0.29.21 in /usr/local/lib/python3.11/dist-packages (from tables==3.8.0->deeplabcut) (3.0.12)\n",
+ "Requirement already satisfied: numexpr>=2.6.2 in /usr/local/lib/python3.11/dist-packages (from tables==3.8.0->deeplabcut) (2.10.2)\n",
+ "Collecting blosc2~=2.0.0 (from tables==3.8.0->deeplabcut)\n",
+ " Downloading blosc2-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)\n",
+ "Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from tables==3.8.0->deeplabcut) (24.2)\n",
+ "Requirement already satisfied: py-cpuinfo in /usr/local/lib/python3.11/dist-packages (from tables==3.8.0->deeplabcut) (9.0.0)\n",
+ "Requirement already satisfied: typing-extensions>=4.9.0 in /usr/local/lib/python3.11/dist-packages (from albumentations<=1.4.3->deeplabcut) (4.13.1)\n",
+ "Requirement already satisfied: opencv-python-headless>=4.9.0 in /usr/local/lib/python3.11/dist-packages (from albumentations<=1.4.3->deeplabcut) (4.11.0.86)\n",
+ "Requirement already satisfied: huggingface-hub in /usr/local/lib/python3.11/dist-packages (from dlclibrary>=0.0.7->deeplabcut) (0.30.1)\n",
+ "Requirement already satisfied: six in /usr/local/lib/python3.11/dist-packages (from imgaug>=0.4.0->deeplabcut) (1.17.0)\n",
+ "Requirement already satisfied: opencv-python in /usr/local/lib/python3.11/dist-packages (from imgaug>=0.4.0->deeplabcut) (4.11.0.86)\n",
+ "Requirement already satisfied: imageio in /usr/local/lib/python3.11/dist-packages (from imgaug>=0.4.0->deeplabcut) (2.37.0)\n",
+ "Requirement already satisfied: Shapely in /usr/local/lib/python3.11/dist-packages (from imgaug>=0.4.0->deeplabcut) (2.1.0)\n",
+ "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.7.0,!=3.7.1,<3.9,>=3.3->deeplabcut) (1.3.1)\n",
+ "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.7.0,!=3.7.1,<3.9,>=3.3->deeplabcut) (0.12.1)\n",
+ "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.7.0,!=3.7.1,<3.9,>=3.3->deeplabcut) (4.57.0)\n",
+ "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.7.0,!=3.7.1,<3.9,>=3.3->deeplabcut) (1.4.8)\n",
+ "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.7.0,!=3.7.1,<3.9,>=3.3->deeplabcut) (3.2.3)\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib!=3.7.0,!=3.7.1,<3.9,>=3.3->deeplabcut) (2.8.2)\n",
+ "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.11/dist-packages (from numba>=0.54->deeplabcut) (0.43.0)\n",
+ "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas!=1.5.0,>=1.0.1->deeplabcut) (2025.2)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas!=1.5.0,>=1.0.1->deeplabcut) (2025.2)\n",
+ "Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml>=0.15.0->deeplabcut)\n",
+ " Downloading ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.7 kB)\n",
+ "Requirement already satisfied: tifffile>=2022.8.12 in /usr/local/lib/python3.11/dist-packages (from scikit-image>=0.17->deeplabcut) (2025.3.30)\n",
+ "Requirement already satisfied: lazy-loader>=0.4 in /usr/local/lib/python3.11/dist-packages (from scikit-image>=0.17->deeplabcut) (0.4)\n",
+ "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.0->deeplabcut) (1.4.2)\n",
+ "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn>=1.0->deeplabcut) (3.6.0)\n",
+ "Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.11/dist-packages (from statsmodels>=0.11->deeplabcut) (1.0.1)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (3.18.0)\n",
+ "Requirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (3.1.6)\n",
+ "Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (2025.3.2)\n",
+ "Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "Collecting nvidia-cublas-cu12==12.4.5.8 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "Collecting nvidia-cufft-cu12==11.2.1.3 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "Collecting nvidia-curand-cu12==10.3.5.147 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "Requirement already satisfied: nvidia-cusparselt-cu12==0.6.2 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (0.6.2)\n",
+ "Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (2.21.5)\n",
+ "Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (12.4.127)\n",
+ "Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=2.0.0->deeplabcut)\n",
+ " Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "Requirement already satisfied: triton==3.2.0 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (3.2.0)\n",
+ "Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.11/dist-packages (from torch>=2.0.0->deeplabcut) (1.13.1)\n",
+ "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy==1.13.1->torch>=2.0.0->deeplabcut) (1.3.0)\n",
+ "Requirement already satisfied: safetensors in /usr/local/lib/python3.11/dist-packages (from timm->deeplabcut) (0.5.3)\n",
+ "Requirement already satisfied: msgpack in /usr/local/lib/python3.11/dist-packages (from blosc2~=2.0.0->tables==3.8.0->deeplabcut) (1.1.0)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from huggingface-hub->dlclibrary>=0.0.7->deeplabcut) (2.32.3)\n",
+ "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from jinja2->torch>=2.0.0->deeplabcut) (3.0.2)\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface-hub->dlclibrary>=0.0.7->deeplabcut) (3.4.1)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface-hub->dlclibrary>=0.0.7->deeplabcut) (3.10)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface-hub->dlclibrary>=0.0.7->deeplabcut) (2.3.0)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests->huggingface-hub->dlclibrary>=0.0.7->deeplabcut) (2025.1.31)\n",
+ "Downloading tables-3.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.5/6.5 MB\u001b[0m \u001b[31m105.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading albumentations-1.4.3-py3-none-any.whl (137 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m137.0/137.0 kB\u001b[0m \u001b[31m13.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading dlclibrary-0.0.7-py3-none-any.whl (16 kB)\n",
+ "Downloading imgaug-0.4.0-py2.py3-none-any.whl (948 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m948.0/948.0 kB\u001b[0m \u001b[31m52.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading matplotlib-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m11.6/11.6 MB\u001b[0m \u001b[31m103.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m18.3/18.3 MB\u001b[0m \u001b[31m95.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading ruamel.yaml-0.18.10-py3-none-any.whl (117 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m117.7/117.7 kB\u001b[0m \u001b[31m11.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m363.4/363.4 MB\u001b[0m \u001b[31m4.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.8/13.8 MB\u001b[0m \u001b[31m99.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m24.6/24.6 MB\u001b[0m \u001b[31m88.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m883.7/883.7 kB\u001b[0m \u001b[31m54.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m664.8/664.8 MB\u001b[0m \u001b[31m1.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m211.5/211.5 MB\u001b[0m \u001b[31m3.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.3/56.3 MB\u001b[0m \u001b[31m22.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m127.9/127.9 MB\u001b[0m \u001b[31m7.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m207.5/207.5 MB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.1/21.1 MB\u001b[0m \u001b[31m41.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading blosc2-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.9/3.9 MB\u001b[0m \u001b[31m91.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hDownloading ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (739 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m739.1/739.1 kB\u001b[0m \u001b[31m51.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hBuilding wheels for collected packages: deeplabcut, filterpy\n",
+ " Building wheel for deeplabcut (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
+ " Created wheel for deeplabcut: filename=deeplabcut-3.0.0rc8-py3-none-any.whl size=2135196 sha256=5fed7cbc1c688b63dba5c4ec999ec8cd64ff183633f52f61dae83c99bef61086\n",
+ " Stored in directory: /tmp/pip-ephem-wheel-cache-mksbbfnl/wheels/f5/b8/31/9da4b9cf29c390764ce8fb3cda190fa42dce894367ddf37cc9\n",
+ " Building wheel for filterpy (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ " Created wheel for filterpy: filename=filterpy-1.4.5-py3-none-any.whl size=110460 sha256=ba55d3e7bb10d2a01b1ad749dd6776e6fe11dc542fa55874879db636b2932478\n",
+ " Stored in directory: /root/.cache/pip/wheels/12/dc/3c/e12983eac132d00f82a20c6cbe7b42ce6e96190ef8fa2d15e1\n",
+ "Successfully built deeplabcut filterpy\n",
+ "Installing collected packages: ruamel.yaml.clib, nvidia-nvjitlink-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, blosc2, ruamel.yaml, nvidia-cusparse-cu12, nvidia-cudnn-cu12, tables, nvidia-cusolver-cu12, matplotlib, dlclibrary, imgaug, filterpy, albumentations, deeplabcut\n",
+ " Attempting uninstall: nvidia-nvjitlink-cu12\n",
+ " Found existing installation: nvidia-nvjitlink-cu12 12.5.82\n",
+ " Uninstalling nvidia-nvjitlink-cu12-12.5.82:\n",
+ " Successfully uninstalled nvidia-nvjitlink-cu12-12.5.82\n",
+ " Attempting uninstall: nvidia-curand-cu12\n",
+ " Found existing installation: nvidia-curand-cu12 10.3.6.82\n",
+ " Uninstalling nvidia-curand-cu12-10.3.6.82:\n",
+ " Successfully uninstalled nvidia-curand-cu12-10.3.6.82\n",
+ " Attempting uninstall: nvidia-cufft-cu12\n",
+ " Found existing installation: nvidia-cufft-cu12 11.2.3.61\n",
+ " Uninstalling nvidia-cufft-cu12-11.2.3.61:\n",
+ " Successfully uninstalled nvidia-cufft-cu12-11.2.3.61\n",
+ " Attempting uninstall: nvidia-cuda-runtime-cu12\n",
+ " Found existing installation: nvidia-cuda-runtime-cu12 12.5.82\n",
+ " Uninstalling nvidia-cuda-runtime-cu12-12.5.82:\n",
+ " Successfully uninstalled nvidia-cuda-runtime-cu12-12.5.82\n",
+ " Attempting uninstall: nvidia-cuda-nvrtc-cu12\n",
+ " Found existing installation: nvidia-cuda-nvrtc-cu12 12.5.82\n",
+ " Uninstalling nvidia-cuda-nvrtc-cu12-12.5.82:\n",
+ " Successfully uninstalled nvidia-cuda-nvrtc-cu12-12.5.82\n",
+ " Attempting uninstall: nvidia-cuda-cupti-cu12\n",
+ " Found existing installation: nvidia-cuda-cupti-cu12 12.5.82\n",
+ " Uninstalling nvidia-cuda-cupti-cu12-12.5.82:\n",
+ " Successfully uninstalled nvidia-cuda-cupti-cu12-12.5.82\n",
+ " Attempting uninstall: nvidia-cublas-cu12\n",
+ " Found existing installation: nvidia-cublas-cu12 12.5.3.2\n",
+ " Uninstalling nvidia-cublas-cu12-12.5.3.2:\n",
+ " Successfully uninstalled nvidia-cublas-cu12-12.5.3.2\n",
+ " Attempting uninstall: numpy\n",
+ " Found existing installation: numpy 2.0.2\n",
+ " Uninstalling numpy-2.0.2:\n",
+ " Successfully uninstalled numpy-2.0.2\n",
+ " Attempting uninstall: blosc2\n",
+ " Found existing installation: blosc2 3.2.1\n",
+ " Uninstalling blosc2-3.2.1:\n",
+ " Successfully uninstalled blosc2-3.2.1\n",
+ " Attempting uninstall: nvidia-cusparse-cu12\n",
+ " Found existing installation: nvidia-cusparse-cu12 12.5.1.3\n",
+ " Uninstalling nvidia-cusparse-cu12-12.5.1.3:\n",
+ " Successfully uninstalled nvidia-cusparse-cu12-12.5.1.3\n",
+ " Attempting uninstall: nvidia-cudnn-cu12\n",
+ " Found existing installation: nvidia-cudnn-cu12 9.3.0.75\n",
+ " Uninstalling nvidia-cudnn-cu12-9.3.0.75:\n",
+ " Successfully uninstalled nvidia-cudnn-cu12-9.3.0.75\n",
+ " Attempting uninstall: tables\n",
+ " Found existing installation: tables 3.10.2\n",
+ " Uninstalling tables-3.10.2:\n",
+ " Successfully uninstalled tables-3.10.2\n",
+ " Attempting uninstall: nvidia-cusolver-cu12\n",
+ " Found existing installation: nvidia-cusolver-cu12 11.6.3.83\n",
+ " Uninstalling nvidia-cusolver-cu12-11.6.3.83:\n",
+ " Successfully uninstalled nvidia-cusolver-cu12-11.6.3.83\n",
+ " Attempting uninstall: matplotlib\n",
+ " Found existing installation: matplotlib 3.10.0\n",
+ " Uninstalling matplotlib-3.10.0:\n",
+ " Successfully uninstalled matplotlib-3.10.0\n",
+ " Attempting uninstall: albumentations\n",
+ " Found existing installation: albumentations 2.0.5\n",
+ " Uninstalling albumentations-2.0.5:\n",
+ " Successfully uninstalled albumentations-2.0.5\n",
+ "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
+ "thinc 8.3.6 requires numpy<3.0.0,>=2.0.0, but you have numpy 1.26.4 which is incompatible.\u001b[0m\u001b[31m\n",
+ "\u001b[0mSuccessfully installed albumentations-1.4.3 blosc2-2.0.0 deeplabcut-3.0.0rc8 dlclibrary-0.0.7 filterpy-1.4.5 imgaug-0.4.0 matplotlib-3.8.4 numpy-1.26.4 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nvjitlink-cu12-12.4.127 ruamel.yaml-0.18.10 ruamel.yaml.clib-0.2.12 tables-3.8.0\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.colab-display-data+json": {
+ "id": "d5d69df769e143178b2cb062f2044022",
+ "pip_warning": {
+ "packages": [
+ "matplotlib",
+ "mpl_toolkits"
+ ]
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "!pip install --pre deeplabcut"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "dd0a07bc",
+ "metadata": {
+ "id": "dd0a07bc"
+ },
+ "source": [
+ "**(Be sure to click \"RESTART RUNTIME\" if it is displayed above before moving on !)** You will see this button at the output of the cells above ^."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7c35856e",
+ "metadata": {
+ "id": "7c35856e"
+ },
+ "source": [
+ "### Imports"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "0d2ca689",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 30067,
+ "status": "ok",
+ "timestamp": 1744357191552,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "0d2ca689",
+ "outputId": "c1dcdaaa-0ec9-475b-bb5d-a3fa59712727"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Loading DLC 3.0.0rc8...\n",
+ "DLC loaded in light mode; you cannot use any GUI (labeling, relabeling and standalone GUI)\n"
+ ]
+ }
+ ],
+ "source": [
+ "import requests\n",
+ "import shutil\n",
+ "from io import BytesIO\n",
+ "from pathlib import Path\n",
+ "from zipfile import ZipFile\n",
+ "\n",
+ "import deeplabcut\n",
+ "import deeplabcut.pose_estimation_pytorch as dlc_torch\n",
+ "import deeplabcut.utils.auxiliaryfunctions as auxiliaryfunctions\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "36a04338",
+ "metadata": {
+ "id": "36a04338"
+ },
+ "source": [
+ "### Downloading the Tri-Mouse Dataset\n",
+ "\n",
+ "This cell downloads the Tri-Mouse dataset from Zenodo into the current working directory (or `cwd`), which should be the directory you launched the jupyter server from."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "8d1c71ab",
+ "metadata": {
+ "executionInfo": {
+ "elapsed": 14,
+ "status": "ok",
+ "timestamp": 1744357194674,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "8d1c71ab"
+ },
+ "outputs": [],
+ "source": [
+ "download_path = Path.cwd()\n",
+ "config = str(download_path / \"trimice-dlc-2021-06-22\" / \"config.yaml\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "784ed973",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 42401,
+ "status": "ok",
+ "timestamp": 1744357238563,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "784ed973",
+ "outputId": "fb682110-14b4-4a09-cdb6-6524f7433d11"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Downloading the tri-mouse dataset into /content\n",
+ "Downloading trimice-dlc-2021-06-22.zip...\n",
+ "Config path: /content/trimice-dlc-2021-06-22/config.yaml\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(f\"Downloading the tri-mouse dataset into {download_path}\")\n",
+ "\n",
+ "url_record = \"https://zenodo.org/api/records/5851157\"\n",
+ "response = requests.get(url_record)\n",
+ "if response.status_code == 200:\n",
+ " file = response.json()[\"files\"][0]\n",
+ " title = file[\"key\"]\n",
+ " print(f\"Downloading {title}...\")\n",
+ " with requests.get(file['links']['self'], stream=True) as r:\n",
+ " with ZipFile(BytesIO(r.content)) as zf:\n",
+ " zf.extractall(path=download_path)\n",
+ "else:\n",
+ " raise ValueError(f\"The URL {url_record} could not be reached.\")\n",
+ "\n",
+ "\n",
+ "# Check that the config was downloaded correctly\n",
+ "print(f\"Config path: {config}\")\n",
+ "if not Path(config).exists():\n",
+ " print(f\"Could not find config at {config}: check that the dataset was downloaded correctly!\")\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "414d1700",
+ "metadata": {
+ "id": "414d1700"
+ },
+ "source": [
+ "## Training a CTD Model in DeepLabCut\n",
+ "\n",
+ "BUCTD (or bottom-up conditioned top-down), as its name suggests, requires a bottom-up model to provide conditions (or **pose proposals**) for the CTD model to fix. So the first step in getting a CTD model that can be used to run inference is to train a bottom-up model to provide conditions!\n",
+ "\n",
+ "We'll also **ensure that we're training the bottom-up and CTD models on the same train/test splits!** This is important: if you're training the models on different training images and evaluating them on different test images, then their results aren't comparable!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "8e808c35",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 81,
+ "status": "ok",
+ "timestamp": 1744357248719,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "8e808c35",
+ "outputId": "1a7777ba-a4d5-4777-973f-02497878617d"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Using 70% of the data in the training set.\n"
+ ]
+ }
+ ],
+ "source": [
+ "cfg = auxiliaryfunctions.read_config(config)\n",
+ "train_frac = cfg[\"TrainingFraction\"][0]\n",
+ "print(f\"Using {int(100 * train_frac)}% of the data in the training set.\")\n",
+ "\n",
+ "num_images = 112\n",
+ "train_images = int(train_frac * num_images)\n",
+ "\n",
+ "seed = 0\n",
+ "rng = np.random.default_rng(seed)\n",
+ "\n",
+ "train_indices = rng.choice(num_images, size=train_images, replace=False, shuffle=False).tolist()\n",
+ "test_indices = [idx for idx in range(num_images) if idx not in train_indices]\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d2165546",
+ "metadata": {
+ "id": "d2165546"
+ },
+ "source": [
+ "### Training a BU Model\n",
+ "\n",
+ "We'll take the simplest approach possible here and train a ResNet pose estimation model. As the CTD model will be used to improve the predictions made by the BU model, we want something light and fast rather than something heavy and slow!\n",
+ "\n",
+ "We'll start by **creating the shuffle for the bottom-up model (with index 1) with the selected train/test split**."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "8329fce1",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 427,
+ "status": "ok",
+ "timestamp": 1744357252179,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "8329fce1",
+ "outputId": "643bddfa-da4d-49d0-e241-849500d06fc1"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Utilizing the following graph: [[0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 10], [0, 11], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], [1, 11], [2, 3], [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], [2, 11], [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], [3, 11], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [4, 10], [4, 11], [5, 6], [5, 7], [5, 8], [5, 9], [5, 10], [5, 11], [6, 7], [6, 8], [6, 9], [6, 10], [6, 11], [7, 8], [7, 9], [7, 10], [7, 11], [8, 9], [8, 10], [8, 11], [9, 10], [9, 11], [10, 11]]\n",
+ "You passed a split with the following fraction: 70%\n",
+ "Creating training data for: Shuffle: 1 TrainFraction: 0.7\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "100%|██████████| 78/78 [00:00<00:00, 1613.55it/s]"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The training dataset is successfully created. Use the function 'train_network' to start training. Happy training!\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "BU_SHUFFLE = 1\n",
+ "\n",
+ "deeplabcut.create_training_dataset(\n",
+ " config,\n",
+ " Shuffles=[BU_SHUFFLE],\n",
+ " trainIndices=[train_indices],\n",
+ " testIndices=[test_indices],\n",
+ " net_type=\"resnet_50\",\n",
+ " engine=deeplabcut.Engine.PYTORCH,\n",
+ " userfeedback=False,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9bb714ec",
+ "metadata": {
+ "id": "9bb714ec"
+ },
+ "source": [
+ "We can then train the model defined in the created bottom-up shuffle. To make running this notebook a bit quicker, we'll **only train the BU model for 100 epochs**. The model should still perform well enough, and as we're less interested in the BU model than the CTD model we'll save a bit of time and compute here. Training the model should **take 10 to 20 minutes**, depending on your CPU and GPU performance.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "4ec8e03c",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000,
+ "referenced_widgets": [
+ "2e74326b630a4d4fa879ec3a154eecb4",
+ "3880c2d826f440d485bd49b562c58a6f",
+ "4aea0735770d4196bfb9b036017f65b2",
+ "069424f702f446cb8737e94a28b18588",
+ "da21a61d52cd46d79d88bb458b1cda45",
+ "7e4bae5e01234b49a350583d99998956",
+ "affa8c3978fa4b118d1fd4b5c055d464",
+ "c4fc0083fdd24badafea3df30ff9b2a5",
+ "5e9c160affc945748cbbfe8f6b76df3f",
+ "6a24ded1648a40e0926f6a66d2501207",
+ "1d6e05a559e34b389ff57424ad7ce3d1"
+ ]
+ },
+ "executionInfo": {
+ "elapsed": 1182867,
+ "status": "ok",
+ "timestamp": 1744358458536,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "4ec8e03c",
+ "outputId": "59489e99-078c-4ef7-c98b-930c34cf82e2"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Training with configuration:\n",
+ "data:\n",
+ " bbox_margin: 20\n",
+ " colormode: RGB\n",
+ " inference:\n",
+ " normalize_images: True\n",
+ " train:\n",
+ " affine:\n",
+ " p: 0.5\n",
+ " rotation: 30\n",
+ " scaling: [0.5, 1.25]\n",
+ " translation: 0\n",
+ " crop_sampling:\n",
+ " width: 448\n",
+ " height: 448\n",
+ " max_shift: 0.1\n",
+ " method: hybrid\n",
+ " gaussian_noise: 12.75\n",
+ " motion_blur: True\n",
+ " normalize_images: True\n",
+ "device: auto\n",
+ "metadata:\n",
+ " project_path: /content/trimice-dlc-2021-06-22\n",
+ " pose_config_path: /content/trimice-dlc-2021-06-22/dlc-models-pytorch/iteration-0/trimiceJun22-trainset70shuffle1/train/pytorch_config.yaml\n",
+ " bodyparts: ['snout', 'leftear', 'rightear', 'shoulder', 'spine1', 'spine2', 'spine3', 'spine4', 'tailbase', 'tail1', 'tail2', 'tailend']\n",
+ " unique_bodyparts: []\n",
+ " individuals: ['mus1', 'mus2', 'mus3']\n",
+ " with_identity: None\n",
+ "method: bu\n",
+ "model:\n",
+ " backbone:\n",
+ " type: ResNet\n",
+ " model_name: resnet50_gn\n",
+ " output_stride: 16\n",
+ " freeze_bn_stats: False\n",
+ " freeze_bn_weights: False\n",
+ " backbone_output_channels: 2048\n",
+ " heads:\n",
+ " bodypart:\n",
+ " type: DLCRNetHead\n",
+ " predictor:\n",
+ " type: PartAffinityFieldPredictor\n",
+ " num_animals: 3\n",
+ " num_multibodyparts: 12\n",
+ " num_uniquebodyparts: 0\n",
+ " nms_radius: 5\n",
+ " sigma: 1.0\n",
+ " locref_stdev: 7.2801\n",
+ " min_affinity: 0.05\n",
+ " graph: [[0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 10], [0, 11], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], [1, 11], [2, 3], [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], [2, 11], [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], [3, 11], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [4, 10], [4, 11], [5, 6], [5, 7], [5, 8], [5, 9], [5, 10], [5, 11], [6, 7], [6, 8], [6, 9], [6, 10], [6, 11], [7, 8], [7, 9], [7, 10], [7, 11], [8, 9], [8, 10], [8, 11], [9, 10], [9, 11], [10, 11]]\n",
+ " edges_to_keep: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65]\n",
+ " apply_sigmoid: True\n",
+ " clip_scores: False\n",
+ " target_generator:\n",
+ " type: SequentialGenerator\n",
+ " generators: [{'type': 'HeatmapPlateauGenerator', 'num_heatmaps': 12, 'pos_dist_thresh': 17, 'heatmap_mode': 'KEYPOINT', 'gradient_masking': False, 'generate_locref': True, 'locref_std': 7.2801}, {'type': 'PartAffinityFieldGenerator', 'graph': [[0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 10], [0, 11], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], [1, 11], [2, 3], [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], [2, 11], [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], [3, 11], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [4, 10], [4, 11], [5, 6], [5, 7], [5, 8], [5, 9], [5, 10], [5, 11], [6, 7], [6, 8], [6, 9], [6, 10], [6, 11], [7, 8], [7, 9], [7, 10], [7, 11], [8, 9], [8, 10], [8, 11], [9, 10], [9, 11], [10, 11]], 'width': 20}]\n",
+ " criterion:\n",
+ " heatmap:\n",
+ " type: WeightedBCECriterion\n",
+ " weight: 1.0\n",
+ " locref:\n",
+ " type: WeightedHuberCriterion\n",
+ " weight: 0.05\n",
+ " paf:\n",
+ " type: WeightedHuberCriterion\n",
+ " weight: 0.1\n",
+ " heatmap_config:\n",
+ " channels: [2048, 12]\n",
+ " kernel_size: [3]\n",
+ " strides: [2]\n",
+ " locref_config:\n",
+ " channels: [2048, 24]\n",
+ " kernel_size: [3]\n",
+ " strides: [2]\n",
+ " paf_config:\n",
+ " channels: [2048, 132]\n",
+ " kernel_size: [3]\n",
+ " strides: [2]\n",
+ " num_stages: 5\n",
+ "net_type: resnet_50\n",
+ "runner:\n",
+ " type: PoseTrainingRunner\n",
+ " gpus: None\n",
+ " key_metric: test.mAP\n",
+ " key_metric_asc: True\n",
+ " eval_interval: 10\n",
+ " optimizer:\n",
+ " type: AdamW\n",
+ " params:\n",
+ " lr: 0.0005\n",
+ " scheduler:\n",
+ " type: LRListScheduler\n",
+ " params:\n",
+ " lr_list: [[0.0001], [1e-05]]\n",
+ " milestones: [90, 120]\n",
+ " snapshots:\n",
+ " max_snapshots: 5\n",
+ " save_epochs: 25\n",
+ " save_optimizer_state: False\n",
+ "train_settings:\n",
+ " batch_size: 8\n",
+ " dataloader_workers: 0\n",
+ " dataloader_pin_memory: False\n",
+ " display_iters: 500\n",
+ " epochs: 100\n",
+ " seed: 42\n",
+ "Loading pretrained weights from Hugging Face hub (timm/resnet50_gn.a1h_in1k)\n",
+ "/usr/local/lib/python3.11/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning: \n",
+ "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
+ "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
+ "You will be able to reuse this secret in all of your notebooks.\n",
+ "Please note that authentication is recommended but still optional to access public models or datasets.\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "2e74326b630a4d4fa879ec3a154eecb4",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "model.safetensors: 0%| | 0.00/102M [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "[timm/resnet50_gn.a1h_in1k] Safe alternative available for 'pytorch_model.bin' (as 'model.safetensors'). Loading weights using safetensors.\n",
+ "Data Transforms:\n",
+ " Training: Compose([\n",
+ " Affine(always_apply=False, p=0.5, interpolation=1, mask_interpolation=0, cval=0, mode=0, scale={'x': (0.5, 1.25), 'y': (0.5, 1.25)}, translate_percent=None, translate_px={'x': (0, 0), 'y': (0, 0)}, rotate=(-30, 30), fit_output=False, shear={'x': (0.0, 0.0), 'y': (0.0, 0.0)}, cval_mask=0, keep_ratio=True, rotate_method='largest_box'),\n",
+ " PadIfNeeded(always_apply=True, p=1.0, min_height=448, min_width=448, pad_height_divisor=None, pad_width_divisor=None, position=PositionType.CENTER, border_mode=0, value=None, mask_value=None),\n",
+ " KeypointAwareCrop(always_apply=True, p=1.0, width=448, height=448, max_shift=0.1, crop_sampling='hybrid'),\n",
+ " MotionBlur(always_apply=False, p=0.5, blur_limit=(3, 7), allow_shifted=True),\n",
+ " GaussNoise(always_apply=False, p=0.5, var_limit=(0, 162.5625), per_channel=True, mean=0),\n",
+ " Normalize(always_apply=False, p=1.0, mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], max_pixel_value=255.0),\n",
+ "], p=1.0, bbox_params={'format': 'coco', 'label_fields': ['bbox_labels'], 'min_area': 0.0, 'min_visibility': 0.0, 'min_width': 0.0, 'min_height': 0.0, 'check_each_transform': True}, keypoint_params={'format': 'xy', 'label_fields': ['class_labels'], 'remove_invisible': False, 'angle_in_degrees': True, 'check_each_transform': True}, additional_targets={}, is_check_shapes=True)\n",
+ " Validation: Compose([\n",
+ " Normalize(always_apply=False, p=1.0, mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], max_pixel_value=255.0),\n",
+ "], p=1.0, bbox_params={'format': 'coco', 'label_fields': ['bbox_labels'], 'min_area': 0.0, 'min_visibility': 0.0, 'min_width': 0.0, 'min_height': 0.0, 'check_each_transform': True}, keypoint_params={'format': 'xy', 'label_fields': ['class_labels'], 'remove_invisible': False, 'angle_in_degrees': True, 'check_each_transform': True}, additional_targets={}, is_check_shapes=True)\n",
+ "Using 78 images and 34 for testing\n",
+ "\n",
+ "Starting pose model training...\n",
+ "--------------------------------------------------\n",
+ "Epoch 1/100 (lr=0.0005), train loss 0.08699\n",
+ "Epoch 2/100 (lr=0.0005), train loss 0.02512\n",
+ "Epoch 3/100 (lr=0.0005), train loss 0.02266\n",
+ "Epoch 4/100 (lr=0.0005), train loss 0.02117\n",
+ "Epoch 5/100 (lr=0.0005), train loss 0.02038\n",
+ "Epoch 6/100 (lr=0.0005), train loss 0.01967\n",
+ "Epoch 7/100 (lr=0.0005), train loss 0.01796\n",
+ "Epoch 8/100 (lr=0.0005), train loss 0.01739\n",
+ "Epoch 9/100 (lr=0.0005), train loss 0.01615\n",
+ "Training for epoch 10 done, starting evaluation\n",
+ "Epoch 10/100 (lr=0.0005), train loss 0.01435, valid loss 0.01307\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 52.10\n",
+ " metrics/test.rmse_pcutoff: 42.00\n",
+ " metrics/test.mAP: 28.63\n",
+ " metrics/test.mAR: 37.16\n",
+ "Epoch 11/100 (lr=0.0005), train loss 0.01340\n",
+ "Epoch 12/100 (lr=0.0005), train loss 0.01192\n",
+ "Epoch 13/100 (lr=0.0005), train loss 0.01072\n",
+ "Epoch 14/100 (lr=0.0005), train loss 0.01012\n",
+ "Epoch 15/100 (lr=0.0005), train loss 0.00917\n",
+ "Epoch 16/100 (lr=0.0005), train loss 0.00888\n",
+ "Epoch 17/100 (lr=0.0005), train loss 0.00848\n",
+ "Epoch 18/100 (lr=0.0005), train loss 0.00810\n",
+ "Epoch 19/100 (lr=0.0005), train loss 0.00742\n",
+ "Training for epoch 20 done, starting evaluation\n",
+ "Epoch 20/100 (lr=0.0005), train loss 0.00693, valid loss 0.00716\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 31.48\n",
+ " metrics/test.rmse_pcutoff: 29.16\n",
+ " metrics/test.mAP: 56.98\n",
+ " metrics/test.mAR: 63.14\n",
+ "Epoch 21/100 (lr=0.0005), train loss 0.00636\n",
+ "Epoch 22/100 (lr=0.0005), train loss 0.00645\n",
+ "Epoch 23/100 (lr=0.0005), train loss 0.00596\n",
+ "Epoch 24/100 (lr=0.0005), train loss 0.00534\n",
+ "Epoch 25/100 (lr=0.0005), train loss 0.00545\n",
+ "Epoch 26/100 (lr=0.0005), train loss 0.00507\n",
+ "Epoch 27/100 (lr=0.0005), train loss 0.00502\n",
+ "Epoch 28/100 (lr=0.0005), train loss 0.00492\n",
+ "Epoch 29/100 (lr=0.0005), train loss 0.00456\n",
+ "Training for epoch 30 done, starting evaluation\n",
+ "Epoch 30/100 (lr=0.0005), train loss 0.00456, valid loss 0.00507\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 15.23\n",
+ " metrics/test.rmse_pcutoff: 11.35\n",
+ " metrics/test.mAP: 79.63\n",
+ " metrics/test.mAR: 83.04\n",
+ "Epoch 31/100 (lr=0.0005), train loss 0.00453\n",
+ "Epoch 32/100 (lr=0.0005), train loss 0.00434\n",
+ "Epoch 33/100 (lr=0.0005), train loss 0.00425\n",
+ "Epoch 34/100 (lr=0.0005), train loss 0.00434\n",
+ "Epoch 35/100 (lr=0.0005), train loss 0.00403\n",
+ "Epoch 36/100 (lr=0.0005), train loss 0.00402\n",
+ "Epoch 37/100 (lr=0.0005), train loss 0.00389\n",
+ "Epoch 38/100 (lr=0.0005), train loss 0.00377\n",
+ "Epoch 39/100 (lr=0.0005), train loss 0.00365\n",
+ "Training for epoch 40 done, starting evaluation\n",
+ "Epoch 40/100 (lr=0.0005), train loss 0.00368, valid loss 0.00457\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 9.55\n",
+ " metrics/test.rmse_pcutoff: 8.73\n",
+ " metrics/test.mAP: 84.75\n",
+ " metrics/test.mAR: 86.86\n",
+ "Epoch 41/100 (lr=0.0005), train loss 0.00369\n",
+ "Epoch 42/100 (lr=0.0005), train loss 0.00369\n",
+ "Epoch 43/100 (lr=0.0005), train loss 0.00350\n",
+ "Epoch 44/100 (lr=0.0005), train loss 0.00338\n",
+ "Epoch 45/100 (lr=0.0005), train loss 0.00321\n",
+ "Epoch 46/100 (lr=0.0005), train loss 0.00337\n",
+ "Epoch 47/100 (lr=0.0005), train loss 0.00328\n",
+ "Epoch 48/100 (lr=0.0005), train loss 0.00354\n",
+ "Epoch 49/100 (lr=0.0005), train loss 0.00315\n",
+ "Training for epoch 50 done, starting evaluation\n",
+ "Epoch 50/100 (lr=0.0005), train loss 0.00304, valid loss 0.00439\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 7.60\n",
+ " metrics/test.rmse_pcutoff: 6.95\n",
+ " metrics/test.mAP: 86.14\n",
+ " metrics/test.mAR: 88.43\n",
+ "Epoch 51/100 (lr=0.0005), train loss 0.00314\n",
+ "Epoch 52/100 (lr=0.0005), train loss 0.00312\n",
+ "Epoch 53/100 (lr=0.0005), train loss 0.00306\n",
+ "Epoch 54/100 (lr=0.0005), train loss 0.00308\n",
+ "Epoch 55/100 (lr=0.0005), train loss 0.00303\n",
+ "Epoch 56/100 (lr=0.0005), train loss 0.00313\n",
+ "Epoch 57/100 (lr=0.0005), train loss 0.00320\n",
+ "Epoch 58/100 (lr=0.0005), train loss 0.00286\n",
+ "Epoch 59/100 (lr=0.0005), train loss 0.00284\n",
+ "Training for epoch 60 done, starting evaluation\n",
+ "Epoch 60/100 (lr=0.0005), train loss 0.00284, valid loss 0.00423\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 8.43\n",
+ " metrics/test.rmse_pcutoff: 7.91\n",
+ " metrics/test.mAP: 84.27\n",
+ " metrics/test.mAR: 86.76\n",
+ "Epoch 61/100 (lr=0.0005), train loss 0.00271\n",
+ "Epoch 62/100 (lr=0.0005), train loss 0.00283\n",
+ "Epoch 63/100 (lr=0.0005), train loss 0.00293\n",
+ "Epoch 64/100 (lr=0.0005), train loss 0.00282\n",
+ "Epoch 65/100 (lr=0.0005), train loss 0.00273\n",
+ "Epoch 66/100 (lr=0.0005), train loss 0.00286\n",
+ "Epoch 67/100 (lr=0.0005), train loss 0.00299\n",
+ "Epoch 68/100 (lr=0.0005), train loss 0.00299\n",
+ "Epoch 69/100 (lr=0.0005), train loss 0.00260\n",
+ "Training for epoch 70 done, starting evaluation\n",
+ "Epoch 70/100 (lr=0.0005), train loss 0.00268, valid loss 0.00412\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 6.21\n",
+ " metrics/test.rmse_pcutoff: 5.85\n",
+ " metrics/test.mAP: 89.50\n",
+ " metrics/test.mAR: 90.88\n",
+ "Epoch 71/100 (lr=0.0005), train loss 0.00254\n",
+ "Epoch 72/100 (lr=0.0005), train loss 0.00270\n",
+ "Epoch 73/100 (lr=0.0005), train loss 0.00281\n",
+ "Epoch 74/100 (lr=0.0005), train loss 0.00269\n",
+ "Epoch 75/100 (lr=0.0005), train loss 0.00262\n",
+ "Epoch 76/100 (lr=0.0005), train loss 0.00273\n",
+ "Epoch 77/100 (lr=0.0005), train loss 0.00260\n",
+ "Epoch 78/100 (lr=0.0005), train loss 0.00250\n",
+ "Epoch 79/100 (lr=0.0005), train loss 0.00270\n",
+ "Training for epoch 80 done, starting evaluation\n",
+ "Epoch 80/100 (lr=0.0005), train loss 0.00259, valid loss 0.00393\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 5.40\n",
+ " metrics/test.rmse_pcutoff: 5.14\n",
+ " metrics/test.mAP: 91.43\n",
+ " metrics/test.mAR: 92.25\n",
+ "Epoch 81/100 (lr=0.0005), train loss 0.00278\n",
+ "Epoch 82/100 (lr=0.0005), train loss 0.00270\n",
+ "Epoch 83/100 (lr=0.0005), train loss 0.00266\n",
+ "Epoch 84/100 (lr=0.0005), train loss 0.00266\n",
+ "Epoch 85/100 (lr=0.0005), train loss 0.00257\n",
+ "Epoch 86/100 (lr=0.0005), train loss 0.00250\n",
+ "Epoch 87/100 (lr=0.0005), train loss 0.00270\n",
+ "Epoch 88/100 (lr=0.0005), train loss 0.00247\n",
+ "Epoch 89/100 (lr=0.0005), train loss 0.00220\n",
+ "Training for epoch 90 done, starting evaluation\n",
+ "Epoch 90/100 (lr=0.0001), train loss 0.00224, valid loss 0.00405\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 8.61\n",
+ " metrics/test.rmse_pcutoff: 8.10\n",
+ " metrics/test.mAP: 88.81\n",
+ " metrics/test.mAR: 90.20\n",
+ "Epoch 91/100 (lr=0.0001), train loss 0.00224\n",
+ "Epoch 92/100 (lr=0.0001), train loss 0.00227\n",
+ "Epoch 93/100 (lr=0.0001), train loss 0.00205\n",
+ "Epoch 94/100 (lr=0.0001), train loss 0.00229\n",
+ "Epoch 95/100 (lr=0.0001), train loss 0.00206\n",
+ "Epoch 96/100 (lr=0.0001), train loss 0.00214\n",
+ "Epoch 97/100 (lr=0.0001), train loss 0.00192\n",
+ "Epoch 98/100 (lr=0.0001), train loss 0.00197\n",
+ "Epoch 99/100 (lr=0.0001), train loss 0.00208\n",
+ "Training for epoch 100 done, starting evaluation\n",
+ "Epoch 100/100 (lr=0.0001), train loss 0.00187, valid loss 0.00378\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 4.67\n",
+ " metrics/test.rmse_pcutoff: 4.59\n",
+ " metrics/test.mAP: 91.37\n",
+ " metrics/test.mAR: 91.96\n"
+ ]
+ }
+ ],
+ "source": [
+ "deeplabcut.train_network(\n",
+ " config,\n",
+ " shuffle=BU_SHUFFLE,\n",
+ " epochs=100,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "dd158943",
+ "metadata": {
+ "id": "dd158943"
+ },
+ "source": [
+ "And finally we evaluate it! If you trained for 100 epochs, you should get an mAP around 90, and RMSE around 4-5 pixels. When calling `evaluate_network`, the PAF graph is pruned (as described in [Lauer et al. 2022 (Nature Methods)](https://www.nature.com/articles/s41592-022-01443-0)) to boost performance."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "0a02cf7c",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 22610,
+ "status": "ok",
+ "timestamp": 1744358489662,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "0a02cf7c",
+ "outputId": "0548ab4e-ead0-4f73-8660-a56170f9c137"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "100%|██████████| 78/78 [00:05<00:00, 13.04it/s]\n",
+ "100%|██████████| 34/34 [00:05<00:00, 6.33it/s]\n",
+ "100%|██████████| 78/78 [00:05<00:00, 15.49it/s]\n",
+ "100%|██████████| 34/34 [00:02<00:00, 16.35it/s]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Evaluation results for DLC_Resnet50_trimiceJun22shuffle1_snapshot_080-results.csv (pcutoff: 0.01):\n",
+ "train rmse 2.42\n",
+ "train rmse_pcutoff 2.42\n",
+ "train mAP 97.23\n",
+ "train mAR 97.52\n",
+ "test rmse 3.95\n",
+ "test rmse_pcutoff 3.95\n",
+ "test mAP 92.69\n",
+ "test mAR 93.04\n",
+ "Name: (0.7, 1, 80, -1, 0.01), dtype: float64\n"
+ ]
+ }
+ ],
+ "source": [
+ "deeplabcut.evaluate_network(config, Shuffles=[BU_SHUFFLE])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9742e6a8",
+ "metadata": {
+ "id": "9742e6a8"
+ },
+ "source": [
+ "### Training the CTD Model\n",
+ "\n",
+ "As for the BU model, we need to start by creating the shuffle for the CTD model. We'll use `create_training_dataset_from_existing_split` to create a shuffle with the same train/test split as the BU shuffle. You could equivalently call `create_training_dataset(..., trainIndices=[train_indices], testIndices=[test_indices], ...)` again, as done above for the BU shuffle.\n",
+ "\n",
+ "In this notebook, we'll use a preNet CTD architecture. You can check out the paper for more information on how preNet models are designed!\n",
+ "\n",
+ "We'll also specify which model we want to use to provide conditions with the `ctd_conditions` parameter. As is indicated in the docstring:\n",
+ "\n",
+ "```\n",
+ "ctd_conditions: int | str | Path | tuple[int, str] | tuple[int, int] | None, default = None,\n",
+ " If using a conditional-top-down (CTD) net_type, this argument should be specified. It defines the\n",
+ " conditions that will be used with the CTD model. It can be either:\n",
+ " * A shuffle number (ctd_conditions: int), which must correspond to a bottom-up (BU) network type.\n",
+ " * A predictions file path (ctd_conditions: string | Path), which must correspond to a\n",
+ " .json or .h5 predictions file.\n",
+ " * A shuffle number and a particular snapshot (ctd_conditions: tuple[int, str] | tuple[int, int]),\n",
+ " which respectively correspond to a bottom-up (BU) network type and a particular snapshot name or\n",
+ " index.\n",
+ "```\n",
+ "\n",
+ "We'll use the index of the BU shuffle defined above, and the best snapshot that was saved (indicated through a -1). You can edit which model is used to provide conditions through the `pytorch_config` for the `CTD_SHUFFLE` (in this case shuffle `2`):\n",
+ "\n",
+ "```yaml\n",
+ "# Example: Loading the predictions for snapshot-250.pt of shuffle 1.\n",
+ "data:\n",
+ " conditions:\n",
+ " shuffle: 1\n",
+ " snapshot: snapshot-250.pt\n",
+ "\n",
+ "# Example: Loading the predictions for the last snapshot of shuffle 1.\n",
+ "data:\n",
+ " conditions:\n",
+ " shuffle: 1\n",
+ " snapshot_index: -1\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "0f75947d",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 267,
+ "status": "ok",
+ "timestamp": 1744358497035,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "0f75947d",
+ "outputId": "a99698bd-eb7d-4042-f72f-7ae7e1ed6a46",
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Utilizing the following graph: [[0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 10], [0, 11], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9], [1, 10], [1, 11], [2, 3], [2, 4], [2, 5], [2, 6], [2, 7], [2, 8], [2, 9], [2, 10], [2, 11], [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], [3, 9], [3, 10], [3, 11], [4, 5], [4, 6], [4, 7], [4, 8], [4, 9], [4, 10], [4, 11], [5, 6], [5, 7], [5, 8], [5, 9], [5, 10], [5, 11], [6, 7], [6, 8], [6, 9], [6, 10], [6, 11], [7, 8], [7, 9], [7, 10], [7, 11], [8, 9], [8, 10], [8, 11], [9, 10], [9, 11], [10, 11]]\n",
+ "You passed a split with the following fraction: 70%\n",
+ "Creating training data for: Shuffle: 2 TrainFraction: 0.7\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "100%|██████████| 78/78 [00:00<00:00, 8165.62it/s]"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The training dataset is successfully created. Use the function 'train_network' to start training. Happy training!\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "CTD_SHUFFLE = 2\n",
+ "\n",
+ "deeplabcut.create_training_dataset_from_existing_split(\n",
+ " config,\n",
+ " from_shuffle=BU_SHUFFLE,\n",
+ " shuffles=[CTD_SHUFFLE],\n",
+ " net_type=\"ctd_prenet_cspnext_m\",\n",
+ " engine=deeplabcut.Engine.PYTORCH,\n",
+ " ctd_conditions=(BU_SHUFFLE, -1),\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b2829415",
+ "metadata": {
+ "id": "b2829415"
+ },
+ "source": [
+ "#### (Optional/Advanced) Learning and visualizing generative sampling during training\n",
+ "\n",
+ "You can skip this section (and move on to _Training and Evaluating the CTD Model_) as it's simply to visualize how CTD models are trained, if you aren't interested in learning about it."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "odk3LbpOI0B3",
+ "metadata": {
+ "id": "odk3LbpOI0B3"
+ },
+ "source": [
+ "This section **uses some internal DeepLabCut functions which may seem a bit complicated if you're not used to using them; you can ignore most of the code and just read the text/comments and look at the outputs if you're more comfortable with that.**\n",
+ "\n",
+ "Conditional top-down models are trained using _generative sampling_, as introduced in PoseFix \\[1\\]. For every ground truth pose, we'll add some errors. The errors that can be introduced are:\n",
+ "\n",
+ "- Jitter error is defined as a small displacement from the GT keypoint.\n",
+ "- Swap error represents a confusion between the same or similar parts which belong to different persons.\n",
+ "- Inversion error occurs when a pose estimation model is confused between semantically similar parts that belong to the same instance.\n",
+ "- Miss error represents a large displacement from the GT keypoint position.\n",
+ "\n",
+ "It's important that \"enough\" generative sampling is applied (so the model can learn how to correct errors), but applying too much can be bad too! You want the model to learn to correct errors that are realistic (w.r.t. the task at hand), not just receive random points and have to learn by itself where the keypoints go. **The default parameters should work well on most datasets.**\n",
+ "\n",
+ "The way these keypoints are \"sampled\" can be visuallized below. We'll create a `dataset` (which is used by DeepLabCut for training) and sample some data from this dataset. You can see that every time we sample an image, we get different keypoint conditions that will be given to the model. This ensures that the model is well trained to deal with a variety of mistakes that can be made by the bottom up model. On the left side of the plots, you have an image with the ground truth keypoints annotated. On the right side of the plots, you have the pose conditions that the CTD model will receive and will be tasked with fixing.\n",
+ "\n",
+ "> \\[1\\]: Moon, Gyeongsik, Ju Yong Chang, and Kyoung Mu Lee. \"Posefix: Model-agnostic general human pose refinement network.\" Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "2a43ec8e",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 989
+ },
+ "executionInfo": {
+ "elapsed": 2099,
+ "status": "ok",
+ "timestamp": 1744358505139,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "2a43ec8e",
+ "outputId": "892a8a22-db67-4e64-a441-667e90faeecd",
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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17zmNXjuc5+Ln//5nweQHkru9/u4+OKLcf755+Od73wnvvSlL+HP/uzPsHXrVrzmNa85oPT+5Cc/QbFYxOzsLLZt24bHPvaxaDabuPTSSzE/P4/LL78cz372s/HJT34Sz33ucwEAH/7wh3HppZfi+c9/Pn7jN34DKysr+OEPf4hvfetbeMlLXgIA2LZtGx796EcnEF9YWMC//Mu/4JJLLsG+ffvwhje84YDS63Idi7r55psBAPPz8wBWWXb55Zfj+c9/Pt70pjfhW9/6Ft7+9rfj2muvxWc+8xkAq42Vpz3taVhYWMDv/M7vYHZ2Frfeeis+/elPp8J+1atehY9+9KN4+ctfjksvvRS33HIL3vve9+I///M/ceWVVwZHBJrNJr785S/jiU98Ih784AePzMN6+f/1r38dn/70p/Ha174WU1NTePe7343nPe95uP3225Ny+NGPfpTk8S1veQt6vR7e/OY3Y/PmzZlpeeITn4hLL710aPoOT+NhtVotXHjhhbjpppvw+te/HieddBI+8YlP4GUvexn27NmD3/iN30i5//jHP47FxUW86lWvQhRF+JM/+RP8/M//PH7yk58k5fm85z0PP/7xj/Hrv/7rOPHEE3Hvvffi//2//4fbb799aBjadRAUu3Jr7969MYD4Oc95ztC53bt3x9u3b0/+ms1mcu6lL31pDCD+nd/5nZSfz372szGA+A//8A9Tx5///OfHURTFN910UxzHcXzLLbfEAOKPfOQjQ/ECiN/85jcnv9/85jfHAOJXvOIVKXfPfe5z4/n5+eT397///RhA/NrXvjbl7iUveclQmKP0iU98IgYQf/WrXx1Kx4tf/OIh9xdccEF8wQUXDB1/6UtfGp9wwgnJ7+3btwfTImX61re+NXX8kY98ZHzOOeeMTPMFF1wQn3rqqcn1uvbaa+NLL700BhA/61nPiuM4jt/whjfEAOJ///d/T/wtLi7GJ510UnziiSfG/X4/juM4/rmf+7n49NNPz4zvkksuiY877rh4x44dqeMvetGL4pmZmdT94nK5VvWRj3wkBhB/6Utfirdv3x7fcccd8d/93d/F8/Pzcb1ej++8886EZa985StTfn/zN38zBhB/5StfieM4jj/zmc/EAOLvfOc7wfj+/d//PQYQf+xjH0sd/8IXvmAeZ/3gBz+IAcS/8Ru/kStvefkfx6uc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OF784hfjlFNOSd7wEccxbrnlFnz84x9HoVAYmt9n6VnPehae9KQn4fd+7/dw66234qyzzsIXv/hF/OM//iPe8IY3pObjvfKVr8Qf//Ef45WvfCUe9ahH4d/+7d9www03HHA+zj77bLz4xS/G+9//fuzduxePfexj8eUvfxk33XTTAYeZV694xSvw53/+57j44otxySWX4N5778Vf/uVf4vTTT08mTQOrQ8annXYa/v7v/x4Pe9jDsGHDBpxxxhk444wzDnkaAeB3fud38H/+z//B05/+dFx66aXYsGEDLr/8ctxyyy341Kc+lQzjP+1pT8OWLVvwuMc9Dps3b8a1116L9773vXjmM5+ZzOf54z/+Y3z1q1/F+eefj1/91V/Faaedhl27duF73/sevvSlL2HXrl33S55crnHTWWedhZe+9KX40Ic+hD179uCCCy7At7/9bVx++eV4znOegyc96UkAgMsvvxzvf//78dznPhdbt27F4uIiPvzhD2N6ejppQF5wwQV41atehbe//e34/ve/j6c97Wkol8u48cYb8YlPfAL/83/+Tzz/+c8PpuWxj30s3ve+9+G1r30tTj311NQbPr72ta/hn/7pn/CHf/iHANbH/7y67LLL8IUvfAFPeMIT8NrXvjZpkJ1++ukjXzt69tlno1gs4h3veAf27t2LarWKJz/5yeaoxK/92q/hgx/8IF72spfhu9/9Lk488UR88pOfxJVXXol3vetduRe9iG644QY85SlPwQtf+EKcdtppKJVK+MxnPoNt27bhRS960brCcuXUYVljPAa66aab4te85jXxQx/60LhWq8X1ej0+9dRT41e/+tXx97///ZTbl770pfHExIQZzuLiYvzGN74xfsADHhCXy+X45JNPjv/0T/80HgwGKXfNZjO+5JJL4pmZmXhqaip+4QtfGN97773BrV62b9+e8i9bJtxyyy3JsVarFV966aXx/Px8PDExET/rWc+K77jjjoO61YtOh+hv//Zv44c85CFxpVKJzz777PiKK64Y2uoljuP4P/7jP+JzzjknrlQqqXSFylTiHaULLrhg5PYscRzHN998c/z85z8/np2djWu1WnzeeefFn/vc51JuPvjBD8ZPfOIT4/n5+bharcZbt26Nf+u3fiveu3dvyt22bdvi173udfHxxx8fl8vleMuWLfFTnvKU+EMf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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAFECAYAAABWG1gIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9efhsWVXfj7/W2sM5VfX53KGbpgHFpmlmUPABAXEAFeEriIIgAmoYIwikxaDG6C8BHIIoKgFEAR+BRIgGEYwEwYA4Jg5IcAKUGRRpupu+9zNUnXP23mv9/ji3r1y6gWbs9KVez3Pv89Spc6r2qU/td62999rvJe7ubNmyZcuWLVu2bPmCQK/tBmzZsmXLli1btmz5/LEN/rZs2bJly5YtW76A2AZ/W7Zs2bJly5YtX0Bsg78tW7Zs2bJly5YvILbB35YtW7Zs2bJlyxcQ2+Bvy5YtW7Zs2bLlC4ht8Ldly5YtW7Zs2fIFxDb427Jly5YtW7Zs+QJiG/xt2bJly5YtW7Z8AbEN/rZcBRHhqU996rXdjE/IIx7xCHZ2dq7tZmzZsmXL//M89alPRUTOOHaTm9yERzziEdfo+nvc4x7c4x73+Ow3bMu1xjb4+zR5z3vewxOf+ERucYtbsFwuWS6X3OY2t+EJT3gCf/3Xf31tN+9zyj3ucQ9E5JP++0wDyPV6zVOf+lR+//d//7PS7o/mY+/hnHPO4Su+4iv4lV/5Fczss/5+W7Zs+dR58YtffEY/7fueW9ziFjzxiU/kkksuubab93F5y1vewnd913dx4xvfmK7rOOecc7jnPe/Ji170Ilpr13bzrpa3vvWtPPWpT+W9733vtd2ULZ8H4rXdgOsir371q/mO7/gOYox853d+J7e//e1RVd7+9rfzm7/5m/ziL/4i73nPe7jggguu7aZ+TvjRH/1RHvOYx5x+/Bd/8Rc8+9nP5kd+5Ee49a1vffr4l33Zl31G77Ner3na054G8DkZdX7xF38xT3/60wG49NJL+S//5b/w6Ec/mn/4h3/gp37qpz7r77dly5ZPjx/7sR/jwgsvZBgG/viP/5hf/MVf5DWveQ1/+7d/y3K5vLabdwa//Mu/zOMe9zjOP/98vvu7v5ub3/zm7O/v84Y3vIFHP/rR/PM//zM/8iM/cm03k7//+79H9V/mf9761rfytKc9jXvc4x7c5CY3OePc3/3d3/08t27L55pt8Pcp8q53vYuHPOQhXHDBBbzhDW/ghje84RnPP+MZz+B5z3veGZ3q6jg8PGS1Wn0um/o54xu/8RvPeNz3Pc9+9rP5xm/8xk8YpP2/ds9Hjx7lu77ru04/fuxjH8stb3lLnvvc5/LjP/7jpJSuxdZt2bLlSr7pm76JO93pTgA85jGP4dxzz+Xnfu7n+K3f+i0e+tCHXsut+xf+9E//lMc97nF85Vd+Ja95zWvY3d09/dyTnvQk3vSmN/G3f/u312IL/4Wu667xuTnnz2FLtlwbbJd9P0V++qd/msPDQ170ohddJfADiDFy8cUXc+Mb3/j0sSvz0971rndxn/vch93dXb7zO78TmAOiJz/5yaeXB255y1vyzGc+E3c/ff173/teRIQXv/jFV3m/j11evTK3453vfCePeMQjOHbsGEePHuWRj3wk6/X6jGvHceT7v//7Oe+889jd3eVbvuVb+Md//MfP8BM6sx1vfetbedjDHsbx48f56q/+auDj54884hGPOD3ifO9738t5550HwNOe9rSPu5T8T//0T9z//vdnZ2eH8847jx/4gR/4tJdVlssld73rXTk8POTSSy8F4N3vfjff/u3fzjnnnHP6+f/5P//nVa59znOew21ve1uWyyXHjx/nTne6Ey972cuu0tZHPepRnH/++XRdx21ve1t+5Vd+5dNq65YtX8h8/dd/PTCn3wDUWvnxH/9xLrroIrqu4yY3uQk/8iM/wjiOZ1z3pje9iXvf+95c73rXY7FYcOGFF/KoRz3qjHPMjGc961nc9ra3pe97zj//fB772MdyxRVXfNJ2XalVL33pS88I/K7kTne60xl5dtdE/2HW+Sc+8Ym86lWv4na3u91p/Xjta197lff44z/+Y77iK76Cvu+56KKLeP7zn3+1bf3onL8Xv/jFfPu3fzsAX/d1X3dab69Mubk6zf7whz/Mox/9aM4//3z6vuf2t789L3nJS84458rfrmc+85m84AUvOP33+Yqv+Ar+4i/+4oxzP/ShD/HIRz6SL/7iL6brOm54wxvyrd/6rdtl6M8R25m/T5FXv/rV3OxmN+Mud7nLp3RdrZV73/vefPVXfzXPfOYzWS6XuDvf8i3fwhvf+EYe/ehHc4c73IHXve51/OAP/iD/9E//xM///M9/2u188IMfzIUXXsjTn/503vzmN/PLv/zLXP/61+cZz3jG6XMe85jH8Ku/+qs87GEP4253uxu/93u/x33ve99P+z2vjm//9m/n5je/Of/pP/2nqwjaJ+K8887jF3/xF/ne7/1eHvCAB/Bt3/ZtwJlLya017n3ve3OXu9yFZz7zmbz+9a/nZ3/2Z7nooov43u/93k+rve9+97sJIXDs2DEuueQS7na3u7Fer7n44os599xzeclLXsK3fMu38Bu/8Rs84AEPAOCFL3whF198MQ960IP4vu/7PoZh4K//+q/5sz/7Mx72sIcBcMkll3DXu971tIifd955/M7v/A6PfvSj2dvb40lPetKn1d4tW74Qede73gXAueeeC8xa9pKXvIQHPehBPPnJT+bP/uzPePrTn87b3vY2XvnKVwJzsHKve92L8847jx/+4R/m2LFjvPe97+U3f/M3z3jtxz72sbz4xS/mkY98JBdffDHvec97eO5zn8v//b//lz/5kz/5uCsC6/WaN7zhDXzt134tX/IlX/JJ7+FT1f8//uM/5jd/8zd5/OMfz+7uLs9+9rN54AMfyPvf//7Tn8Pf/M3fnL7Hpz71qdRaecpTnsL555//CdvytV/7tVx88cVXSd/56DSej2az2XCPe9yDd77znTzxiU/kwgsv5OUvfzmPeMQjOHHiBN/3fd93xvkve9nL2N/f57GPfSwiwk//9E/zbd/2bbz73e8+/Xk+8IEP5O/+7u/4N//m33CTm9yED3/4w/yv//W/eP/733+VZegtnwV8yzXm5MmTDvj973//qzx3xRVX+KWXXnr633q9Pv3cwx/+cAf8h3/4h8+45lWvepUD/hM/8RNnHH/Qgx7kIuLvfOc73d39Pe95jwP+ohe96CrvC/hTnvKU04+f8pSnOOCPetSjzjjvAQ94gJ977rmnH7/lLW9xwB//+Mefcd7DHvawq7zmJ+PlL3+5A/7GN77xKu146EMfepXz7373u/vd7373qxx/+MMf7hdccMHpx5deeunHbcuVn+mP/diPnXH8y7/8y/2Od7zjJ23z3e9+d7/VrW51+u/1tre9zS+++GIH/H73u5+7uz/pSU9ywP/oj/7o9HX7+/t+4YUX+k1uchNvrbm7+7d+67f6bW9720/4fo9+9KP9hje8oV922WVnHH/IQx7iR48ePeP7smXLlpkXvehFDvjrX/96v/TSS/0DH/iA/9qv/Zqfe+65vlgs/B//8R9Pa9ljHvOYM679gR/4AQf8937v99zd/ZWvfKUD/hd/8Rcf9/3+6I/+yAF/6Utfesbx1772tVd7/KP5q7/6Kwf8+77v+67RvV1T/XefdT7nfMaxK9/vOc95zulj97///b3ve3/f+953+thb3/pWDyH4x/7cX3DBBf7whz/89OOr0/Er+VjNftaznuWA/+qv/urpY9M0+Vd+5Vf6zs6O7+3tufu//Hade+65/pGPfOT0ub/1W7/lgP/2b/+2u8+/n4D/zM/8zCf6yLZ8Ftku+34K7O3tAVytxcg97nEPzjvvvNP/fuEXfuEq53zsbNRrXvMaQghcfPHFZxx/8pOfjLvzO7/zO592Wx/3uMed8fhrvuZruPzyy0/fw2te8xqAq7z3Z3sG6mPb8dnm6u7z3e9+9zW69u1vf/vpv9etb31rnvOc53Df+9739FLsa17zGu585zufXq6G+W//Pd/zPbz3ve/lrW99KwDHjh3jH//xH6+yjHEl7s4rXvEK7ne/++HuXHbZZaf/3fve9+bkyZO8+c1v/nRuf8uWLwjuec97ct5553HjG9+YhzzkIezs7PDKV76SL/qiLzqtZf/23/7bM6558pOfDHA6TePYsWPAvHpTSrna93n5y1/O0aNH+cZv/MYz+ukd73hHdnZ2eOMb3/hx23iltl7dcu/V8anq/z3veU8uuuii04+/7Mu+jCNHjpzWu9Yar3vd67j//e9/xszjrW99a+5973tfozZdU17zmtdwgxvc4Ix8y5QSF198MQcHB/zBH/zBGed/x3d8B8ePHz/9+Gu+5msATrd9sViQc+b3f//3r9Hy+pbPnO2y76fAlZ364ODgKs89//nPZ39/n0suueSMTQRXEmPki7/4i8849r73vY8b3ehGVxGLK6fa3/e+933abf3YZYcrO94VV1zBkSNHeN/73oeqniEmALe85S0/7fe8Oi688MLP6ut9NH3fn84LvJLjx49fY/G4yU1uwgtf+MLTFhI3v/nNuf71r3/6+fe9731Xu7z/0X+f293udvy7f/fveP3rX8+d73xnbnazm3Gve92Lhz3sYXzVV30VMO8kPnHiBC94wQt4wQtecLVt+fCHP3yN2rxlyxciv/ALv8AtbnELYoycf/753PKWtzy9qe5KLbvZzW52xjU3uMENOHbs2Gkdvfvd784DH/hAnva0p/HzP//z3OMe9+D+978/D3vYw05vfnjHO97ByZMnz9CBj+YT9dMjR44AsL+/f43u6VPV/6tbSv5ovbv00kvZbDbc/OY3v8p5t7zlLU8HyZ8N3ve+93Hzm9/8Khsbr2nbP/r3CObNJ894xjN48pOfzPnnn89d73pXvvmbv5l/9a/+FTe4wQ0+a+3e8i9sg79PgaNHj3LDG97wandrXRkkfLzk1K7rPukO4I/Hx5pzXskn2tgQQrja4/4p5N19NlgsFlc5JiJX245PdaPGx7vHa8pqteKe97znZ/QaMAve3//93/PqV7+a1772tbziFa/gec97Hv/xP/5Hnva0p532Dfyu7/ouHv7wh1/ta3ymtjhbtpzN3PnOdz692/fj8fF08qOf/43f+A3+9E//lN/+7d/mda97HY961KP42Z/9Wf70T/+UnZ0dzIzrX//6vPSlL73a1/jYweZHc7Ob3YwYI3/zN3/zyW/o0+D/FU3/dLgmbX/Sk57E/e53P171qlfxute9jv/wH/4DT3/60/m93/s9vvzLv/zz1dQvGLbLvp8i973vfXnnO9/Jn//5n3/Gr3XBBRfwwQ9+8Cojxbe//e2nn4d/GSWdOHHijPM+k5nBCy64ADM7nTh9JX//93//ab/mNeX48eNXuRe46v18MjH/XHPBBRdc7efxsX8fmAPJ7/iO7+BFL3oR73//+7nvfe/LT/7kTzIMw+nd1K017nnPe17tv48307Bly5ZPzJVa9o53vOOM45dccgknTpy4it/qXe96V37yJ3+SN73pTbz0pS/l7/7u7/i1X/s1AC666CIuv/xyvuqrvupq++ntb3/7j9uO5XLJ13/91/OHf/iHfOADH7hG7b4m+n9NOe+881gsFlf5HOCa6fqnorcXXHAB73jHO65iiP/ptv1KLrroIp785Cfzu7/7u/zt3/4t0zTxsz/7s5/Wa235xGyDv0+RH/qhH2K5XPKoRz3qah3mP5VR2H3ucx9aazz3uc894/jP//zPIyJ80zd9EzAvJ1zvetfjD//wD88473nPe96ncQczV772s5/97DOOP+tZz/q0X/OactFFF/H2t7/9tJ0KwF/91V/xJ3/yJ2ecd6V569UFip8P7nOf+/Dnf/7n/J//839OHzs8POQFL3gBN7nJTbjNbW4DwOWXX37GdTlnbnOb2+DulFIIIfDABz6QV7ziFVc7a/zRn8OWLVs+Ne5zn/sAV9Wun/u5nwM47WBwxRVXXEWf73CHOwCctoR58IMfTGuNH//xH7/K+9RaP6kWPeUpT8Hd+e7v/u6rTQ/6y7/8y9N2KNdU/68pIQTufe9786pXvYr3v//9p4+/7W1v43Wve90nvf5KD9Zrorf3uc99+NCHPsSv//qvnz5Wa+U5z3kOOzs73P3ud/+U2r5erxmG4YxjF110Ebu7u1ex69ny2WG77PspcvOb35yXvexlPPShD+WWt7zl6Qof7s573vMeXvayl6GqV8nvuzrud7/78XVf93X86I/+KO9973u5/e1vz+/+7u/yW7/1WzzpSU86Ix/vMY95DD/1Uz/FYx7zGO50pzvxh3/4h/zDP/zDp30fd7jDHXjoQx/K8573PE6ePMnd7nY33vCGN/DOd77z037Na8qjHvUofu7nfo573/vePPrRj+bDH/4wv/RLv8Rtb3vb00nTMC8Z3+Y2t+HXf/3XucUtbsE555zD7W53O253u9t9ztsI8MM//MP8t//23/imb/omLr74Ys455xxe8pKX8J73vIdXvOIVp5fx73Wve3GDG9yAr/qqr+L888/nbW97G8997nO5733vezqf56d+6qd44xvfyF3uchf+9b/+19zmNrfhIx/5CG9+85t5/etfz0c+8pHPyz1t2XK2cfvb356HP/zhvOAFL+DEiRPc/e5358///M95yUtewv3vf3++7uu+DoCXvOQlPO95z+MBD3gAF110Efv7+7zwhS/kyJEjpwPIu9/97jz2sY/l6U9/Om95y1u4173uRUqJd7zjHbz85S/nP//n/8yDHvSgj9uWu93tbvzCL/wCj3/847nVrW51RoWP3//93+d//I//wU/8xE8An5r+X1Oe9rSn8drXvpav+Zqv4fGPf/zpgOy2t73tJy07eoc73IEQAs94xjM4efIkXdfx9V//9Ve7KvE93/M9PP/5z+cRj3gEf/mXf8lNbnITfuM3foM/+ZM/4VnPetY13vRyJf/wD//AN3zDN/DgBz+Y29zmNsQYeeUrX8kll1zCQx7ykE/ptbZcQ66VPcZnAe985zv9e7/3e/1mN7uZ933vi8XCb3WrW/njHvc4f8tb3nLGuQ9/+MN9tVpd7evs7+/793//9/uNbnQjTyn5zW9+c/+Zn/kZN7Mzzluv1/7o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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAFECAYAAABWG1gIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAADXYUlEQVR4nOz9ebxsR3Udjq/T852nN0igEUkINIAMCDCTBMboZzA2GIwBD2BEwuTIOMSO43wTg+0EY2NDGI1IDHIMJsEDHkLAYbIBDyDJjEISAqGBQdKb77tTd98+vz/u26fXWb3rdD/pivfO7Vrvc193n1Pjrl3r1D61qypJ0zRFRERERERERETEWKByogsQERERERERERHx/UMc/EVEREREREREjBHi4C8iIiIiIiIiYowQB38REREREREREWOEOPiLiIiIiIiIiBgjxMFfRERERERERMQYIQ7+IiIiIiIiIiLGCHHwFxERERERERExRoiDv4iIiIiIiIiIMUIc/EUMIEkSvPa1rz3RxSjEi1/8YkxPT5/oYkRERESc9Hjta1+LJEly18466yy8+MUvHin+5Zdfjssvv3z7CxZxwhAHf/cSt956K37hF34BD37wgzE5OYnJyUlccMEFeNWrXoUvfelLJ7p49ysuv/xyJEky9O++DiBXV1fx2te+Fp/61Ke2pdwMrcPi4iIuvfRS/OEf/iF6vd625xcREXH8eO9735vrp61WCw9+8IPxC7/wC7jrrrtOdPGC+MIXvoCf+Zmfwemnn45ms4nFxUU89alPxXve8x5sbm6e6OK5uOGGG/Da174W3/rWt050USK+D6id6AKUEX/zN3+Dn/qpn0KtVsNP//RP4+EPfzgqlQpuvPFG/Pmf/zne+c534tZbb8WZZ555oot6v+A//sf/iJe+9KXZ789//vN4y1vegl/7tV/DQx/60Oz6wx72sPuUz+rqKl73utcBwP1idZ522ml4/etfDwC455578Ed/9Ee48sorcfPNN+O3f/u3tz2/iIiIe4ff+I3fwNlnn4319XV85jOfwTvf+U58+MMfxle+8hVMTk6e6OLl8N//+3/Hy1/+cuzduxc/+7M/i/POOw/Ly8v4+Mc/jiuvvBLf/e538Wu/9msnupi46aabUKn03//ccMMNeN3rXofLL78cZ511Vi7s3/7t336fSxdxfyMO/o4T3/jGN/D85z8fZ555Jj7+8Y/j1FNPzd1/wxvegHe84x25TuVhZWUFU1NT92dR7zf88A//cO53q9XCW97yFvzwD/9w4SDtZKvz3NwcfuZnfib7/bKXvQznn38+3va2t+E3f/M3Ua/XT2DpIiIiDD/yIz+CRz3qUQCAl770pVhaWsLv//7v4y//8i/xghe84ASXro9/+qd/wstf/nL84A/+ID784Q9jZmYmu/fqV78a1157Lb7yla+cwBL20Ww2Rw7baDTux5JEnAjEad/jxO/8zu9gZWUF73nPewYGfgBQq9Vw1VVX4fTTT8+umX/aN77xDTz96U/HzMwMfvqnfxrA1oDoNa95TTY9cP755+ONb3wj0jTN4n/rW99CkiR473vfO5CfTq+ab8ctt9yCF7/4xZifn8fc3Bx+/ud/Hqurq7m4Gxsb+KVf+iXs3r0bMzMz+LEf+zHceeed91FC+XLccMMNeOELX4iFhQU84QlPABD2H3nxi1+cWZzf+ta3sHv3bgDA6173uuBU8re//W0861nPwvT0NHbv3o1/9+/+3b2eVpmcnMRjH/tYrKys4J577gEAfPOb38RP/uRPYnFxMbv/f/7P/xmI+9a3vhUXXnghJicnsbCwgEc96lF4//vfP1DWl7zkJdi7dy+azSYuvPBC/OEf/uG9KmtExDjjKU95CoAt9xsA6Ha7+M3f/E2cc845aDabOOuss/Brv/Zr2NjYyMW79tprccUVV2DXrl2YmJjA2WefjZe85CW5ML1eD29+85tx4YUXotVqYe/evXjZy16GgwcPDi2XcdX73ve+3MDP8KhHPSrnZzcK/wNbPP8Lv/AL+NCHPoSLLroo44+PfOQjA3l85jOfwaWXXopWq4VzzjkH73rXu9yyss/fe9/7XvzkT/4kAODJT35yxrfmcuNx9t13340rr7wSe/fuRavVwsMf/nBcc801uTD27HrjG9+Iq6++OmufSy+9FJ///OdzYb/3ve/h53/+53Haaaeh2Wzi1FNPxY//+I/Haej7CfHN33Hib/7mb3DuuefiMY95zHHF63a7uOKKK/CEJzwBb3zjGzE5OYk0TfFjP/Zj+OQnP4krr7wSl1xyCT760Y/il3/5l/Htb38bb3rTm+51OZ/3vOfh7LPPxutf/3pcf/31+O///b9jz549eMMb3pCFeelLX4o//uM/xgtf+EI87nGPwyc+8Qk84xnPuNd5evjJn/xJnHfeefiv//W/DhBaEXbv3o13vvOdeMUrXoFnP/vZ+Imf+AkA+ankzc1NXHHFFXjMYx6DN77xjfjYxz6G3/u938M555yDV7ziFfeqvN/85jdRrVYxPz+Pu+66C4973OOwurqKq666CktLS7jmmmvwYz/2Y/jTP/1TPPvZzwYAvPvd78ZVV12F5z73ufjFX/xFrK+v40tf+hL++Z//GS984QsBAHfddRce+9jHZiS+e/du/N//+39x5ZVX4siRI3j1q199r8obETGO+MY3vgEAWFpaArDFZddccw2e+9zn4jWveQ3++Z//Ga9//evxta99DX/xF38BYGuw8rSnPQ27d+/Gr/7qr2J+fh7f+ta38Od//ue5tF/2spfhve99L37+538eV111FW699Va87W1vw7/8y7/gs5/9bHBGYHV1FR//+MfxpCc9CWecccbQOhwv/3/mM5/Bn//5n+OVr3wlZmZm8Ja3vAXPec5zcPvtt2dy+PKXv5zV8bWvfS263S5+/dd/HXv37i0sy5Oe9CRcddVVA+477MbDWFtbw+WXX45bbrkFv/ALv4Czzz4bH/zgB/HiF78Yhw4dwi/+4i/mwr///e/H8vIyXvaylyFJEvzO7/wOfuInfgLf/OY3M3k+5znPwVe/+lX8m3/zb3DWWWfh7rvvxv/7f/8Pt99++8A0dMQ2II0YGYcPH04BpM961rMG7h08eDC95557sr/V1dXs3ote9KIUQPqrv/qruTgf+tCHUgDpb/3Wb+WuP/e5z02TJElvueWWNE3T9NZbb00BpO95z3sG8gWQ/vqv/3r2+9d//ddTAOlLXvKSXLhnP/vZ6dLSUvb7C1/4QgogfeUrX5kL98IXvnAgzWH44Ac/mAJIP/nJTw6U4wUveMFA+Msuuyy97LLLBq6/6EUvSs8888zs9z333BMsi8n0N37jN3LXf+AHfiB95CMfObTMl112WfqQhzwka6+vfe1r6VVXXZUCSJ/5zGemaZqmr371q1MA6ac//eks3vLycnr22WenZ511Vrq5uZmmaZr++I//eHrhhRcW5nfllVemp556arpv377c9ec///np3NxcTl8iIiK28J73vCcFkH7sYx9L77nnnvSOO+5IP/CBD6RLS0vpxMREeuedd2Zc9tKXvjQX99/9u3+XAkg/8YlPpGma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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def plot_generative_sampling(dataset: dlc_torch.PoseDataset) -> None:\n",
+ " # Sample the same image 3 times and plot the results\n",
+ " for i in range(3):\n",
+ " item = dataset[0]\n",
+ "\n",
+ " # Remove ImageNet normalization from the image so it displays well\n",
+ " mean = np.array([0.485, 0.456, 0.406])\n",
+ " std = np.array([0.229, 0.224, 0.225])\n",
+ " img = item[\"image\"].transpose((1, 2, 0))\n",
+ " img = np.clip(img * std + mean, 0, 1)\n",
+ "\n",
+ " # Get the ground trouth and \"conditional pose\"\n",
+ " gt_pose = item[\"annotations\"][\"keypoints\"][0]\n",
+ " gen_samples = item[\"context\"][\"cond_keypoints\"][0]\n",
+ "\n",
+ " fig, axs = plt.subplots(1, 2, figsize=(8, 4))\n",
+ " for ax in axs:\n",
+ " ax.imshow(img)\n",
+ " ax.axis(\"off\")\n",
+ "\n",
+ " # plot the ground truth on the left and conditions on the right\n",
+ " for ax, title, keypoints in zip(\n",
+ " axs,\n",
+ " [\"Ground Truth Pose\", \"Pose Conditions\"],\n",
+ " [gt_pose, gen_samples],\n",
+ " ):\n",
+ " ax.set_title(title)\n",
+ " for x, y, vis in keypoints:\n",
+ " if vis > 0:\n",
+ " ax.scatter([x], [y])\n",
+ "\n",
+ "\n",
+ "ctd_loader = dlc_torch.DLCLoader(config, shuffle=CTD_SHUFFLE)\n",
+ "\n",
+ "transform = dlc_torch.build_transforms(ctd_loader.model_cfg[\"data\"][\"train\"])\n",
+ "dataset = ctd_loader.create_dataset(transform, mode=\"train\", task=ctd_loader.pose_task)\n",
+ "\n",
+ "# Fix the seeds for reproducibility; you can change the seed from `0` to another value\n",
+ "# to change the results\n",
+ "dlc_torch.fix_seeds(0)\n",
+ "plot_generative_sampling(dataset)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "50d4a150",
+ "metadata": {
+ "id": "50d4a150"
+ },
+ "source": [
+ "The generative sampling can be parameterized through the `pytorch_config.yaml` as well. Let's play around with these parameters a bit and see how that changes the conditions that will be given to the model.\n",
+ "\n",
+ "First, we'll just lower the `keypoint_sigmas`, which impacts how much pose conditions can move during jittering."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "d39ee88c",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 989
+ },
+ "executionInfo": {
+ "elapsed": 1669,
+ "status": "ok",
+ "timestamp": 1744358509345,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "d39ee88c",
+ "outputId": "58637ccc-53b2-42e9-9eff-4235da1e939b"
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAFECAYAAABWG1gIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC7xUlEQVR4nO39eZwkV3Uljp/IPbPWrt4E1ooQWkHCWtiRwIAMGBvMLi8IxJh1ZHmwPR77OwMytjE2BobVCP8MmjEYD6sNxgizmcXGSOwgCS1oBSF1t3qrJSsrM+P3R/WNOnHjvsis7uqursh7Pp1dmRFvue/Feyfeee/GiyiO4xgOh8PhcDgcjpFAab0NcDgcDofD4XAcOfjgz+FwOBwOh2OE4IM/h8PhcDgcjhGCD/4cDofD4XA4Rgg++HM4HA6Hw+EYIfjgz+FwOBwOh2OE4IM/h8PhcDgcjhGCD/4cDofD4XA4Rgg++HM4HA6Hw+EYIfjgz5FBFEV43etet95m5OLSSy/F+Pj4epvhcDgcRz1e97rXIYqi1LETTzwRl1566VDxL7roIlx00UVrb5hj3eCDv4PEbbfdhle/+tV4yEMeglarhVarhTPOOAOvetWr8L3vfW+9zTusuOiiixBF0cDPoQ4g5+fn8brXvQ5f+tKX1sRuhi7DzMwMzj//fPzt3/4t+v3+mufncDhWj/e///2pftpoNPCQhzwEr371q3Hvvfeut3lBfOc738Gv//qv47jjjkO9XsfMzAye9KQn4X3vex96vd56m2fi+uuvx+te9zrcfvvt622K4wigst4GbER86lOfwvOf/3xUKhX82q/9Gs4++2yUSiXceOON+NjHPoZ3v/vduO2223DCCSest6mHBX/0R3+El770pcnva6+9Fm9729vwh3/4hzj99NOT4w972MMOKZ/5+XlceeWVAHBYVOexxx6LN7zhDQCAHTt24P/8n/+Dyy67DDfddBP+/M//fM3zczgcB4c//uM/xkknnYR2u42vfvWrePe7341Pf/rT+MEPfoBWq7Xe5qXwN3/zN3j5y1+O7du34zd+4zdwyimnYP/+/fj85z+Pyy67DPfccw/+8A//cL3NxI9+9COUSivzP9dffz2uvPJKXHTRRTjxxBNTYT/72c8eYeschxs++Fslbr31VrzgBS/ACSecgM9//vN4wAMekDr/xje+Ee9617tSncrC3NwcxsbGDqephw1PfvKTU78bjQbe9ra34clPfnLuIO1oK/PU1BR+/dd/Pfn9spe9DKeeeire8Y534PWvfz2q1eo6WudwOARPfepTcd555wEAXvrSl2Lz5s1485vfjH/8x3/EC1/4wnW2bgVf//rX8fKXvxyPetSj8OlPfxoTExPJuSuuuALXXXcdfvCDH6yjhSuo1+tDh63VaofREsd6wJd9V4m/+Iu/wNzcHN73vvdlBn4AUKlUcPnll+O4445Ljol/2q233oqnPe1pmJiYwK/92q8BWB4QveY1r0mWB0499VS86U1vQhzHSfzbb78dURTh/e9/fyY/vbwqvh233HILLr30UkxPT2NqagovfvGLMT8/n4q7uLiI3/md38HWrVsxMTGBX/7lX8bdd999iDWUtuP666/HJZdcgk2bNuGxj30sgLD/yKWXXpoozttvvx1bt24FAFx55ZXBpeSf/OQneOYzn4nx8XFs3boVv/u7v3vQyyqtVguPfOQjMTc3hx07dgAAfvzjH+O5z30uZmZmkvP//M//nIn79re/HWeeeSZarRY2bdqE8847Dx/84Acztr7kJS/B9u3bUa/XceaZZ+Jv//ZvD8pWh2OU8cQnPhHAsvsNAHS7Xbz+9a/HySefjHq9jhNPPBF/+Id/iMXFxVS86667DhdffDG2bNmCZrOJk046CS95yUtSYfr9Pt761rfizDPPRKPRwPbt2/Gyl70Mu3fvHmiXcNUHPvCB1MBPcN5556X87Ibhf2CZ51/96lfjE5/4BM4666yEPz7zmc9k8vjqV7+K888/H41GAyeffDLe8573mLayz9/73/9+PPe5zwUAPOEJT0j4VlxuLM6+7777cNlll2H79u1oNBo4++yzcfXVV6fCyL3rTW96E6666qrk+px//vm49tprU2F/9rOf4cUvfjGOPfZY1Ot1POABD8Cv/Mqv+DL0YYLP/K0Sn/rUp/DgBz8Yj3jEI1YVr9vt4uKLL8ZjH/tYvOlNb0Kr1UIcx/jlX/5lfPGLX8Rll12Gc845B9dccw1+7/d+Dz/5yU/wlre85aDtfN7znoeTTjoJb3jDG/Ctb30Lf/M3f4Nt27bhjW98YxLmpS99Kf7u7/4Ol1xyCR796EfjC1/4Ap7+9KcfdJ4Wnvvc5+KUU07Bn/3Zn2UILQ9bt27Fu9/9brziFa/As571LPzqr/4qgPRScq/Xw8UXX4xHPOIReNOb3oTPfe5z+Ku/+iucfPLJeMUrXnFQ9v74xz9GuVzG9PQ07r33Xjz60Y/G/Pw8Lr/8cmzevBlXX301fvmXfxkf+chH8KxnPQsA8N73vheXX345nvOc5+C3f/u30W638b3vfQ//+Z//iUsuuQQAcO+99+KRj3xkQuJbt27Fv/zLv+Cyyy7Dvn37cMUVVxyUvQ7HKOLWW28FAGzevBnAMpddffXVeM5znoPXvOY1+M///E+84Q1vwA033ICPf/zjAJYHK095ylOwdetW/MEf/AGmp6dx++2342Mf+1gq7Ze97GV4//vfjxe/+MW4/PLLcdttt+Ed73gHvv3tb+NrX/tacEVgfn4en//85/H4xz8exx9//MAyrJb/v/rVr+JjH/sYXvnKV2JiYgJve9vb8OxnPxt33nlnUg/f//73kzK+7nWvQ7fbxWtf+1ps374915bHP/7xuPzyyzPuO+zGw1hYWMBFF12EW265Ba9+9atx0kkn4cMf/jAuvfRS7NmzB7/927+dCv/BD34Q+/fvx8te9jJEUYS/+Iu/wK/+6q/ixz/+cVKfz372s/HDH/4Q//W//leceOKJuO+++/Cv//qvuPPOOzPL0I41QOwYGnv37o0BxM985jMz53bv3h3v2LEj+czPzyfnXvSiF8UA4j/4gz9IxfnEJz4RA4j/5E/+JHX8Oc95ThxFUXzLLbfEcRzHt912Wwwgft/73pfJF0D82te+Nvn92te+NgYQv+QlL0mFe9aznhVv3rw5+f2d73wnBhC/8pWvTIW75JJLMmkOwoc//OEYQPzFL34xY8cLX/jCTPgLL7wwvvDCCzPHX/SiF8UnnHBC8nvHjh1BW6RO//iP/zh1/OEPf3h87rnnDrT5wgsvjE877bTket1www3x5ZdfHgOIn/GMZ8RxHMdXXHFFDCD+yle+ksTbv39/fNJJJ8Unnnhi3Ov14jiO41/5lV+JzzzzzNz8LrvssvgBD3hAvHPnztTxF7zgBfHU1FSqvTgcjmW8733viwHEn/vc5+IdO3bEd911V/yhD30o3rx5c9xsNuO777474bKXvvSlqbi/+7u/GwOIv/CFL8RxHMcf//jHYwDxtddeG8zvK1/5Sgwg/sAHPpA6/pnPfMY8zvjud78bA4h/+7d/e6iyDcv/cbzM87VaLXVM8nv729+eHHvmM58ZNxqN+I477kiOXX/99XG5XI717f6EE06IX/SiFyW/LR4XaM5+61vfGgOI/+7v/i451ul04kc96lHx+Ph4vG/fvjiOV+5dmzdvju+///4k7D/+4z/GAOJPfvKTcRwv3z8BxH/5l3+ZV2WONYQv+64C+/btAwBzi5GLLroIW7duTT7vfOc7M2H0bNSnP/1plMtlXH755anjr3nNaxDHMf7lX/7loG19+ctfnvr9uMc9Drt27UrK8OlPfxoAMnmv9QyUtmOtYZXzxz/+8VBxb7zxxuR6nX766Xj729+Opz/96clS7Kc//WlccMEFyXI1sHztf+u3fgu33347rr/+egDA9PQ07r777swyhiCOY3z0ox/FM57xDMRxjJ07dyafiy++GHv37sW3vvWtgym+wzESeNKTnoStW7fiuOOOwwte8AKMj4/j4x//OH7u534u4bL/9t/+WyrOa17zGgBI3DSmp6cBLK/eLC0tmfl8+MMfxtTUFJ785Cen+um5556L8fFxfPGLXwzaKNxqLfdaWC3/P+lJT8LJJ5+c/H7Ywx6GycnJhO96vR6uueYaPPOZz0zNPJ5++um4+OKLh7JpWHz605/GMccck/K3rFaruPzyyzE7O4t/+7d/S4V//vOfj02bNiW/H/e4xwFAYnuz2UStVsOXvvSloZbXHYcOX/ZdBaRTz87OZs695z3vwf79+3HvvfemHiIQVCoVHHvssaljd9xxBx74wAdmyEKm2u+4446DtlUvO0jH2717NyYnJ3HHHXegVCqlyAQATj311IPO08JJJ520pukxGo1G4hco2LRp09DkceKJJ+K9731vsoXEKaecgm3btiXn77jjDnN5n6/PWWedhf/+3/87Pve5z+GCCy7Agx/8YDzlKU/BJZdcgsc85jEAlp8k3rNnD6666ipcddVVpi333XffUDY7HKOId77znXjIQx6CSqWC7du349RTT00eqhMue/CDH5yKc8wxx2B6ejrh0QsvvBDPfvazceWVV+Itb3kLLrroIjzzmc/EJZdckjz8cPPNN2Pv3r0pHmDk9dPJyUkAwP79+4cq02r531pKZr7bsWMHFhYWcMopp2TCnXrqqckgeS1wxx134JRTTsk82Dis7Xw/ApYfPnnjG9+I17zmNdi+fTse+chH4pd+6Zfwm7/5mzjmmGPWzG7HCnzwtwpMTU3hAQ94gPm0lgwSQs6p9Xp94BPAIejNOQV5DzaUy2XzeLwKv7u1QLPZzByLosi0Y7UPaoTKOCzGxsbwpCc96ZDSAJYJ70c/+hE+9alP4TOf+Qw++tGP4l3vehf+1//6X7jyyiuTfQN//dd/HS960YvMNA51WxyHo8i44IILkqd9QwjxJJ//yEc+gq9//ev45Cc/iWuuuQYveclL8Fd/9Vf4+te/jvHxcfT7fWzbtg0f+MAHzDS02GQ8+MEPRqVSwfe///3BBToIHC2cfjAYxvYrrrgCz3jGM/CJT3wC11xzDf7n//yfeMMb3oAvfOELePjDH36kTB0Z+LLvKvH0pz8dt9xyC77xjW8cclonnHACfvrTn2aU4o033picB1ZU0p49e1LhDmVm8IQTTkC/308cpwU/+tGPDjrNYbFp06ZMWYBseQaR+eHGCSecYNaHvj7A8kDy+c9/Pt73vvfhzjvvxNOf/nT86Z/+KdrtdvI0da/Xw5Oe9CTzE5ppcDgc+RAuu/nmm1PH7733XuzZsyez3+ojH/lI/Omf/imuu+46fOADH8APf/hDfOhDHwIAnHzyydi1axce85jHmP307LPPDtrRarXwxCc+EV/+8pdx1113DWX3MPw/LLZu3Ypms5mpB2A4Xl8N355wwgm4+eabMxviH6ztgpNPPhmvec1r8NnPfhY/+MEP0Ol08Fd/9VcHlZYjHz74WyV+//d/H61WCy95yUvMHeZXo8Ke9rSnodfr4R3veEfq+Fve8hZEUYSnPvWpAJaXE7Zs2YIvf/nLqXDvete7DqIEy5C03/a2t6WOv/Wtbz3oNIfFySefjBtvvDHZTgUAvvvd7+JrX/taKpxs3moNFI8Enva0p+Eb3/gG/uM//iM5Njc3h6uuugonnngizjjjDADArl27UvFqtRrOOOMMxHGMpaUllMtlPPvZz8ZHP/pRc9aY68HhcKwOT3va0wBkuevNb34zACQ7GOzevTvDz+eccw4AJFvCPO95z0Ov18PrX//6TD7dbncgF732ta9FHMf4jd/4DdM96Jvf/GayHcqw/D8syuUyLr74YnziE5/AnXfemRy/4YYbcM011wyML3uwDsO3T3va0/Czn/0M//AP/5Ac63a7ePvb347x8XFceOGFq7J9fn4e7XY7dezkk0/GxMREZrsex9rAl31XiVNOOQUf/OAH8cIXvhCnnnpq8oaPOI5x22234YMf/CBKpVLGv8/CM57xDDzhCU/AH/3RH+H222/H2Wefjc9+9rP4x3/8R1xxxRUpf7yXvvSl+PM//3O89KUvxXnnnYcvf/nLuOmmmw66HOeccw5e+MIX4l3vehf27t2LRz/60fj85z+PW2655aDTHBYveclL8OY3vxkXX3wxLrvsMtx3333467/+a5x55pmJ0zSwvGR8xhln4B/+4R/wkIc8BDMzMzjrrLNw1llnHXYbAeAP/uAP8Pd///d46lOfissvvxwzMzO4+uqrcdttt+GjH/1osoz/lKc8Bccccwwe85jHYPv27bjhhhvwjne8A09/+tMTf54///M/xxe/+EU84hGPwH/5L/8FZ5xxBu6//35861vfwuc+9zncf//9R6RMDkfRcPbZZ+NFL3oRrrrqKuzZswcXXnghvvGNb+Dqq6/GM5/5TDzhCU8AAFx99dV417vehWc961k4+eSTsX//frz3ve/F5ORkMoC88MIL8bKXvQxveMMb8J3vfAdPecpTUK1WcfPNN+PDH/4w/vf//t94znOeE7Tl0Y9+NN75znfila98JU477bTUGz6+9KUv4Z/+6Z/wJ3/yJwBWx//D4sorr8RnPvMZPO5xj8MrX/nKZEB25plnDnzt6DnnnINyuYw3vvGN2Lt3L+r1Op74xCeaqxK/9Vu/hfe85z249NJL8c1vfhMnnngiPvKRj+BrX/sa3vrWtw790Ivgpptuwi/8wi/gec97Hs444wxUKhV8/OMfx7333osXvOAFq0rLMSTW5RnjAuCWW26JX/GKV8QPfvCD40ajETebzfi0006LX/7yl8ff+c53UmFf9KIXxWNjY2Y6+/fvj3/nd34nfuADHxhXq9X4lFNOif/yL/8y7vf7qXDz8/PxZZddFk9NTcUTExPx8573vPi+++4LbvWyY8eOVHzZMuG2225Lji0sLMSXX355vHnz5nhsbCx+xjOeEd91111rutWLtkPwd3/3d/GDHvSguFarxeecc058zTXXZLZ6ieM4/vd///f43HPPjWu1WsquUJ1KvoNw4YUXDtyeJY7j+NZbb42f85znxNPT03Gj0YgvuOCC+FOf+lQqzHve85748Y9/fLx58+a4Xq/HJ598cvx7v/d78d69e1Ph7r333vhVr3pVfNxxx8XVajU+5phj4l/4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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAFECAYAAABWG1gIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAADdRElEQVR4nOz9d5xsR3kmjj+n43RPT75BEhKSEEIRSViBZCyS0RoMBhMMOBCETVwZL7bXa393AYfF2NiwRCP8M2gXWLxEr1kMmOSATRAgkiSQhCJBuvneCZ2mz++Pue+Z5zz9Vs/cO1fhzNR7P32n+5wKb731vk/VW/WeOkmapikiRYoUKVKkSJEibQkq3dsMRIoUKVKkSJEiRbrnKE7+IkWKFClSpEiRthDFyV+kSJEiRYoUKdIWojj5ixQpUqRIkSJF2kIUJ3+RIkWKFClSpEhbiOLkL1KkSJEiRYoUaQtRnPxFihQpUqRIkSJtIYqTv0iRIkWKFClSpC1EcfIXKVKkSJEiRYq0hShO/iINUZIkeM1rXnNvszGSnv/856PVat3bbESKFCnSfZ5e85rXIEmS3LVTTjkFz3/+89eV/9GPfjQe/ehHH3vGIt1rFCd/R0k333wzXvGKV+BBD3oQms0mms0mzj77bLz85S/Ht771rXubvbuVHv3oRyNJkjU/G51ALi4u4jWveQ2+8IUvHBO+mbQNs7OzuPjii/E3f/M3GAwGx7y+SJEiHTm95z3vydnp2NgYHvSgB+EVr3gF7rzzznubvSBdc801+JVf+RWcdNJJqNfrmJ2dxeMf/3i8+93vxvLy8r3NnkvXXnstXvOa1+CWW265t1mJdA9Q5d5moIj08Y9/HL/0S7+ESqWCX/7lX8b555+PUqmE66+/Hh/5yEfwjne8AzfffDNOPvnke5vVu4X+4A/+AC960Yuy31/96lfx5je/Gb//+7+Ps846K7t+3nnnbaiexcVFvPa1rwWAu8XrPPHEE/G6170OALBr1y78z//5P3H55Zfj+9//Pv70T//0mNcXKVKko6M//MM/xKmnnop2u41//dd/xTve8Q584hOfwHe+8x00m817m70c/fVf/zVe8pKXYOfOnfjVX/1VnH766Th06BA++9nP4vLLL8ePf/xj/P7v//69zSa+973voVRaXf+59tpr8drXvhaPfvSjccopp+TSfvrTn76HuYt0d1Oc/B0h3XTTTXj2s5+Nk08+GZ/97Gdx/PHH5+6//vWvx9vf/vacUXm0sLCA8fHxu5PVu41+9md/Nvd7bGwMb37zm/GzP/uzIydp97U2T01N4Vd+5Vey3y9+8Ytxxhln4K1vfSv+6I/+CNVq9V7kLlKkSEY/93M/h4suuggA8KIXvQhzc3P4y7/8S/zd3/0dnvOc59zL3K3Sl770JbzkJS/Bwx/+cHziE5/AxMREdu+Vr3wlrr76anznO9+5FzlcpXq9vu60tVrtbuQk0r1Bcdv3COnP/uzPsLCwgHe/+91DEz8AqFQquOKKK3DSSSdl1yw+7aabbsITn/hETExM4Jd/+ZcBrEyIXvWqV2XbA2eccQbe8IY3IE3TLP8tt9yCJEnwnve8Z6g+3V612I4bb7wRz3/+8zE9PY2pqSm84AUvwOLiYi5vp9PBb/3Wb2H79u2YmJjAU57yFNxxxx0blFCej2uvvRbPfe5zMTMzg5/+6Z8GEI4fef7zn595nLfccgu2b98OAHjta18b3Er+4Q9/iKc+9alotVrYvn07fvu3f/uot1WazSYe9rCHYWFhAbt27QIA/OAHP8Azn/lMzM7OZvf/3//7f0N53/KWt+Ccc85Bs9nEzMwMLrroIrz//e8f4vWFL3whdu7ciXq9jnPOOQd/8zd/c1S8Roq0lemxj30sgJXwGwDo9/v4oz/6I5x22mmo1+s45ZRT8Pu///vodDq5fFdffTUuu+wybNu2DY1GA6eeeipe+MIX5tIMBgO86U1vwjnnnIOxsTHs3LkTL37xi7Fv3741+TKset/73peb+BlddNFFuTi79eA/sILzr3jFK/Cxj30M5557boYfn/zkJ4fq+Nd//VdcfPHFGBsbw2mnnYZ3vvOdLq8c8/ee97wHz3zmMwEAj3nMYzK8tZAbD7PvuusuXH755di5cyfGxsZw/vnn46qrrsqlsbHrDW94A6688sqsfy6++GJ89atfzaX9yU9+ghe84AU48cQTUa/Xcfzxx+MXfuEX4jb03URx5e8I6eMf/zge+MAH4qEPfegR5ev3+7jsssvw0z/903jDG96AZrOJNE3xlKc8BZ///Odx+eWX44ILLsCnPvUp/M7v/A5++MMf4o1vfONR8/msZz0Lp556Kl73utfh61//Ov76r/8aO3bswOtf//oszYte9CK8973vxXOf+1w84hGPwOc+9zk86UlPOuo6PXrmM5+J008/Hf/9v//3IUAbRdu3b8c73vEOvPSlL8XTnvY0/OIv/iKA/Fby8vIyLrvsMjz0oQ/FG97wBnzmM5/BX/zFX+C0007DS1/60qPi9wc/+AHK5TKmp6dx55134hGPeAQWFxdxxRVXYG5uDldddRWe8pSn4EMf+hCe9rSnAQDe9a534YorrsAznvEM/OZv/iba7Ta+9a1v4ctf/jKe+9znAgDuvPNOPOxhD8tAfPv27fiHf/gHXH755Th48CBe+cpXHhW/kSJtRbrpppsAAHNzcwBWsOyqq67CM57xDLzqVa/Cl7/8Zbzuda/Dddddh49+9KMAViYrT3jCE7B9+3b83u/9Hqanp3HLLbfgIx/5SK7sF7/4xXjPe96DF7zgBbjiiitw8803461vfSu+8Y1v4Itf/GJwR2BxcRGf/exn8TM/8zO4//3vv2YbjhT///Vf/xUf+chH8LKXvQwTExN485vfjKc//em47bbbMjl8+9vfztr4mte8Bv1+H69+9auxc+fOkbz8zM/8DK644oqh8B0O42FaWlrCox/9aNx44414xStegVNPPRUf/OAH8fznPx/79+/Hb/7mb+bSv//978ehQ4fw4he/GEmS4M/+7M/wi7/4i/jBD36QyfPpT386vvvd7+I//sf/iFNOOQV33XUX/vEf/xG33Xbb0DZ0pGNAaaR104EDB1IA6VOf+tShe/v27Ut37dqVfRYXF7N7z3ve81IA6e/93u/l8nzsYx9LAaR//Md/nLv+jGc8I02SJL3xxhvTNE3Tm2++OQWQvvvd7x6qF0D66le/Ovv96le/OgWQvvCFL8yle9rTnpbOzc1lv6+55poUQPqyl70sl+65z33uUJlr0Qc/+MEUQPr5z39+iI/nPOc5Q+kvvfTS9NJLLx26/rznPS89+eSTs9+7du0K8mIy/cM//MPc9Yc85CHphRdeuCbPl156aXrmmWdm/XXdddelV1xxRQogffKTn5ymaZq+8pWvTAGk//Iv/5LlO3ToUHrqqaemp5xySrq8vJymaZr+wi/8QnrOOeeMrO/yyy9Pjz/++HT37t25689+9rPTqampnL5EihRphd797nenANLPfOYz6a5du9Lbb789/cAHPpDOzc2ljUYjveOOOzIse9GLXpTL+9u//dspgPRzn/tcmqZp+tGPfjQFkH71q18N1vcv//IvKYD0fe97X+76Jz/5Sfc60ze/+c0UQPqbv/mb62rbevE/TVdwvlar5a5ZfW95y1uya0996lPTsbGx9NZbb82uXXvttWm5XE51uD/55JPT5z3vedlvD8eNFLPf9KY3pQDS9773vdm1brebPvzhD09brVZ68ODBNE1Xx665ubl07969Wdq/+7u/SwGkf//3f5+m6cr4CSD98z//81Eii3QMKW77HgEdPHgQANwjRh796Edj+/bt2edtb3vbUBpdjfrEJz6BcrmMK664Inf9Va96FdI0xT/8wz8cNa8veclLcr8f9ahHYc+ePVkbPvGJTwDAUN3HegVK+TjW5LXzBz/4wbryXn/99Vl/nXXWWXjLW96CJz3pSdlW7Cc+8Qlccskl2XY1sNL3v/Ebv4FbbrkF1157LQBgenoad9xxx9A2hlGapvjwhz+MJz/5yUjTFLt3784+l112GQ4cOICvf/3rR9P8SJG2BD3+8Y/H9u3bcdJJJ+HZz342Wq0WPvrRj+J+97tfhmX/6T/9p1yeV73qVQCQhWlMT08DWNm96fV6bj0f/OAHMTU1hZ/92Z/N2emFF16IVquFz3/+80EeDVu97V6PjhT/H//4x+O0007Lfp933nmYnJzM8G55eRmf+tSn8NSnPjW38njWWWfhsssuWxdP66VPfOITOO6443LxltVqFVdccQXm5+fxT//0T7n0v/RLv4SZmZns96Me9SgAyHhvNBqo1Wr4whe+sK7t9Ugbp7jtewRkRj0/Pz90753vfCcOHTqEO++8M/cQgVGlUsGJJ56Yu3brrbfihBNOGAILW2q/9dZbj5pX3XYww9u3bx8mJydx6623olQq5cAEAM4444yjrtOjU0899ZiWxzQ2NpbFBRrNzMysGzxOOeUUvOtd78qOkDj99NOxY8eO7P6tt97qbu9z/5x77rn4z//5P+Mzn/kMLrnkEjzwgQ/EE57wBDz3uc/FIx/5SAArTxLv378fV155Ja688kqXl7vuumtdPEeKtBXpbW97Gx70oAehUqlg586dOOOMM7KH6gzLHvjAB+byHHfccZiens5w9NJLL8XTn/50vPa1r8Ub3/hGPPrRj8ZTn/pUPPe5z80efrjhhhtw4MCBHA4wjbLTyclJAMChQ4fW1aYjxX9vK5nxbteuXVhaWsLpp58+lO6MM87IJsnHgm699VacfvrpQw82rpd3Ho+AlYdPXv/61+NVr3oVdu7ciYc97GH4+Z//efzar/0ajjvuuGPGd6RVipO/I6CpqSkcf/zx7tNaNkkIBafW6/U1nwAOkR7OaTTqwYZyuexeT48g7u5YUKPRGLqWJInLx5E+qBFq43ppfHwcj3/84zdUBrACeN/73vfw8Y9/HJ/85Cfx4Q9/GG9/+9vx3/7bf8NrX/va7NzAX/mVX8Hznvc8t4yNHosTKdJmpksuuSR72jdEIZzk+x/60IfwpS99CX//93+PT33qU3jhC1+Iv/iLv8CXvvQltFotDAYD7NixA+973/vcMtTZZHrgAx+ISqWCb3/722s36CjovoLpR0Pr4f2Vr3wlnvzkJ+NjH/sYPvWpT+G//tf/ite97nX43Oc+h4c85CH3FKtbhuK27xHSk570JNx44434yle+suGyTj75ZPzoRz8a8hSvv/767D6w6iXt378/l24jK4Mnn3wyBoNBFjht9L3vfe+oy1wvzczMDLUFGG7PWmB+d9PJJ5/sykP7B1iZSP7SL/0S3v3ud+O2227Dk570JPzJn/wJ2u129jT18vIyHv/4x7uf0EpDpEiRRpNh2Q033JC7fuedd2L//v1D560+7GEPw5/8yZ/g6quvxvve9z5897vfxQc+8AEAwGmnnYY9e/bgkY98pGun559/fpCPZrOJxz72sfjnf/5n3H777eviez34v17avn07Go3GkByA9eH6keDtySefjBtuuGHoQPyj5d3otNNOw6te9Sp8+tOfxne+8x10u138xV/8xVGVFWk0xcnfEdLv/u7votls4oUvfKF7wvyReGFPfOITsby8jLe+9a2562984xuRJAl+7ud+DsDKdsK2bdvwz//8z7l0b3/724+iBStkZb/5zW/OXX/Tm9501GWul0477TRcf/312XEqAPDNb34TX/ziF3Pp7PBWb6J4T9ATn/hEfOUrX8G///u/Z9cWFhZw5ZVX4pRTTsHZZ58NANizZ08uX61Ww9lnn400TdHr9VAul/H0pz8dH/7wh91VY5ZDpEiRjoye+MQnAhjGrr/8y78EgOwEg3379g3h8wUXXAAA2ZEwz3rWs7C8vIw/+qM/Gqqn3++viUWvfvWrkaYpfvVXf9UND/ra176WHYeyXvxfL5XLZVx22WX42Mc+httuuy27ft11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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "ctd_loader = dlc_torch.DLCLoader(config, shuffle=CTD_SHUFFLE)\n",
+ "\n",
+ "# We'll edit the model config here directly; In practice, edit the pytorch_config file instead.\n",
+ "# The parameters that can be set here are the parameters of the `dlc_torch.GenSamplingConfig`\n",
+ "ctd_loader.model_cfg[\"data\"][\"gen_sampling\"] = {\n",
+ " # lower the keypoint sigma by a factor of 2 (default: 0.1)\n",
+ " # -> this changes by how much keypoints are jittered; the smaller\n",
+ " # the value, the smaller the jitter\n",
+ " \"keypoint_sigmas\": 0.05,\n",
+ "}\n",
+ "\n",
+ "transform = dlc_torch.build_transforms(ctd_loader.model_cfg[\"data\"][\"train\"])\n",
+ "dataset = ctd_loader.create_dataset(transform, mode=\"train\", task=ctd_loader.pose_task)\n",
+ "\n",
+ "# Fix the seeds for reproducibility; you can change the seed from `0` to another value\n",
+ "# to change the results\n",
+ "dlc_torch.fix_seeds(0)\n",
+ "plot_generative_sampling(dataset)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "055dea55",
+ "metadata": {
+ "id": "055dea55"
+ },
+ "source": [
+ "Next, we'll update the probabilities of make errors. You can edit these values yourself to see how it impacts the generative sampling. Note that these probabilities are **not absolute** - as a single type of error is applied to each keypoint, changing the probability of one type of error happening will change the probability that other types of errors occur."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "fa509d65",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 989
+ },
+ "executionInfo": {
+ "elapsed": 1638,
+ "status": "ok",
+ "timestamp": 1744358513089,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "fa509d65",
+ "outputId": "d20a3ab8-6a7c-4f5f-8212-a47bfea0c3d6"
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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+/D6178+C/PiF78Yf/7nf47nPe95ePjDH45//Md/xFOf+tSTztOTZz/72Tj//PPxX/7LfxkBWpHs3bsXb3/72/Gyl70Mz3jGM/ATP/ETAPJTyYPBAE9+8pPxkIc8BH/4h3+Ij33sY/ijP/ojnHfeeXjZy152Uvp+73vfQ7VaxeLiIm6++WY8/OEPx9raGi677DLs3r0bl19+OX7sx34M73vf+/CMZzwDAPCnf/qnuOyyy/CsZz0Lv/Irv4L19XV89atfxec//3k873nPAwDcfPPNeOhDH5pBfO/evfi///f/4kUvehGOHTuGV77ylSelb5QoO1GuvvpqAMDu3bsBbLDs8ssvx7Oe9Sy86lWvwuc//3m87nWvw7e+9S28//3vB7AxWHnSk56EvXv34jd+4zewuLiI73//+/ibv/mbXNoveclL8O53vxs///M/j8suuwzXXHMN3vKWt+Bf//Vf8dnPfjY4I7C2toaPf/zjePSjH4273e1uY8twovz/zGc+g7/5m7/By1/+cszNzeFNb3oTnvnMZ+K6667L7PC1r30tK+NrXvMa9Pt9vPrVr8b+/fsLdXn0ox+Nyy67bGT5Di/jYWm323jMYx6Dq666Cr/0S7+Ec889F+9973vxghe8AEeOHMGv/Mqv5MK/5z3vwfLyMl7ykpcgSRL81//6X/ETP/ET+N73vpfZ85nPfCa+8Y1v4Jd/+Zdxzjnn4JZbbsE//MM/4LrrrhuZho6yBZJGmViOHj2aAkif/vSnj5w7fPhwevDgwexvbW0tO/f85z8/BZD+xm/8Ri7OBz7wgRRA+ru/+7u548961rPSJEnSq666Kk3TNL3mmmtSAOm73vWukXwBpK9+9auz369+9atTAOkLX/jCXLhnPOMZ6e7du7PfX/nKV1IA6ctf/vJcuOc973kjaY6T9773vSmA9BOf+MSIHs997nNHwl966aXppZdeOnL8+c9/fnr22Wdnvw8ePBjUxWz627/927nj97///dMHPOABY3W+9NJL0wsuuCCrr29961vpZZddlgJIn/a0p6VpmqavfOUrUwDppz/96Sze8vJyeu6556bnnHNOOhgM0jRN0x//8R9P73Of+xTm96IXvSg944wz0kOHDuWO/9RP/VS6sLCQay9RokTZkHe9610pgPRjH/tYevDgwfT6669P/+qv/irdvXt3Oj09nf7g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P+suD/rSl76UbYcyKf8nlWq1iic/+cn4wAc+gOuuuy47/q1vfQsf+chHxsa3PVgn4e1TnvIU3HTTTfhf/+t/Zcf6/T7e/OY3Y3Z2FpdeeukJ6b62tob19fXcsfPOOw9zc3Mj2/VE2RqJ074nKOeffz7e85734LnPfS7uda97ZW/4SNMU11xzDd7znvegUqmMrO/z5GlPexoe+9jH4j/9p/+E73//+7jf/e6Hj370o/jbv/1bvPKVr8ytx3vxi1+M3//938eLX/xiPPCBD8SnPvUpfOc73znpclxyySV47nOfi7e97W04evQoHv7wh+PjH/84rrrqqpNOc1J54QtfiDe84Q148pOfjBe96EW45ZZb8Cd/8ie4z33uky2aBjamjC+88EL8r//1v3DPe94Tu3btwkUXXYSLLrrolOsIAL/xG7+Bv/zLv8SP/MiP4LLLLsOuXbtw+eWX45prrsFf//VfZ9P4T3rSk3DgwAE84hGPwP79+/Gtb30Lb3nLW/DUpz41W8/z+7//+/jEJz6BhzzkIfiFX/gFXHjhhbjtttvw5S9/GR/72Mdw22233SFlihJlu8n97nc/PP/5z8c73/lOHDlyBJdeeim+8IUv4PLLL8fTn/50PPaxjwUAXH755Xjb296GZzzjGTjvvPOwvLyMP/3TP8X8/Hw2gLz00kvxkpe8BK973evwla98BU960pNQr9fx3e9+F+9973vx3/7bf8OznvWsoC4Pf/jD8da3vhUvf/nLccEFF+Te8PHJT34Sf/d3f4ff/d3fBXBi/J9UXvva1+LDH/4wHvWoR+HlL395NiC7z33uM/a1o5dccgmq1Spe//rX4+jRo5iamsLjHvc4d1biF3/xF/GOd7wDL3jBC/ClL30J55xzDt73vvfhs5/9LN74xjdO/NCLyXe+8x08/vGPx3Oe8xxceOGFqNVqeP/734+bb74ZP/VTP3VCaUWZUO6UZ4y3gVx11VXpy172svQe97hH2mw20+np6fSCCy5IX/rSl6Zf+cpXcmGf//znpzMzM246y8vL6a/+6q+mZ555Zlqv19Pzzz8//YM/+IN0OBzmwq2traUvetGL0oWFhXRubi59znOek95yyy3BrV4OHjyYi29bJlxzzTXZsXa7nV522WXp7t2705mZmfRpT3taev3112/pVi+qh8mf//mfp3e/+93TRqORXnLJ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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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38sFF1zAf/kv/+W4QPt8Tj/9dH7913+dH/7hH+bhD3843/M93wMcO5RcSuHiiy/mPve5Dy94wQt461vfyi//8i9z/vnn88M//MMn1d6PfvSjOOfYt28fV111Ffe73/1YLpdceumlHDx4kFe96lV813d9F7/3e7/Hwx/+cABe/vKXc+mll/LIRz6SH/mRH6HrOv7xH/+Rv/mbv+Gxj30sAFdddRX3ve99j4b46aefzh//8R9zySWXsL29zTOf+cyTau9odCr6yEc+AsDBgweBdZa96lWv4pGPfCTPetaz+Ju/+Rue97zn8b73vY/Xv/71wLqz8qAHPYjTTz+dn/zJn2Tfvn1cccUV/P7v//4xj/2UpzyFV77ylTzxiU/k0ksv5fLLL+clL3kJ//f//l/++q//+mZHBJbLJW9729v45m/+Zm5729t+wddwS/P/r/7qr/j93/99nva0p7GxscGLXvQiHvGIR/Cxj33s6Hn4p3/6p6Ov8TnPeQ45Z5797GdzxhlnfN62fPM3fzOXXnrpcdN3Pnsaz2dbrVY84AEP4MMf/jDPeMYzOO+883jta1/LE57wBA4fPsyP/MiPHHP717zmNezs7PCUpzwFEeEXf/EX+Z7v+R4++tGPHj2fj3jEI/jnf/5n/t2/+3ece+65XH311fyv//W/+NjHPnbcMPToi8BGJ+zIkSMG2MMe9rDjfnbo0CG75pprjn4tl8ujP3v84x9vgP3kT/7kMfd5wxveYID93M/93DHHH/nIR5qI2Ic//GEzM7v88ssNsFe84hXHPS9gz372s49+/+xnP9sAe9KTnnTM7R7+8IfbwYMHj37/7ne/2wB72tOedsztHvvYxx73mF/Ia1/7WgPs7W9/+3HteMxjHnPc7S+66CK76KKLjjv++Mc/3s4555yj319zzTU325Ybz+nP/MzPHHP867/+6+0e97jHF2zzRRddZHe4wx2O/r7e97732aWXXmqAPfShDzUzs2c+85kG2F/+5V8evd/Ozo6dd955du6551opxczMvvu7v9vufOc7f97nu+SSS+yss86ya6+99pjjj370o21ra+uYv5fRaLT2ile8wgB761vfatdcc419/OMft9/5nd+xgwcP2mQysU984hNHs+zJT37yMff9sR/7MQPsT//0T83M7PWvf70B9nd/93c3+3x/+Zd/aYC9+tWvPub4m9/85ps8/tn+4R/+wQD7kR/5kRN6bSea/2brnI8xHnPsxud78YtffPTYwx72MGvb1q688sqjx9773veac84+99/9OeecY49//OOPfn9TOX6jz83sF77whQbYb//2bx89NgyDfcM3fIPN53Pb3t42s3/533Xw4EG7/vrrj972D/7gDwywP/zDPzSz9f9PwH7pl37p852y0RfROOx7C2xvbwPcZImRBzzgAZx++ulHv37t137tuNt87qdRb3rTm3DOcemllx5z/FnPehZmxh//8R+fdFuf+tSnHvP9N33TN3HdddcdfQ1vetObAI577i/2J1Cf244vtpt6nR/96EdP6L7vf//7j/6+7njHO/LiF7+YhzzkIUeHYt/0pjdx73vf++hwNax/9z/0Qz/EFVdcwXvf+14A9u3bxyc+8YnjhjFuZGa87nWv46EPfShmxrXXXnv06+KLL+bIkSO8613vOpmXPxqdEh74wAdy+umnc/bZZ/PoRz+a+XzO61//em5961sfzbJ//+///TH3edazngVwdJrGvn37gPXoTUrpJp/nta99LVtbW3z7t3/7Me/Te9zjHsznc97+9rffbBtvzNabGu69Kbc0/x/4wAdy/vnnH/3+rne9K5ubm0fzrpTCW97yFh72sIcd88njHe94Ry6++OITatOJetOb3sSZZ555zHzLEAKXXnopu7u7/Pmf//kxt/++7/s+9u/ff/T7b/qmbwI42vbJZEKMkT/7sz87oeH10b/eOOx7C9z4pt7d3T3uZy972cvY2dnhqquuOmYRwY2899zmNrc55tiVV17J13zN1xwXFjd+1H7llVeedFs/d9jhxjfeoUOH2Nzc5Morr0RVjwkTgAsvvPCkn/OmnHfeeV/Ux/tsbdsenRd4o/37959weJx77rm8/OUvP1pC4oILLuBWt7rV0Z9feeWVNzm8/9m/n7vc5S78h//wH3jrW9/Kve99b253u9vxoAc9iMc+9rHc//73B9YriQ8fPsxll13GZZdddpNtufrqq0+ozaPRqejXfu3XuP3tb4/3njPOOIMLL7zw6KK6G7Psdre73TH3OfPMM9m3b9/RHL3ooot4xCMewXOf+1x+9Vd/lQc84AE87GEP47GPfezRxQ8f+tCHOHLkyDE58Nk+3/t0c3MTgJ2dnRN6Tbc0/29qKPmz8+6aa65htVpxwQUXHHe7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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "ctd_loader = dlc_torch.DLCLoader(config, shuffle=CTD_SHUFFLE)\n",
+ "\n",
+ "# We'll edit the model config here directly; In practice, edit the pytorch_config file instead.\n",
+ "# The parameters that can be set here are the parameters of the `dlc_torch.GenSamplingConfig`\n",
+ "ctd_loader.model_cfg[\"data\"][\"gen_sampling\"] = {\n",
+ " \"jitter_prob\": 0.5,\n",
+ " \"swap_prob\": 0.1,\n",
+ " \"inv_prob\": 0.1,\n",
+ " \"miss_prob\": 0.25,\n",
+ "}\n",
+ "\n",
+ "transform = dlc_torch.build_transforms(ctd_loader.model_cfg[\"data\"][\"train\"])\n",
+ "dataset = ctd_loader.create_dataset(transform, mode=\"train\", task=ctd_loader.pose_task)\n",
+ "\n",
+ "# Fix the seeds for reproducibility; you can change the seed from `0` to another value\n",
+ "# to change the results\n",
+ "dlc_torch.fix_seeds(0)\n",
+ "plot_generative_sampling(dataset)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d46ecdc8",
+ "metadata": {
+ "id": "d46ecdc8"
+ },
+ "source": [
+ "#### Training and Evaluating the CTD Model\n",
+ "\n",
+ "Next, we can simply train the CTD model. It should take **20 to 60 minutes** to train the model to 150 epochs on a GPU, depending on the performance of the machine you're on.\n",
+ "\n",
+ "If you think your model has converged before the end of training, you can always interrupt the execution of the cell using the \"Stop\" button, as I did here after 150 epochs. The best-performing model up to that point should be saved.\n",
+ "\n",
+ "You'll notice that in the logs for the bottom-up model above, it's printed `using 78 images and 34 for testing` while now it's showing `using 234 images and 102 for testing`. This is because CTD models (and top-down models) perform pose estimation on each mouse indenpendently! As their are 3 mice per image, each ground-truth image creates 3 examples the model can use for training. Checkout the [docs](https://deeplabcut.github.io/DeepLabCut/docs/pytorch/architectures.html#information-on-multi-animal-models) for more information on different approaches to pose estimation!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "7427576f",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000,
+ "referenced_widgets": [
+ "c95c172c3f4c468c8d3c4ed859405670",
+ "9ce048962ea4456ab5201da2ec611028",
+ "50677fd71424491f9f963efb76526763",
+ "e394660e6bf2425d81dde09c75367caa",
+ "d9204c9f72ce4e729ba5ff2168cc787e",
+ "d8c442f4d8ab4484b2a91accd2fdcd9d",
+ "60c578d6f09e48b3939ac559a5305fde",
+ "f6f2745f152341fbb8f909ff9c159d61",
+ "cd18393881074e36850cb8cb4ee96e56",
+ "ef61bcc8f6124b6c9681bd3c29b1bcac",
+ "ac9e6c7e5a55470b87443a9d1f290e20"
+ ]
+ },
+ "executionInfo": {
+ "elapsed": 3371917,
+ "status": "error",
+ "timestamp": 1744361892651,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "7427576f",
+ "outputId": "2b50e01f-1bbd-48e3-f110-06f1b4f5fd70"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Training with configuration:\n",
+ "data:\n",
+ " bbox_margin: 25\n",
+ " colormode: RGB\n",
+ " inference:\n",
+ " normalize_images: True\n",
+ " top_down_crop:\n",
+ " width: 256\n",
+ " height: 256\n",
+ " crop_with_context: False\n",
+ " train:\n",
+ " affine:\n",
+ " p: 0.5\n",
+ " rotation: 30\n",
+ " scaling: [1.0, 1.0]\n",
+ " translation: 0\n",
+ " gaussian_noise: 12.75\n",
+ " motion_blur: True\n",
+ " normalize_images: True\n",
+ " top_down_crop:\n",
+ " width: 256\n",
+ " height: 256\n",
+ " crop_with_context: False\n",
+ " conditions:\n",
+ " shuffle: 1\n",
+ " snapshot_index: -1\n",
+ " gen_sampling:\n",
+ " keypoint_sigmas: 0.1\n",
+ "device: auto\n",
+ "metadata:\n",
+ " project_path: /content/trimice-dlc-2021-06-22\n",
+ " pose_config_path: /content/trimice-dlc-2021-06-22/dlc-models-pytorch/iteration-0/trimiceJun22-trainset70shuffle2/train/pytorch_config.yaml\n",
+ " bodyparts: ['snout', 'leftear', 'rightear', 'shoulder', 'spine1', 'spine2', 'spine3', 'spine4', 'tailbase', 'tail1', 'tail2', 'tailend']\n",
+ " unique_bodyparts: []\n",
+ " individuals: ['mus1', 'mus2', 'mus3']\n",
+ " with_identity: None\n",
+ "method: ctd\n",
+ "model:\n",
+ " backbone:\n",
+ " type: CondPreNet\n",
+ " backbone:\n",
+ " type: CSPNeXt\n",
+ " model_name: cspnext_m\n",
+ " freeze_bn_stats: False\n",
+ " freeze_bn_weights: False\n",
+ " deepen_factor: 0.67\n",
+ " widen_factor: 0.75\n",
+ " kpt_encoder:\n",
+ " type: ColoredKeypointEncoder\n",
+ " num_joints: 12\n",
+ " kernel_size: [15, 15]\n",
+ " img_size: [256, 256]\n",
+ " backbone_output_channels: 768\n",
+ " heads:\n",
+ " bodypart:\n",
+ " type: HeatmapHead\n",
+ " weight_init: normal\n",
+ " predictor:\n",
+ " type: HeatmapPredictor\n",
+ " apply_sigmoid: False\n",
+ " clip_scores: True\n",
+ " location_refinement: True\n",
+ " locref_std: 7.2801\n",
+ " target_generator:\n",
+ " type: HeatmapGaussianGenerator\n",
+ " num_heatmaps: 12\n",
+ " pos_dist_thresh: 17\n",
+ " heatmap_mode: KEYPOINT\n",
+ " generate_locref: True\n",
+ " locref_std: 7.2801\n",
+ " criterion:\n",
+ " heatmap:\n",
+ " type: WeightedMSECriterion\n",
+ " weight: 1.0\n",
+ " locref:\n",
+ " type: WeightedHuberCriterion\n",
+ " weight: 0.05\n",
+ " heatmap_config:\n",
+ " channels: [768, 12]\n",
+ " kernel_size: [3]\n",
+ " strides: [2]\n",
+ " locref_config:\n",
+ " channels: [768, 24]\n",
+ " kernel_size: [3]\n",
+ " strides: [2]\n",
+ "net_type: ctd_prenet_cspnext_m\n",
+ "runner:\n",
+ " type: PoseTrainingRunner\n",
+ " gpus: None\n",
+ " key_metric: test.mAP\n",
+ " key_metric_asc: True\n",
+ " eval_interval: 10\n",
+ " optimizer:\n",
+ " type: AdamW\n",
+ " params:\n",
+ " lr: 1e-05\n",
+ " scheduler:\n",
+ " type: LRListScheduler\n",
+ " params:\n",
+ " lr_list: [[0.0005], [0.0001], [1e-05]]\n",
+ " milestones: [5, 90, 120]\n",
+ " snapshots:\n",
+ " max_snapshots: 5\n",
+ " save_epochs: 25\n",
+ " save_optimizer_state: False\n",
+ "train_settings:\n",
+ " batch_size: 8\n",
+ " dataloader_workers: 0\n",
+ " dataloader_pin_memory: False\n",
+ " display_iters: 500\n",
+ " epochs: 200\n",
+ " seed: 42\n",
+ "Downloading the pre-trained backbone to /usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/models/backbones/pretrained_weights/cspnext_m.pt\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "c95c172c3f4c468c8d3c4ed859405670",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ "cspnext_m.pt: 0%| | 0.00/49.3M [00:00, ?B/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Data Transforms:\n",
+ " Training: Compose([\n",
+ " Affine(always_apply=False, p=0.5, interpolation=1, mask_interpolation=0, cval=0, mode=0, scale={'x': (1.0, 1.0), 'y': (1.0, 1.0)}, translate_percent=None, translate_px={'x': (0, 0), 'y': (0, 0)}, rotate=(-30, 30), fit_output=False, shear={'x': (0.0, 0.0), 'y': (0.0, 0.0)}, cval_mask=0, keep_ratio=True, rotate_method='largest_box'),\n",
+ " MotionBlur(always_apply=False, p=0.5, blur_limit=(3, 7), allow_shifted=True),\n",
+ " GaussNoise(always_apply=False, p=0.5, var_limit=(0, 162.5625), per_channel=True, mean=0),\n",
+ " Normalize(always_apply=False, p=1.0, mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], max_pixel_value=255.0),\n",
+ "], p=1.0, bbox_params={'format': 'coco', 'label_fields': ['bbox_labels'], 'min_area': 0.0, 'min_visibility': 0.0, 'min_width': 0.0, 'min_height': 0.0, 'check_each_transform': True}, keypoint_params={'format': 'xy', 'label_fields': ['class_labels'], 'remove_invisible': False, 'angle_in_degrees': True, 'check_each_transform': True}, additional_targets={}, is_check_shapes=True)\n",
+ " Validation: Compose([\n",
+ " Normalize(always_apply=False, p=1.0, mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], max_pixel_value=255.0),\n",
+ "], p=1.0, bbox_params={'format': 'coco', 'label_fields': ['bbox_labels'], 'min_area': 0.0, 'min_visibility': 0.0, 'min_width': 0.0, 'min_height': 0.0, 'check_each_transform': True}, keypoint_params={'format': 'xy', 'label_fields': ['class_labels'], 'remove_invisible': False, 'angle_in_degrees': True, 'check_each_transform': True}, additional_targets={}, is_check_shapes=True)\n",
+ "Using 234 images and 102 for testing\n",
+ "\n",
+ "Starting pose model training...\n",
+ "--------------------------------------------------\n",
+ "Epoch 1/200 (lr=1e-05), train loss 0.01711\n",
+ "Epoch 2/200 (lr=1e-05), train loss 0.01699\n",
+ "Epoch 3/200 (lr=1e-05), train loss 0.01687\n",
+ "Epoch 4/200 (lr=1e-05), train loss 0.01690\n",
+ "Epoch 5/200 (lr=0.0005), train loss 0.01683\n",
+ "Epoch 6/200 (lr=0.0005), train loss 0.01477\n",
+ "Epoch 7/200 (lr=0.0005), train loss 0.01076\n",
+ "Epoch 8/200 (lr=0.0005), train loss 0.00796\n",
+ "Epoch 9/200 (lr=0.0005), train loss 0.00670\n",
+ "Training for epoch 10 done, starting evaluation\n",
+ "Epoch 10/200 (lr=0.0005), train loss 0.00602, valid loss 0.00515\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 7.56\n",
+ " metrics/test.rmse_pcutoff: 5.56\n",
+ " metrics/test.mAP: 90.48\n",
+ " metrics/test.mAR: 92.35\n",
+ "Epoch 11/200 (lr=0.0005), train loss 0.00472\n",
+ "Epoch 12/200 (lr=0.0005), train loss 0.00448\n",
+ "Epoch 13/200 (lr=0.0005), train loss 0.00435\n",
+ "Epoch 14/200 (lr=0.0005), train loss 0.00387\n",
+ "Epoch 15/200 (lr=0.0005), train loss 0.00341\n",
+ "Epoch 16/200 (lr=0.0005), train loss 0.00344\n",
+ "Epoch 17/200 (lr=0.0005), train loss 0.00309\n",
+ "Epoch 18/200 (lr=0.0005), train loss 0.00310\n",
+ "Epoch 19/200 (lr=0.0005), train loss 0.00308\n",
+ "Training for epoch 20 done, starting evaluation\n",
+ "Epoch 20/200 (lr=0.0005), train loss 0.00305, valid loss 0.00318\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 6.61\n",
+ " metrics/test.rmse_pcutoff: 5.61\n",
+ " metrics/test.mAP: 94.12\n",
+ " metrics/test.mAR: 95.00\n",
+ "Epoch 21/200 (lr=0.0005), train loss 0.00273\n",
+ "Epoch 22/200 (lr=0.0005), train loss 0.00267\n",
+ "Epoch 23/200 (lr=0.0005), train loss 0.00256\n",
+ "Epoch 24/200 (lr=0.0005), train loss 0.00254\n",
+ "Epoch 25/200 (lr=0.0005), train loss 0.00241\n",
+ "Epoch 26/200 (lr=0.0005), train loss 0.00247\n",
+ "Epoch 27/200 (lr=0.0005), train loss 0.00246\n",
+ "Epoch 28/200 (lr=0.0005), train loss 0.00233\n",
+ "Epoch 29/200 (lr=0.0005), train loss 0.00234\n",
+ "Training for epoch 30 done, starting evaluation\n",
+ "Epoch 30/200 (lr=0.0005), train loss 0.00222, valid loss 0.00280\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 5.40\n",
+ " metrics/test.rmse_pcutoff: 4.04\n",
+ " metrics/test.mAP: 95.15\n",
+ " metrics/test.mAR: 96.18\n",
+ "Epoch 31/200 (lr=0.0005), train loss 0.00223\n",
+ "Epoch 32/200 (lr=0.0005), train loss 0.00239\n",
+ "Epoch 33/200 (lr=0.0005), train loss 0.00211\n",
+ "Epoch 34/200 (lr=0.0005), train loss 0.00193\n",
+ "Epoch 35/200 (lr=0.0005), train loss 0.00210\n",
+ "Epoch 36/200 (lr=0.0005), train loss 0.00204\n",
+ "Epoch 37/200 (lr=0.0005), train loss 0.00201\n",
+ "Epoch 38/200 (lr=0.0005), train loss 0.00186\n",
+ "Epoch 39/200 (lr=0.0005), train loss 0.00197\n",
+ "Training for epoch 40 done, starting evaluation\n",
+ "Epoch 40/200 (lr=0.0005), train loss 0.00195, valid loss 0.00255\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 4.46\n",
+ " metrics/test.rmse_pcutoff: 3.74\n",
+ " metrics/test.mAP: 97.18\n",
+ " metrics/test.mAR: 97.84\n",
+ "Epoch 41/200 (lr=0.0005), train loss 0.00188\n",
+ "Epoch 42/200 (lr=0.0005), train loss 0.00198\n",
+ "Epoch 43/200 (lr=0.0005), train loss 0.00192\n",
+ "Epoch 44/200 (lr=0.0005), train loss 0.00186\n",
+ "Epoch 45/200 (lr=0.0005), train loss 0.00188\n",
+ "Epoch 46/200 (lr=0.0005), train loss 0.00178\n",
+ "Epoch 47/200 (lr=0.0005), train loss 0.00180\n",
+ "Epoch 48/200 (lr=0.0005), train loss 0.00186\n",
+ "Epoch 49/200 (lr=0.0005), train loss 0.00171\n",
+ "Training for epoch 50 done, starting evaluation\n",
+ "Epoch 50/200 (lr=0.0005), train loss 0.00183, valid loss 0.00262\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 5.46\n",
+ " metrics/test.rmse_pcutoff: 3.90\n",
+ " metrics/test.mAP: 95.49\n",
+ " metrics/test.mAR: 95.78\n",
+ "Epoch 51/200 (lr=0.0005), train loss 0.00191\n",
+ "Epoch 52/200 (lr=0.0005), train loss 0.00198\n",
+ "Epoch 53/200 (lr=0.0005), train loss 0.00173\n",
+ "Epoch 54/200 (lr=0.0005), train loss 0.00179\n",
+ "Epoch 55/200 (lr=0.0005), train loss 0.00181\n",
+ "Epoch 56/200 (lr=0.0005), train loss 0.00187\n",
+ "Epoch 57/200 (lr=0.0005), train loss 0.00162\n",
+ "Epoch 58/200 (lr=0.0005), train loss 0.00156\n",
+ "Epoch 59/200 (lr=0.0005), train loss 0.00154\n",
+ "Training for epoch 60 done, starting evaluation\n",
+ "Epoch 60/200 (lr=0.0005), train loss 0.00152, valid loss 0.00216\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 4.11\n",
+ " metrics/test.rmse_pcutoff: 3.40\n",
+ " metrics/test.mAP: 97.45\n",
+ " metrics/test.mAR: 97.65\n",
+ "Epoch 61/200 (lr=0.0005), train loss 0.00151\n",
+ "Epoch 62/200 (lr=0.0005), train loss 0.00156\n",
+ "Epoch 63/200 (lr=0.0005), train loss 0.00143\n",
+ "Epoch 64/200 (lr=0.0005), train loss 0.00155\n",
+ "Epoch 65/200 (lr=0.0005), train loss 0.00149\n",
+ "Epoch 66/200 (lr=0.0005), train loss 0.00149\n",
+ "Epoch 67/200 (lr=0.0005), train loss 0.00148\n",
+ "Epoch 68/200 (lr=0.0005), train loss 0.00147\n",
+ "Epoch 69/200 (lr=0.0005), train loss 0.00160\n",
+ "Training for epoch 70 done, starting evaluation\n",
+ "Epoch 70/200 (lr=0.0005), train loss 0.00159, valid loss 0.00240\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 4.21\n",
+ " metrics/test.rmse_pcutoff: 3.46\n",
+ " metrics/test.mAP: 97.49\n",
+ " metrics/test.mAR: 97.65\n",
+ "Epoch 71/200 (lr=0.0005), train loss 0.00186\n",
+ "Epoch 72/200 (lr=0.0005), train loss 0.00187\n",
+ "Epoch 73/200 (lr=0.0005), train loss 0.00158\n",
+ "Epoch 74/200 (lr=0.0005), train loss 0.00161\n",
+ "Epoch 75/200 (lr=0.0005), train loss 0.00146\n",
+ "Epoch 76/200 (lr=0.0005), train loss 0.00145\n",
+ "Epoch 77/200 (lr=0.0005), train loss 0.00145\n",
+ "Epoch 78/200 (lr=0.0005), train loss 0.00144\n",
+ "Epoch 79/200 (lr=0.0005), train loss 0.00154\n",
+ "Training for epoch 80 done, starting evaluation\n",
+ "Epoch 80/200 (lr=0.0005), train loss 0.00154, valid loss 0.00225\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 4.01\n",
+ " metrics/test.rmse_pcutoff: 3.53\n",
+ " metrics/test.mAP: 96.84\n",
+ " metrics/test.mAR: 97.35\n",
+ "Epoch 81/200 (lr=0.0005), train loss 0.00154\n",
+ "Epoch 82/200 (lr=0.0005), train loss 0.00144\n",
+ "Epoch 83/200 (lr=0.0005), train loss 0.00138\n",
+ "Epoch 84/200 (lr=0.0005), train loss 0.00131\n",
+ "Epoch 85/200 (lr=0.0005), train loss 0.00143\n",
+ "Epoch 86/200 (lr=0.0005), train loss 0.00140\n",
+ "Epoch 87/200 (lr=0.0005), train loss 0.00142\n",
+ "Epoch 88/200 (lr=0.0005), train loss 0.00148\n",
+ "Epoch 89/200 (lr=0.0005), train loss 0.00139\n",
+ "Training for epoch 90 done, starting evaluation\n",
+ "Epoch 90/200 (lr=0.0001), train loss 0.00137, valid loss 0.00210\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 3.86\n",
+ " metrics/test.rmse_pcutoff: 3.39\n",
+ " metrics/test.mAP: 98.17\n",
+ " metrics/test.mAR: 98.33\n",
+ "Epoch 91/200 (lr=0.0001), train loss 0.00132\n",
+ "Epoch 92/200 (lr=0.0001), train loss 0.00114\n",
+ "Epoch 93/200 (lr=0.0001), train loss 0.00105\n",
+ "Epoch 94/200 (lr=0.0001), train loss 0.00102\n",
+ "Epoch 95/200 (lr=0.0001), train loss 0.00107\n",
+ "Epoch 96/200 (lr=0.0001), train loss 0.00102\n",
+ "Epoch 97/200 (lr=0.0001), train loss 0.00103\n",
+ "Epoch 98/200 (lr=0.0001), train loss 0.00104\n",
+ "Epoch 99/200 (lr=0.0001), train loss 0.00109\n",
+ "Training for epoch 100 done, starting evaluation\n",
+ "Epoch 100/200 (lr=0.0001), train loss 0.00101, valid loss 0.00182\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 3.91\n",
+ " metrics/test.rmse_pcutoff: 3.06\n",
+ " metrics/test.mAP: 97.78\n",
+ " metrics/test.mAR: 97.94\n",
+ "Epoch 101/200 (lr=0.0001), train loss 0.00105\n",
+ "Epoch 102/200 (lr=0.0001), train loss 0.00098\n",
+ "Epoch 103/200 (lr=0.0001), train loss 0.00101\n",
+ "Epoch 104/200 (lr=0.0001), train loss 0.00093\n",
+ "Epoch 105/200 (lr=0.0001), train loss 0.00102\n",
+ "Epoch 106/200 (lr=0.0001), train loss 0.00093\n",
+ "Epoch 107/200 (lr=0.0001), train loss 0.00104\n",
+ "Epoch 108/200 (lr=0.0001), train loss 0.00094\n",
+ "Epoch 109/200 (lr=0.0001), train loss 0.00094\n",
+ "Training for epoch 110 done, starting evaluation\n",
+ "Epoch 110/200 (lr=0.0001), train loss 0.00096, valid loss 0.00184\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 3.62\n",
+ " metrics/test.rmse_pcutoff: 3.03\n",
+ " metrics/test.mAP: 98.36\n",
+ " metrics/test.mAR: 98.43\n",
+ "Epoch 111/200 (lr=0.0001), train loss 0.00096\n",
+ "Epoch 112/200 (lr=0.0001), train loss 0.00105\n",
+ "Epoch 113/200 (lr=0.0001), train loss 0.00092\n",
+ "Epoch 114/200 (lr=0.0001), train loss 0.00098\n",
+ "Epoch 115/200 (lr=0.0001), train loss 0.00098\n",
+ "Epoch 116/200 (lr=0.0001), train loss 0.00092\n",
+ "Epoch 117/200 (lr=0.0001), train loss 0.00088\n",
+ "Epoch 118/200 (lr=0.0001), train loss 0.00092\n",
+ "Epoch 119/200 (lr=0.0001), train loss 0.00085\n",
+ "Training for epoch 120 done, starting evaluation\n",
+ "Epoch 120/200 (lr=1e-05), train loss 0.00086, valid loss 0.00177\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 3.85\n",
+ " metrics/test.rmse_pcutoff: 3.37\n",
+ " metrics/test.mAP: 97.23\n",
+ " metrics/test.mAR: 97.94\n",
+ "Epoch 121/200 (lr=1e-05), train loss 0.00087\n",
+ "Epoch 122/200 (lr=1e-05), train loss 0.00092\n",
+ "Epoch 123/200 (lr=1e-05), train loss 0.00084\n",
+ "Epoch 124/200 (lr=1e-05), train loss 0.00082\n",
+ "Epoch 125/200 (lr=1e-05), train loss 0.00087\n",
+ "Epoch 126/200 (lr=1e-05), train loss 0.00081\n",
+ "Epoch 127/200 (lr=1e-05), train loss 0.00077\n",
+ "Epoch 128/200 (lr=1e-05), train loss 0.00083\n",
+ "Epoch 129/200 (lr=1e-05), train loss 0.00087\n",
+ "Training for epoch 130 done, starting evaluation\n",
+ "Epoch 130/200 (lr=1e-05), train loss 0.00081, valid loss 0.00165\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 3.36\n",
+ " metrics/test.rmse_pcutoff: 3.01\n",
+ " metrics/test.mAP: 98.75\n",
+ " metrics/test.mAR: 98.82\n",
+ "Epoch 131/200 (lr=1e-05), train loss 0.00078\n",
+ "Epoch 132/200 (lr=1e-05), train loss 0.00083\n",
+ "Epoch 133/200 (lr=1e-05), train loss 0.00079\n",
+ "Epoch 134/200 (lr=1e-05), train loss 0.00088\n",
+ "Epoch 135/200 (lr=1e-05), train loss 0.00087\n",
+ "Epoch 136/200 (lr=1e-05), train loss 0.00084\n",
+ "Epoch 137/200 (lr=1e-05), train loss 0.00085\n",
+ "Epoch 138/200 (lr=1e-05), train loss 0.00083\n",
+ "Epoch 139/200 (lr=1e-05), train loss 0.00088\n",
+ "Training for epoch 140 done, starting evaluation\n",
+ "Epoch 140/200 (lr=1e-05), train loss 0.00081, valid loss 0.00170\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 3.40\n",
+ " metrics/test.rmse_pcutoff: 3.04\n",
+ " metrics/test.mAP: 98.34\n",
+ " metrics/test.mAR: 98.43\n",
+ "Epoch 141/200 (lr=1e-05), train loss 0.00084\n",
+ "Epoch 142/200 (lr=1e-05), train loss 0.00081\n",
+ "Epoch 143/200 (lr=1e-05), train loss 0.00085\n",
+ "Epoch 144/200 (lr=1e-05), train loss 0.00085\n",
+ "Epoch 145/200 (lr=1e-05), train loss 0.00083\n",
+ "Epoch 146/200 (lr=1e-05), train loss 0.00089\n",
+ "Epoch 147/200 (lr=1e-05), train loss 0.00075\n",
+ "Epoch 148/200 (lr=1e-05), train loss 0.00079\n",
+ "Epoch 149/200 (lr=1e-05), train loss 0.00079\n",
+ "Training for epoch 150 done, starting evaluation\n",
+ "Epoch 150/200 (lr=1e-05), train loss 0.00084, valid loss 0.00167\n",
+ "Model performance:\n",
+ " metrics/test.rmse: 3.56\n",
+ " metrics/test.rmse_pcutoff: 2.89\n",
+ " metrics/test.mAP: 98.04\n",
+ " metrics/test.mAR: 98.24\n"
+ ]
+ },
+ {
+ "ename": "KeyboardInterrupt",
+ "evalue": "",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdeeplabcut\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain_network\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mCTD_SHUFFLE\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/compat.py\u001b[0m in \u001b[0;36mtrain_network\u001b[0;34m(config, shuffle, trainingsetindex, max_snapshots_to_keep, displayiters, saveiters, maxiters, epochs, save_epochs, allow_growth, gputouse, autotune, keepdeconvweights, modelprefix, superanimal_name, superanimal_transfer_learning, engine, device, snapshot_path, detector_path, batch_size, detector_batch_size, detector_epochs, detector_save_epochs, pose_threshold, pytorch_cfg_updates)\u001b[0m\n\u001b[1;32m 285\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mdeeplabcut\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpose_estimation_pytorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapis\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtrain_network\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 287\u001b[0;31m return train_network(\n\u001b[0m\u001b[1;32m 288\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshuffle\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/apis/training.py\u001b[0m in \u001b[0;36mtrain_network\u001b[0;34m(config, shuffle, trainingsetindex, modelprefix, device, snapshot_path, detector_path, load_head_weights, batch_size, epochs, save_epochs, detector_batch_size, detector_epochs, detector_save_epochs, display_iters, max_snapshots_to_keep, pose_threshold, pytorch_cfg_updates)\u001b[0m\n\u001b[1;32m 358\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 359\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel_cfg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"train_settings\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"epochs\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 360\u001b[0;31m train(\n\u001b[0m\u001b[1;32m 361\u001b[0m \u001b[0mloader\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mloader\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0mrun_config\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mloader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel_cfg\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/apis/training.py\u001b[0m in \u001b[0;36mtrain\u001b[0;34m(loader, run_config, task, device, gpus, logger_config, snapshot_path, transform, inference_transform, max_snapshots_to_keep, load_head_weights)\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0mlogging\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"\\nStarting pose model training...\\n\"\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m50\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m\"-\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 192\u001b[0;31m runner.fit(\n\u001b[0m\u001b[1;32m 193\u001b[0m \u001b[0mtrain_dataloader\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[0mvalid_dataloader\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/runners/train.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, train_loader, valid_loader, epochs, display_iters)\u001b[0m\n\u001b[1;32m 212\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcurrent_epoch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_metadata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"epoch\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 214\u001b[0;31m train_loss = self._epoch(\n\u001b[0m\u001b[1;32m 215\u001b[0m \u001b[0mtrain_loader\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"train\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdisplay_iters\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdisplay_iters\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 216\u001b[0m )\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/runners/train.py\u001b[0m in \u001b[0;36m_epoch\u001b[0;34m(self, loader, mode, display_iters)\u001b[0m\n\u001b[1;32m 274\u001b[0m \u001b[0mloss_metrics\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdefaultdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 275\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloader\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 276\u001b[0;31m \u001b[0mlosses_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 277\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m\"total_loss\"\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mlosses_dict\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 278\u001b[0m \u001b[0mepoch_loss\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlosses_dict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"total_loss\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/runners/train.py\u001b[0m in \u001b[0;36mstep\u001b[0;34m(self, batch, mode)\u001b[0m\n\u001b[1;32m 438\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'cond_keypoints'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mbatch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'context'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 439\u001b[0m \u001b[0mcond_kpts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'context'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'cond_keypoints'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 440\u001b[0;31m \u001b[0moutputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcond_kpts\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcond_kpts\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 441\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 442\u001b[0m \u001b[0moutputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1737\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compiled_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[misc]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1738\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1739\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1740\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1741\u001b[0m \u001b[0;31m# torchrec tests the code consistency with the following code\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1748\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_pre_hooks\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_hooks\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1749\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[0;32m-> 1750\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1751\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1752\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/models/model.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, x, **backbone_kwargs)\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 77\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 78\u001b[0;31m \u001b[0mfeatures\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbackbone\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mbackbone_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 79\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mneck\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0mfeatures\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mneck\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_wrapped_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1737\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compiled_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# type: ignore[misc]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1738\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1739\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_impl\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1740\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1741\u001b[0m \u001b[0;31m# torchrec tests the code consistency with the following code\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/torch/nn/modules/module.py\u001b[0m in \u001b[0;36m_call_impl\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1748\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_pre_hooks\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0m_global_backward_hooks\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1749\u001b[0m or _global_forward_hooks or _global_forward_pre_hooks):\n\u001b[0;32m-> 1750\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mforward_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1751\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1752\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/models/backbones/cond_prenet.py\u001b[0m in \u001b[0;36mforward\u001b[0;34m(self, x, cond_kpts)\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mcond_kpts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcond_kpts\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdetach\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 99\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 100\u001b[0;31m \u001b[0mcond_hm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcond_enc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcond_kpts\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqueeze\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 101\u001b[0m \u001b[0mcond_hm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_numpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcond_hm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 102\u001b[0m \u001b[0mcond_hm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcond_hm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpermute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# (B, C, H, W)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/models/modules/kpt_encoders.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, keypoints, size)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 244\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 245\u001b[0;31m \u001b[0mcondition_heatmap\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mblur_heatmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcondition\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 246\u001b[0m \u001b[0mcondition\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcondition_heatmap\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0;31m# condition = self.blur_heatmap_batch(torch.from_numpy(condition))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.11/dist-packages/deeplabcut/pose_estimation_pytorch/models/modules/kpt_encoders.py\u001b[0m in \u001b[0;36mblur_heatmap\u001b[0;34m(self, heatmap)\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mheatmap\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0ma\u001b[0m \u001b[0mGaussian\u001b[0m \u001b[0mblur\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msuch\u001b[0m \u001b[0mthat\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m255\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 77\u001b[0m \"\"\"\n\u001b[0;32m---> 78\u001b[0;31m \u001b[0mheatmap\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGaussianBlur\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkernel_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msigmaX\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 79\u001b[0m \u001b[0mam\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mamax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheatmap\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mam\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
+ ]
+ }
+ ],
+ "source": [
+ "deeplabcut.train_network(config, shuffle=CTD_SHUFFLE)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5d4b810f",
+ "metadata": {
+ "id": "5d4b810f"
+ },
+ "source": [
+ "If your CTD model is well trained, it should now outperform the performance of the BU model who's predictions it uses as conditions!\n",
+ "\n",
+ "Note that the model is evaluated using pose conditions that were created with generative sampling. When you evaluate the network with the `evaluate_network` method, the performance will be different as you're using the actual conditions from the bottom-up model we trained first."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "0cb3c2da",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 9116,
+ "status": "ok",
+ "timestamp": 1744361908966,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "0cb3c2da",
+ "outputId": "6b446a05-afd1-452f-c3f9-d866caed6bc7"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "100%|██████████| 78/78 [00:05<00:00, 14.65it/s]\n",
+ "100%|██████████| 34/34 [00:02<00:00, 14.91it/s]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Evaluation results for DLC_CtdPrenetCspnextM_trimiceJun22shuffle2_snapshot_130-results.csv (pcutoff: 0.01):\n",
+ "train rmse 2.46\n",
+ "train rmse_pcutoff 2.46\n",
+ "train mAP 98.51\n",
+ "train mAR 98.93\n",
+ "test rmse 4.41\n",
+ "test rmse_pcutoff 4.41\n",
+ "test mAP 96.88\n",
+ "test mAR 97.06\n",
+ "Name: (0.7, 2, 130, -1, 0.01), dtype: float64\n"
+ ]
+ }
+ ],
+ "source": [
+ "deeplabcut.evaluate_network(config, Shuffles=[CTD_SHUFFLE])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5ea24b55",
+ "metadata": {
+ "id": "5ea24b55"
+ },
+ "source": [
+ "## Tracking with CTD\n",
+ "\n",
+ "One of the big advantages of having a CTD model is that it can be used to track individuals directly! Let's say you have the pose for your animals at `frame T`. Then you can use those poses as conditions for `frame T+1`, and let your CTD model simply \"update\" the poses depending on how much your mice moved.\n",
+ "\n",
+ "In the simplest scenario, you only need to run the BU model on the first frame, and then the CTD model takes over for inference and tracking:\n",
+ "\n",
+ "1. Run the BU model to generate conditions for the 1st frame of the video\n",
+ "2. For every frame after that, use the predictions from the previous frame as conditions\n",
+ "\n",
+ "However, this may not fit your scenario perfectly. Maybe all the mice aren't present in the first frame, and if they aren't detected by the BU model they'll never be tracked. Maybe at some point the CTD model makes an error and you lose track of a mouse. There are some options to deal with this:\n",
+ "\n",
+ "- Run the BU model every time at least one mouse is not detected (if you expect N mice to be in the video and you only detect N-1 mice, run the BU model):\n",
+ " - In this case, the predictions from the BU model need to be \"merged in\" to the existing N-1 tracks\n",
+ " - We can merge them in by using a similarity score between poses (OKS) which ranges from 0 to 1\n",
+ " - You likely don't want to run the BU model every frame, as this would slow down inference.\n",
+ "- Run the BU model every K frames in case new mice appear\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "bbc777c8",
+ "metadata": {
+ "id": "bbc777c8"
+ },
+ "source": [
+ "### Downloading a Tri-Mouse video\n",
+ "\n",
+ "First, let's download a video from the Tri-Mouse dataset. Note that this may take some time to run (1 minute or 2). If you have any issues downloading the files through the code, you can simply download the zipfile through [zenodo.org/records/7883589/files/demo-me-2021-07-14.zip](https://zenodo.org/records/7883589/files/demo-me-2021-07-14.zip?download=1), and then drag-and-drop the video in `demo-me-2021-07-14/videos/videocompressed1.mp4` file into COLAB in the right panel to upload it. Make sure the video is fully uploaded before you run analysis."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "d678a5e4",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 43,
+ "status": "ok",
+ "timestamp": 1744361934728,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "d678a5e4",
+ "outputId": "4d9dd907-183a-4f34-94a1-2550b24cafc0"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Video will be saved in /content/videocompressed1.mp4\n"
+ ]
+ }
+ ],
+ "source": [
+ "download_path = Path.cwd()\n",
+ "video_name = \"videocompressed1.mp4\"\n",
+ "video_path = str(download_path / video_name)\n",
+ "print(f\"Video will be saved in {video_path}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2247556f",
+ "metadata": {
+ "id": "2247556f"
+ },
+ "outputs": [],
+ "source": [
+ "print(f\"Downloading the tri-mouse video into {download_path}\")\n",
+ "\n",
+ "url_video_record = \"https://zenodo.org/api/records/7883589\"\n",
+ "response = requests.get(url_video_record)\n",
+ "if response.status_code == 200:\n",
+ " file = response.json()[\"files\"][0]\n",
+ " title = file[\"key\"]\n",
+ " print(f\"Downloading {title}...\")\n",
+ " with requests.get(file['links']['self'], stream=True) as r:\n",
+ " with ZipFile(BytesIO(r.content)) as zf:\n",
+ " zf.extractall(path=download_path)\n",
+ "else:\n",
+ " raise ValueError(f\"The URL {url_record} could not be reached.\")\n",
+ "\n",
+ "# Check that the video was downloaded\n",
+ "src_video_path = download_path / \"demo-me-2021-07-14\" / \"videos\" / video_name\n",
+ "if not src_video_path.exists():\n",
+ " raise ValueError(\"Failed to download the video\")\n",
+ "\n",
+ "# Move the video to the final path\n",
+ "shutil.move(src_video_path, video_path)\n",
+ "if not Path(video_path).exists():\n",
+ " raise ValueError(\"Failed to move the video\")\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "721ce122",
+ "metadata": {
+ "id": "721ce122"
+ },
+ "source": [
+ "### Running Video Analysis\n",
+ "\n",
+ "You can track using your CTD model by setting `ctd_tracking=True` when calling `analyze_videos`. Of course, you then won't need to convert detections to tracklets or link tracklets, as the CTD model will directly be tracking the animals. This should run at 15 to 40 FPS depending on your hardware.\n",
+ "\n",
+ "You can create a labeled video containing the predictions made with the CTD tracker by setting `track_method=\"ctd\"` when calling `create_labeled_video`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "50b3787c",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 193256,
+ "status": "ok",
+ "timestamp": 1744363303936,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "50b3787c",
+ "outputId": "c9e0c4fb-fab0-4dec-a587-a6c3e003b4ef"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Analyzing videos with /content/trimice-dlc-2021-06-22/dlc-models-pytorch/iteration-0/trimiceJun22-trainset70shuffle2/train/snapshot-best-130.pt\n",
+ "CTD tracking can only be used with batch size 1. Updating it.\n",
+ "Starting to analyze /content/videocompressed1.mp4\n",
+ "Video metadata: \n",
+ " Overall # of frames: 2330\n",
+ " Duration of video [s]: 77.67\n",
+ " fps: 30.0\n",
+ " resolution: w=640, h=480\n",
+ "\n",
+ "Running pose prediction with batch size 1\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "100%|██████████| 2330/2330 [02:10<00:00, 17.80it/s]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Saving results in /content/videocompressed1DLC_CtdPrenetCspnextM_trimiceJun22shuffle2_snapshot_130_ctd.h5 and /content/videocompressed1DLC_CtdPrenetCspnextM_trimiceJun22shuffle2_snapshot_130_ctd_full.pickle\n",
+ "The videos are analyzed. Now your research can truly start!\n",
+ "You can create labeled videos with 'create_labeled_video'.\n",
+ "If the tracking is not satisfactory for some videos, consider expanding the training set. You can use the function 'extract_outlier_frames' to extract a few representative outlier frames.\n",
+ "\n",
+ "Starting to process video: /content/videocompressed1.mp4\n",
+ "Loading /content/videocompressed1.mp4 and data.\n",
+ "Duration of video [s]: 77.67, recorded with 30.0 fps!\n",
+ "Overall # of frames: 2330 with cropped frame dimensions: 640 480\n",
+ "Generating frames and creating video.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib/python3.11/dist-packages/deeplabcut/utils/make_labeled_video.py:146: FutureWarning: DataFrame.groupby with axis=1 is deprecated. Do `frame.T.groupby(...)` without axis instead.\n",
+ " Dataframe.groupby(level=\"individuals\", axis=1).size().values // 3\n",
+ "100%|██████████| 2330/2330 [00:58<00:00, 39.95it/s]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "[True]"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "deeplabcut.analyze_videos(\n",
+ " config,\n",
+ " [video_path],\n",
+ " shuffle=CTD_SHUFFLE,\n",
+ " ctd_tracking=True,\n",
+ ")\n",
+ "deeplabcut.create_labeled_video(\n",
+ " config,\n",
+ " [video_path],\n",
+ " shuffle=CTD_SHUFFLE,\n",
+ " track_method=\"ctd\",\n",
+ " color_by=\"individual\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2jDlgrJnEw_y",
+ "metadata": {
+ "id": "2jDlgrJnEw_y"
+ },
+ "source": [
+ "We can then visualize the results of tracking with CTD."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "JU8d1zvBEwWq",
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 501,
+ "output_embedded_package_id": "15Gie9uW38e2cxxI0IyBAAYBUpaRBia4K"
+ },
+ "executionInfo": {
+ "elapsed": 7557,
+ "status": "ok",
+ "timestamp": 1744363338435,
+ "user": {
+ "displayName": "Niels Poulsen",
+ "userId": "07147513190166716525"
+ },
+ "user_tz": -120
+ },
+ "id": "JU8d1zvBEwWq",
+ "outputId": "ec8e3860-5e21-47b3-a457-7576593f2379"
+ },
+ "outputs": [],
+ "source": [
+ "from IPython.display import HTML\n",
+ "from base64 import b64encode\n",
+ "\n",
+ "\n",
+ "def show_video(video_path, width=640):\n",
+ " video_file = open(video_path, \"rb\").read()\n",
+ " video_url = f\"data:video/mp4;base64,{b64encode(video_file).decode()}\"\n",
+ " return HTML(f\"\"\"\n",
+ " \n",
+ " \"\"\")\n",
+ "\n",
+ "\n",
+ "show_video(download_path / \"videocompressed1DLC_CtdPrenetCspnextM_trimiceJun22shuffle2_snapshot_130_ctd_id_p1_labeled.mp4\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "56bd9ab7",
+ "metadata": {
+ "id": "56bd9ab7"
+ },
+ "source": [
+ "It can be beneficial to customize the tracking parameters a bit. The tracking paramaters you can set are:\n",
+ "\n",
+ "Note: [OKS (object-keypoint similarity)](https://cocodataset.org/#keypoints-eval) is a similarity metric for pose estimation, ranging from 0 to 1 (where 1 means the pose is identical)\n",
+ "\n",
+ "- **`bu_on_lost_idv`**: When True, the BU model is run when there are fewer conditions found than the expected number of individuals in the video.\n",
+ "- **`bu_min_frequency`**: The minimum frequency at which the BU model is run to generate conditions. If None, the BU model is only run to initialize the pose in the first frame, and then is not run again. If a positive number N, the BU model is run every N frames. The BU predictions are then combined with the CTD predictions to continue the tracklets.\n",
+ "- **`bu_max_frequency`**: The maximum frequency at which the BU model can be run. Must be greater than `bu_min_frequency`. When there are fewer conditions than individuals expected in the video and `bu_on_lost_idv` is True, the BU model may be run on every frame. This can happen if individuals can disappear from the video, and each frame may have a variable number of individuals. If `bu_max_frequency` is set to N, then the BU model will be run at most every N-th frame, which improves the inference speed of the model.\n",
+ "- **`threshold_bu_add`**: The OKS threshold below which a BU pose must be (wrt. any existing CTD pose) to be added to the poses.\n",
+ "- **`threshold_ctd`**: The score threshold below which detected keypoints are NOT given to the CTD model to predict pose for the next frame.\n",
+ "- **`threshold_nms`**: The OKS threshold to use for non-maximum suppression. This is used to remove duplicates poses when two CTD model predictions converge to a single animal. If two poses have an OKS above this threshold, one of the poses is removed.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "5e667af4",
+ "metadata": {
+ "id": "5e667af4"
+ },
+ "outputs": [],
+ "source": [
+ "dest_folder = str(Path(video_path).parent / \"custom-ctd-tracking\")\n",
+ "\n",
+ "deeplabcut.analyze_videos(\n",
+ " config,\n",
+ " [video_path],\n",
+ " shuffle=CTD_SHUFFLE,\n",
+ " destfolder=dest_folder,\n",
+ " ctd_tracking=dict(\n",
+ " bu_on_lost_idv=True,\n",
+ " bu_max_frequency=10,\n",
+ " threshold_bu_add=0.5,\n",
+ " threshold_ctd=0.01,\n",
+ " threshold_nms=0.8,\n",
+ " ),\n",
+ ")\n",
+ "deeplabcut.create_labeled_video(\n",
+ " config,\n",
+ " [video_path],\n",
+ " shuffle=CTD_SHUFFLE,\n",
+ " destfolder=dest_folder,\n",
+ " track_method=\"ctd\",\n",
+ " color_by=\"individual\",\n",
+ ")"
+ ]
+ }
+ ],
+ "metadata": {
+ "accelerator": "GPU",
+ "colab": {
+ "collapsed_sections": [
+ "b2829415",
+ "d46ecdc8"
+ ],
+ "gpuType": "T4",
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/test.sh b/examples/test.sh
index 9b11eb6a2f..51ab6ba82c 100755
--- a/examples/test.sh
+++ b/examples/test.sh
@@ -6,7 +6,7 @@ rm -r OUT
cd ..
pip uninstall deeplabcut
python3 setup.py sdist bdist_wheel
-pip install dist/deeplabcut-3.0.0rc7-none-any.whl
+pip install dist/deeplabcut-3.0.0rc8-none-any.whl
cd examples
diff --git a/reinstall.sh b/reinstall.sh
index 630b3abbda..425fbd44b2 100755
--- a/reinstall.sh
+++ b/reinstall.sh
@@ -1,3 +1,3 @@
pip uninstall deeplabcut
python3 setup.py sdist bdist_wheel
-pip install dist/deeplabcut-3.0.0rc7-py3-none-any.whl
+pip install dist/deeplabcut-3.0.0rc8-py3-none-any.whl
diff --git a/setup.py b/setup.py
index 9615a921b3..61e416bdbd 100644
--- a/setup.py
+++ b/setup.py
@@ -47,7 +47,7 @@ def pytorch_config_paths() -> list[str]:
setuptools.setup(
name="deeplabcut",
- version="3.0.0rc7",
+ version="3.0.0rc8",
author="A. & M.W. Mathis Labs",
author_email="alexander@deeplabcut.org",
description="Markerless pose-estimation of user-defined features with deep learning",
diff --git a/tests/pose_estimation_pytorch/apis/test_create_tracking_dataset.py b/tests/pose_estimation_pytorch/apis/test_create_tracking_dataset.py
index 68b729efbd..6ea3ea4540 100644
--- a/tests/pose_estimation_pytorch/apis/test_create_tracking_dataset.py
+++ b/tests/pose_estimation_pytorch/apis/test_create_tracking_dataset.py
@@ -37,7 +37,11 @@ def __init__(self, tmp_folder: Path, bodyparts: list[str] | None = None):
net_type="resnet_50",
save=True,
)
- super().__init__(model_config_path)
+ super().__init__(
+ str(tmp_folder),
+ str(tmp_folder / "labeled-data"),
+ model_config_path,
+ )
def load_data(self, mode: str = "train") -> dict[str, list[dict]]:
return {
diff --git a/tests/pose_estimation_pytorch/data/test_data_ctd.py b/tests/pose_estimation_pytorch/data/test_data_ctd.py
new file mode 100644
index 0000000000..5e51c3a86b
--- /dev/null
+++ b/tests/pose_estimation_pytorch/data/test_data_ctd.py
@@ -0,0 +1,190 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+import json
+import platform
+from pathlib import Path
+
+import numpy as np
+import pandas as pd
+import pytest
+
+from deeplabcut.pose_estimation_pytorch.data.ctd import CondFromFile
+
+
+CONDITIONS = [
+ np.zeros((4, 3, 3)).tolist(),
+ np.ones((4, 3, 3)).tolist(),
+ 2 * np.ones((4, 3, 3)).tolist(),
+ 3 * np.ones((4, 3, 3)).tolist(),
+]
+
+
+@pytest.mark.parametrize("path_prefix", ["/a/b"])
+@pytest.mark.parametrize(
+ "data",
+ [
+ [("/a/b/c/d.png", "/a/b/c/d.png", CONDITIONS[1])],
+ [("/a/b/c/d.png", "c/d.png", CONDITIONS[1])],
+ [
+ ("/a/b/c.png", "c.png", CONDITIONS[1]),
+ ("/a/b/c/d.png", "c/d.png", CONDITIONS[2]),
+ ("/a/b/c/e.png", "/a/b/c/e.png", CONDITIONS[3]),
+ ],
+ ],
+)
+def test_ctd_load_json_containing_rel_paths(
+ tmp_path_factory,
+ path_prefix: str | Path,
+ data: tuple[list[str], list[str], list],
+) -> None:
+ print("Starting test")
+ # convert the image paths to Windows format
+ if platform.system() == "Windows":
+ print("Converting to windows filesystem")
+
+ print("Path Prefix:", path_prefix)
+ if isinstance(path_prefix, Path):
+ print(f" As string: {str(path_prefix)}")
+ path_prefix = Path(_to_windows_path(str(path_prefix)))
+ else:
+ path_prefix = _to_windows_path(path_prefix)
+ print(f" Converted {path_prefix}")
+
+ data = [
+ (_to_windows_path(img), _to_windows_path(key), cond)
+ for img, key, cond in data
+ ]
+ print(f"Images: {[d[0] for d in data]}")
+ print(f"Condition keys: {[d[1] for d in data]}")
+ print("---")
+
+ images = [img for img, _, _ in data]
+ conditions = {key: cond for _, key, cond in data}
+
+ tmp_folder = Path(tmp_path_factory.mktemp("tmp-project"))
+ conditions_filepath = tmp_folder / "conditions.json"
+ with open(conditions_filepath, "w") as f:
+ json.dump(conditions, f)
+
+ conditions = CondFromFile.load_conditions_json(
+ conditions_filepath,
+ images,
+ path_prefix=path_prefix,
+ )
+ for img_path, _, condition in data:
+ assert img_path in conditions
+ np.testing.assert_allclose(condition, conditions[img_path])
+
+
+@pytest.mark.parametrize("path_prefix", ["/p"])
+@pytest.mark.parametrize("num_conditions", [1, 2, 3, 5, 10])
+@pytest.mark.parametrize("num_bodyparts", [1, 2, 3, 5, 10])
+@pytest.mark.parametrize(
+ "data",
+ [
+ [("/p/data/video0/img0.png", ("data", "video0", "img0.png"))],
+ [("/p/data/video0/img0.png", "data/video0/img0.png")],
+ [
+ ("/p/b/c/d0.png", ("b", "c", "d0.png")),
+ ("/p/b/c/d1.png", ("b", "c", "d1.png")),
+ ("/p/b/c/d2.png", ("b", "c", "d2.png")),
+ ],
+ [
+ ("/p/b/c/d0.png", "b/c/d0.png"),
+ ("/p/b/c/d1.png", "b/c/d1.png"),
+ ("/p/b/c/d2.png", "b/c/d2.png"),
+ ],
+ ],
+)
+def test_ctd_load_hdf_containing_rel_paths(
+ tmp_path_factory,
+ path_prefix: str | Path,
+ num_conditions: int,
+ num_bodyparts: int,
+ data: tuple[list[str], list[str]],
+) -> None:
+ print("\nStarting test")
+
+ # convert the image paths to Windows format
+ if platform.system() == "Windows":
+ print("Converting to windows filesystem")
+
+ print("Path Prefix:", path_prefix)
+ if isinstance(path_prefix, Path):
+ print(f" As string: {str(path_prefix)}")
+ path_prefix = Path(_to_windows_path(str(path_prefix)))
+ else:
+ path_prefix = _to_windows_path(path_prefix)
+ print(f" Converted {path_prefix}")
+
+ data = [(_to_windows_path(img), idx) for img, idx in data]
+ print(f"Images: {[d[0] for d in data]}")
+ print("---")
+
+ num_images = len(data)
+ images = [img for img, _ in data]
+ index = [idx for _, idx in data]
+ if isinstance(index[0], tuple):
+ index = pd.MultiIndex.from_tuples(index)
+
+ # generate random pose data
+ size = (num_images, num_conditions, num_bodyparts, 3)
+ rng = np.random.default_rng(0)
+ pose = rng.integers(low=0, high=1024, size=size).astype(float)
+ pose[:, :, :, 2] = rng.random(size=(num_images, num_conditions, num_bodyparts))
+
+ # set some missing data
+ is_nans = rng.random(size=size) > 0.8
+ pose[is_nans] = np.nan
+
+ # create what the output data will look like
+ keypoint_mask = np.any(is_nans, axis=3)
+ output_pose = pose.copy()
+ output_pose[keypoint_mask] = 0.0
+ idv_mask = ~np.all(keypoint_mask, axis=2)
+
+ output_pose = [
+ p[p_mask] if np.any(p_mask) else np.zeros((0, num_bodyparts, 3))
+ for p, p_mask in zip(output_pose, idv_mask)
+ ]
+
+ # generate columns for the dataframe
+ columns = pd.MultiIndex.from_product(
+ [
+ ["scorer"],
+ [f"idv{i}" for i in range(num_conditions)],
+ [f"bpt{i}" for i in range(num_bodyparts)],
+ ["x", "y", "likelihood"],
+ ],
+ names=["scorer", "individuals", "bodyparts", "coords"],
+ )
+ df = pd.DataFrame(data=pose.reshape(num_images, -1), index=index, columns=columns)
+
+ print(df.head())
+
+ tmp_folder = Path(tmp_path_factory.mktemp("tmp-project"))
+ conditions_filepath = tmp_folder / "conditions.h5"
+ df.to_hdf(conditions_filepath, key="df_with_missing")
+
+ conditions = CondFromFile.load_conditions_h5(
+ conditions_filepath, images, path_prefix=path_prefix
+ )
+ for idx, (img_path, img_index) in enumerate(data):
+ assert img_path in conditions
+ np.testing.assert_allclose(output_pose[idx], conditions[img_path])
+
+
+def _to_windows_path(s: str) -> str:
+ # Convert absolute paths to paths on C:
+ if s.startswith("/"):
+ return str(Path("C:\\", *s[1:].split("/")))
+
+ return s
diff --git a/tests/pose_estimation_pytorch/other/test_dataset.py b/tests/pose_estimation_pytorch/other/test_dataset.py
index 6894d8fbe2..b9c091c0f6 100644
--- a/tests/pose_estimation_pytorch/other/test_dataset.py
+++ b/tests/pose_estimation_pytorch/other/test_dataset.py
@@ -73,6 +73,7 @@ def _get_openfield_dataset(transform=None):
"original_size",
"annotations",
"image_id",
+ "context",
}
anno_key_set = {
"keypoints",
@@ -108,7 +109,7 @@ def test_iter_all_dataset_no_transform(batch_size):
is_last_batch = i == (len(dataloader) - 1)
assert (
set(item.keys()) == key_set
- ), "the key returned don't match the required ones"
+ ), f"the key returned don't match the required ones: {item.keys()} != {key_set}"
anno = item["annotations"]
assert (
@@ -171,7 +172,7 @@ def test_iter_all_augmented_dataset(batch_size, x_size, y_size, exaggeration):
is_last_batch = i == (len(dataloader) - 1)
assert (
set(item.keys()) == key_set
- ), "the key returned don't match the required ones"
+ ), f"the key returned don't match the required ones: {item.keys()} != {key_set}"
anno = item["annotations"]
assert (
diff --git a/tests/pose_estimation_pytorch/post_processing/test_postprocessing_nms.py b/tests/pose_estimation_pytorch/post_processing/test_postprocessing_nms.py
new file mode 100644
index 0000000000..bc5acd99e0
--- /dev/null
+++ b/tests/pose_estimation_pytorch/post_processing/test_postprocessing_nms.py
@@ -0,0 +1,107 @@
+#
+# DeepLabCut Toolbox (deeplabcut.org)
+# © A. & M.W. Mathis Labs
+# https://github.com/DeepLabCut/DeepLabCut
+#
+# Please see AUTHORS for contributors.
+# https://github.com/DeepLabCut/DeepLabCut/blob/main/AUTHORS
+#
+# Licensed under GNU Lesser General Public License v3.0
+#
+"""Tests pose NMS"""
+import numpy as np
+import pytest
+
+import deeplabcut.pose_estimation_pytorch.post_processing.nms as nms
+
+
+@pytest.mark.parametrize(
+ "poses, score_threshold, expected_kept",
+ [
+ (
+ [
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ ],
+ 0.1,
+ [True], # a single pose should be kept
+ ),
+ (
+ [
+ [[0.0, np.nan, 0], [0, 0, 0], [0, 0, 0]],
+ ],
+ 0.1,
+ [True], # a single pose should be kept
+ ),
+ (
+ [
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ ],
+ 0.1,
+ [False, False], # no valid poses
+ ),
+ (
+ [
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ [[0.0, 0, 0.9], [10, 10, 0.9], [20, 20, 0.9]],
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ ],
+ 0.1,
+ [False, True, False, False], # a single valid pose
+ ),
+ (
+ [
+ [[0.0, 0, 0.9], [10, 10, 0.9], [20, 20, 0.9]],
+ [[100.0, 100, 0.89], [110, 110, 0.89], [120, 120, 0.89]],
+ ],
+ 0.1,
+ [True, True], # two valid poses, far apart
+ ),
+ (
+ [
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ [[0.0, 0, 0.9], [10, 10, 0.9], [20, 20, 0.9]],
+ [[100.0, 100, 0.8], [110, 110, 0.8], [120, 120, 0.8]],
+ ],
+ 0.1,
+ [False, True, True], # two valid poses, far apart
+ ),
+ (
+ [
+ [[0.0, 0, 0], [0, 0, 0], [0, 0, 0]],
+ [[100.0, 100, 0.8], [110, 110, 0.8], [120, 120, 0.8]],
+ [[0.0, 0, 0.9], [10, 10, 0.9], [20, 20, 0.9]],
+ ],
+ 0.1,
+ [False, True, True], # two valid poses, far apart, sorted by score
+ ),
+ (
+ [
+ [[0.0, 0, 0.89], [10, 10, 0.89], [20, 20, 0.89]],
+ [[100.0, 100, 0.8], [110, 110, 0.8], [120, 120, 0.8]],
+ [[0.0, 0, 0.9], [10, 10, 0.9], [20, 20, 0.9]],
+ ],
+ 0.1,
+ [False, True, True], # two valid poses, far apart, sorted by score, one suppressed
+ ),
+ (
+ [
+ [[1.0, 0, 0.89], [11, 10, 0.89], [21, 20, 0.89]],
+ [[100.0, 100, 0.8], [110, 110, 0.8], [120, 120, 0.8]],
+ [[0.0, 0, 0.9], [10, 10, 0.9], [20, 20, 0.9]],
+ ],
+ 0.1,
+ [False, True, True], # two valid poses, far apart, sorted by score, one suppressed
+ ),
+ ]
+)
+def test_oks_nms_post_processing(poses, score_threshold, expected_kept):
+ """Tests pose NMS"""
+ kept = nms.nms_oks(
+ predictions=np.asarray(poses),
+ oks_threshold=0.9,
+ oks_sigmas=0.1,
+ score_threshold=0.1,
+ )
+ assert kept.tolist() == expected_kept
|