Files
AV-Live/data_only_viz/pyproject.toml
T
L'électron rare 57e3a200bc
CI build oscope-of / build-check (push) Has been cancelled
fix(viz): harden iphone-usb source
Fix 8 defects from whole-branch review (a79bc14..8c4d9f4):

- write_hands param: MediaPipe owns persons_hands in iphone-usb mode;
  IphoneUSBSource gets write_hands=False in multi.py
- Guard cap.start() failure: return early if USB source unavailable
- Stale frame on disconnect: read() returns (False,None) when
  _opened=False after thread exits
- ARKit validity: update only valid joints, matching OSC listener
- Decode exception: except Exception replaces removal-prone av.AVError
- release() unblock: socket.shutdown() before join wakes recv-blocked
  reader immediately
- Log stutter: remove redundant "multi —" prefix from USB log line
- Unit tests: 10 pure no-device tests for _to_annexb + _decode_hands;
  add iphone-usb optional extra (av>=12.0) to pyproject.toml
2026-06-27 15:27:06 +02:00

103 lines
2.7 KiB
TOML

[project]
name = "av-live-data-only-viz"
version = "0.1.0"
description = "Native Metal (pyobjc) visualizer for AV-Live data-only mode"
requires-python = ">=3.11"
dependencies = [
"pyobjc-core>=10.3",
"pyobjc-framework-Cocoa>=10.3",
"pyobjc-framework-Metal>=10.3",
"pyobjc-framework-MetalKit>=10.3",
"pyobjc-framework-Quartz>=10.3",
"pyobjc-framework-AVFoundation>=10.3",
"python-osc>=1.8.3",
"numpy>=1.26,<2",
"scipy>=1.13", # linear_sum_assignment pour tracker IoU (ByteTrack-like)
]
[project.optional-dependencies]
pose = [
"coremltools>=9.0",
"mediapipe>=0.10.35",
"opencv-python>=4.10",
"ultralytics>=8.3",
]
# DETRPose (transformer multi-personne, 2025). Le repo lui-meme n'est pas
# pip-installable — voir docstring data_only_viz/detrpose.py pour la
# procedure de clone manuel + telechargement du checkpoint.
# Les deps listees ici sont uniquement les libs Python tirables via pip.
detrpose = [
"torch>=2.4",
"torchvision>=0.19",
"transformers>=4.40",
"omegaconf>=2.3",
"cloudpickle>=3.0",
"pycocotools>=2.0",
"xtcocotools>=1.14",
"scipy>=1.13",
"iopath>=0.1.10",
"opencv-python>=4.10",
]
# Open3D for ICP fusion between iPhone LiDAR and Multi-HMR SMPL-X meshes.
# CPU-only is sufficient at 5-10 Hz LiDAR cadence.
lidar = [
"open3d>=0.18,<0.20",
]
nlf = [
"torch>=2.4",
"torchvision>=0.19",
"opencv-python>=4.10",
"numpy>=1.26",
]
# Multi-HMR (Naver Labs, ECCV 2024). Pas pip-installable : on clone le repo
# dans ~/.cache/av-live-multihmr/multi-hmr et on injecte sys.path au runtime.
# SMPL-X NEUTRAL.npz requiert un compte academique sur smpl-x.is.tue.mpg.de.
multihmr = [
"torch>=2.4",
"torchvision>=0.19",
"smplx>=0.1.28",
"einops>=0.8",
"iopath>=0.1.10",
"huggingface-hub>=0.24",
"opencv-python>=4.10",
"numpy>=1.26,<2",
"scipy>=1.13",
"torchgeometry>=0.1.2",
# Multi-HMR utils (utils/humans.py, utils/render.py)
"roma>=1.5",
"trimesh>=4.4",
"pillow>=10.0",
"tqdm>=4.65",
]
# SMPLer-X (S-Lab, ECCV 2024, NON-COMMERCIAL). Code source vendu
# via git submodule third_party/SMPLer-X (fork electron-rare).
# mmcv-lite suffit pour Config (le repo vendorise sa propre mmpose).
# Le detector mmdet est remplace par YOLO Ultralytics (extras pose).
iphone-usb = [
"av>=12.0",
"opencv-python>=4.10",
]
smplerx = [
"torch>=2.4",
"torchvision>=0.19",
"smplx>=0.1.28",
"mmcv-lite>=2.1",
"ultralytics>=8.3",
"opencv-python>=4.10",
"numpy>=1.26,<2",
"scipy>=1.13",
"einops>=0.8",
"pillow>=10.0",
"tqdm>=4.65",
"yacs>=0.1.8",
"timm>=1.0",
]
[tool.uv]
package = false
[dependency-groups]
dev = [
"pytest>=9.0.3",
]