From a0247ea6bd1b4e32b61addc28cc368476e917ce2 Mon Sep 17 00:00:00 2001 From: Jeremy Reizenstein Date: Wed, 17 Nov 2021 15:16:32 -0800 Subject: [PATCH] pulsar image_size validation Summary: For a non-square image, the image_size in PointsRasterizationSettings is now (H,W) not (W,H). A part of pulsar's validation code wasn't updated for this. The following now works. ``` H, W = 249, 125 image_size = (H, W) camera = PerspectiveCameras(focal_length=1.0, image_size=(image_size,), in_ndc=True) points_rasterizer = PointsRasterizer(cameras=camera, raster_settings=PointsRasterizationSettings(image_size=image_size, radius=0.0000001)) pulsar_renderer = PulsarPointsRenderer(rasterizer=points_rasterizer) pulsar_renderer(Pointclouds(...), gamma = (0.1,), znear = (0.1,), zfar = (70,)) ``` Reviewed By: nikhilaravi, classner Differential Revision: D32316322 fbshipit-source-id: 8405a49acecb1c95d37ee368c3055868b797208a --- pytorch3d/renderer/points/pulsar/unified.py | 37 ++++++++------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/pytorch3d/renderer/points/pulsar/unified.py b/pytorch3d/renderer/points/pulsar/unified.py index 5c1fb51d..5a988704 100644 --- a/pytorch3d/renderer/points/pulsar/unified.py +++ b/pytorch3d/renderer/points/pulsar/unified.py @@ -143,41 +143,30 @@ class PulsarPointsRenderer(nn.Module): "The camera type can not be changed after renderer initialization! " "Current camera orthogonal: %r. Original orthogonal: %r." ) % (orthogonal_projection, self.renderer._renderer.orthogonal) - if ( - isinstance(self.rasterizer.raster_settings.image_size, tuple) - and self.rasterizer.raster_settings.image_size[0] - != self.renderer._renderer.width - ) or ( - not isinstance(self.rasterizer.raster_settings.image_size, tuple) - and self.rasterizer.raster_settings.image_size - != self.renderer._renderer.width - ): + image_size = self.rasterizer.raster_settings.image_size + if isinstance(image_size, tuple): + expected_height, expected_width = image_size + else: + expected_height = expected_width = image_size + if expected_width != self.renderer._renderer.width: raise ValueError( ( - "The rasterizer width and height can not be changed after renderer " - "initialization! Current width: %d. Original width: %d." + "The rasterizer width can not be changed after renderer " + "initialization! Current width: %s. Original width: %d." ) % ( - self.rasterizer.raster_settings.image_size, + expected_width, self.renderer._renderer.width, ) ) - if ( - isinstance(self.rasterizer.raster_settings.image_size, tuple) - and self.rasterizer.raster_settings.image_size[1] - != self.renderer._renderer.height - ) or ( - not isinstance(self.rasterizer.raster_settings.image_size, tuple) - and self.rasterizer.raster_settings.image_size - != self.renderer._renderer.height - ): + if expected_height != self.renderer._renderer.height: raise ValueError( ( - "The rasterizer width and height can not be changed after renderer " - "initialization! Current height: %d. Original height: %d." + "The rasterizer height can not be changed after renderer " + "initialization! Current height: %s. Original height: %d." ) % ( - self.rasterizer.raster_settings.image_size, + expected_height, self.renderer._renderer.height, ) )