提交 5badd2b6 编写于 作者: G Gines Hidalgo

Fixed out of GPU memories: Added net_resolution_dynamic

Signed-off-by: NGines Hidalgo <gineshidalgo99@gmail.com>
上级 b6f12b8a
...@@ -140,6 +140,7 @@ Now that you are more familiar with OpenPose, this is a list with all the availa ...@@ -140,6 +140,7 @@ Now that you are more familiar with OpenPose, this is a list with all the availa
- DEFINE_int32(body, 1, "Select 0 to disable body keypoint detection (e.g., for faster but less accurate face keypoint detection, custom hand detector, etc.), 1 (default) for body keypoint estimation, and 2 to disable its internal body pose estimation network but still still run the greedy association parsing algorithm"); - DEFINE_int32(body, 1, "Select 0 to disable body keypoint detection (e.g., for faster but less accurate face keypoint detection, custom hand detector, etc.), 1 (default) for body keypoint estimation, and 2 to disable its internal body pose estimation network but still still run the greedy association parsing algorithm");
- DEFINE_string(model_pose, "BODY_25", "Model to be used. E.g., `BODY_25` (fastest for CUDA version, most accurate, and includes foot keypoints), `COCO` (18 keypoints), `MPI` (15 keypoints, least accurate model but fastest on CPU), `MPI_4_layers` (15 keypoints, even faster but less accurate)."); - DEFINE_string(model_pose, "BODY_25", "Model to be used. E.g., `BODY_25` (fastest for CUDA version, most accurate, and includes foot keypoints), `COCO` (18 keypoints), `MPI` (15 keypoints, least accurate model but fastest on CPU), `MPI_4_layers` (15 keypoints, even faster but less accurate).");
- DEFINE_string(net_resolution, "-1x368", "Multiples of 16. If it is increased, the accuracy potentially increases. If it is decreased, the speed increases. For maximum speed-accuracy balance, it should keep the closest aspect ratio possible to the images or videos to be processed. Using `-1` in any of the dimensions, OP will choose the optimal aspect ratio depending on the user's input value. E.g., the default `-1x368` is equivalent to `656x368` in 16:9 resolutions, e.g., full HD (1980x1080) and HD (1280x720) resolutions."); - DEFINE_string(net_resolution, "-1x368", "Multiples of 16. If it is increased, the accuracy potentially increases. If it is decreased, the speed increases. For maximum speed-accuracy balance, it should keep the closest aspect ratio possible to the images or videos to be processed. Using `-1` in any of the dimensions, OP will choose the optimal aspect ratio depending on the user's input value. E.g., the default `-1x368` is equivalent to `656x368` in 16:9 resolutions, e.g., full HD (1980x1080) and HD (1280x720) resolutions.");
- DEFINE_double(net_resolution_dynamic, 1., "This flag only applies to images or custom inputs (not to video or webcam). If it is zero or a negativevalue, it means that using `-1` in `net_resolution` will behave as explained in its description. Otherwise, and to avoid out of memory errors, the `-1` in `net_resolution` will clip to this value times the default 16/9 aspect ratio value (which is 656 width for a 368 height). E.g., `net_resolution_dynamic 10 net_resolution -1x368` will clip to 6560x368 (10 x 656). Recommended 1 for small GPUs (to avoid out of memory errors but maximize speed) and 0 for big GPUs (for maximum accuracy and speed).");
- DEFINE_int32(scale_number, 1, "Number of scales to average."); - DEFINE_int32(scale_number, 1, "Number of scales to average.");
- DEFINE_double(scale_gap, 0.25, "Scale gap between scales. No effect unless scale_number > 1. Initial scale is always 1. If you want to change the initial scale, you actually want to multiply the `net_resolution` by your desired initial scale."); - DEFINE_double(scale_gap, 0.25, "Scale gap between scales. No effect unless scale_number > 1. Initial scale is always 1. If you want to change the initial scale, you actually want to multiply the `net_resolution` by your desired initial scale.");
- DEFINE_double(upsampling_ratio, 0., "Upsampling ratio between the `net_resolution` and the output net results. A value less or equal than 0 (default) will use the network default value (recommended)."); - DEFINE_double(upsampling_ratio, 0., "Upsampling ratio between the `net_resolution` and the output net results. A value less or equal than 0 (default) will use the network default value (recommended).");
......
...@@ -433,18 +433,19 @@ OpenPose - Release Notes ...@@ -433,18 +433,19 @@ OpenPose - Release Notes
## Current version - Future OpenPose 1.7.1 ## Current version - Future OpenPose 1.7.1
1. Main improvements: 1. Main improvements:
1. Webcam speed boosted on Windows (by updating OpenCV). 1. (For images and custom inputs only): Flag `--net_resolution_dynamic` added to avoid out of memory errors in low GPUs (set by default to 1). It also allows maintaining the maximum possible accuracy (for big GPUs), which was the previous default until OpenPose v1.7.0.
2. Third party versions updated: 2. Webcam speed boosted on Windows (by updating OpenCV).
3. Third party versions updated:
1. OpenCV (Windows): From 4.2 to 4.5. 1. OpenCV (Windows): From 4.2 to 4.5.
2. Eigen: From 3.3.4 to 3.3.8. 2. Eigen: From 3.3.4 to 3.3.8.
3. `wget` (Windows): From 1.19.1 to 1.20.3. 3. `wget` (Windows): From 1.19.1 to 1.20.3.
3. AppVeyor now tests the actual OpenPoseDemo.exe example (Windows). 4. AppVeyor now tests the actual OpenPoseDemo.exe example (Windows).
4. Documentation improvements: 5. Documentation improvements:
1. Highly simplified README.md. 1. Highly simplified README.md.
2. Highly simplified doc, restructured to improve simplicity and now divided into subdirectories (`advanced`, `deprecated`, `installation`, etc). 2. Highly simplified doc, restructured to improve simplicity and now divided into subdirectories (`advanced`, `deprecated`, `installation`, etc).
3. More examples added to the demo quick start documentation. 3. More examples added to the demo quick start documentation.
5. Calibration doc links to included chessboard pdf. 6. Calibration doc links to included chessboard pdf.
6. Deprecated examples directories `tutorial_add_module` and `tutorial_api_thread` (and renamed as `deprecated`). They still compile, but we no longer support them. 7. Deprecated examples directories `tutorial_add_module` and `tutorial_api_thread` (and renamed as `deprecated`). They still compile, but we no longer support them.
2. Functions or parameters renamed: 2. Functions or parameters renamed:
3. Main bugs fixed: 3. Main bugs fixed:
1. Eigen working again on Windows. 1. Eigen working again on Windows.
......
...@@ -85,13 +85,13 @@ void configureWrapper(op::WrapperT<op::UserDatum>& opWrapperT) ...@@ -85,13 +85,13 @@ void configureWrapper(op::WrapperT<op::UserDatum>& opWrapperT)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapperT.configure(wrapperStructPose); opWrapperT.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -67,13 +67,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -67,13 +67,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -116,13 +116,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -116,13 +116,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -116,13 +116,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -116,13 +116,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -122,13 +122,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -122,13 +122,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -119,13 +119,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -119,13 +119,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -119,13 +119,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -119,13 +119,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -145,13 +145,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -145,13 +145,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -119,13 +119,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -119,13 +119,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -125,13 +125,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -125,13 +125,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -124,13 +124,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -124,13 +124,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -148,13 +148,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -148,13 +148,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -226,13 +226,13 @@ void configureWrapper(op::WrapperT<UserDatum>& opWrapperT) ...@@ -226,13 +226,13 @@ void configureWrapper(op::WrapperT<UserDatum>& opWrapperT)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapperT.configure(wrapperStructPose); opWrapperT.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -138,13 +138,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -138,13 +138,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -107,13 +107,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -107,13 +107,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -108,13 +108,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -108,13 +108,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -165,13 +165,13 @@ void configureWrapper(op::Wrapper& opWrapper) ...@@ -165,13 +165,13 @@ void configureWrapper(op::Wrapper& opWrapper)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapper.configure(wrapperStructPose); opWrapper.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -290,13 +290,13 @@ void configureWrapper(op::WrapperT<UserDatum>& opWrapperT) ...@@ -290,13 +290,13 @@ void configureWrapper(op::WrapperT<UserDatum>& opWrapperT)
// Pose configuration (use WrapperStructPose{} for default and recommended configuration) // Pose configuration (use WrapperStructPose{} for default and recommended configuration)
const op::WrapperStructPose wrapperStructPose{ const op::WrapperStructPose wrapperStructPose{
poseMode, netInputSize, outputSize, keypointScaleMode, FLAGS_num_gpu, FLAGS_num_gpu_start, poseMode, netInputSize, FLAGS_net_resolution_dynamic, outputSize, keypointScaleMode, FLAGS_num_gpu,
FLAGS_scale_number, (float)FLAGS_scale_gap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), FLAGS_num_gpu_start, FLAGS_scale_number, (float)FLAGS_scale_gap,
poseModel, !FLAGS_disable_blending, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, op::flagsToRenderMode(FLAGS_render_pose, multipleView), poseModel, !FLAGS_disable_blending,
FLAGS_part_to_show, op::String(FLAGS_model_folder), heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_alpha_pose, (float)FLAGS_alpha_heatmap, FLAGS_part_to_show, op::String(FLAGS_model_folder),
(float)FLAGS_render_threshold, FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, heatMapTypes, heatMapScaleMode, FLAGS_part_candidates, (float)FLAGS_render_threshold,
op::String(FLAGS_prototxt_path), op::String(FLAGS_caffemodel_path), FLAGS_number_people_max, FLAGS_maximize_positives, FLAGS_fps_max, op::String(FLAGS_prototxt_path),
(float)FLAGS_upsampling_ratio, enableGoogleLogging}; op::String(FLAGS_caffemodel_path), (float)FLAGS_upsampling_ratio, enableGoogleLogging};
opWrapperT.configure(wrapperStructPose); opWrapperT.configure(wrapperStructPose);
// Face configuration (use op::WrapperStructFace{} to disable it) // Face configuration (use op::WrapperStructFace{} to disable it)
const op::WrapperStructFace wrapperStructFace{ const op::WrapperStructFace wrapperStructFace{
......
...@@ -9,8 +9,8 @@ namespace op ...@@ -9,8 +9,8 @@ namespace op
class OP_API ScaleAndSizeExtractor class OP_API ScaleAndSizeExtractor
{ {
public: public:
ScaleAndSizeExtractor(const Point<int>& netInputResolution, const Point<int>& outputResolution, ScaleAndSizeExtractor(const Point<int>& netInputResolution, const float netInputResolutionDynamicBehavior,
const int scaleNumber = 1, const double scaleGap = 0.25); const Point<int>& outputResolution, const int scaleNumber = 1, const double scaleGap = 0.25);
virtual ~ScaleAndSizeExtractor(); virtual ~ScaleAndSizeExtractor();
...@@ -19,6 +19,7 @@ namespace op ...@@ -19,6 +19,7 @@ namespace op
private: private:
const Point<int> mNetInputResolution; const Point<int> mNetInputResolution;
const float mNetInputResolutionDynamicBehavior;
const Point<int> mOutputSize; const Point<int> mOutputSize;
const int mScaleNumber; const int mScaleNumber;
const double mScaleGap; const double mScaleGap;
......
...@@ -102,6 +102,13 @@ DEFINE_string(net_resolution, "-1x368", "Multiples of 16. If it ...@@ -102,6 +102,13 @@ DEFINE_string(net_resolution, "-1x368", "Multiples of 16. If it
" any of the dimensions, OP will choose the optimal aspect ratio depending on the user's" " any of the dimensions, OP will choose the optimal aspect ratio depending on the user's"
" input value. E.g., the default `-1x368` is equivalent to `656x368` in 16:9 resolutions," " input value. E.g., the default `-1x368` is equivalent to `656x368` in 16:9 resolutions,"
" e.g., full HD (1980x1080) and HD (1280x720) resolutions."); " e.g., full HD (1980x1080) and HD (1280x720) resolutions.");
DEFINE_double(net_resolution_dynamic, 1., "This flag only applies to images or custom inputs (not to video or webcam). If it is zero"
" or a negative value, it means that using `-1` in `net_resolution` will behave as explained"
" in its description. Otherwise, and to avoid out of memory errors, the `-1` in"
" `net_resolution` will clip to this value times the default 16/9 aspect ratio value (which"
" is 656 width for a 368 height). E.g., `net_resolution_dynamic 10 net_resolution -1x368`"
" will clip to 6560x368 (10 x 656). Recommended 1 for small GPUs (to avoid out of memory"
" errors but maximize speed) and 0 for big GPUs (for maximum accuracy and speed).");
DEFINE_int32(scale_number, 1, "Number of scales to average."); DEFINE_int32(scale_number, 1, "Number of scales to average.");
DEFINE_double(scale_gap, 0.25, "Scale gap between scales. No effect unless scale_number > 1. Initial scale is always 1." DEFINE_double(scale_gap, 0.25, "Scale gap between scales. No effect unless scale_number > 1. Initial scale is always 1."
" If you want to change the initial scale, you actually want to multiply the" " If you want to change the initial scale, you actually want to multiply the"
......
...@@ -38,7 +38,11 @@ namespace op ...@@ -38,7 +38,11 @@ namespace op
OP_API DisplayMode flagsToDisplayMode(const int display, const bool enabled3d); OP_API DisplayMode flagsToDisplayMode(const int display, const bool enabled3d);
OP_API Point<int> flagsToPoint(const String& pointString, const String& pointExample = String("1280x720")); /**
* E.g., const auto netInputSize = flagsToPoint(op::String(FLAGS_net_resolution), "-1x368");
* E.g., const Point<int> resolution = flagsToPoint(resolutionString, "-1280x720");
*/
OP_API Point<int> flagsToPoint(const String& pointString, const String& pointExample);
} }
#endif // OPENPOSE_UTILITIES_FLAGS_TO_OPEN_POSE_HPP #endif // OPENPOSE_UTILITIES_FLAGS_TO_OPEN_POSE_HPP
...@@ -290,8 +290,8 @@ namespace op ...@@ -290,8 +290,8 @@ namespace op
{ {
// Get input scales and sizes // Get input scales and sizes
const auto scaleAndSizeExtractor = std::make_shared<ScaleAndSizeExtractor>( const auto scaleAndSizeExtractor = std::make_shared<ScaleAndSizeExtractor>(
wrapperStructPose.netInputSize, finalOutputSize, wrapperStructPose.scalesNumber, wrapperStructPose.netInputSize, (float)wrapperStructPose.netInputSizeDynamicBehavior, finalOutputSize,
wrapperStructPose.scaleGap wrapperStructPose.scalesNumber, wrapperStructPose.scaleGap
); );
scaleAndSizeExtractorW = std::make_shared<WScaleAndSizeExtractor<TDatumsSP>>(scaleAndSizeExtractor); scaleAndSizeExtractorW = std::make_shared<WScaleAndSizeExtractor<TDatumsSP>>(scaleAndSizeExtractor);
......
...@@ -31,6 +31,15 @@ namespace op ...@@ -31,6 +31,15 @@ namespace op
*/ */
Point<int> netInputSize; Point<int> netInputSize;
/**
* Zero or negative means that using `-1` in netInputSize will behave as explained in its flag description.
* Otherwise, and to avoid out of memory errors, the `-1` in netInputSize will clip to this value times the
* default 16/9 aspect ratio value (i.e., 656 width for a 368 height). E.g., netInputSizeDynamicBehavior = 10
* and netInputSize = {-1x368} will clip to 6560x368 (10 x 656). Recommended 1 for small GPUs (to avoid out of
* memory errors but maximize speed) and 0 for big GPUs (for maximum accuracy and speed).
*/
double netInputSizeDynamicBehavior;
/** /**
* Output size of the final rendered image. * Output size of the final rendered image.
* It barely affects performance compared to netInputSize. * It barely affects performance compared to netInputSize.
...@@ -211,6 +220,7 @@ namespace op ...@@ -211,6 +220,7 @@ namespace op
*/ */
WrapperStructPose( WrapperStructPose(
const PoseMode poseMode = PoseMode::Enabled, const Point<int>& netInputSize = Point<int>{-1, 368}, const PoseMode poseMode = PoseMode::Enabled, const Point<int>& netInputSize = Point<int>{-1, 368},
const double netInputSizeDynamicBehavior = 1.,
const Point<int>& outputSize = Point<int>{-1, -1}, const Point<int>& outputSize = Point<int>{-1, -1},
const ScaleMode keypointScaleMode = ScaleMode::InputResolution, const int gpuNumber = -1, const ScaleMode keypointScaleMode = ScaleMode::InputResolution, const int gpuNumber = -1,
const int gpuNumberStart = 0, const int scalesNumber = 1, const float scaleGap = 0.25f, const int gpuNumberStart = 0, const int scalesNumber = 1, const float scaleGap = 0.25f,
......
...@@ -20,7 +20,7 @@ temporaryJsonFile1=~/Desktop/OpenPose_1.json ...@@ -20,7 +20,7 @@ temporaryJsonFile1=~/Desktop/OpenPose_1.json
temporaryJsonFile4=~/Desktop/OpenPose_4.json temporaryJsonFile4=~/Desktop/OpenPose_4.json
OP_COMAND="./build/examples/openpose/openpose.bin --face --hand --render_pose 0 --display 0 --cli_verbose 0.2" OP_COMAND="./build/examples/openpose/openpose.bin --face --hand --render_pose 0 --display 0 --cli_verbose 0.2"
OP_COMAND_1SCALE="${OP_COMAND} --write_coco_json ${temporaryJsonFile1} --num_gpu_start 1" OP_COMAND_1SCALE="${OP_COMAND} --write_coco_json ${temporaryJsonFile1} --num_gpu_start 1"
OP_COMAND_4SCALES="${OP_COMAND} --maximize_positives --scale_number 4 --scale_gap 0.25 --write_coco_json ${temporaryJsonFile4} --num_gpu_start 1" OP_COMAND_4SCALES="${OP_COMAND} --maximize_positives --net_resolution_dynamic -1 --scale_number 4 --scale_gap 0.25 --write_coco_json ${temporaryJsonFile4} --num_gpu_start 1"
# NOTE: Uncomment those tests you are interested into. By default, all disabled. # NOTE: Uncomment those tests you are interested into. By default, all disabled.
......
...@@ -17,20 +17,20 @@ OP_BIN=./build/examples/openpose/openpose.bin ...@@ -17,20 +17,20 @@ OP_BIN=./build/examples/openpose/openpose.bin
# # 1 scale # # 1 scale
# $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_test_max.json \ # $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_test_max.json \
# --scale_number 1 --scale_gap 0.25 --maximize_positives --model_pose BODY_25B # --scale_number 1 --scale_gap 0.25 --maximize_positives --net_resolution_dynamic -1 --model_pose BODY_25B
# zip ${JSON_FOLDER}1_test_max.zip ${JSON_FOLDER}1_test_max.json # zip ${JSON_FOLDER}1_test_max.zip ${JSON_FOLDER}1_test_max.json
# 4 scales # 4 scales
# $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_4_test.json \ # $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_4_test.json \
# --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736" # --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736"
$OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_4_test_max.json \ $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_4_test_max.json \
--scale_number 4 --scale_gap 0.25 --net_resolution "1312x736" --maximize_positives --scale_number 4 --scale_gap 0.25 --net_resolution "1312x736" --maximize_positives --net_resolution_dynamic -1
zip ${JSON_FOLDER}1_4_test_max.zip ${JSON_FOLDER}1_4_test_max.json zip ${JSON_FOLDER}1_4_test_max.zip ${JSON_FOLDER}1_4_test_max.json
# Additional settings: # Additional settings:
# 1. For maximum accuracy: # 1. For maximum accuracy:
# --write_coco_json ${JSON_FOLDER}1_4_max.json --maximize_positives # --write_coco_json ${JSON_FOLDER}1_4_max.json --maximize_positives --net_resolution_dynamic -1
# 2. For custom models: # 2. For custom models:
# --model_pose BODY_25B/BODY_23 --model_folder ${JSON_FOLDER} # --model_pose BODY_25B/BODY_23 --model_folder ${JSON_FOLDER}
...@@ -19,7 +19,7 @@ OP_BIN=./build/examples/openpose/openpose.bin ...@@ -19,7 +19,7 @@ OP_BIN=./build/examples/openpose/openpose.bin
# 1 scale (body) # 1 scale (body)
$OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1.json --write_coco_json_variants 1 $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1.json --write_coco_json_variants 1
# $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_max.json --write_coco_json_variants 3 \ # $OP_BIN --image_dir $IMAGE_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1_max.json --write_coco_json_variants 3 \
# --maximize_positives # --maximize_positives --net_resolution_dynamic -1
# 1 scale (foot) # 1 scale (foot)
$OP_BIN --image_dir $IMAGE_FOOT_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1.json --write_coco_json_variants 2 $OP_BIN --image_dir $IMAGE_FOOT_FOLDER --display 0 --render_pose 0 --cli_verbose 0.2 --write_coco_json ${JSON_FOLDER}1.json --write_coco_json_variants 2
...@@ -32,6 +32,6 @@ $OP_BIN --image_dir $IMAGE_FOOT_FOLDER --display 0 --render_pose 0 --cli_verbose ...@@ -32,6 +32,6 @@ $OP_BIN --image_dir $IMAGE_FOOT_FOLDER --display 0 --render_pose 0 --cli_verbose
# Additional settings: # Additional settings:
# 1. For maximum accuracy: # 1. For maximum accuracy:
# --write_coco_json ${JSON_FOLDER}1_4_max.json --maximize_positives # --write_coco_json ${JSON_FOLDER}1_4_max.json --maximize_positives --net_resolution_dynamic -1
# 2. For custom models: # 2. For custom models:
# --model_pose BODY_25B/BODY_23 --model_folder ${JSON_FOLDER} # --model_pose BODY_25B/BODY_23 --model_folder ${JSON_FOLDER}
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
namespace op namespace op
{ {
ScaleAndSizeExtractor::ScaleAndSizeExtractor(const Point<int>& netInputResolution, ScaleAndSizeExtractor::ScaleAndSizeExtractor(const Point<int>& netInputResolution,
const Point<int>& outputResolution, const int scaleNumber, const float netInputResolutionDynamicBehavior, const Point<int>& outputResolution, const int scaleNumber,
const double scaleGap) : const double scaleGap) :
mNetInputResolution{netInputResolution}, mNetInputResolution{netInputResolution},
mNetInputResolutionDynamicBehavior{netInputResolutionDynamicBehavior},
mOutputSize{outputResolution}, mOutputSize{outputResolution},
mScaleNumber{scaleNumber}, mScaleNumber{scaleNumber},
mScaleGap{scaleGap} mScaleGap{scaleGap}
...@@ -49,14 +50,24 @@ namespace op ...@@ -49,14 +50,24 @@ namespace op
if (poseNetInputSize.x <= 0 && poseNetInputSize.y <= 0) if (poseNetInputSize.x <= 0 && poseNetInputSize.y <= 0)
error("Only 1 of the dimensions of net input resolution can be <= 0.", error("Only 1 of the dimensions of net input resolution can be <= 0.",
__LINE__, __FUNCTION__, __FILE__); __LINE__, __FUNCTION__, __FILE__);
if (poseNetInputSize.x <= 0) // mNetInputResolutionDynamicBehavior limiting maximum
poseNetInputSize.x = 16 * positiveIntRound( if (mNetInputResolutionDynamicBehavior > 0)
poseNetInputSize.y * inputResolution.x / (float) inputResolution.y / 16.f {
); if (poseNetInputSize.x <= 0)
else // if (poseNetInputSize.y <= 0) poseNetInputSize.x = 16 * positiveIntRound(1 / 16.f *
poseNetInputSize.y = 16 * positiveIntRound( fastMin(poseNetInputSize.y * mNetInputResolutionDynamicBehavior * 16.f / 9.f, poseNetInputSize.y * inputResolution.x / (float)inputResolution.y));
poseNetInputSize.x * inputResolution.y / (float) inputResolution.x / 16.f else // if (poseNetInputSize.y <= 0)
); poseNetInputSize.y = 16 * positiveIntRound(1 / 16.f *
fastMin(poseNetInputSize.x * mNetInputResolutionDynamicBehavior * 9.f / 16.f, poseNetInputSize.x * inputResolution.y / (float)inputResolution.x));
poseNetInputSize.y = 16 * positiveIntRound(1 / 16.f * poseNetInputSize.x * inputResolution.y / (float)inputResolution.x);
}
else // No mNetInputResolutionDynamicBehavior behavior
{
if (poseNetInputSize.x <= 0)
poseNetInputSize.x = 16 * positiveIntRound(1 / 16.f * poseNetInputSize.y * inputResolution.x / (float)inputResolution.y);
else // if (poseNetInputSize.y <= 0)
poseNetInputSize.y = 16 * positiveIntRound(1 / 16.f * poseNetInputSize.x * inputResolution.y / (float)inputResolution.x);
}
} }
// scaleInputToNetInputs & netInputSizes - Reescale keeping aspect ratio // scaleInputToNetInputs & netInputSizes - Reescale keeping aspect ratio
std::vector<double> scaleInputToNetInputs(mScaleNumber, 1.f); std::vector<double> scaleInputToNetInputs(mScaleNumber, 1.f);
......
...@@ -16,6 +16,14 @@ namespace op ...@@ -16,6 +16,14 @@ namespace op
{ {
opLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__); opLog("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
// Disable netInputSizeDynamicBehavior if not images and not custom input
// (i.e., fixed resolution stream like webcam or video)
if (wrapperStructInput.producerType != ProducerType::ImageDirectory
&& wrapperStructInput.producerType != ProducerType::None)
{
wrapperStructPose.netInputSizeDynamicBehavior = -1.f;
}
// Check no wrong/contradictory flags enabled // Check no wrong/contradictory flags enabled
if (wrapperStructPose.alphaKeypoint < 0. || wrapperStructPose.alphaKeypoint > 1. if (wrapperStructPose.alphaKeypoint < 0. || wrapperStructPose.alphaKeypoint > 1.
|| wrapperStructFace.alphaHeatMap < 0. || wrapperStructFace.alphaHeatMap > 1. || wrapperStructFace.alphaHeatMap < 0. || wrapperStructFace.alphaHeatMap > 1.
......
...@@ -3,17 +3,18 @@ ...@@ -3,17 +3,18 @@
namespace op namespace op
{ {
WrapperStructPose::WrapperStructPose( WrapperStructPose::WrapperStructPose(
const PoseMode poseMode_, const Point<int>& netInputSize_, const Point<int>& outputSize_, const PoseMode poseMode_, const Point<int>& netInputSize_, const double netInputSizeDynamicBehavior_,
const ScaleMode keypointScaleMode_, const int gpuNumber_, const int gpuNumberStart_, const int scalesNumber_, const Point<int>& outputSize_, const ScaleMode keypointScaleMode_, const int gpuNumber_,
const float scaleGap_, const RenderMode renderMode_, const PoseModel poseModel_, const int gpuNumberStart_, const int scalesNumber_, const float scaleGap_, const RenderMode renderMode_,
const bool blendOriginalFrame_, const float alphaKeypoint_, const float alphaHeatMap_, const PoseModel poseModel_, const bool blendOriginalFrame_, const float alphaKeypoint_,
const int defaultPartToRender_, const String& modelFolder_, const std::vector<HeatMapType>& heatMapTypes_, const float alphaHeatMap_, const int defaultPartToRender_, const String& modelFolder_,
const ScaleMode heatMapScaleMode_, const bool addPartCandidates_, const float renderThreshold_, const std::vector<HeatMapType>& heatMapTypes_, const ScaleMode heatMapScaleMode_,
const int numberPeopleMax_, const bool maximizePositives_, const double fpsMax_, const bool addPartCandidates_, const float renderThreshold_, const int numberPeopleMax_,
const String& protoTxtPath_, const String& caffeModelPath_, const float upsamplingRatio_, const bool maximizePositives_, const double fpsMax_, const String& protoTxtPath_,
const bool enableGoogleLogging_) : const String& caffeModelPath_, const float upsamplingRatio_, const bool enableGoogleLogging_) :
poseMode{poseMode_}, poseMode{poseMode_},
netInputSize{netInputSize_}, netInputSize{netInputSize_},
netInputSizeDynamicBehavior{netInputSizeDynamicBehavior_},
outputSize{outputSize_}, outputSize{outputSize_},
keypointScaleMode{keypointScaleMode_}, keypointScaleMode{keypointScaleMode_},
gpuNumber{gpuNumber_}, gpuNumber{gpuNumber_},
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册