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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ outputs/
.idea/
.cursor/
*.mp4
*secret*

# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down
55 changes: 55 additions & 0 deletions configs/motrack/dancetrack/algorithm/tdlp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: tdlp
params:
# --- Fixed (infrastructure) — NOT in search space ---
checkpoint: /media/home/MOT-JEPA-outputs/experiments/DanceTrack/exp108b-fromExp107-BboxEmbDim512/checkpoints/last.pt
architecture:
_target_: tdlp.architectures.tdlp.core.build_mm_tdsp_model
mm_dim: 1024
similarity_prediction_head_hidden_dim: 512
sph_common_params:
hidden_dim: 512
sph_per_feature_params:
bbox:
hidden_dim: 512
common_params:
hidden_dim: 512
dropout: 0.1
track_encoder_n_heads: 8
track_encoder_n_layers: 4
track_encoder_ffn_dim: 1024
projector_intermediate_dim: 512
interaction_encoder_enable: true
interaction_encoder_n_heads: 8
interaction_encoder_n_layers: 4
interaction_encoder_ffn_dim: 1024
per_feature_params:
bbox:
feature_encoder_type: motion
feature_encoder_params:
input_dim: 5
aggregator_type: sum
aggregator_params: {}
device: cuda:0
transform:
_target_: tdlp.datasets.dataset.transform.ComposeTransform
transforms:
- _target_: tdlp.datasets.dataset.transform.BBoxXYWHtoXYXY
- _target_: tdlp.datasets.dataset.transform.BBoxMinMaxScaling
- _target_: tdlp.datasets.dataset.transform.FeatureFODStandardization
coord_mean:
bbox: [0.5, 0.5, 0.5, 0.5, 0.5]
coord_std:
bbox: [0.1, 0.1, 0.1, 0.1, 1.0]
fod_mean:
bbox: [0.0, 0.0, 0.0, 0.0, 0.0]
fod_std:
bbox: [0.05, 0.05, 0.05, 0.05, 1.0]
fod_time_scaled: true

# --- Tracker hyperparams (defaults from exp108b; optimizer overrides) ---
detection_threshold: 0.4
sim_threshold: 0.95
initialization_threshold: 1
remember_threshold: 50 # also acts as the model's temporal window
new_tracklet_detection_threshold: 0.9
use_conf: true
7 changes: 7 additions & 0 deletions configs/motrack/dancetrack/dataset/dancetrack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
type: tdlp_dancetrack # resolved via TDLP's DATASET_CATALOG.register
path: DanceTrack-orig # appended to path.assets → /media/home/DanceTrack-orig
params:
index_params:
paths:
- /media/home/DanceTrack-orig/
sequence_list: null
3 changes: 3 additions & 0 deletions configs/motrack/dancetrack/eval/default.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
eval_output: online
eval_classes: [1]
distractor_classes: [2, 7, 8, 12]
5 changes: 5 additions & 0 deletions configs/motrack/dancetrack/inference/val.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
split: val
postprocess: false
override: false
load_image: false
clip: true
13 changes: 13 additions & 0 deletions configs/motrack/dancetrack/object_detection/yolox_cached.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
type: 'mmdet_yolox'
params:
accelerator: cuda:0
conf: 0.6 # matches history/DanceTrack/tdlp_bboxes_mmdet.yaml
min_bbox_area: 100
# mmdetection config matching ByteTrack YOLOX-X architecture
model_config: /work/configs/od/mmdet/yolox_x_bytetrack.py
# Model source: https://github.com/ifzhang/ByteTrack, ByteTrack_ablation
model_path: /media/home/DanceTrack-orig/.other/bytetrack_models/bytetrack_model.pth.tar
bytetrack_compat: true
lookup_path: /media/home/DanceTrack-orig/.other/.lookup.json
oracle: false
cache_path: '/workspace/motrack/dancetrack_mmdet_yolox' # populated by tools/inference.py earlier
7 changes: 7 additions & 0 deletions configs/motrack/dancetrack/optimize_base.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
optimizer:
n_trials: 100
sampler: tpe
sampler_params:
gamma: 0.2
direction: maximize
study_name: dancetrack_tdlp_tpe
2 changes: 2 additions & 0 deletions configs/motrack/dancetrack/path/default.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
master: /media/home/MOT-JEPA-outputs/experiments
assets: /media/home
4 changes: 4 additions & 0 deletions configs/motrack/dancetrack/postprocess/dancetrack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
init_threshold: 1
linear_interpolation_threshold: 30
linear_interpolation_min_tracklet_length: 30
min_tracklet_length: 0
16 changes: 16 additions & 0 deletions configs/motrack/dancetrack/tdlp_infer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
defaults:
- global_config
- dataset: dancetrack
- inference: val
- eval: default
- object_detection: yolox_cached
- algorithm: tdlp
- postprocess: dancetrack
- path: default
- _self_

experiment: 'tdlp-inference'

mlflow:
enabled: true
tracking_uri: ${oc.env:MLFLOW_TRACKING_URI}
41 changes: 41 additions & 0 deletions configs/motrack/dancetrack/tpe_tdlp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
defaults:
- global_config
- dataset: dancetrack
- inference: val
- eval: default
- object_detection: yolox_cached
- algorithm: tdlp
- postprocess: dancetrack
- path: default
- optimize_base
- _self_

experiment: 'tdlp-tpe'

mlflow:
enabled: true
tracking_uri: ${oc.env:MLFLOW_TRACKING_URI}

optimizer:
search_space:
algorithm.params.detection_threshold:
type: float
low: 0.1
high: 0.9
algorithm.params.sim_threshold:
type: float
low: 0.1
high: 0.9
algorithm.params.initialization_threshold:
type: int
low: 0
high: 5
algorithm.params.remember_threshold:
type: int
low: 1
high: 50 # capped at the model's trained clip_length
algorithm.params.new_tracklet_detection_threshold:
type: float
low: 0.3
high: 0.9
min_param: algorithm.params.detection_threshold
18 changes: 18 additions & 0 deletions configs/tdlp_v2/dataset/augmentations/e2e.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
_target_: tdlp.datasets.dataset.augmentations.base.CompositionAugmentation
augmentations:
- _target_: tdlp.datasets.dataset.augmentations.bbox.BBoxGaussianNoiseAugmentation
sigma: 0.05
proba: 0.40
unobs_noise: True
- _target_: tdlp.datasets.dataset.augmentations.bbox.BBoxGaussianNoiseAugmentation
sigma: 0.10
proba: 0.10
unobs_noise: True
- _target_: tdlp.datasets.dataset.augmentations.bbox.BBoxGaussianNoiseAugmentation
sigma: 0.25
proba: 0.05
unobs_noise: True
- _target_: tdlp.datasets.dataset.augmentations.video.PointOcclusionAugmentations
drop_ratio: 0.3
- _target_: tdlp.datasets.dataset.augmentations.video.LeftOrRightOcclusionAugmentations
drop_ratio: 0.2
11 changes: 11 additions & 0 deletions configs/tdlp_v2/exp05.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
defaults:
- the_global_config
- resources: default.yaml
- dataset: dancetrack.yaml
- train: bce.yaml
- eval: default.yaml
- model_config: mm_tdsp_bboxes_mid.yaml
- path: default.yaml

experiment_name: exp05_fromExp04_HiddenDim256
dataset_name: DanceTrack
30 changes: 30 additions & 0 deletions configs/tdlp_v2/model_config/mm_tdsp_bboxes_mid.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
_target_: tdlp.architectures.tdlp.core.build_mm_tdsp_model
mm_dim: 512
similarity_prediction_head_hidden_dim: 256
similarity_head_type: mlp

sph_common_params:
hidden_dim: 256
sph_per_feature_params:
bbox:
hidden_dim: 256

common_params:
hidden_dim: 256
dropout: 0.1
track_encoder_n_heads: 8
track_encoder_n_layers: 2
track_encoder_ffn_dim: 1024
projector_intermediate_dim: 256
interaction_encoder_enable: true
interaction_encoder_n_heads: 8
interaction_encoder_n_layers: 2
interaction_encoder_ffn_dim: 1024
per_feature_params:
bbox:
feature_encoder_type: motion
feature_encoder_params:
input_dim: 5

aggregator_type: sum
aggregator_params: {}
8 changes: 8 additions & 0 deletions configs/tdlp_v2/train/e2e_bce.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
defaults:
- bce.yaml
- _self_

trainer_type: end_to_end
trainer_params:
n_gradient_frames: 3
sim_threshold: 0.5
14 changes: 14 additions & 0 deletions docker/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Check docker/Dockerfile
version: "3.9"

networks:
# Owned by the Motrack project's compose; declared external so we attach,
# never create or destroy. Hosts motrack-mlflow / motrack-env.
motrack-net:
external: true

services:
tdlp-env:
container_name: ${TRAIN_CONT_NAME:-tdlp-env}
Expand All @@ -21,9 +28,16 @@ services:
capabilities: [ gpu ]
cpus: '${CPUS:-1.0}'

environment:
- MLFLOW_TRACKING_URI=${MLFLOW_TRACKING_URI}

networks:
- motrack-net # share network with motrack-mlflow / motrack-env

volumes:
- '/tmp:/tmp'
- '${DATA}:/media/home'
- '/mnt/data:/mnt/data'
- '${CODE:-$PWD}:/work'
- '${CLAUDE_CONFIG:-~/.claude}:/root/.claude'

Expand Down
Loading
Loading