Update to 2026-09-17 pipeline snapshot; add weights, L20 assets and recording via Git LFS

Source: RGB-D -> Dyn-HaMR -> L20 retargeting -> FoundationPose -> reference repair -> SPIDER,
documented in docs/PIPELINE_LATEST.md and docs/SETUP_AND_WEIGHTS.md. Adds FoundationPose and
nvdiffrast upstream snapshots, requirements/pipeline_venv.txt and the FoundationPose weight
manifest/downloader.

Assets (Git LFS): weights/ (WiLoR detector, HandFlow denoiser, UniDepth-L), FoundationPose
checkpoints, HaMeR checkpoint, Dyn-HaMR HMP model and BMC constraints, L20 URDF/meshes, the
20260915_171525 D405 recording and the two box CADs. MANO models are not redistributed
(third_party/hamer/_DATA/data/mano/README.txt). Environments, caches and run outputs excluded.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
liyang
2026-09-17 11:27:46 +08:00
parent 7e4ef6f98b
commit ae28d55f81
761 changed files with 55598 additions and 59 deletions
+6 -1
View File
@@ -1037,6 +1037,11 @@ def batch_rodrigues(param):
def smooth_global_rot_matrix(pred_rots, OE_filter):
rot_mat = batch_rodrigues(pred_rots[None]).squeeze(0)
smoothed_rot_mat = OE_filter.process(rot_mat)
# Elementwise filtering leaves SO(3); project back before axis-angle conversion.
u, _, vh = torch.linalg.svd(smoothed_rot_mat)
correction = torch.eye(3, dtype=u.dtype, device=u.device)
correction[-1, -1] = torch.det(u @ vh)
smoothed_rot_mat = u @ correction @ vh
smoothed_rot = rotation_matrix_to_angle_axis(smoothed_rot_mat.reshape(1,3,3)).reshape(-1)
return smoothed_rot
@@ -1106,4 +1111,4 @@ class OneEuroFilter:
cutoff = self.mincutoff + self.beta * torch.abs(edx)
if print_inter:
print(self.compute_alpha(cutoff))
return self.x_filter.process(x, self.compute_alpha(cutoff))
return self.x_filter.process(x, self.compute_alpha(cutoff))