Safemotion Lib
Loading...
Searching...
No Matches
cvt_labelmap_c17.py
Go to the documentation of this file.
1import copy
2
3labelmap_v10={
4 0 : 'walk',
5 1 : 'stand',
6 2 : 'sit-Crouch',
7 3 : 'sit-sofa',
8 4 : 'sit-chair',
9 5 : 'sit-floor',
10 6 : 'falling-falling',
11 7 : 'lie',
12 8 : 'punch',
13 9 : 'kick',
14 10 : 'falling-fight',
15 11 : 'plunging',
16 12 : 'sit',
17 13 : 'falling'
18}
19
20labelmap_v20={
21 0: "없음",
22 1: "앉기-바닥",
23 2: "앉기-의자",
24 3: "구부리기",
25 4: "걷기-혼자",
26 5: "걷기-잡고",
27 6: "걷기-앉은상태",
28 7: "걷기-계단오르기",
29 8: "걷기-계단내려가기",
30 9: "뛰기-달리기",
31 10: "뛰기-외발뛰기",
32 11: "뛰기-갤로핑",
33 12: "뛰기-게걸음",
34 13: "일어서기-스스로",
35 14: "일어서기-짚고",
36 15: "눕기",
37 16: "눕기-업드려 머리들기",
38 17: "뒤집기-시도",
39 18: "뒤집기-성공",
40 19: "뒤집기-굴러가기",
41 20: "기어가기-무릎기기",
42 21: "기어가기-배밀이",
43 22: "기어가기-계단기기",
44 23: "기어오르기",
45 24: "점프-제자리",
46 25: "점프-두발",
47 26: "잡기",
48 27: "끼적이기",
49 28: "빨기-손",
50 29: "빨기-놀잇감",
51 30: "안기-안겨있기",
52 31: "안기-안고있기",
53 32: "빼앗기",
54 33: "먹기-스스로",
55 34: "먹기-마시기",
56 35: "먹기-받아먹기",
57 36: "먹여주기",
58 37: "넘어짐",
59 38: "부딪힘-벽",
60 39: "부딪힘-사람",
61 40: "할퀴기",
62 41: "물기",
63 42: "떨어짐",
64 43: "물건 던지기",
65 44: "손으로 때리기",
66 45: "물건으로 때리기",
67 46: "발로 때리기",
68 47: "양팔제압하기",
69 48: "밀치기",
70 49: "당기기",
71 50: "옷(기저귀) 갈아입기",
72 51: "쓰다듬기",
73 52: "토닥이기",
74 53: "머리 따주기",
75 54: "영유아를 들어서 옮기기",
76 55: "물건 건네주기",
77 56: "물건 받기",
78 57: "사진찍기"
79}
80
81cvt_labelmap_v10_action_to_simple_ver=[
82 [0 , 'walk', 6],
83 [1 , 'stand', 4],
84 [2 , 'sit-Crouch', 2],
85 [3 , 'sit-sofa', 1],
86 [4 , 'sit-chair', 1],
87 [5 , 'sit-floor', 0],
88 [6 , 'falling-falling', 14],
89 [7 , 'lie', 9],
90 [8 , 'punch', 15],
91 [9 , 'kick', 16],
92 [10 , 'falling-fight', 14],
93]
94
95#평가 레이블로 변환하는 테이블
96#eval_table = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
97eval_table = [0, 0, 0, 0, 4, 4, 6, 7, 4, 9, 10, 10, 12, 13, 14, 15, 16]
98
99#간소화 레이블
100simple_lablemap={
101 0 : "sit",#"앉기",
102 1 : "sit_chair",
103 2 : "sit_squat",
104 3 : "sit_move", #앉은상태로 이동
105 4 : "standing",#"서있기",
106 5 : "bend_over",#허리숙이기
107 6 : "walk",#"걷기",
108 7 : "run",#"뛰기",
109 #8 : "run_galloping", #갤로핑
110 8 : "stand",#"일어서기",
111 9 : "lying",#"누워있기",
112 10 : "crawl",#"기어가기",
113 11 : "crawl_pose",#"기어가기 자세",
114 12 : "jump",#"점프",
115 13 : "eating",#"먹기",
116 14 : "fall-down",#"넘어짐", "떨어짐"
117 15 : "punch", #"펀치"
118 16 : "kick", #"발차기",
119 #18 : "scrawl", #"끼적이기"
120}
121
122cvt_labelmap_v21_action_to_simple_ver=[
123 [0, "없음", None],
124 [1, "앉기-바닥",None],
125 [2, "앉기-의자",None],
126 [3, "구부리기",None],
127 [4, "걷기-혼자",6],
128 [5, "걷기-잡고",6],
129 [6, "걷기-앉은상태",3],
130 [7, "걷기-계단오르기",6],
131 [8, "걷기-계단내려가기",6],
132 [9, "뛰기-달리기", 7],
133 [10, "뛰기-외발뛰기", 7],
134 [11, "뛰기-갤로핑", None],
135 [12, "뛰기-게걸음", None],
136 [13, "일어서기-스스로", 8],
137 [14, "일어서기-짚고", 8],
138 [15, "눕기", 9],
139 [16, "눕기-업드려 머리들기",9],
140 [17, "뒤집기-시도", 9],
141 [18, "뒤집기-성공", 9],
142 [19, "뒤집기-굴러가기", 9],
143 [20, "기어가기-무릎기기", 10],
144 [21, "기어가기-배밀이", None],
145 [22, "기어가기-계단기기", 10],
146 [23, "기어오르기", None],
147 [24, "점프-제자리", 12],
148 [25, "점프-두발", 12],
149 [26, "잡기", None],
150 [27, "끼적이기", None],
151 [28, "빨기-손", 13],
152 [29, "빨기-놀잇감", 13],
153 [30, "안기-안겨있기", None],
154 [31, "안기-안고있기", None],
155 [32, "빼앗기", None],
156 [33, "먹기-스스로", 13],
157 [34, "먹기-마시기", 13],
158 [35, "먹기-받아먹기", None],
159 [36, "먹여주기", None],
160 [37, "넘어짐", 14],
161 [38, "부딪힘-벽", None],
162 [39, "부딪힘-사람", None],
163 [40, "할퀴기", None],
164 [41, "물기", None],
165 [42, "떨어짐", None],
166 [43, "물건 던지기", None],
167 [44, "손으로 때리기", 15],
168 [45, "물건으로 때리기", 15],
169 [46, "발로 때리기", 16],
170 [47, "양팔제압하기", None],
171 [48, "밀치기", None],
172 [49, "당기기", None],
173 [50, "옷(기저귀) 갈아입기", None],
174 [51, "쓰다듬기", None],
175 [52, "토닥이기", None],
176 [53, "머리 따주기", None],
177 [54, "영유아를 들어서 옮기기", None],
178 [55, "물건 건네주기", None],
179 [56, "물건 받기", None],
180 [57, "사진찍기", None],
181 [58, "식별불가", -1]
182]
183
184cvt_labelmap_v21_foot_to_simple_ver=[
185 [0, "없음", None],
186 [1, "이동-느리게",6],
187 [2, "이동-빠르게",7],
188 [3, "이동-물건 위로",None],
189 [4, "이동-계단 오르기",None],
190 [5, "이동-계산 내려가기",None],
191]
192
193cvt_labelmap_v21_pose_to_simple_ver=[
194 [0, "앉기-바닥", 0],
195 [1, "앉기-의자", 1],
196 [2, "앉기-무릎꿇기", 0],
197 [3, "앉기-무릎서기", 4],
198 [4, "앉기-쪼그리기", 2],
199 [5, "서있기", 4],
200 [6, "서있기-한발들기", 4],
201 [7, "서있기-무릎구부리기", 4],
202 [8, "서있기-허리구부리기", 5],
203 [9, "누워있기-천장보고", 9],
204 [10, "누워있기-엎드리기", 9],
205 [11, "누워있기-옆으로", 9],
206 [12, "누워있기-엎드려 머리들기", 9],
207 [13, "누워있기-구부리기", 9],
208 [14, "무릎기기 자세", 11]
209]
210
211simple_mutual_labelmap={
212 0 : "None",
213 1 : "안기",
214 2 : "옷 갈아입히기(서서)",
215 3 : "옷 갈아입히기(눕혀서)",
216 4 : "쓰다듬기",
217 5 : "토닥이기",
218 6 : "머리따주기",
219 7 : "먹여주기",
220 8 : "물건 전달",
221 9 : "밀기",
222 10 : "당기기",
223 11 : "부딪힘",
224 12 : "손으로 때리기",
225 13 : "발로 때리기",
226 14 : "물기"
227}
228
229mutual_action_lablemap={
230 0 : "None",
231 1 : "안겨있기", #
232 2 : "안고있기", #
233 3 : "영유아를 들어서 이동", #
234 4 : "옷(기저귀) 갈아입히기", #
235 5 : "쓰다듬기", #
236 6 : "토닥이기", #
237 7 : "머리따주기",
238 8 : "먹여주기", #
239 9 : "물건 건네주기", #
240 10 : "물건 받기", #
241 11 : "장난감 빼앗기",
242 12 : "손으로 때리기",
243 13 : "물건으로 때리기",
244 14 : "발로 때리기",
245 15 : "신체 밀치기", #
246 16 : "신체 당기기", #
247 17 : "친구와 부딪힘",
248 18 : "할퀴기",
249 19 : "물기"
250}
251
252
253def cvt_labelmap_v21(annotations, cvt_action_info, cvt_pose_info):
254 ret_annotations = copy.deepcopy(annotations)
255 for i, anno in enumerate(annotations):
256 action_id = anno['action_id']['action']
257 new_action_id = cvt_action_info[action_id][2]
258
259 if action_id == 11 or action_id == 12:
260 move_id = anno['action_id']['foot']
261 new_action_id = cvt_labelmap_v21_foot_to_simple_ver[move_id][2]
262 elif new_action_id is None:
263 pose_id = anno['action_id']['pose']
264 new_action_id = cvt_pose_info[pose_id][2]
265
266 if anno['truncation'] > 2 or anno['occlusion'] > 2:
267 new_action_id = -1
268
269 ret_annotations[i]['action_id']['action'] = new_action_id
270
271 return ret_annotations
272
273def cvt_labelmap_v10_pkl(pkl_data, cvt_action_info):
274 ret_pkl = copy.deepcopy(pkl_data)
275 for i, anno in enumerate(pkl_data):
276 action_id = anno['label']
277 new_action_id = cvt_action_info[action_id][2]
278
279 ret_pkl[i]['label'] = new_action_id
280
281 return ret_pkl
cvt_labelmap_v10_pkl(pkl_data, cvt_action_info)
cvt_labelmap_v21(annotations, cvt_action_info, cvt_pose_info)