feat!: reorganize detection and tracking pipeline

Refactor the package into common, schema, detection, and tracking namespaces and move dataset-specific ActualTest utilities into tests/support.

Add a pluggable detection stack with typed protocols, pydantic-settings config, loguru-based runner logging, cvmmap and headless video sources, NATS and parquet sinks, and a structured coco-wholebody133 payload path.

Teach tracking replay loading to consume parquet detection directories directly, preserve empty frames, and keep the video-to-parquet-to-tracking workflow usable for offline E2E runs.

Vendor the local mmcv and xtcocotools wheels under Git LFS, update uv sources/lock state, and refresh the mmcv build so mmcv.ops loads successfully with the current torch+cu130 environment.
This commit is contained in:
2026-03-26 16:24:27 +08:00
parent f1a2372b3c
commit 2c0d51ab31
56 changed files with 5179 additions and 889 deletions
+22 -2
View File
@@ -7,13 +7,14 @@ name = "pose-tracking-exp"
version = "0.1.0"
description = "Offline multiview pose tracking experiment with RPT-backed proposal births"
readme = "README.md"
requires-python = ">=3.12"
requires-python = ">=3.12,<3.13"
dependencies = [
"anyio>=4.11.0",
"beartype>=0.19.0",
"click>=8.2.1",
"jaxtyping>=0.3.2",
"numpy>=2.1.0",
"opencv-python>=4.12.0.88",
"opencv-python-headless>=4.12.0.88",
"pyarrow>=21.0.0",
"rapid-pose-triangulation",
"scipy>=1.15.0",
@@ -22,8 +23,24 @@ dependencies = [
[dependency-groups]
dev = [
"basedpyright>=1.31.0",
"jupyterlab>=4.5.6",
"pytest>=8.4.0",
]
detection = [
"cvmmap-client",
"loguru>=0.7.3",
"mmcv",
"mmdet>=3.3.0",
"mmengine>=0.10.7",
"mmpose>=1.3.2",
"nats-py>=2.11.0",
"pydantic>=2.11.7",
"pydantic-settings>=2.0.0",
"torch>=2.7.0",
"torchvision>=0.22.0",
"ultralytics>=8.3.166",
"xtcocotools",
]
[project.scripts]
pose-tracking-exp = "pose_tracking_exp.cli:main"
@@ -33,6 +50,9 @@ packages = ["src/pose_tracking_exp"]
[tool.uv.sources]
rapid-pose-triangulation = { path = "../RapidPoseTriangulation", editable = true }
cvmmap-client = { path = "../cvmmap-python-client", editable = true }
mmcv = { path = "vendor/wheels/mmcv-2.2.0-cp312-cp312-linux_x86_64.whl" }
xtcocotools = { path = "vendor/wheels/xtcocotools-1.14.3-cp312-cp312-linux_x86_64.whl" }
[tool.pytest.ini_options]
testpaths = ["tests"]