def __getitem__(self, index):
        rgb, sparse, target, rgb_near = self.__getraw__(index)
        rgb, sparse, target, rgb_near = self.transform(rgb, sparse, target,
                                                       rgb_near, self.args)
        r_mat, t_vec = None, None
        if self.split == 'train' and self.args.use_pose:
            success, r_vec, t_vec = get_pose_pnp(rgb, rgb_near, sparse, self.K)
            # discard if translation is too small
            success = success and LA.norm(t_vec) > self.threshold_translation
            if success:
                r_mat, _ = cv2.Rodrigues(r_vec)
            else:
                # return the same image and no motion when PnP fails
                rgb_near = rgb
                t_vec = np.zeros((3, 1))
                r_mat = np.eye(3)

        rgb, gray = handle_gray(rgb, self.args)
        candidates = {"rgb":rgb, "d":sparse, "gt":target, \
            "g":gray, "r_mat":r_mat, "t_vec":t_vec, "rgb_near":rgb_near}
        items = {
            key: to_float_tensor(val)
            for key, val in candidates.items() if val is not None
        }

        return items
Example #2
0
    def __getitem__(self, index):
        #   target intensity as intensity_real
        rgb, sparse, target, rgb_near, sparse_intensity, target_intensity, target_intensity_pure = self.__getraw__(
            index)
        rgb, sparse, target, rgb_near, sparse_intensity, target_intensity, target_intensity_pure \
                = self.transform(rgb, sparse, target,sparse_intensity, target_intensity, rgb_near, self.args, target_intensity_pure)

        r_mat, t_vec = None, None
        if self.split == 'train' and self.args.use_pose:
            success, r_vec, t_vec = get_pose_pnp(rgb, rgb_near, sparse, self.K)
            # discard if translation is too small
            success = success and LA.norm(t_vec) > self.threshold_translation
            if success:
                r_mat, _ = cv2.Rodrigues(r_vec)
            else:
                # return the same image and no motion when PnP fails
                rgb_near = rgb
                t_vec = np.zeros((3, 1))
                r_mat = np.eye(3)

        rgb, gray = handle_gray(rgb, self.args)
        #   Ireal as gt_intensity
        candidates = {"rgb":rgb, "d":sparse, "gt":target, \
            "intensity":sparse_intensity, "gt_intensity":target_intensity, \
            "g":gray, "r_mat":r_mat, "t_vec":t_vec, "rgb_near":rgb_near, \
            "gt_intensity_pure":target_intensity_pure}
        items = {
            key: to_float_tensor(val)
            for key, val in candidates.items() if val is not None
        }
        filename = self.paths['d'][index].split('/')[-1]
        items["filename"] = filename

        return items
    def __getitem__(self, index):
        rgb, sparse, target, rgb_near = self.__getraw__(index)
        #im = Image.fromarray(rgb)
        #im.save("orig.jpg")
        print(f"sparse: {len(np.where(sparse)[0] > 0)}")
        print(f"dense gt: {len(np.where(target)[0] > 0)}")
        rgb, sparse, target, rgb_near = self.transform(rgb, sparse, target,
                                                       rgb_near, self.args)
        #im = Image.fromarray(rgb)
        #im.save("orig_trans.jpg")
        print("\ntransform")
        print(f"sparse: {len(np.where(sparse)[0] > 0)}")
        print(f"dense gt: {len(np.where(target)[0] > 0)}")
        r_mat, t_vec = None, None
        if self.split == 'train' and self.args.use_pose:
            success, r_vec, t_vec = get_pose_pnp(rgb, rgb_near, sparse, self.K)
            # discard if translation is too small
            success = success and LA.norm(t_vec) > self.threshold_translation
            if success:
                r_mat, _ = cv2.Rodrigues(r_vec)
            else:
                # return the same image and no motion when PnP fails
                rgb_near = rgb
                t_vec = np.zeros((3, 1))
                r_mat = np.eye(3)

        rgb_col = rgb
        #return rgb None if the option in args.input is not rgb
        rgb, gray = handle_gray(rgb, self.args)
        candidates = {"rgb":rgb, "d":sparse, "gt":target, \
            "g":gray, "r_mat":r_mat, "t_vec":t_vec, "rgb_near":rgb_near}
        items = {
            key: to_float_tensor(val)
            for key, val in candidates.items() if val is not None
        }

        items['d_path'] = self.paths['d'][index]

        return items