Safemotion Lib
Loading...
Searching...
No Matches
action_utils.py
Go to the documentation of this file.
1import copy
2
3
4def check_valid(pose_list, k):
5 pose_num = len(pose_list)
6 if pose_num < k*0.5:
7 return False
8
9 #이 조건은 좀더 고민 필요
10 if pose_list[-1]['frame_id'] - pose_list[0]['frame_id'] < k-1:
11 return False
12
13 # k*0.5 프레임 이상 연속으로 미검출 됬을경우
14 for i in range(1, pose_num):
15 interval = pose_list[i]['frame_id'] - pose_list[i-1]['frame_id']
16 if interval > k*0.5:
17 return False
18
19 return True
20
22 #복사 필수
23 tmp_pose = copy.deepcopy(pose)
24 #스코어 0으로 만들기
25 tmp_pose['keypoints'][:, 2] = 0
26 return tmp_pose
27
28def insert_dummy_pose(pose_list):
29 pose_num = len(pose_list)
30 ret_pose = [pose_list[0]]
31 for i in range(1, pose_num):
32 interval = pose_list[i]['frame_id'] - pose_list[i-1]['frame_id']
33
34 #미검출 됬을경우 더미포즈 생성
35 if interval > 1:
36 ret_pose.extend([make_dummy_pose(pose_list[i])] * (interval-1))
37 ret_pose.append(pose_list[i])
38
39 return ret_pose
insert_dummy_pose(pose_list)
check_valid(pose_list, k)
make_dummy_pose(pose)