-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathlookupPart.m
More file actions
150 lines (136 loc) · 3.18 KB
/
lookupPart.m
File metadata and controls
150 lines (136 loc) · 3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
function [inds numParts invkey key] = lookupPart(varargin)
% Returns the part # in the annotation for a string representation
key = get_key();
invkey = fields(key);
assert(key.(invkey{10})==10);
if nargout==2
numParts = max(cellfun(@(x)key.(x), fieldnames(rmfield(key,'KEYPOINT_FLIPMAP'))));
end
if nargin == 0,
inds = key;
return;
end
if nargin==1 && iscell(varargin{1})
names = varargin{1};
else
names = varargin;
end
inds = nan(length(names),1);
for i=1:length(names)
if isfield(key,names{i});
inds(i) = key.(names{i});
end
end
function key = get_key()
% hardcoded numbers need to be added first! in order for inv ind2partname
% lookup to work
key.lsho = 1;
key.lelb = 2;
key.lwri = 3;
key.rsho = 4;
key.relb = 5;
key.rwri = 6;
key.lhip = 7;
key.lkne = 8;
key.lank = 9;
key.rhip = 10;
key.rkne = 11;
key.rank = 12;
key.leye = 13;
key.reye = 14;
key.lear = 15;
key.rear = 16;
key.nose = 17;
key.msho = 18;
key.mhip = 19;
key.mear = 20;
key.mtorso = 21;
key.mluarm = 22;
key.mruarm = 23;
key.mllarm = 24;
key.mrlarm = 25;
key.mluleg = 26;
key.mruleg = 27;
key.mllleg = 28;
key.mrlleg = 29;
key.rheel = 30;
key.lheel = 31;
key.rtoe = 32;
key.ltoe = 33;
% mturk VATIC label names
key.left_shoulder = key.lsho;
key.right_shoulder = key.rsho;
key.head = key.nose;
key.left_eye = key.leye;
key.right_eye = key.reye;
key.left_ankle = key.lank;
key.left_elbow = key.lelb;
key.left_hip = key.lhip;
key.left_knee = key.lkne;
key.left_wrist = key.lwri;
key.right_ankle = key.rank;
key.right_elbow = key.relb;
key.right_hip = key.rhip;
key.right_knee = key.rkne;
key.right_wrist = key.rwri;
key.right_heel = key.rheel;
key.left_heel = key.lheel;
key.left_toe = key.ltoe;
key.right_toe = key.rtoe;
%support for alternate, original labels
key.L_Shoulder = 1;
key.L_Elbow = 2;
key.L_Wrist = 3;
key.R_Shoulder = 4;
key.R_Elbow = 5;
key.R_Wrist = 6;
key.L_Hip = 7;
key.L_Knee = 8;
key.L_Ankle = 9;
key.R_Hip = 10;
key.R_Knee = 11;
key.R_Ankle = 12;
key.L_Eye = 13;
key.R_Eye = 14;
key.L_Ear = 15;
key.R_Ear = 16;
key.Nose = 17;
key.M_Shoulder = 18;
key.M_Hip = 19;
key.M_Ear = 20;
key.M_Torso = 21;
key.M_LUpperArm = 22;
key.M_RUpperArm = 23;
key.M_LLowerArm = 24;
key.M_RLowerArm = 25;
key.M_LUpperLeg = 26;
key.M_RUpperLeg = 27;
key.M_LLowerLeg = 28;
key.M_RLowerLeg = 29;
key.KEYPOINT_FLIPMAP = [
key.L_Shoulder key.R_Shoulder
key.L_Elbow key.R_Elbow
key.L_Wrist key.R_Wrist
key.R_Shoulder key.L_Shoulder
key.R_Elbow key.L_Elbow
key.R_Wrist key.L_Wrist
key.L_Hip key.R_Hip
key.L_Knee key.R_Knee
key.L_Ankle key.R_Ankle
key.R_Hip key.L_Hip
key.R_Knee key.L_Knee
key.R_Ankle key.L_Ankle
key.L_Eye key.R_Eye
key.R_Eye key.L_Eye
key.L_Ear key.R_Ear
key.R_Ear key.L_Ear
key.M_LUpperArm key.M_RUpperArm
key.M_RUpperArm key.M_LUpperArm
key.M_LLowerArm key.M_RLowerArm
key.M_RLowerArm key.M_LLowerArm
key.M_LUpperLeg key.M_RUpperLeg
key.M_RUpperLeg key.M_LUpperLeg
key.M_LLowerLeg key.M_RLowerLeg
key.M_RLowerLeg key.M_LLowerLeg
key.Nose key.Nose
];