1 rendering.unproject

rendering.unproject

Utilities to back-project rendered depth maps into world-frame point clouds.

This module centralises depth unprojection for candidate renders to avoid frame confusion between the PyTorch3D renderer (which outputs metric z depth in the physical camera frame) and downstream visualisations or fusion steps.

1.1 All functions assume

  • depth is metric depth along the camera +Z axis (same convention as pytorch3d.renderer.MeshRasterizer with in_ndc=False).
  • pose_world_cam is a efm3d.aria.pose.PoseTW storing world ← camera extrinsics (LUF camera frame).
  • camera is the matching efm3d.aria.camera.CameraTW carrying intrinsics (and, if batched, per-candidate extrinsics that align with the provided depths/poses).

The returned points live in the same VIO/world frame as the ASE mesh and semidense history. Conceptually a valid depth pixel \(d(u,v)\) maps to \(\mathbf{p}_w = T_{w \leftarrow c}\,\pi^{-1}(u,v,d)\); crop and RRI code then decide whether the point contributes to scene-level or target-level scoring.

1.2 Functions

Name Description
backproject_depths_p3d_batch Back-project a batch of PyTorch3D depth maps to world-frame points.
backproject_depth_with_p3d Back-project a single depth map using PyTorch3D cameras and a validity mask.
backproject_batch Back-project a CandidateDepths batch into a merged world point cloud.