MCPcopy Index your code
hub / github.com/ActiveVisionLab/DFNet / render_nerfw_imgs

Function render_nerfw_imgs

script/feature/misc.py:203–252  ·  view source on GitHub ↗

render nerfw imgs, save unscaled pose and results

(args, dl, hwf, device, render_kwargs_test, world_setup_dict)

Source from the content-addressed store, hash-verified

201 return
202
203def render_nerfw_imgs(args, dl, hwf, device, render_kwargs_test, world_setup_dict):
204 ''' render nerfw imgs, save unscaled pose and results'''
205 H, W, focal = hwf
206 target_list = []
207 rgb_list = []
208 pose_list = []
209 img_idx_list = []
210 # profiling code
211 # time0 = time.time()
212
213 # inference nerfw and save rgb, target, pose
214 for batch_idx, (target, pose, img_idx) in enumerate(dl):
215 if batch_idx % 10 == 0:
216 print("renders {}/total {}".format(batch_idx, len(dl.dataset)))
217
218 target = target[0].permute(1,2,0).to(device) # (240,360,3)
219 pose = pose.reshape(3,4) # reshape to 3x4 rot matrix
220
221 img_idx = img_idx.to(device)
222 pose_nerf = pose.clone()
223
224 # rescale the predicted pose to nerf scales
225 pose_nerf = fix_coord_supp(args, pose_nerf[None,...], world_setup_dict)
226
227 # generate nerf image
228 with torch.no_grad():
229 torch.set_default_tensor_type('torch.cuda.FloatTensor')
230 if args.tinyimg:
231 rgb, _, _, _ = render(int(H//args.tinyscale), int(W//args.tinyscale), focal/args.tinyscale, chunk=args.chunk, c2w=pose_nerf[0,:3,:4].to(device), retraw=True, img_idx=img_idx, **render_kwargs_test)
232 # convert rgb to B,C,H,W
233 rgb = rgb[None,...].permute(0,3,1,2)
234 # upsample rgb to hwf size
235 rgb = torch.nn.Upsample(size=(H, W), mode='bicubic')(rgb)
236 # convert rgb back to H,W,C format
237 rgb = rgb[0].permute(1,2,0)
238
239 else:
240 rgb, _, _, _ = render(H, W, focal, chunk=args.chunk, c2w=pose_nerf[0,:3,:4].to(device), retraw=True, img_idx=img_idx, **render_kwargs_test)
241 torch.set_default_tensor_type('torch.FloatTensor')
242
243 target_list.append(target.cpu())
244 rgb_list.append(rgb.cpu())
245 pose_list.append(pose.cpu())
246 img_idx_list.append(img_idx.cpu())
247
248 targets = torch.stack(target_list).detach()
249 rgbs = torch.stack(rgb_list).detach()
250 poses = torch.stack(pose_list).detach()
251 img_idxs = torch.stack(img_idx_list).detach()
252 return targets, rgbs, poses, img_idxs
253
254def render_virtual_imgs(args, pose_perturb, img_idxs, hwf, device, render_kwargs_test, world_setup_dict):
255 ''' render nerfw imgs, save unscaled pose and results'''

Callers 1

train_featureFunction · 0.85

Calls 2

fix_coord_suppFunction · 0.90
renderFunction · 0.90

Tested by

no test coverage detected