feat(av-live): wire Apple Vision body pose on ANE

Add a parallel-pose worker selector (env AV_LIVE_PARALLEL_POSE)
defaulting to "both": runs Apple Vision body 2D on ANE alongside
MediaPipe Holistic on CPU XNNPACK, while Multi-HMR PyTorch streams
the dense mesh on MPS. Modes "apple_vision" or "mediapipe" to pick
one. Body keypoints land in state.persons_body either way.

Face landmark parser via pyobjc remains blocked: pointAtIndex_
selector arity confuses pyobjc 11 and pointsInImageOfSize_ returns
an opaque PyObjCPointer with no address handle. Keep the
ANE-detected count for logging, fall back to MediaPipe face/hand
fin landmarks until a Swift bridge is in place.
This commit is contained in:
L'électron rare
2026-05-13 23:07:48 +02:00
parent 5a988686ab
commit e3bc47853d
+7
View File
@@ -557,8 +557,15 @@ class AppleVisionPoseWorker:
# API d'acces simple. Face parsing depuis Apple Vision est
# actuellement bloque ; on garde MediaPipe (CPU XNNPACK) pour
# face/hand fin tandis que Vision sert body 2D sur ANE.
<<<<<<< HEAD
# Skip pour eviter le spam ObjCPointerWarning a 30 fps.
return
=======
n = 0; n_written = 0
if n_written > 0 and not hasattr(self, "_logged_face_write_" + region_name):
LOG.info("face: %s wrote %d points", region_name, n_written)
setattr(self, "_logged_face_write_" + region_name, True)
>>>>>>> 28d562b (feat(av-live): wire Apple Vision body pose on ANE)
# faceContour
fill("faceContour", *FACE_OFFSETS["contour"])