in data/video_iterator.py [0:0]
def __init__(self,
video_prefix,
txt_list,
sampler,
video_transform=None,
force_color=True,
name="<NO_NAME>",
cache_root="./.cache",
shuffle_list_seed=None,
list_repeat_times=1,
return_item_subpath=False,
tolerant_corrupted_video=True):
super(VideoIter, self).__init__()
# get video interpreter
self.video = Video()
# load params
self.sampler = sampler
self.force_color = force_color
self.video_prefix = video_prefix
self.video_transform = video_transform
self.return_item_subpath = return_item_subpath
self.backup_item = None
self.tolerant_corrupted_video = tolerant_corrupted_video
self.rng = np.random.RandomState(shuffle_list_seed if shuffle_list_seed else 0)
# load video list
video_raw_list = self._get_video_list(video_prefix=video_prefix,
txt_list=txt_list,
cache_root=cache_root)
video_list = []
for v_id, label, vid_subpath, frame_count in video_raw_list:
for i_copy in range(list_repeat_times):
video_list.append([v_id, i_copy, label, vid_subpath, frame_count])
self.video_list = video_list
if list_repeat_times > 1:
logging.warning("VideoIter:: >> repeat sample list by {} times, {} samples to run".format(list_repeat_times, len(self.video_list)))
if shuffle_list_seed is not None:
self.rng.shuffle(self.video_list)
logging.info("VideoIter:: iterator initialized (phase: '{:s}', num: {:d})".format(name, len(self.video_list)))