def projective_inverse_warp(target_img, source_img, depth, pose, intrinsics): """ Calculate the reprojected image from the source to the target, based on the given depth, pose and intrinsics SFM Learner inverse warp step ps ~ K.T(t->s).Dt(pt).K^-1.pt Idea is to map the pixel coordinates of the target image to 3d space (Dt(pt).K^-1.pt), then map these onto the source image in pixel coordinates (K.T(t->s).{3d coord}), then using the projected coordinates we sample the pixels in the source image (ps) to reconstruct the target image. :param target_img: Tensor (batch, height, width, 3) :param source_img: Tensor, same shape as target_img :param depth: Tensor, (batch, height, width, 1) :param pose: (batch, 3, 3) :param intrinsics: (batch, 3, 3) :return: The source image reprojected to the target """ pass