def _get_video_feats(self, segment_dict): start, end = segment_dict['start'], segment_dict['end'] video_name = segment_dict['video-name'] i3d_feat = breakfast.read_i3d_data(video_name, window=[start, end], i3d_length=self.i3d_length) idx = np.random.choice(np.arange(len(i3d_feat))) i3d_feat = torch.from_numpy(i3d_feat[idx]) return i3d_feat
def __getitem__(self, idx): segment = self.segments[idx] video_name = segment['video-name'] start, end = segment['start'], segment['end'] i3d_feat = breakfast.read_i3d_data(video_name, window=[start, end], i3d_length=self.i3d_length) sample_idxs = self._get_sample_idxs(start, end) selected = i3d_feat[sample_idxs] selected = torch.from_numpy(selected) return selected
def __getitem__(self, idx): segment = self.segments[idx] video_name = segment['video-name'] start, end = segment['start'], segment['end'] i3d_feat = breakfast.read_i3d_data(video_name, window=[start, end], i3d_length=self.i3d_length) i3d_feat = i3d_feat[::self.stride] i3d_feat = torch.from_numpy(i3d_feat) segment_len = i3d_feat.shape[0] return i3d_feat, segment_len
def __getitem__(self, idx): segment_dict = self.segments[idx] logit = self.segment_logits[idx] video_name = segment_dict['video-name'] start, end = segment_dict['start'], segment_dict['end'] assert start < end, '{0} has errors, logit {1}'.format( video_name, logit) i3d_feat = breakfast.read_i3d_data(video_name, window=[start, end], i3d_length=self.i3d_length) assert len(i3d_feat) > 0, '{0} has length {1}, logit {2}'.format( video_name, len(i3d_feat), logit) selected_idx = np.random.choice(np.arange(len(i3d_feat))) selected = torch.from_numpy(i3d_feat[selected_idx]) return selected, logit
def _parse_split_data(split, feat_len): segments, labels, logits = breakfast.get_data(split) valid_segments = [] valid_labels = [] valid_logits = [] for i, segment in enumerate(tqdm(segments)): start, end = segment['start'], segment['end'] i3d_feats = breakfast.read_i3d_data(segment['video-name'], window=[start, end], i3d_length=feat_len) if len(i3d_feats ) > 0 and 48 > logits[i] > 0: # remove walk in and walk out. segment['end'] = segment['start'] + len(i3d_feats) valid_segments.append(segment) valid_labels.append(labels[i]) valid_logits.append(logits[i]) return [valid_segments, valid_labels, valid_logits]
def __getitem__(self, idx): segment_dict = self.segments[idx] logit = self.segment_logits[idx] video_name = segment_dict['video-name'] start, end = segment_dict['start'], segment_dict['end'] assert start < end, '{0} has errors, logit {1}'.format( video_name, logit) i3d_feat = breakfast.read_i3d_data(video_name, window=[start, end], i3d_length=self.i3d_length) assert len(i3d_feat) > 0, '{0} has length {1}, logit {2}'.format( video_name, len(i3d_feat), logit) i3d_feat = i3d_feat[::self.stride] i3d_feat = torch.from_numpy(i3d_feat) n_feats = i3d_feat.shape[0] return i3d_feat, n_feats, logit