OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
poseParametersRender.hpp
Go to the documentation of this file.
1 #ifndef OPENPOSE_POSE_POSE_PARAMETERS_RENDER_HPP
2 #define OPENPOSE_POSE_POSE_PARAMETERS_RENDER_HPP
3 
6 
7 namespace op
8 {
9  // Rendering parameters
10  const auto POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f;
11  const auto POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f;
12 
13  // Model-Dependent Parameters
14  // CUDA-code Model-Dependent Parameters must be defined with #define
15  // BODY_25
16  #define POSE_BODY_25_PAIRS_RENDER_GPU \
17  1,8, 1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 8,9, 9,10, 10,11, 8,12, 12,13, 13,14, 1,0, 0,15, 15,17, 0,16, 16,18, 14,19,19,20,14,21, 11,22,22,23,11,24
18  #define POSE_BODY_25_SCALES_RENDER_GPU 1
19  #define POSE_BODY_25_COLORS_RENDER_GPU \
20  255.f, 0.f, 85.f, \
21  255.f, 0.f, 0.f, \
22  255.f, 85.f, 0.f, \
23  255.f, 170.f, 0.f, \
24  255.f, 255.f, 0.f, \
25  170.f, 255.f, 0.f, \
26  85.f, 255.f, 0.f, \
27  0.f, 255.f, 0.f, \
28  255.f, 0.f, 0.f, \
29  0.f, 255.f, 85.f, \
30  0.f, 255.f, 170.f, \
31  0.f, 255.f, 255.f, \
32  0.f, 170.f, 255.f, \
33  0.f, 85.f, 255.f, \
34  0.f, 0.f, 255.f, \
35  255.f, 0.f, 170.f, \
36  170.f, 0.f, 255.f, \
37  255.f, 0.f, 255.f, \
38  85.f, 0.f, 255.f, \
39  0.f, 0.f, 255.f, \
40  0.f, 0.f, 255.f, \
41  0.f, 0.f, 255.f, \
42  0.f, 255.f, 255.f, \
43  0.f, 255.f, 255.f, \
44  0.f, 255.f, 255.f
45  // COCO
46  #define POSE_COCO_PAIRS_RENDER_GPU \
47  1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 1,8, 8,9, 9,10, 1,11, 11,12, 12,13, 1,0, 0,14, 14,16, 0,15, 15,17
48  #define POSE_COCO_SCALES_RENDER_GPU 1
49  #define POSE_COCO_COLORS_RENDER_GPU \
50  255.f, 0.f, 85.f, \
51  255.f, 0.f, 0.f, \
52  255.f, 85.f, 0.f, \
53  255.f, 170.f, 0.f, \
54  255.f, 255.f, 0.f, \
55  170.f, 255.f, 0.f, \
56  85.f, 255.f, 0.f, \
57  0.f, 255.f, 0.f, \
58  0.f, 255.f, 85.f, \
59  0.f, 255.f, 170.f, \
60  0.f, 255.f, 255.f, \
61  0.f, 170.f, 255.f, \
62  0.f, 85.f, 255.f, \
63  0.f, 0.f, 255.f, \
64  255.f, 0.f, 170.f, \
65  170.f, 0.f, 255.f, \
66  255.f, 0.f, 255.f, \
67  85.f, 0.f, 255.f
68  // MPI
69  // MPI colors chosen such that they are closed to COCO colors
70  #define POSE_MPI_PAIRS_RENDER_GPU \
71  0,1, 1,2, 2,3, 3,4, 1,5, 5,6, 6,7, 1,14, 14,8, 8,9, 9,10, 14,11, 11,12, 12,13
72  #define POSE_MPI_SCALES_RENDER_GPU 1
73  #define POSE_MPI_COLORS_RENDER_GPU \
74  255.f, 0.f, 85.f, \
75  255.f, 0.f, 0.f, \
76  255.f, 85.f, 0.f, \
77  255.f, 170.f, 0.f, \
78  255.f, 255.f, 0.f, \
79  170.f, 255.f, 0.f, \
80  85.f, 255.f, 0.f, \
81  43.f, 255.f, 0.f, \
82  0.f, 255.f, 0.f, \
83  0.f, 255.f, 85.f, \
84  0.f, 255.f, 170.f, \
85  0.f, 255.f, 255.f, \
86  0.f, 170.f, 255.f, \
87  0.f, 85.f, 255.f, \
88  0.f, 0.f, 255.f
89  // BODY_19
90  #define POSE_BODY_19_PAIRS_RENDER_GPU \
91  1,8, 1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 8,9, 9,10, 10,11, 8,12, 12,13, 13,14, 1,0, 0,15, 15,17, 0,16, 16,18
92  #define POSE_BODY_19_SCALES_RENDER_GPU 1
93  #define POSE_BODY_19_COLORS_RENDER_GPU \
94  255.f, 0.f, 85.f, \
95  255.f, 0.f, 0.f, \
96  255.f, 85.f, 0.f, \
97  255.f, 170.f, 0.f, \
98  255.f, 255.f, 0.f, \
99  170.f, 255.f, 0.f, \
100  85.f, 255.f, 0.f, \
101  0.f, 255.f, 0.f, \
102  255.f, 0.f, 0.f, \
103  0.f, 255.f, 85.f, \
104  0.f, 255.f, 170.f, \
105  0.f, 255.f, 255.f, \
106  0.f, 170.f, 255.f, \
107  0.f, 85.f, 255.f, \
108  0.f, 0.f, 255.f, \
109  255.f, 0.f, 170.f, \
110  170.f, 0.f, 255.f, \
111  255.f, 0.f, 255.f, \
112  85.f, 0.f, 255.f
113  // BODY_25E
114  #define POSE_BODY_25E_PAIRS_RENDER_GPU \
115  1,8, 1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 8,9, 9,10, 10,11, 8,12, 12,13, 13,14, 1,0, 0,15, 15,17, 0,16, 16,18, 14,19,19,20,14,21, 11,22,22,23,11,24
116  #define POSE_BODY_25E_SCALES_RENDER_GPU 1
117  #define POSE_BODY_25E_COLORS_RENDER_GPU \
118  255.f, 0.f, 85.f, \
119  255.f, 0.f, 0.f, \
120  255.f, 85.f, 0.f, \
121  255.f, 170.f, 0.f, \
122  255.f, 255.f, 0.f, \
123  170.f, 255.f, 0.f, \
124  85.f, 255.f, 0.f, \
125  0.f, 255.f, 0.f, \
126  255.f, 0.f, 0.f, \
127  0.f, 255.f, 85.f, \
128  0.f, 255.f, 170.f, \
129  0.f, 255.f, 255.f, \
130  0.f, 170.f, 255.f, \
131  0.f, 85.f, 255.f, \
132  0.f, 0.f, 255.f, \
133  255.f, 0.f, 170.f, \
134  170.f, 0.f, 255.f, \
135  255.f, 0.f, 255.f, \
136  85.f, 0.f, 255.f, \
137  0.f, 0.f, 255.f, \
138  0.f, 0.f, 255.f, \
139  0.f, 0.f, 255.f, \
140  0.f, 255.f, 255.f, \
141  0.f, 255.f, 255.f, \
142  0.f, 255.f, 255.f
143  // BODY_59
144  // Body + left hand + right hand
145  #define POSE_BODY_59_PAIRS_RENDER_GPU \
146  1,8, 1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 8,9, 9,10, 10,11, 8,12, 12,13, 13,14, 1,0, 0,15, 15,17, 0,16, 16,18, \
147  7,19, 19,20, 20,21, 21,22, 7,23, 23,24, 24,25, 25,26, 7,27, 27,28, 28,29, 29,30, 7,31, 31,32, 32,33, 33,34, 7,35, 35,36, 36,37, 37,38, \
148  4,39, 39,40, 40,41, 41,42, 4,43, 43,44, 44,45, 45,46, 4,47, 47,48, 48,49, 49,50, 4,51, 51,52, 52,53, 53,54, 4,55, 55,56, 56,57, 57,58
149  #define POSE_BODY_59_SCALES_RENDER_GPU \
150  1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f, \
151  0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, \
152  0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f
153  #define POSE_BODY_59_COLORS_RENDER_GPU \
154  255.f, 0.f, 85.f, \
155  255.f, 0.f, 0.f, \
156  255.f, 85.f, 0.f, \
157  255.f, 170.f, 0.f, \
158  255.f, 255.f, 0.f, \
159  170.f, 255.f, 0.f, \
160  85.f, 255.f, 0.f, \
161  0.f, 255.f, 0.f, \
162  255.f, 0.f, 0.f, \
163  0.f, 255.f, 85.f, \
164  0.f, 255.f, 170.f, \
165  0.f, 255.f, 255.f, \
166  0.f, 170.f, 255.f, \
167  0.f, 85.f, 255.f, \
168  0.f, 0.f, 255.f, \
169  255.f, 0.f, 170.f, \
170  170.f, 0.f, 255.f, \
171  255.f, 0.f, 255.f, \
172  85.f, 0.f, 255.f, \
173  \
174  255.f, 0.f, 0.f, \
175  191.f, 47.f, 47.f, \
176  127.f, 63.f, 63.f, \
177  63.f, 47.f, 47.f, \
178  255.f, 76.f, 0.f, \
179  191.f, 57.f, 0.f, \
180  127.f, 38.f, 0.f, \
181  63.f, 19.f, 0.f, \
182  255.f, 152.f, 0.f, \
183  191.f, 114.f, 0.f, \
184  127.f, 76.f, 0.f, \
185  63.f, 38.f, 0.f, \
186  255.f, 255.f, 0.f, \
187  191.f, 191.f, 0.f, \
188  127.f, 127.f, 0.f, \
189  63.f, 63.f, 0.f, \
190  0.f, 255.f, 0.f, \
191  0.f, 191.f, 0.f, \
192  0.f, 127.f, 0.f, \
193  0.f, 63.f, 0.f, \
194  \
195  255.f, 0.f, 153.f, \
196  191.f, 0.f, 114.f, \
197  127.f, 0.f, 76.f, \
198  63.f, 0.f, 38.f, \
199  203.f, 0.f, 255.f, \
200  152.f, 0.f, 191.f, \
201  101.f, 0.f, 127.f, \
202  50.f, 0.f, 63.f, \
203  50.f, 0.f, 255.f, \
204  37.f, 0.f, 191.f, \
205  25.f, 0.f, 127.f, \
206  12.f, 0.f, 63.f, \
207  0.f, 102.f, 255.f, \
208  0.f, 76.f, 191.f, \
209  0.f, 51.f, 127.f, \
210  0.f, 25.f, 63.f, \
211  0.f, 255.f, 255.f, \
212  0.f, 191.f, 191.f, \
213  0.f, 127.f, 127.f, \
214  0.f, 63.f, 63.f
215  // BODY_65
216  // Body + left hand + right hand
217  #define POSE_BODY_65_PAIRS_RENDER_GPU \
218  1,8, 1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 8,9, 9,10, 10,11, 8,12, 12,13, 13,14, 1,0, 0,15, 15,17, 0,16, 16,18, 14,19,19,20,14,21, 11,22,22,23,11,24, \
219  7,25, 25,26, 26,27, 27,28, 7,29, 29,30, 30,31, 31,32, 7,33, 33,34, 34,35, 35,36, 7,37, 37,38, 38,39, 39,40, 7,41, 41,42, 42,43, 43,44, \
220  4,45, 45,46, 46,47, 47,48, 4,49, 49,50, 50,51, 51,52, 4,53, 53,54, 54,55, 55,56, 4,57, 57,58, 58,59, 59,60, 4,61, 61,62, 62,63, 63,64
221  #define POSE_BODY_65_SCALES_RENDER_GPU \
222  1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f,1.f, \
223  0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, \
224  0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f, 0.75f,0.75f,0.75f,0.75f,0.75f
225  #define POSE_BODY_65_COLORS_RENDER_GPU \
226  255.f, 0.f, 85.f, \
227  255.f, 0.f, 0.f, \
228  255.f, 85.f, 0.f, \
229  255.f, 170.f, 0.f, \
230  255.f, 255.f, 0.f, \
231  170.f, 255.f, 0.f, \
232  85.f, 255.f, 0.f, \
233  0.f, 255.f, 0.f, \
234  255.f, 0.f, 0.f, \
235  0.f, 255.f, 85.f, \
236  0.f, 255.f, 170.f, \
237  0.f, 255.f, 255.f, \
238  0.f, 170.f, 255.f, \
239  0.f, 85.f, 255.f, \
240  0.f, 0.f, 255.f, \
241  255.f, 0.f, 170.f, \
242  170.f, 0.f, 255.f, \
243  255.f, 0.f, 255.f, \
244  85.f, 0.f, 255.f, \
245  0.f, 0.f, 255.f, \
246  0.f, 0.f, 255.f, \
247  0.f, 0.f, 255.f, \
248  0.f, 255.f, 255.f, \
249  0.f, 255.f, 255.f, \
250  0.f, 255.f, 255.f, \
251  \
252  255.f, 0.f, 0.f, \
253  191.f, 47.f, 47.f, \
254  127.f, 63.f, 63.f, \
255  63.f, 47.f, 47.f, \
256  255.f, 76.f, 0.f, \
257  191.f, 57.f, 0.f, \
258  127.f, 38.f, 0.f, \
259  63.f, 19.f, 0.f, \
260  255.f, 152.f, 0.f, \
261  191.f, 114.f, 0.f, \
262  127.f, 76.f, 0.f, \
263  63.f, 38.f, 0.f, \
264  255.f, 255.f, 0.f, \
265  191.f, 191.f, 0.f, \
266  127.f, 127.f, 0.f, \
267  63.f, 63.f, 0.f, \
268  0.f, 255.f, 0.f, \
269  0.f, 191.f, 0.f, \
270  0.f, 127.f, 0.f, \
271  0.f, 63.f, 0.f, \
272  \
273  255.f, 0.f, 153.f, \
274  191.f, 0.f, 114.f, \
275  127.f, 0.f, 76.f, \
276  63.f, 0.f, 38.f, \
277  203.f, 0.f, 255.f, \
278  152.f, 0.f, 191.f, \
279  101.f, 0.f, 127.f, \
280  50.f, 0.f, 63.f, \
281  50.f, 0.f, 255.f, \
282  37.f, 0.f, 191.f, \
283  25.f, 0.f, 127.f, \
284  12.f, 0.f, 63.f, \
285  0.f, 102.f, 255.f, \
286  0.f, 76.f, 191.f, \
287  0.f, 51.f, 127.f, \
288  0.f, 25.f, 63.f, \
289  0.f, 255.f, 255.f, \
290  0.f, 191.f, 191.f, \
291  0.f, 127.f, 127.f, \
292  0.f, 63.f, 63.f
293  // Hand color selection
294  // http://www.perbang.dk/rgbgradient/
295  // 1. Main color
296  // - Each finger of the right hand: 11 steps from FF0000 to FF0001 and pick last 5 from HSV gradient.
297  // - Each finger of the left hand: 21 steps from FF0000 to FF0001, choosing 4 among first 6 (HSV grad.),
298  // and then green.
299  // Note: Choosing first 5 from 11 steps was giving 2 very close greens
300  // 2. Gradient color from wrist to finger tips
301  // - Inside each finger: 5 steps from main color to 000000, and selecting first 4 from RGB gradient.
302  // Note: Used HSV gradient for red finger.
303 
304  // CAR_12
305  #define POSE_CAR_12_PAIRS_RENDER_GPU \
306  4,5, 4,6, 4,0, 0,2, 4,8, 8,10, 5,7, 5,1, 1,3, 5,9, 9,11, 0,1, 8,9, 2,3, 6,7, 10,11, 6,2,7,3, 6,10,7,11
307  // 4,5, 4,6, 4,0, 0,2, 4,8, 8,10, 5,7, 5,1, 1,3, 5,9, 9,11
308  #define POSE_CAR_12_SCALES_RENDER_GPU 0.5
309  #define POSE_CAR_12_COLORS_RENDER_GPU \
310  0.f, 255.f, 0.f, \
311  0.f, 255.f, 0.f, \
312  255.f, 255.f, 0.f, \
313  255.f, 255.f, 0.f, \
314  \
315  255.f, 0.f, 0.f, \
316  255.f, 0.f, 0.f, \
317  255.f, 75.f, 75.f, \
318  255.f, 75.f, 75.f, \
319  \
320  0.f, 0.f, 255.f, \
321  0.f, 0.f, 255.f, \
322  255.f, 0.f, 255.f, \
323  255.f, 0.f, 255.f
324 
325  // Rendering functions
326  OP_API const std::vector<float>& getPoseScales(const PoseModel poseModel);
327  OP_API const std::vector<float>& getPoseColors(const PoseModel poseModel);
328  OP_API const std::vector<unsigned int>& getPoseBodyPartPairsRender(const PoseModel poseModel);
329  OP_API unsigned int getNumberElementsToRender(const PoseModel poseModel);
330 }
331 
332 #endif // OPENPOSE_POSE_POSE_PARAMETERS_RENDER_HPP
OP_API const std::vector< unsigned int > & getPoseBodyPartPairsRender(const PoseModel poseModel)
OP_API unsigned int getNumberElementsToRender(const PoseModel poseModel)
const auto POSE_DEFAULT_ALPHA_KEYPOINT
Definition: poseParametersRender.hpp:10
PoseModel
Definition: enumClasses.hpp:9
OP_API const std::vector< float > & getPoseColors(const PoseModel poseModel)
OP_API const std::vector< float > & getPoseScales(const PoseModel poseModel)
#define OP_API
Definition: macros.hpp:16
const auto POSE_DEFAULT_ALPHA_HEAT_MAP
Definition: poseParametersRender.hpp:11