(model_path, name, iteration, views, gaussians, pipeline, background)
| 30 | import os |
| 31 | os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128" |
| 32 | def render_set(model_path, name, iteration, views, gaussians, pipeline, background): |
| 33 | render_path = os.path.join(model_path, name, "ours_{}".format(iteration), "renders") |
| 34 | gts_path = os.path.join(model_path, name, "ours_{}".format(iteration), "gt") |
| 35 | makedirs(render_path, exist_ok=True) |
| 36 | makedirs(gts_path, exist_ok=True) |
| 37 | frames = [] |
| 38 | gts = [] |
| 39 | for idx, view in enumerate(tqdm(views, desc="Rendering progress")): |
| 40 | rendering_torch = render(view[1].cuda(), gaussians, pipeline, background)["render"] |
| 41 | gt = view[0][0:3, :, :] |
| 42 | gt_numpy = gt.permute(1, 2, 0).cpu().numpy() |
| 43 | |
| 44 | rendering = rendering_torch.permute(1, 2, 0).cpu().numpy() |
| 45 | frames.append(rendering) |
| 46 | gts.append(gt_numpy) |
| 47 | |
| 48 | image_name = view[1].image_path.split('/')[-1].split('.')[0] |
| 49 | |
| 50 | |
| 51 | # pdb.set_trace() |
| 52 | # rendering.save(os.path.join(render_path, '{0:05d}'.format(idx) + ".png")) |
| 53 | torchvision.utils.save_image(rendering_torch, os.path.join(render_path, image_name + f"_{idx:03d}" + ".png")) |
| 54 | torchvision.utils.save_image(gt, os.path.join(gts_path, image_name + ".png")) |
| 55 | |
| 56 | imageio.mimsave(render_path+'video.mp4', [frame for frame in frames], fps=25) |
| 57 | imageio.mimsave(render_path+'-gt.mp4', [frame for frame in gts], fps=25) |
| 58 | |
| 59 | print(render_path+'video.mp4') |
| 60 | |
| 61 | def render_sets(dataset : ModelParams, iteration : int, pipeline : PipelineParams, skip_train : bool, skip_test : bool): |
| 62 | with torch.no_grad(): |
no test coverage detected