193 name_list, path_list = search_file(folder,
'.pkl')
196 data_num = len(path_list)
197 for i, (name, path)
in enumerate(zip(name_list, path_list)):
198 print(f
'{self.mode}/{category}/{num:02d} [{i+1}/{data_num}] -> {name}', end=
'\r')
199 pkl = load_pkl_data(path)
204 모델의 입력을 위한 데이터 전처리 기능
205 스켈레톤의 히트맵을 생성하는게 메인 기능임, 데이터 증강(data augmentation) 포함됨
206 TODO: 데이터 증강은 학습 모드일 경우만 진행되도록 코드 변경 필요
208 sample (dict): 모델의 입력을 생성하기 위한 데이터
209 return (dict): 모델의 입력이 포함된 데이터
213 sample = pose_shift(sample, shift_ratio=0.01)
214 sample = pose_compact(sample)
215 sample = pose_resize(sample, scale=(64, 64))
216 sample = pose_random_crop(sample, area_range=(0.56, 1.0), aspect_ratio_range=(3 / 4, 4 / 3))
217 sample = pose_resize(sample, scale=(56, 56))
218 sample = pose_flip(sample, flip_ratio=0.5)
220 sample_pose = copy.deepcopy(sample)
223 frames = sample_pose[
'keypoint'].shape[1]
226 sample_pose[
'keypoint'] = sample_pose[
'keypoint'][:,start:end, :, : ]
227 sample_pose[
'keypoint_score'] = sample_pose[
'keypoint_score'][:,start:end, : ]
230 sample_pose = pose_compact(sample_pose)
231 sample_pose = pose_resize(sample_pose, scale=(56, 56))
234 sample = make_pose_heatmap(sample)
235 sample_pose = make_pose_heatmap(sample_pose)
236 sample[
'pose_heatmap_for_action'] = sample[
'pose_heatmap']
237 sample[
'pose_heatmap_for_pose'] = sample_pose[
'pose_heatmap']