Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
device = torch.device('cuda' if use_cuda else 'cpu')
torch.manual_seed(args.seed)
# configure sintel SDK path
root_path = os.path.abspath(args.input_dir)
sys.path.append(os.path.join(root_path, 'sdk/python'))
# load the data
root_dir = os.path.join(root_path, 'training')
img_ref, depth_ref, cam_ref = load_data(root_dir, args.sequence_name,
args.frame_ref_id)
img_i, _, cam_i = load_data(root_dir, args.sequence_name, args.frame_i_id)
# instantiate the depth warper from `torchgeometry`
warper = tgm.DepthWarper(cam_i)
warper.compute_homographies(cam_ref)
# create the inverse depth as a parameter to be optimized
height, width = img_ref.shape[-2:]
inv_depth_ref = InvDepth(height, width).to(device)
# create optimizer
optimizer = optim.Adam(inv_depth_ref.parameters(), lr=args.lr)
# send data to device
img_ref, img_i = img_ref.to(device), img_i.to(device)
# main training loop
for iter_idx in range(args.num_iterations):
# compute the inverse depth and warp the source image
torch.manual_seed(args.seed)
# configure syntel SDK path
root_path = os.path.abspath(args.input_dir)
sys.path.append(os.path.join(root_path, 'sdk/python'))
# load the data
root_dir = os.path.join(root_path, 'training')
img_ref, depth_ref, cam_ref = load_data(root_dir, args.sequence_name,
args.frame_ref_id)
img_i, depth_i, cam_i = load_data(root_dir, args.sequence_name,
args.frame_i_id)
# instantiate the homography warper from `torchgeometry`
warper = dgm.DepthWarper(cam_i)
warper.compute_homographies(cam_ref)
# compute the inverse depth and warp the source image
inv_depth_ref = 1. / depth_ref
img_i_to_ref = warper(inv_depth_ref, img_i)
# generate occlusion mask
mask = ((img_ref - img_i_to_ref).mean(1) < 1e-1).float()
img_vis_warped = 0.5 * img_i_to_ref + img_ref
img_vis_warped_masked = mask * (0.5 * img_i_to_ref + img_ref)
# save warped image to disk
file_name = os.path.join(
args.output_dir,
'warped_{0}_to_{1}.png'.format(