genie_envisioner / utils /geometry_utils.py
yqi19's picture
add: full source code (py, yaml, json, sh, md, txt)
18e5c91 verified
Raw
History Blame Contribute Delete
781 Bytes
import torch
import torch.nn.functional as F
from einops import rearrange
def resize_traj_and_ray(traj_n_ray, mem_size, future_size, height, width):
'''
traj_n_ray: bv c t h w
'''
orig_t = traj_n_ray.shape[3]
try:
assert orig_t > (mem_size + future_size)
except:
breakpoint()
n_view = traj_n_ray.shape[2]
mem = traj_n_ray[:, :, :mem_size]
mem = rearrange(mem, 'bv c t h w -> (bv t) c h w')
mem = F.interpolate(mem, (height, width), mode='bilinear')
mem = rearrange(mem, '(bv t) c h w -> bv c t h w', t=mem_size)
future = traj_n_ray[:, :, mem_size:] # bv c t h w
future = F.interpolate(future, (future_size, height, width), mode='trilinear')
out = torch.cat([mem, future], dim=2)
return out