in tools/camera_utils.py [0:0]
def concatenate_cameras(cameras_list: List[CamerasBase]):
"""
Make a new batch of cameras by concatenating a list of input
PyTorch3D camera batches `cameras_list`.
"""
for c in cameras_list:
assert isinstance(
c, pt3d.renderer.PerspectiveCameras
), "This only works for PerspectiveCameras!"
cameras_cat = pt3d.renderer.PerspectiveCameras(
**{
k: torch.cat([getattr(c, k) for c in cameras_list], dim=0)
for k in ("focal_length", "principal_point", "R", "T", "K")
if all(hasattr(c, k) and (getattr(c, k) is not None) for c in cameras_list)
},
device=cameras_list[0].device,
)
return cameras_cat