Skip to content

Add Manifest.coverage_summary(): per-camera visible fraction + mean occ_frac #53

Description

@bamdadd

After the occlusion labels landed, it's useful to see at a glance which camera is most occluded in a manifest without hand-rolling the loop.

Add Manifest.coverage_summary() on the Manifest model (src/multicam_sim/manifest.py:380) returning, per camera id, the fraction of (entity, frame, point) observations with visible == True and the mean occ_frac (skipping None).

Pointer: iterate self.entities[*].frames[*].points[*].per_cam[*] (the PerCamObs fields cam/visible/occ_frac are already there, manifest.py:127-131); return e.g. dict[int, tuple[float, float]] or a small typed model.

Acceptance criteria

  • Pure read-only aggregation, no new dependency, numpy-free.
  • Returns one entry per camera id; visible-fraction in [0,1]; mean occ_frac ignores None.
  • Test on build_smoke_scene()'s manifest asserts the occluded camera has the lowest visible fraction.
  • mypy/ruff/pytest green.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions