Skip to content

Commit 7b98570

Browse files
davnov134facebook-github-bot
authored andcommitted
Add full-image PSNR metric
Summary: Reports also the PSNR between the unmasked G.T. image and the render. Reviewed By: bottler Differential Revision: D38655943 fbshipit-source-id: 1603a2d02116ea1ce037e5530abe1afc65a2ba93
1 parent a91f15f commit 7b98570

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

pytorch3d/implicitron/evaluation/evaluate_new_view_synthesis.py

+23-5
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,10 @@ def eval_batch(
262262
else torch.ones_like(mask_fg)
263263
)
264264

265+
# unmasked g.t. image
266+
image_rgb = frame_data.image_rgb
267+
268+
# fg-masked g.t. image
265269
image_rgb_masked = mask_background(
266270
# pyre-fixme[6]: Expected `Tensor` for 1st param but got
267271
# `Optional[torch.Tensor]`.
@@ -330,12 +334,26 @@ def eval_batch(
330334
if break_after_visualising:
331335
breakpoint() # noqa: B601
332336

337+
# add the rgb metrics between the render and the unmasked image
338+
for rgb_metric_name, rgb_metric_fun in zip(
339+
("psnr_full_image", "rgb_l1_full_image"), (calc_psnr, rgb_l1)
340+
):
341+
results[rgb_metric_name] = rgb_metric_fun(
342+
image_render,
343+
image_rgb,
344+
mask=mask_crop,
345+
)
346+
333347
if lpips_model is not None:
334-
im1, im2 = [
335-
2.0 * im.clamp(0.0, 1.0) - 1.0
336-
for im in (image_rgb_masked, cloned_render["image_render"])
337-
]
338-
results["lpips"] = lpips_model.forward(im1, im2).item()
348+
for gt_image_type in ("_full_image", ""):
349+
im1, im2 = [
350+
2.0 * im.clamp(0.0, 1.0) - 1.0 # pyre-ignore[16]
351+
for im in (
352+
image_rgb_masked if gt_image_type == "" else image_rgb,
353+
cloned_render["image_render"],
354+
)
355+
]
356+
results["lpips" + gt_image_type] = lpips_model.forward(im1, im2).item()
339357

340358
# convert all metrics to floats
341359
results = {k: float(v) for k, v in results.items()}

tests/implicitron/test_evaluation.py

+3
Original file line numberDiff line numberDiff line change
@@ -256,10 +256,13 @@ def _check_metrics(self, frame_data, implicitron_render, eval_result):
256256
lower_better = {
257257
"psnr": False,
258258
"psnr_fg": False,
259+
"psnr_full_image": False,
259260
"depth_abs_fg": True,
260261
"iou": False,
261262
"rgb_l1": True,
262263
"rgb_l1_fg": True,
264+
"lpips": True,
265+
"lpips_full_image": True,
263266
}
264267

265268
for metric in lower_better:

0 commit comments

Comments
 (0)