MCPcopy Create free account
hub / github.com/computational-imaging/bacon / eval_nerf_bacon

Function eval_nerf_bacon

experiments/render_nerf.py:291–342  ·  view source on GitHub ↗
(scene, config, checkpoint, outdir, res, scale, chunk_size=10000, return_all=False, val_idx=None)

Source from the content-addressed store, hash-verified

289
290
291def eval_nerf_bacon(scene, config, checkpoint, outdir, res, scale, chunk_size=10000, return_all=False, val_idx=None):
292
293 os.makedirs(f'./outputs/nerf/{outdir}', exist_ok=True)
294
295 p = configargparse.DefaultConfigFileParser()
296 with open(config) as f:
297 opt = p.parse(f)
298
299 opt = Options(**opt)
300 dataset = load_dataset(opt, res, scale)
301 models = load_model(opt, checkpoint)
302
303 for k in models.keys():
304 models[k].stop_after = scale
305
306 # render images
307 psnrs = []
308 ssims = []
309 dataset_generator = iter(dataset)
310 for idx in range(len(dataset)):
311
312 if val_idx is not None:
313 dataset.val_idx = val_idx
314 idx = val_idx
315
316 in_dict, meta_dict, gt_dict = next(dataset_generator)
317
318 images, psnr, ssim, elapsed = render_image(opt, models, dataset, chunk_size,
319 in_dict, meta_dict, gt_dict,
320 scale, return_all=return_all)
321
322 tqdm.write(f'Scale: {scale} | PSNR: {psnr:.02f} dB, SSIM: {ssim:.02f}, Elapsed: {elapsed:.02f} ms')
323
324 if return_all:
325 for s in range(4):
326 skimage.io.imsave(f'./outputs/nerf/{outdir}/r_{idx}_d{3-s}.png', (images[s]*255).astype(np.uint8))
327 else:
328 np.save(f'./outputs/nerf/{outdir}/r_{idx}_d{3-scale}.npy', {'psnr': psnr, 'ssim': ssim})
329 skimage.io.imsave(f'./outputs/nerf/{outdir}/r_{idx}_d{3-scale}.png', (images*255).astype(np.uint8))
330
331 psnrs.append(psnr)
332 ssims.append(ssim)
333
334 if val_idx is not None:
335 break
336
337 if not return_all and val_idx is not None:
338 np.save(f'./outputs/nerf/{outdir}/metrics_d{3-scale}.npy', {'psnr': psnrs, 'ssim': ssims,
339 'avg_psnr': np.mean(psnrs),
340 'avg_ssim': np.mean(ssims)})
341
342 print(f'Avg. PSNR: {np.mean(psnrs):.02f}, Avg. SSIM: {np.mean(ssims):.02f}')
343
344
345if __name__ == '__main__':

Callers 1

render_nerf.pyFile · 0.85

Calls 4

OptionsClass · 0.85
load_datasetFunction · 0.85
load_modelFunction · 0.85
render_imageFunction · 0.85

Tested by

no test coverage detected