def _load_pairs(self, vid_info): length = vid_info["length"] ft_ids = vid_info["ft_ids"] ns = self._opt.num_source replace = ns >= len(ft_ids) src_ids = list(np.random.choice(ft_ids, ns, replace=replace)) src_ids[0] = ft_ids[0] tsf_ids = list( np.random.choice(length, self._opt.time_step, replace=False)) tsf_ids.sort() pair_ids = src_ids + tsf_ids smpls = vid_info["smpls"][pair_ids] images = [] masks = [] images_paths = vid_info['images'] alphas_paths = vid_info["alphas"] for t in pair_ids: image = cv_utils.read_cv2_img(images_paths[t]) images.append(image) mask = cv_utils.read_mask(alphas_paths[t], self._opt.image_size) # front is 0, and background is 1 mask = 1.0 - mask masks.append(mask) return images, smpls, masks, vid_info["offsets"]
def _load_pairs(self, vid_info): length = vid_info['length'] start = np.random.randint(0, 15) end = np.random.randint(0, length) pair_ids = np.array([start, end], dtype=np.int32) smpls = vid_info["smpls"][pair_ids] images = [] masks = [] images_paths = vid_info['images'] alphas_paths = vid_info["alphas"] for t in pair_ids: image_path = images_paths[t] image = cv_utils.read_cv2_img(image_path) images.append(image) mask = cv_utils.read_mask(alphas_paths[t], self._opt.image_size) # front is 0, and background is 1 mask = 1.0 - mask masks.append(mask) return images, smpls, masks, vid_info["offsets"]
def _load_pairs(self, vid_info): ns = self._opt.num_source length = vid_info["length"] ft_ids = vid_info["ft_ids"] replace = ns >= len(ft_ids) src_ids = list(np.random.choice(ft_ids, ns, replace=replace)) src_ids[0] = ft_ids[0] tsf_ids = list( np.random.choice(length, self._opt.time_step, replace=False)) tsf_ids.sort() # take the source and target ids pair_ids = src_ids + tsf_ids smpls = vid_info["smpls"][pair_ids] images = [] masks = [] image_dir = vid_info["img_dir"] images_names = vid_info["images"] alphas_paths = vid_info["alpha_paths"] for t in pair_ids: image_path = os.path.join(image_dir, images_names[t]) image = cv_utils.read_cv2_img(image_path) images.append(image) mask = cv_utils.read_mask(alphas_paths[t], self._opt.image_size) # front is 0, and background is 1 mask = 1.0 - mask masks.append(mask) return images, smpls, masks
def _load_pairs(self, index): vid_info = self._vids_info[index % self._num_videos] length = vid_info["length"] img_dir = vid_info["img_dir"] src_ids = vid_info["src_ids"] offsets = vid_info["offsets"] alpha_paths = vid_info["alpha_paths"] replaced_paths = vid_info["replaced_paths"] actual_bg_path = vid_info["actual_bg_path"] bg_dir = vid_info["bg_dir"] if length < self._opt.time_step: replace = True else: replace = False tsf_ids = list(np.random.choice(length, self._opt.time_step, replace=replace)) pair_ids = src_ids + tsf_ids # print(pair_ids, vid_info["probs"]) # print(len(pair_ids), src_ids, pair_ids) # print(pair_ids, np.random.random()) # if length > 1: # tsf_ids = [src_ids[0]] + [index] # pair_ids = src_ids + tsf_ids # else: # pair_ids = [0, 0] smpls = vid_info["smpls"][pair_ids] images_name = vid_info["images"] images = [] masks = [] pseudo_bgs = [] for t in pair_ids: name = images_name[t] image_path = os.path.join(img_dir, name) image = cv_utils.read_cv2_img(image_path) images.append(image) mask = cv_utils.read_mask(alpha_paths[t], self._opt.image_size) # attention! Here, the front is 0, and the background is 1 mask = 1.0 - mask masks.append(mask) if self._share_bg: if actual_bg_path is not None: bg_path = actual_bg_path else: bg_path = np.random.choice(replaced_paths) bg_img = cv_utils.read_cv2_img(bg_path) bg_img = cv_utils.normalize_img(bg_img, image_size=self._opt.image_size, transpose=True) pseudo_bgs = bg_img else: if actual_bg_path is not None: bg_img_paths = [actual_bg_path] * len(src_ids) else: bg_img_paths = [] for s_id in src_ids: name = images_name[s_id] bg_name = name.split(".")[0] + "_replaced.png" bg_path = os.path.join(bg_dir, bg_name) bg_img_paths.append(bg_path) for bg_path in bg_img_paths: bg_img = cv_utils.read_cv2_img(bg_path) bg_img = cv_utils.normalize_img(bg_img, image_size=self._opt.image_size, transpose=True) pseudo_bgs.append(bg_img) pseudo_bgs = np.stack(pseudo_bgs) links_ids = vid_info["links"] return images, smpls, masks, offsets, pseudo_bgs, links_ids