From 98384a11575a408d143555391f89f2526537b9ad Mon Sep 17 00:00:00 2001 From: Travis CI Date: Tue, 19 Dec 2017 17:48:18 +0000 Subject: [PATCH] Deploy code docs to GitHub Pages Travis build: 102 Commit: abeaa828052fb3f4d40125032f56d9266c38b6c4 --- doxygen.log | 112 +- html/core_2enum_classes_8hpp.html | 3 +- html/core_2enum_classes_8hpp.js | 3 +- html/core_2enum_classes_8hpp_source.html | 42 +- .../dir_fb1fa93424b14541859dcbe39f791178.html | 2 + html/dir_fb1fa93424b14541859dcbe39f791178.js | 1 + html/face_parameters_8hpp_source.html | 8 +- html/file_stream_8hpp_source.html | 2 +- html/files.html | 9 +- html/flags_to_open_pose_8hpp_source.html | 2 +- html/globals.html | 26 +- html/globals_defs.html | 26 +- html/hand_parameters_8hpp_source.html | 8 +- html/namespacemembers_b.html | 3 + html/namespacemembers_eval.html | 6 + html/namespacemembers_func.html | 44 +- html/namespacemembers_g.html | 44 +- html/namespacemembers_n.html | 3 + html/namespacemembers_p.html | 131 +- html/namespacemembers_vars.html | 160 +- html/namespaceop.html | 1154 +++------ html/navtree.js | 6 +- html/navtreeindex2.js | 4 +- html/navtreeindex3.js | 8 +- html/navtreeindex4.js | 142 +- html/navtreeindex5.js | 35 +- html/pose_2enum_classes_8hpp.html | 1 + html/pose_2enum_classes_8hpp.js | 1 + html/pose_2enum_classes_8hpp_source.html | 34 +- html/pose_2headers_8hpp.html | 1 + html/pose_2headers_8hpp_source.html | 14 +- html/pose_cpu_renderer_8hpp_source.html | 4 +- html/pose_extractor_8hpp_source.html | 2 +- html/pose_gpu_renderer_8hpp_source.html | 4 +- html/pose_parameters_8hpp.html | 371 +-- html/pose_parameters_8hpp.js | 71 +- html/pose_parameters_8hpp_source.html | 408 +-- html/pose_parameters_render_8hpp.html | 416 ++++ html/pose_parameters_render_8hpp.js | 19 + html/pose_parameters_render_8hpp_source.html | 296 +++ html/render_pose_8hpp_source.html | 58 +- html/search/all_1.js | 1 + html/search/all_12.js | 2 +- html/search/all_6.js | 16 +- html/search/all_d.js | 5 +- html/search/all_f.js | 75 +- html/search/defines_5.js | 22 +- html/search/enumvalues_1.js | 3 +- html/search/enumvalues_a.js | 3 +- html/search/files_e.js | 1 + html/search/functions_6.js | 16 +- html/search/variables_d.js | 45 +- html/wrapper_8hpp_source.html | 2183 +++++++++-------- html/wrapper_struct_face_8hpp_source.html | 2 +- html/wrapper_struct_hand_8hpp_source.html | 2 +- html/wrapper_struct_pose_8hpp_source.html | 6 +- 56 files changed, 2693 insertions(+), 3373 deletions(-) create mode 100644 html/pose_parameters_render_8hpp.html create mode 100644 html/pose_parameters_render_8hpp.js create mode 100644 html/pose_parameters_render_8hpp_source.html diff --git a/doxygen.log b/doxygen.log index 3058f93a..62bdfbfc 100644 --- a/doxygen.log +++ b/doxygen.log @@ -238,6 +238,8 @@ Preprocessing /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/o Parsing file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseGpuRenderer.hpp... Preprocessing /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParameters.hpp... Parsing file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParameters.hpp... +Preprocessing /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParametersRender.hpp... +Parsing file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParametersRender.hpp... Preprocessing /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseRenderer.hpp... Parsing file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseRenderer.hpp... Preprocessing /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/renderPose.hpp... @@ -501,6 +503,7 @@ Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpos Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseExtractorCaffe.hpp... Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseGpuRenderer.hpp... Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParameters.hpp... +Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParametersRender.hpp... Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseRenderer.hpp... Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/renderPose.hpp... Generating code for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/wPoseExtractor.hpp... @@ -654,6 +657,7 @@ Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpos Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseExtractorCaffe.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseGpuRenderer.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParameters.hpp... +Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParametersRender.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseRenderer.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/renderPose.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/wPoseExtractor.hpp... @@ -672,25 +676,7 @@ Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpos Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/subThread.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/subThreadNoQueue.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/subThreadQueueIn.hpp... -Gen/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:117: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:117: warning: explicit link request to 'face' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:110: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:110: warning: explicit link request to 'face' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:103: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:139: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:139: warning: explicit link request to 'hand' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:132: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:132: warning: explicit link request to 'hand' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:124: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:38: warning: explicit link request to 'scales' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:90: warning: explicit link request to 'heatmaps' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:90: warning: explicit link request to 'body' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:96: warning: explicit link request to 'heatmaps' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:72: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:63: warning: explicit link request to 'people' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:63: warning: explicit link request to 'body' could not be resolved -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:82: warning: explicit link request to 'people' could not be resolved -erating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/subThreadQueueInOut.hpp... +Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/subThreadQueueInOut.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/subThreadQueueOut.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/thread.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/thread/threadManager.hpp... @@ -719,20 +705,25 @@ Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpos Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/wrapper/wrapperStructPose.hpp... Generating docs for file /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/README.md... Generating page documentation... -Generating group documentation... -Generating class documentation... -Generating namespace index... -Generating docs for namespace boost -Generating docs for compound boost::shared_ptr... -Generating docs for namespace caffe -Generating docs for compound caffe::Blob... -Generating docs for namespace op -Generating docs for compound op::Array... -Generating docs for compound op::CvMatToOpInput... -Generating docs for compound op::CvMatToOpOutput... -Generating docs for compound op::Datum... -Generating docs for compound op::GpuRenderer... -Gener/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/face/faceExtractor.hpp:18: warning: The following parameters of op::FaceExtractor::FaceExtractor(const Point< int > &netInputSize, const Point< int > &netOutputSize, const std::vector< HeatMapType > &heatMapTypes={}, const ScaleMode heatMapScale=ScaleMode::ZeroToOne) are not documented: +Generating group documentation../home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:117: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:117: warning: explicit link request to 'face' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:110: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:110: warning: explicit link request to 'face' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:103: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:139: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:139: warning: explicit link request to 'hand' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:132: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:132: warning: explicit link request to 'hand' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:124: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:38: warning: explicit link request to 'scales' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:90: warning: explicit link request to 'heatmaps' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:90: warning: explicit link request to 'body' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:96: warning: explicit link request to 'heatmaps' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:72: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:63: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:63: warning: explicit link request to 'body' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/core/datum.hpp:82: warning: explicit link request to 'people' could not be resolved +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/face/faceExtractor.hpp:18: warning: The following parameters of op::FaceExtractor::FaceExtractor(const Point< int > &netInputSize, const Point< int > &netOutputSize, const std::vector< HeatMapType > &heatMapTypes={}, const ScaleMode heatMapScale=ScaleMode::ZeroToOne) are not documented: parameter 'heatMapTypes' parameter 'heatMapScale' /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/face/faceExtractorCaffe.hpp:18: warning: The following parameters of op::FaceExtractorCaffe::FaceExtractorCaffe(const Point< int > &netInputSize, const Point< int > &netOutputSize, const std::string &modelFolder, const int gpuId, const std::vector< HeatMapType > &heatMapTypes={}, const ScaleMode heatMapScale=ScaleMode::ZeroToOne, const bool enableGoogleLogging=true) are not documented: @@ -750,14 +741,20 @@ Gener/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/f parameter 'heatMapTypes' parameter 'heatMapScale' parameter 'enableGoogleLogging' -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/producer.hpp:20: warning: argument 'repeatWhenFinished' of command @param is not found in the argument list of op::Producer::Producer(const ProducerType type) -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/producer.hpp:20: warning: The following parameters of op::Producer::Producer(const ProducerType type) are not documented: - parameter 'type' -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/videoCaptureReader.hpp:19: warning: The following parameters of op::VideoCaptureReader::VideoCaptureReader(const int index, const bool throwExceptionIfNoOpened) are not documented: - parameter 'throwExceptionIfNoOpened' -/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/webcamReader.hpp:20: warning: The following parameters of op::WebcamReader::WebcamReader(const int webcamIndex=0, const Point< int > &webcamResolution=Point< int >{}, const double fps=30., const bool throwExceptionIfNoOpened=true) are not documented: - parameter 'throwExceptionIfNoOpened' -ating docs for compound op::KeypointScaler... +. +Generating class documentation... +Generating namespace index... +Generating docs for namespace boost +Generating docs for compound boost::shared_ptr... +Generating docs for namespace caffe +Generating docs for compound caffe::Blob... +Generating docs for namespace op +Generating docs for compound op::Array... +Generating docs for compound op::CvMatToOpInput... +Generating docs for compound op::CvMatToOpOutput... +Generating docs for compound op::Datum... +Generating docs for compound op::GpuRenderer... +Generating docs for compound op::KeypointScaler... Generating docs for compound op::MaximumCaffe... Generating docs for compound op::Net... Generating docs for compound op::NetCaffe... @@ -828,17 +825,14 @@ Generating docs for compound op::PoseGpuRenderer... Generating docs for compound op::PoseRenderer... Generating docs for compound op::WPoseExtractor... Generating docs for compound op::WPoseRenderer... -Generating docs for compound op::DatumProducer... -Generating docs for compound op::ImageDirectoryReader... -Generating docs for compound op::IpCameraReader... -Generating docs for compound op::Producer... -Generating docs for compound op::VideoCaptureReader... -Generating docs for compound op::VideoReader... -Generating docs for compound op::WDatumProducer... -Generating docs for compound op::WebcamReader... -Generating docs for compound op::PriorityQueue... -Generating docs for compound op::Queue... -Generati/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/wrapper/wrapperStructPose.hpp:109: warning: explicit link request to 'body' could not be resolved +G/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/producer.hpp:20: warning: argument 'repeatWhenFinished' of command @param is not found in the argument list of op::Producer::Producer(const ProducerType type) +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/producer.hpp:20: warning: The following parameters of op::Producer::Producer(const ProducerType type) are not documented: + parameter 'type' +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/videoCaptureReader.hpp:19: warning: The following parameters of op::VideoCaptureReader::VideoCaptureReader(const int index, const bool throwExceptionIfNoOpened) are not documented: + parameter 'throwExceptionIfNoOpened' +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/producer/webcamReader.hpp:20: warning: The following parameters of op::WebcamReader::WebcamReader(const int webcamIndex=0, const Point< int > &webcamResolution=Point< int >{}, const double fps=30., const bool throwExceptionIfNoOpened=true) are not documented: + parameter 'throwExceptionIfNoOpened' +/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/wrapper/wrapperStructPose.hpp:109: warning: explicit link request to 'body' could not be resolved /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/wrapper/wrapperStructPose.hpp:110: warning: explicit link request to 'body' could not be resolved /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/wrapper/wrapperStructPose.hpp:110: warning: explicit link request to 'body' could not be resolved /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/wrapper/wrapperStructPose.hpp:111: warning: explicit link request to 'body' could not be resolved @@ -855,7 +849,17 @@ Generati/home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpos /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/README.md:110: warning: unable to resolve reference to `doc/output.md' for \ref command /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/README.md:115: warning: explicit link request to 'faq' could not be resolved /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/README.md:140: warning: unable to resolve reference to `doc/contributors.md' for \ref command -ng docs for compound op::QueueBase... +enerating docs for compound op::DatumProducer... +Generating docs for compound op::ImageDirectoryReader... +Generating docs for compound op::IpCameraReader... +Generating docs for compound op::Producer... +Generating docs for compound op::VideoCaptureReader... +Generating docs for compound op::VideoReader... +Generating docs for compound op::WDatumProducer... +Generating docs for compound op::WebcamReader... +Generating docs for compound op::PriorityQueue... +Generating docs for compound op::Queue... +Generating docs for compound op::QueueBase... Generating docs for compound op::SubThread... Generating docs for compound op::SubThreadNoQueue... Generating docs for compound op::SubThreadQueueIn... @@ -894,5 +898,5 @@ Generating file index... Generating file member index... Generating example index... finalizing index lists... -lookup cache used 2832/65536 hits=16588 misses=3025 +lookup cache used 2750/65536 hits=16595 misses=2943 finished... diff --git a/html/core_2enum_classes_8hpp.html b/html/core_2enum_classes_8hpp.html index d7e5b229..0b53e3a1 100644 --- a/html/core_2enum_classes_8hpp.html +++ b/html/core_2enum_classes_8hpp.html @@ -127,7 +127,8 @@ Enumerations op::ScaleMode::ZeroToOne,
  op::ScaleMode::PlusMinusOne, -op::ScaleMode::UnsignedChar +op::ScaleMode::UnsignedChar, +op::ScaleMode::NoScale
}   diff --git a/html/core_2enum_classes_8hpp.js b/html/core_2enum_classes_8hpp.js index adfe784c..ee22e210 100644 --- a/html/core_2enum_classes_8hpp.js +++ b/html/core_2enum_classes_8hpp.js @@ -16,6 +16,7 @@ var core_2enum_classes_8hpp = [ "OutputResolution", "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa73c42013aac51c335d50d103f30fcb99", null ], [ "ZeroToOne", "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa4b942544cb3e764bbb8d33f8a8744855", null ], [ "PlusMinusOne", "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaab7e7b2beae3435e73021d6d9a6a3fd8a", null ], - [ "UnsignedChar", "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaaa93f121640d609f8772397a0f40f40d6", null ] + [ "UnsignedChar", "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaaa93f121640d609f8772397a0f40f40d6", null ], + [ "NoScale", "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa6089ccf7c3fe93a62745e51200419c60", null ] ] ] ]; \ No newline at end of file diff --git a/html/core_2enum_classes_8hpp_source.html b/html/core_2enum_classes_8hpp_source.html index 8311026e..5de2e31e 100644 --- a/html/core_2enum_classes_8hpp_source.html +++ b/html/core_2enum_classes_8hpp_source.html @@ -120,32 +120,34 @@ $(document).ready(function(){initNavTree('core_2enum_classes_8hpp_source.html','
11  ZeroToOne, // [0, 1]
12  PlusMinusOne, // [-1, 1]
13  UnsignedChar, // [0, 255]
-
14  };
-
15 
-
16  enum class HeatMapType : unsigned char
-
17  {
-
18  Parts,
-
19  Background,
-
20  PAFs,
-
21  };
-
22 
-
23  enum class RenderMode : unsigned char
-
24  {
-
25  None,
-
26  Cpu,
-
27  Gpu,
-
28  };
-
29 }
-
30 
-
31 #endif // OPENPOSE_CORE_ENUM_CLASSES_HPP
+
14  NoScale,
+
15  };
+
16 
+
17  enum class HeatMapType : unsigned char
+
18  {
+
19  Parts,
+
20  Background,
+
21  PAFs,
+
22  };
+
23 
+
24  enum class RenderMode : unsigned char
+
25  {
+
26  None,
+
27  Cpu,
+
28  Gpu,
+
29  };
+
30 }
+
31 
+
32 #endif // OPENPOSE_CORE_ENUM_CLASSES_HPP
+
-
HeatMapType
Definition: enumClasses.hpp:16
+
HeatMapType
Definition: enumClasses.hpp:17
ScaleMode
Definition: enumClasses.hpp:6
-
RenderMode
Definition: enumClasses.hpp:23
+
RenderMode
Definition: enumClasses.hpp:24
diff --git a/html/dir_fb1fa93424b14541859dcbe39f791178.html b/html/dir_fb1fa93424b14541859dcbe39f791178.html index 155b932b..8413ae89 100644 --- a/html/dir_fb1fa93424b14541859dcbe39f791178.html +++ b/html/dir_fb1fa93424b14541859dcbe39f791178.html @@ -122,6 +122,8 @@ Files   file  poseParameters.hpp [code]   +file  poseParametersRender.hpp [code] +  file  poseRenderer.hpp [code]   file  renderPose.hpp [code] diff --git a/html/dir_fb1fa93424b14541859dcbe39f791178.js b/html/dir_fb1fa93424b14541859dcbe39f791178.js index 2e8c658e..c4cdc269 100644 --- a/html/dir_fb1fa93424b14541859dcbe39f791178.js +++ b/html/dir_fb1fa93424b14541859dcbe39f791178.js @@ -20,6 +20,7 @@ var dir_fb1fa93424b14541859dcbe39f791178 = [ "PoseGpuRenderer", "classop_1_1_pose_gpu_renderer.html", "classop_1_1_pose_gpu_renderer" ] ] ], [ "poseParameters.hpp", "pose_parameters_8hpp.html", "pose_parameters_8hpp" ], + [ "poseParametersRender.hpp", "pose_parameters_render_8hpp.html", "pose_parameters_render_8hpp" ], [ "poseRenderer.hpp", "pose_renderer_8hpp.html", [ [ "PoseRenderer", "classop_1_1_pose_renderer.html", "classop_1_1_pose_renderer" ] ] ], diff --git a/html/face_parameters_8hpp_source.html b/html/face_parameters_8hpp_source.html index 2eb837e0..b4ba34d2 100644 --- a/html/face_parameters_8hpp_source.html +++ b/html/face_parameters_8hpp_source.html @@ -114,7 +114,7 @@ $(document).ready(function(){initNavTree('face_parameters_8hpp_source.html','');
5 
6 namespace op
7 {
-
8  const auto FACE_MAX_FACES = POSE_MAX_PEOPLE;
+
8  const auto FACE_MAX_FACES = POSE_MAX_PEOPLE;
9 
10  const auto FACE_NUMBER_PARTS = 70u;
11  #define FACE_PAIRS_RENDER_GPU {0,1, 1,2, 2,3, 3,4, 4,5, 5,6, 6,7, 7,8, 8,9, 9,10, 10,11, 11,12, 12,13, 13,14, 14,15, 15,16, 17,18, 18,19, 19,20, \
@@ -137,18 +137,18 @@ $(document).ready(function(){initNavTree('face_parameters_8hpp_source.html','');
28 
29 #endif // OPENPOSE_FACE_FACE_PARAMETERS_HPP
-
const auto POSE_DEFAULT_ALPHA_KEYPOINT
Definition: poseParameters.hpp:306
+
const auto POSE_DEFAULT_ALPHA_KEYPOINT
Definition: poseParametersRender.hpp:10
const auto FACE_NUMBER_PARTS
Definition: faceParameters.hpp:10
const auto FACE_CCN_DECREASE_FACTOR
Definition: faceParameters.hpp:20
const std::vector< unsigned int > FACE_PAIRS_RENDER
Definition: faceParameters.hpp:15
-
const unsigned int POSE_MAX_PEOPLE
Definition: poseParameters.hpp:13
+
const auto POSE_MAX_PEOPLE
Definition: poseParameters.hpp:12
const std::string FACE_PROTOTXT
Definition: faceParameters.hpp:21
#define FACE_COLORS_RENDER_GPU
Definition: faceParameters.hpp:16
const std::string FACE_TRAINED_MODEL
Definition: faceParameters.hpp:22
const std::vector< float > FACE_COLORS_RENDER
Definition: faceParameters.hpp:17
const auto FACE_MAX_FACES
Definition: faceParameters.hpp:8
const auto FACE_DEFAULT_ALPHA_HEAT_MAP
Definition: faceParameters.hpp:26
-
const auto POSE_DEFAULT_ALPHA_HEAT_MAP
Definition: poseParameters.hpp:307
+
const auto POSE_DEFAULT_ALPHA_HEAT_MAP
Definition: poseParametersRender.hpp:11
#define FACE_PAIRS_RENDER_GPU
Definition: faceParameters.hpp:11
const auto FACE_DEFAULT_ALPHA_KEYPOINT
Definition: faceParameters.hpp:25
diff --git a/html/file_stream_8hpp_source.html b/html/file_stream_8hpp_source.html index 2568c3eb..417f3ff5 100644 --- a/html/file_stream_8hpp_source.html +++ b/html/file_stream_8hpp_source.html @@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('file_stream_8hpp_source.html','');});
14  // Example to read it in Python, assuming a (18 x 300 x 500) size Array
15  // x = np.fromfile(heatMapFullPath, dtype=np.float32)
16  // assert x[0] == 3 # First parameter saves the number of dimensions (18x300x500 = 3 dimensions)
-
17  // shape_x = x[1:x[0]]
+
17  // shape_x = x[1:1+int(x[0])]
18  // assert len(shape_x[0]) == 3 # Number of dimensions
19  // assert shape_x[0] == 18 # Size of the first dimension
20  // assert shape_x[1] == 300 # Size of the second dimension
diff --git a/html/files.html b/html/files.html index fca3face..d106b9b6 100644 --- a/html/files.html +++ b/html/files.html @@ -219,10 +219,11 @@ $(document).ready(function(){initNavTree('files.html','');});   |o*poseExtractorCaffe.hpp   |o*poseGpuRenderer.hpp   |o*poseParameters.hpp -  |o*poseRenderer.hpp -  |o*renderPose.hpp -  |o*wPoseExtractor.hpp -  |\*wPoseRenderer.hpp +  |o*poseParametersRender.hpp +  |o*poseRenderer.hpp +  |o*renderPose.hpp +  |o*wPoseExtractor.hpp +  |\*wPoseRenderer.hpp   o+producer   |o*datumProducer.hpp   |o*enumClasses.hpp diff --git a/html/flags_to_open_pose_8hpp_source.html b/html/flags_to_open_pose_8hpp_source.html index 1f30d7bf..f59d19c5 100644 --- a/html/flags_to_open_pose_8hpp_source.html +++ b/html/flags_to_open_pose_8hpp_source.html @@ -150,7 +150,7 @@ $(document).ready(function(){initNavTree('flags_to_open_pose_8hpp_source.html','
ScaleMode
Definition: enumClasses.hpp:6
OP_API std::vector< HeatMapType > flagsToHeatMaps(const bool heatMapsAddParts=false, const bool heatMapsAddBkg=false, const bool heatMapsAddPAFs=false)
-
RenderMode
Definition: enumClasses.hpp:23
+
RenderMode
Definition: enumClasses.hpp:24
OP_API PoseModel flagsToPoseModel(const std::string &poseModeString)
OP_API ProducerType flagsToProducerType(const std::string &imageDirectory, const std::string &videoPath, const std::string &ipCameraPath, const int webcamIndex)
OP_API Point< int > flagsToPoint(const std::string &pointString, const std::string &pointExample="1280x720")
diff --git a/html/globals.html b/html/globals.html index a09d3730..476aefe5 100644 --- a/html/globals.html +++ b/html/globals.html @@ -159,34 +159,40 @@ $(document).ready(function(){initNavTree('globals.html','');}); : macros.hpp
  • POSE_BODY_18_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_18_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_19_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_19_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_23_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_23_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp +
  • +
  • POSE_BODY_59_COLORS_RENDER_GPU +: poseParametersRender.hpp +
  • +
  • POSE_BODY_59_PAIRS_RENDER_GPU +: poseParametersRender.hpp
  • POSE_COCO_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_COCO_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_MPI_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_MPI_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • UNUSED : macros.hpp diff --git a/html/globals_defs.html b/html/globals_defs.html index 4e1d3551..3d959381 100644 --- a/html/globals_defs.html +++ b/html/globals_defs.html @@ -159,34 +159,40 @@ $(document).ready(function(){initNavTree('globals_defs.html','');}); : macros.hpp
  • POSE_BODY_18_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_18_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_19_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_19_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_23_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_BODY_23_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp +
  • +
  • POSE_BODY_59_COLORS_RENDER_GPU +: poseParametersRender.hpp +
  • +
  • POSE_BODY_59_PAIRS_RENDER_GPU +: poseParametersRender.hpp
  • POSE_COCO_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_COCO_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_MPI_COLORS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • POSE_MPI_PAIRS_RENDER_GPU -: poseParameters.hpp +: poseParametersRender.hpp
  • UNUSED : macros.hpp diff --git a/html/hand_parameters_8hpp_source.html b/html/hand_parameters_8hpp_source.html index 6d650981..9821ef6f 100644 --- a/html/hand_parameters_8hpp_source.html +++ b/html/hand_parameters_8hpp_source.html @@ -114,7 +114,7 @@ $(document).ready(function(){initNavTree('hand_parameters_8hpp_source.html','');
    5 
    6 namespace op
    7 {
    - +
    9 
    10  const auto HAND_NUMBER_PARTS = 21u;
    11  #define HAND_PAIRS_RENDER_GPU {0,1, 1,2, 2,3, 3,4, 0,5, 5,6, 6,7, 7,8, 0,9, 9,10, 10,11, 11,12, 0,13, 13,14, 14,15, 15,16, 0,17, 17,18, 18,19, 19,20}
    @@ -158,10 +158,10 @@ $(document).ready(function(){initNavTree('hand_parameters_8hpp_source.html','');
    const auto HAND_MAX_HANDS
    Definition: handParameters.hpp:8
    const std::string HAND_PROTOTXT
    Definition: handParameters.hpp:40
    -
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParameters.hpp:306
    +
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParametersRender.hpp:10
    +
    const auto POSE_MAX_PEOPLE
    Definition: poseParameters.hpp:12
    const auto HAND_DEFAULT_ALPHA_HEAT_MAP
    Definition: handParameters.hpp:45
    const auto HAND_NUMBER_PARTS
    Definition: handParameters.hpp:10
    -
    const unsigned int POSE_MAX_PEOPLE
    Definition: poseParameters.hpp:13
    const auto HAND_CCN_DECREASE_FACTOR
    Definition: handParameters.hpp:39
    const auto HAND_DEFAULT_ALPHA_KEYPOINT
    Definition: handParameters.hpp:44
    const std::vector< float > HAND_COLORS_RENDER
    Definition: handParameters.hpp:35
    @@ -169,7 +169,7 @@ $(document).ready(function(){initNavTree('hand_parameters_8hpp_source.html','');
    const std::vector< unsigned int > HAND_PAIRS_RENDER
    Definition: handParameters.hpp:12
    const std::string HAND_TRAINED_MODEL
    Definition: handParameters.hpp:41
    #define HAND_PAIRS_RENDER_GPU
    Definition: handParameters.hpp:11
    -
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParameters.hpp:307
    +
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParametersRender.hpp:11
    diff --git a/html/namespacemembers_b.html b/html/namespacemembers_b.html index a6d7d77b..2c4fd4bf 100644 --- a/html/namespacemembers_b.html +++ b/html/namespacemembers_b.html @@ -155,6 +155,9 @@ $(document).ready(function(){initNavTree('namespacemembers_b.html','');});
  • BODY_23 : op
  • +
  • BODY_59 +: op +
  • diff --git a/html/namespacemembers_eval.html b/html/namespacemembers_eval.html index 06c25357..63692f56 100644 --- a/html/namespacemembers_eval.html +++ b/html/namespacemembers_eval.html @@ -171,6 +171,9 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
  • BODY_23 : op
  • +
  • BODY_59 +: op +
  • @@ -279,6 +282,9 @@ $(document).ready(function(){initNavTree('namespacemembers_eval.html','');});
  • Normal : op
  • +
  • NoScale +: op +
  • diff --git a/html/namespacemembers_func.html b/html/namespacemembers_func.html index c9642faa..2a86f187 100644 --- a/html/namespacemembers_func.html +++ b/html/namespacemembers_func.html @@ -288,7 +288,49 @@ $(document).ready(function(){initNavTree('namespacemembers_func.html','');}); : op
  • getPoseBodyPartMapping() -: op +: op +
  • +
  • getPoseBodyPartPairsRender() +: op +
  • +
  • getPoseColors() +: op +
  • +
  • getPoseDefaultConnectInterMinAboveThreshold() +: op +
  • +
  • getPoseDefaultConnectInterThreshold() +: op +
  • +
  • getPoseDefaultConnectMinSubsetScore() +: op +
  • +
  • getPoseDefaultMinSubsetCnt() +: op +
  • +
  • getPoseDefaultNmsThreshold() +: op +
  • +
  • getPoseMapIndex() +: op +
  • +
  • getPoseMaxPeaks() +: op +
  • +
  • getPoseNetDecreaseFactor() +: op +
  • +
  • getPoseNumberBodyParts() +: op +
  • +
  • getPosePartPairs() +: op +
  • +
  • getPoseProtoTxt() +: op +
  • +
  • getPoseTrainedModel() +: op
  • diff --git a/html/namespacemembers_g.html b/html/namespacemembers_g.html index 84279ed4..5fd01034 100644 --- a/html/namespacemembers_g.html +++ b/html/namespacemembers_g.html @@ -183,7 +183,49 @@ $(document).ready(function(){initNavTree('namespacemembers_g.html','');}); : op
  • getPoseBodyPartMapping() -: op +: op +
  • +
  • getPoseBodyPartPairsRender() +: op +
  • +
  • getPoseColors() +: op +
  • +
  • getPoseDefaultConnectInterMinAboveThreshold() +: op +
  • +
  • getPoseDefaultConnectInterThreshold() +: op +
  • +
  • getPoseDefaultConnectMinSubsetScore() +: op +
  • +
  • getPoseDefaultMinSubsetCnt() +: op +
  • +
  • getPoseDefaultNmsThreshold() +: op +
  • +
  • getPoseMapIndex() +: op +
  • +
  • getPoseMaxPeaks() +: op +
  • +
  • getPoseNetDecreaseFactor() +: op +
  • +
  • getPoseNumberBodyParts() +: op +
  • +
  • getPosePartPairs() +: op +
  • +
  • getPoseProtoTxt() +: op +
  • +
  • getPoseTrainedModel() +: op
  • Gpu : op diff --git a/html/namespacemembers_n.html b/html/namespacemembers_n.html index bf05931d..dda25332 100644 --- a/html/namespacemembers_n.html +++ b/html/namespacemembers_n.html @@ -164,6 +164,9 @@ $(document).ready(function(){initNavTree('namespacemembers_n.html','');});
  • Normal : op
  • +
  • NoScale +: op +
  • diff --git a/html/namespacemembers_p.html b/html/namespacemembers_p.html index 3892d403..c390a513 100644 --- a/html/namespacemembers_p.html +++ b/html/namespacemembers_p.html @@ -152,143 +152,14 @@ $(document).ready(function(){initNavTree('namespacemembers_p.html','');});
  • PlusMinusOne : op
  • -
  • POSE_BODY_18_BODY_PARTS -: op -
  • -
  • POSE_BODY_18_COLORS_RENDER -: op -
  • -
  • POSE_BODY_18_MAP_IDX -: op -
  • -
  • POSE_BODY_18_NUMBER_PARTS -: op -
  • -
  • POSE_BODY_18_PAIRS -: op -
  • -
  • POSE_BODY_18_PAIRS_RENDER -: op -
  • -
  • POSE_BODY_19_BODY_PARTS -: op -
  • -
  • POSE_BODY_19_COLORS_RENDER -: op -
  • -
  • POSE_BODY_19_MAP_IDX -: op -
  • -
  • POSE_BODY_19_NUMBER_PARTS -: op -
  • -
  • POSE_BODY_19_PAIRS -: op -
  • -
  • POSE_BODY_19_PAIRS_RENDER -: op -
  • -
  • POSE_BODY_23_BODY_PARTS -: op -
  • -
  • POSE_BODY_23_COLORS_RENDER -: op -
  • -
  • POSE_BODY_23_MAP_IDX -: op -
  • -
  • POSE_BODY_23_NUMBER_PARTS -: op -
  • -
  • POSE_BODY_23_PAIRS -: op -
  • -
  • POSE_BODY_23_PAIRS_RENDER -: op -
  • -
  • POSE_BODY_PART_PAIRS -: op -
  • -
  • POSE_BODY_PART_PAIRS_RENDER -: op -
  • -
  • POSE_CCN_DECREASE_FACTOR -: op -
  • -
  • POSE_COCO_BODY_PARTS -: op -
  • -
  • POSE_COCO_COLORS_RENDER -: op -
  • -
  • POSE_COCO_MAP_IDX -: op -
  • -
  • POSE_COCO_NUMBER_PARTS -: op -
  • -
  • POSE_COCO_PAIRS -: op -
  • -
  • POSE_COCO_PAIRS_RENDER -: op -
  • -
  • POSE_COLORS -: op -
  • POSE_DEFAULT_ALPHA_HEAT_MAP : op
  • POSE_DEFAULT_ALPHA_KEYPOINT : op
  • -
  • POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD -: op -
  • -
  • POSE_DEFAULT_CONNECT_INTER_THRESHOLD -: op -
  • -
  • POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT -: op -
  • -
  • POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE -: op -
  • -
  • POSE_DEFAULT_NMS_THRESHOLD -: op -
  • -
  • POSE_MAP_IDX -: op -
  • -
  • POSE_MAX_PEAKS -: op -
  • POSE_MAX_PEOPLE -: op -
  • -
  • POSE_MPI_BODY_PARTS -: op -
  • -
  • POSE_MPI_COLORS_RENDER -: op -
  • -
  • POSE_MPI_MAP_IDX -: op -
  • -
  • POSE_MPI_NUMBER_PARTS -: op -
  • -
  • POSE_MPI_PAIRS_RENDER_GPU -: op -
  • -
  • POSE_NUMBER_BODY_PARTS -: op -
  • -
  • POSE_PROTOTXT -: op -
  • -
  • POSE_TRAINED_MODEL -: op +: op
  • poseBodyPartMapStringToKey() : op diff --git a/html/namespacemembers_vars.html b/html/namespacemembers_vars.html index 287b682d..3923c954 100644 --- a/html/namespacemembers_vars.html +++ b/html/namespacemembers_vars.html @@ -82,15 +82,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • Enumerator
  • -
    -  - -

    - c -

    @@ -1820,14 +1748,14 @@ template<typename TPointerContainer >
    - +
    - + @@ -1836,14 +1764,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WorkerConsumer WorkerProducer  )
    - + @@ -1884,14 +1812,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WorkerProducer WorkerConsumer  )
    - + @@ -1900,14 +1828,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WOpOutputToCvMat WFaceDetectorOpenCV  )
    - + @@ -1916,14 +1844,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WFaceDetectorOpenCV WFaceDetector  )
    - + @@ -1932,14 +1860,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WFaceDetector WHandDetector  )
    - + @@ -2092,14 +2020,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WHandDetector WOpOutputToCvMat  )
    - + @@ -2108,14 +2036,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WVideoSaver WPoseRenderer  )
    - + @@ -2124,14 +2052,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WCocoJsonSaver WVideoSaver  )
    - + @@ -2140,14 +2068,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (WPoseRenderer PriorityQueue  )
    - + @@ -2156,14 +2084,14 @@ template<typename TPointerContainer > - +
    op::COMPILE_TEMPLATE_DATUM (PriorityQueue Queue  )
    - + @@ -3615,12 +3543,236 @@ template<class T > - + +
    +
    +
    op::COMPILE_TEMPLATE_DATUM (Queue WCocoJsonSaver  )
    + + + + + + + +
    OP_API const std::map<unsigned int, std::string>& op::getPoseBodyPartMapping (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API const std::vector<unsigned int>& op::getPoseBodyPartPairsRender (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API const std::vector<float>& op::getPoseColors (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API float op::getPoseDefaultConnectInterMinAboveThreshold (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API float op::getPoseDefaultConnectInterThreshold (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API float op::getPoseDefaultConnectMinSubsetScore (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API unsigned int op::getPoseDefaultMinSubsetCnt (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API float op::getPoseDefaultNmsThreshold (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API const std::vector<unsigned int>& op::getPoseMapIndex (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API unsigned int op::getPoseMaxPeaks (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API float op::getPoseNetDecreaseFactor (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API unsigned int op::getPoseNumberBodyParts (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API const std::vector<unsigned int>& op::getPosePartPairs (const PoseModel poseModel)
    +
    + +
    +
    + +
    +
    + + + + + + + + +
    OP_API const std::string& op::getPoseProtoTxt (const PoseModel poseModel)
    +
    + +
    +
    +
    - + @@ -5743,7 +5895,7 @@ template<typename T >
    const std::map<unsigned int, std::string>& op::getPoseBodyPartMapping OP_API const std::string& op::getPoseTrainedModel ( const PoseModel  poseModel)
    - +
    const auto op::FACE_MAX_FACES = POSE_MAX_PEOPLEconst auto op::FACE_MAX_FACES = POSE_MAX_PEOPLE
    @@ -5851,7 +6003,7 @@ template<typename T >
    - +
    const auto op::HAND_MAX_HANDS = 2*POSE_MAX_PEOPLEconst auto op::HAND_MAX_HANDS = 2*POSE_MAX_PEOPLE
    @@ -5906,742 +6058,40 @@ template<typename T >
    - -
    -
    - - - - -
    const std::map<unsigned int, std::string> op::POSE_BODY_18_BODY_PARTS
    -
    -Initial value:
    {
    -
    { 0, "Nose" },
    -
    { 1, "Neck" },
    -
    { 2, "RShoulder" },
    -
    { 3, "RElbow" },
    -
    { 4, "RWrist" },
    -
    { 5, "LShoulder" },
    -
    { 6, "LElbow" },
    -
    { 7, "LWrist" },
    -
    { 8, "RHip" },
    -
    { 9, "RKnee" },
    -
    { 10, "RAnkle" },
    -
    { 11, "LHip" },
    -
    { 12, "LKnee" },
    -
    { 13, "LAnkle" },
    -
    { 14, "REye" },
    -
    { 15, "LEye" },
    -
    { 16, "REar" },
    -
    { 17, "LEar" },
    -
    { 18, "Background" }
    -
    }
    -
    -
    -
    - +
    - +
    const std::vector<float> op::POSE_BODY_18_COLORS_RENDER {POSE_BODY_18_COLORS_RENDER_GPU}const auto op::POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f
    - +
    - +
    const std::vector<unsigned int> op::POSE_BODY_18_MAP_IDX {POSE_COCO_MAP_IDX}const auto op::POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f
    - +
    - +
    const unsigned int op::POSE_BODY_18_NUMBER_PARTS {POSE_COCO_NUMBER_PARTS}const auto op::POSE_MAX_PEOPLE = 96u
    -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_18_PAIRS {POSE_COCO_PAIRS}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_18_PAIRS_RENDER {POSE_BODY_18_PAIRS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::map<unsigned int, std::string> op::POSE_BODY_19_BODY_PARTS
    -
    -Initial value:
    {
    -
    { 0, "Nose" },
    -
    { 1, "Neck" },
    -
    { 2, "RShoulder" },
    -
    { 3, "RElbow" },
    -
    { 4, "RWrist" },
    -
    { 5, "LShoulder" },
    -
    { 6, "LElbow" },
    -
    { 7, "LWrist" },
    -
    { 8, "LowerAbs" },
    -
    { 9, "RHip" },
    -
    { 10, "RKnee" },
    -
    { 11, "RAnkle" },
    -
    { 12, "LHip" },
    -
    { 13, "LKnee" },
    -
    { 14, "LAnkle" },
    -
    { 15, "REye" },
    -
    { 16, "LEye" },
    -
    { 17, "REar" },
    -
    { 18, "LEar" },
    -
    { 19, "Background" }
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::vector<float> op::POSE_BODY_19_COLORS_RENDER {POSE_BODY_19_COLORS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_19_MAP_IDX {20,21, 34,35, 42,43, 36,37, 38,39, 44,45, 46,47, 26,27, 22,23, 24,25, 28,29, 30,31, 32,33, 50,51, 52,53, 56,57, 54,55, 58,59, 40,41, 48,49}
    -
    - -
    -
    - -
    -
    - - - - -
    const unsigned int op::POSE_BODY_19_NUMBER_PARTS = 19u
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_19_PAIRS {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, 2,17, 5,18}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_19_PAIRS_RENDER {POSE_COCO_PAIRS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::map<unsigned int, std::string> op::POSE_BODY_23_BODY_PARTS
    -
    -Initial value:
    {
    -
    {0, "Neck"},
    -
    {1, "RShoulder"},
    -
    {2, "RElbow"},
    -
    {3, "RWrist"},
    -
    {4, "LShoulder"},
    -
    {5, "LElbow"},
    -
    {6, "LWrist"},
    -
    {7, "LowerAbs"},
    -
    {8, "RHip"},
    -
    {9, "RKnee"},
    -
    {10, "RAnkle"},
    -
    {11, "RBigToe"},
    -
    {12, "RSmallToe"},
    -
    {13, "LHip"},
    -
    {14, "LKnee"},
    -
    {15, "LAnkle"},
    -
    {16, "LBigToe"},
    -
    {17, "LSmallToe"},
    -
    {18, "Nose"},
    -
    {19, "REye"},
    -
    {20, "REar"},
    -
    {21, "LEye"},
    -
    {22, "LEar"},
    -
    {23, "Background"}
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::vector<float> op::POSE_BODY_23_COLORS_RENDER {POSE_BODY_23_COLORS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_23_MAP_IDX {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}
    -
    - -
    -
    - -
    -
    - - - - -
    const unsigned int op::POSE_BODY_23_NUMBER_PARTS = 23u
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_23_PAIRS { 0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,10,12,13,14,14,15,15,16,15,17, 0,18,18,19,18,21,19,20,21,22, 1,20, 4,22}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_BODY_23_PAIRS_RENDER {POSE_BODY_23_PAIRS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::array<std::vector<unsigned int>, (int)PoseModel::Size> op::POSE_BODY_PART_PAIRS
    -
    -Initial value:
    {
    - -
    }
    -
    const std::vector< unsigned int > POSE_BODY_23_PAIRS
    Definition: poseParameters.hpp:213
    -
    const std::vector< unsigned int > POSE_BODY_19_PAIRS
    Definition: poseParameters.hpp:160
    -
    const std::vector< unsigned int > POSE_BODY_18_PAIRS
    Definition: poseParameters.hpp:130
    -
    const std::vector< unsigned int > POSE_COCO_PAIRS
    Definition: poseParameters.hpp:42
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<std::vector<unsigned int>, (int)PoseModel::Size> op::POSE_BODY_PART_PAIRS_RENDER
    -
    -Initial value:
    {
    - -
    }
    -
    const std::vector< unsigned int > POSE_BODY_19_PAIRS_RENDER
    Definition: poseParameters.hpp:159
    -
    const std::vector< unsigned int > POSE_COCO_PAIRS_RENDER
    Definition: poseParameters.hpp:41
    -
    const std::vector< unsigned int > POSE_BODY_23_PAIRS_RENDER
    Definition: poseParameters.hpp:212
    -
    const std::vector< unsigned int > POSE_BODY_18_PAIRS_RENDER
    Definition: poseParameters.hpp:129
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<float, (int)PoseModel::Size> op::POSE_CCN_DECREASE_FACTOR
    -
    -Initial value:
    {
    -
    8.f, 8.f, 8.f, 8.f, 8.f, 8.f
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::map<unsigned int, std::string> op::POSE_COCO_BODY_PARTS
    -
    -Initial value:
    {
    -
    {0, "Nose"},
    -
    {1, "Neck"},
    -
    {2, "RShoulder"},
    -
    {3, "RElbow"},
    -
    {4, "RWrist"},
    -
    {5, "LShoulder"},
    -
    {6, "LElbow"},
    -
    {7, "LWrist"},
    -
    {8, "RHip"},
    -
    {9, "RKnee"},
    -
    {10, "RAnkle"},
    -
    {11, "LHip"},
    -
    {12, "LKnee"},
    -
    {13, "LAnkle"},
    -
    {14, "REye"},
    -
    {15, "LEye"},
    -
    {16, "REar"},
    -
    {17, "LEar"},
    -
    {18, "Background"}
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::vector<float> op::POSE_COCO_COLORS_RENDER {POSE_COCO_COLORS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_COCO_MAP_IDX {31,32, 39,40, 33,34, 35,36, 41,42, 43,44, 19,20, 21,22, 23,24, 25,26, 27,28, 29,30, 47,48, 49,50, 53,54, 51,52, 55,56, 37,38, 45,46}
    -
    - -
    -
    - -
    -
    - - - - -
    const unsigned int op::POSE_COCO_NUMBER_PARTS = 18u
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_COCO_PAIRS {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, 2,16, 5,17}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_COCO_PAIRS_RENDER {POSE_COCO_PAIRS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::array<std::vector<float>, (int)PoseModel::Size> op::POSE_COLORS
    -
    -Initial value:
    {
    - -
    }
    -
    const std::vector< float > POSE_MPI_COLORS_RENDER
    Definition: poseParameters.hpp:103
    -
    const std::vector< float > POSE_BODY_18_COLORS_RENDER
    Definition: poseParameters.hpp:132
    -
    const std::vector< float > POSE_COCO_COLORS_RENDER
    Definition: poseParameters.hpp:62
    -
    const std::vector< float > POSE_BODY_23_COLORS_RENDER
    Definition: poseParameters.hpp:238
    -
    const std::vector< float > POSE_BODY_19_COLORS_RENDER
    Definition: poseParameters.hpp:181
    -
    -
    -
    - -
    -
    - - - - -
    const auto op::POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f
    -
    - -
    -
    - -
    -
    - - - - -
    const auto op::POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f
    -
    - -
    -
    - -
    -
    - - - - -
    const std::array<float, (int)PoseModel::Size> op::POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD
    -
    -Initial value:
    {
    -
    0.95f, 0.95f, 0.95f, 0.95f, 0.95f, 0.95f
    -
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<float, (int)PoseModel::Size> op::POSE_DEFAULT_CONNECT_INTER_THRESHOLD
    -
    -Initial value:
    {
    -
    0.05f, 0.01f, 0.01f, 0.05f, 0.05f, 0.05f
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<unsigned int, (int)PoseModel::Size> op::POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT
    -
    -Initial value:
    {
    -
    3, 3, 3, 3, 3, 3
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<float, (int)PoseModel::Size> op::POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE
    -
    -Initial value:
    {
    -
    0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f
    -
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<float, (int)PoseModel::Size> op::POSE_DEFAULT_NMS_THRESHOLD
    -
    -Initial value:
    {
    -
    0.05f, 0.6f, 0.3f, 0.05f, 0.05f, 0.05f
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<std::vector<unsigned int>, (int)PoseModel::Size> op::POSE_MAP_IDX
    -
    -Initial value:
    {
    - -
    }
    -
    const std::vector< unsigned int > POSE_BODY_19_MAP_IDX
    Definition: poseParameters.hpp:157
    -
    const std::vector< unsigned int > POSE_BODY_18_MAP_IDX
    Definition: poseParameters.hpp:127
    -
    const std::vector< unsigned int > POSE_COCO_MAP_IDX
    Definition: poseParameters.hpp:39
    -
    const std::vector< unsigned int > POSE_BODY_23_MAP_IDX
    Definition: poseParameters.hpp:210
    -
    const std::vector< unsigned int > POSE_MPI_MAP_IDX
    Definition: poseParameters.hpp:83
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<unsigned int, (int)PoseModel::Size> op::POSE_MAX_PEAKS
    -
    -Initial value:
    {
    - -
    }
    -
    const unsigned int POSE_MAX_PEOPLE
    Definition: poseParameters.hpp:13
    -
    -
    -
    - -
    -
    - - - - -
    const unsigned int op::POSE_MAX_PEOPLE = 96u
    -
    - -
    -
    - -
    -
    - - - - -
    const std::map<unsigned int, std::string> op::POSE_MPI_BODY_PARTS
    -
    -Initial value:
    {
    -
    {0, "Head"},
    -
    {1, "Neck"},
    -
    {2, "RShoulder"},
    -
    {3, "RElbow"},
    -
    {4, "RWrist"},
    -
    {5, "LShoulder"},
    -
    {6, "LElbow"},
    -
    {7, "LWrist"},
    -
    {8, "RHip"},
    -
    {9, "RKnee"},
    -
    {10, "RAnkle"},
    -
    {11, "LHip"},
    -
    {12, "LKnee"},
    -
    {13, "LAnkle"},
    -
    {14, "Chest"},
    -
    {15, "Background"}
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::vector<float> op::POSE_MPI_COLORS_RENDER {POSE_MPI_COLORS_RENDER_GPU}
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> op::POSE_MPI_MAP_IDX {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}
    -
    - -
    -
    - -
    -
    - - - - -
    const unsigned int op::POSE_MPI_NUMBER_PARTS = 15
    -
    - -
    -
    - -
    -
    - - - - -
    const std::vector<unsigned int> POSE_MPI_PAIRS op::POSE_MPI_PAIRS_RENDER_GPU
    -
    - -
    -
    - -
    -
    - - - - -
    const std::array<unsigned int, (int)PoseModel::Size> op::POSE_NUMBER_BODY_PARTS
    -
    -Initial value:
    {
    - -
    }
    -
    const unsigned int POSE_COCO_NUMBER_PARTS
    Definition: poseParameters.hpp:38
    -
    const unsigned int POSE_BODY_18_NUMBER_PARTS
    Definition: poseParameters.hpp:126
    -
    const unsigned int POSE_BODY_23_NUMBER_PARTS
    Definition: poseParameters.hpp:209
    -
    const unsigned int POSE_MPI_NUMBER_PARTS
    Definition: poseParameters.hpp:82
    -
    const unsigned int POSE_BODY_19_NUMBER_PARTS
    Definition: poseParameters.hpp:156
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<std::string, (int)PoseModel::Size> op::POSE_PROTOTXT
    -
    -Initial value:
    {
    -
    "pose/coco/pose_deploy_linevec.prototxt",
    -
    "pose/mpi/pose_deploy_linevec.prototxt",
    -
    "pose/mpi/pose_deploy_linevec_faster_4_stages.prototxt",
    -
    "pose/body_18/pose_deploy.prototxt",
    -
    "pose/body_19/pose_deploy.prototxt",
    -
    "pose/body_23/pose_deploy.prototxt"
    -
    }
    -
    -
    -
    - -
    -
    - - - - -
    const std::array<std::string, (int)PoseModel::Size> op::POSE_TRAINED_MODEL
    -
    -Initial value:
    {
    -
    "pose/coco/pose_iter_440000.caffemodel",
    -
    "pose/mpi/pose_iter_160000.caffemodel",
    -
    "pose/mpi/pose_iter_160000.caffemodel",
    -
    "pose/body_18/pose_iter_XXXXXX.caffemodel",
    -
    "pose/body_19/pose_iter_XXXXXX.caffemodel",
    -
    "pose/body_23/pose_iter_XXXXXX.caffemodel"
    -
    }
    -
    diff --git a/html/navtree.js b/html/navtree.js index 97434c8d..73f4a5c4 100644 --- a/html/navtree.js +++ b/html/navtree.js @@ -37,9 +37,9 @@ var NAVTREEINDEX = "annotated.html", "classop_1_1_nms_caffe.html#a7bb4d872cd3673bcf868049a3aedb393", "classop_1_1_w_face_renderer.html#a7b72c70dc02c9209d84992caad6ad7d0", -"file_saver_8hpp_source.html", -"open_cv_8hpp.html#a9cd0c6d2db81cd1de7568d805ef214ba", -"structop_1_1_rectangle.html#abd3476f9a32ad2058ea67c75c2a547a2" +"file_saver_8hpp.html", +"open_cv_8hpp.html#a24ebdcb8395dea0429f220de6a715d6e", +"structop_1_1_wrapper_struct_hand.html#a9655c0dfa83eefde174d09e622482089" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/html/navtreeindex2.js b/html/navtreeindex2.js index 05068cbe..960ca9e3 100644 --- a/html/navtreeindex2.js +++ b/html/navtreeindex2.js @@ -151,6 +151,7 @@ var NAVTREEINDEX2 = "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bda":[2,0,0,0,0,5,2], "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa46f9a0da0a5d448fd0cc8b3aa0a9b228":[2,0,0,0,0,5,2,0], "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa4b942544cb3e764bbb8d33f8a8744855":[2,0,0,0,0,5,2,3], +"core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa6089ccf7c3fe93a62745e51200419c60":[2,0,0,0,0,5,2,6], "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa668a2bc599fd07445eae0730d043c96d":[2,0,0,0,0,5,2,1], "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaa73c42013aac51c335d50d103f30fcb99":[2,0,0,0,0,5,2,2], "core_2enum_classes_8hpp.html#af72fe4ed32846c12f41b049d3d0e1bdaaa93f121640d609f8772397a0f40f40d6":[2,0,0,0,0,5,2,5], @@ -248,6 +249,5 @@ var NAVTREEINDEX2 = "fast_math_8hpp.html#abbf62284718858335848e43bbeafb192":[2,0,0,0,9,4,0], "fast_math_8hpp.html#adcfd0bf5ba782278488c157667a80c54":[2,0,0,0,9,4,4], "fast_math_8hpp.html#ae0d8debba08b802d115b71ee1232e535":[2,0,0,0,9,4,6], -"fast_math_8hpp_source.html":[2,0,0,0,9,4], -"file_saver_8hpp.html":[2,0,0,0,3,2] +"fast_math_8hpp_source.html":[2,0,0,0,9,4] }; diff --git a/html/navtreeindex3.js b/html/navtreeindex3.js index bd62ca42..575a6b51 100644 --- a/html/navtreeindex3.js +++ b/html/navtreeindex3.js @@ -1,5 +1,6 @@ var NAVTREEINDEX3 = { +"file_saver_8hpp.html":[2,0,0,0,3,2], "file_saver_8hpp_source.html":[2,0,0,0,3,2], "file_stream_8hpp.html":[2,0,0,0,3,3], "file_stream_8hpp.html#a0ce96f84c6e380b261802c7e2639dc7d":[2,0,0,0,3,3,2], @@ -199,10 +200,10 @@ var NAVTREEINDEX3 = "maximum_base_8hpp_source.html":[2,0,0,0,0,10], "maximum_caffe_8hpp.html":[2,0,0,0,0,11], "maximum_caffe_8hpp_source.html":[2,0,0,0,0,11], -"namespaceboost.html":[1,0,0], "namespaceboost.html":[0,0,0], -"namespacecaffe.html":[1,0,1], +"namespaceboost.html":[1,0,0], "namespacecaffe.html":[0,0,1], +"namespacecaffe.html":[1,0,1], "namespacemembers.html":[0,1,0,0], "namespacemembers.html":[0,1,0], "namespacemembers_b.html":[0,1,0,1], @@ -248,6 +249,5 @@ var NAVTREEINDEX3 = "op_output_to_cv_mat_8hpp.html":[2,0,0,0,0,16], "op_output_to_cv_mat_8hpp_source.html":[2,0,0,0,0,16], "open_cv_8hpp.html":[2,0,0,0,9,9], -"open_cv_8hpp.html#a19f7bc389a24baf4883ec4155f01cc62":[2,0,0,0,9,9,1], -"open_cv_8hpp.html#a24ebdcb8395dea0429f220de6a715d6e":[2,0,0,0,9,9,3] +"open_cv_8hpp.html#a19f7bc389a24baf4883ec4155f01cc62":[2,0,0,0,9,9,1] }; diff --git a/html/navtreeindex4.js b/html/navtreeindex4.js index 43b7c8ec..0e5460bc 100644 --- a/html/navtreeindex4.js +++ b/html/navtreeindex4.js @@ -1,5 +1,6 @@ var NAVTREEINDEX4 = { +"open_cv_8hpp.html#a24ebdcb8395dea0429f220de6a715d6e":[2,0,0,0,9,9,3], "open_cv_8hpp.html#a9cd0c6d2db81cd1de7568d805ef214ba":[2,0,0,0,9,9,0], "open_cv_8hpp.html#ab8b9daed84e741afb7191fde8ed95b5e":[2,0,0,0,9,9,5], "open_cv_8hpp.html#acb254b70d044335beb825174f62c7685":[2,0,0,0,9,9,4], @@ -24,7 +25,8 @@ var NAVTREEINDEX4 = "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261f":[2,0,0,0,6,2,0], "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa003cc3795b0eeed2af2dfd34ed482794":[2,0,0,0,6,2,0,5], "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa0c4a19d9254adcb3ca1f0f527ee141fd":[2,0,0,0,6,2,0,0], -"pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa6f6cb72d544962fa333e2e34ce64f719":[2,0,0,0,6,2,0,6], +"pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa68aa8b41e419d187d9f7daff5d65708f":[2,0,0,0,6,2,0,6], +"pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa6f6cb72d544962fa333e2e34ce64f719":[2,0,0,0,6,2,0,7], "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa71e915c88449606c6498d33dd7c98e84":[2,0,0,0,6,2,0,2], "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fab0fd0573c626fcd55b70d4547328ad7d":[2,0,0,0,6,2,0,3], "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fad788fbec25069f2884ee1ed97e0af2b9":[2,0,0,0,6,2,0,1], @@ -41,68 +43,43 @@ var NAVTREEINDEX4 = "pose_gpu_renderer_8hpp.html":[2,0,0,0,6,7], "pose_gpu_renderer_8hpp_source.html":[2,0,0,0,6,7], "pose_parameters_8hpp.html":[2,0,0,0,6,8], -"pose_parameters_8hpp.html#a029c14582c63e33a9b7350bb374527c8":[2,0,0,0,6,8,43], -"pose_parameters_8hpp.html#a02de45e0a3df20b593d9b1b79a96f20c":[2,0,0,0,6,8,44], -"pose_parameters_8hpp.html#a0d821946779eaea1be5996816c4ca6bd":[2,0,0,0,6,8,1], -"pose_parameters_8hpp.html#a0ea1d13b5a9b47ba2534aec20ab39335":[2,0,0,0,6,8,30], -"pose_parameters_8hpp.html#a1007a541c7af1a5e1e15475b8c4cec3b":[2,0,0,0,6,8,34], -"pose_parameters_8hpp.html#a1508c5fa871a1da61a2b740a9c5e2df1":[2,0,0,0,6,8,16], -"pose_parameters_8hpp.html#a17cec2005928720d6da0e83ba26cca01":[2,0,0,0,6,8,2], -"pose_parameters_8hpp.html#a21fcb98366f6ea8895fc7f527f232db5":[2,0,0,0,6,8,42], -"pose_parameters_8hpp.html#a2d63d4b60789b52bb8524b7596cb73a7":[2,0,0,0,6,8,57], -"pose_parameters_8hpp.html#a2d9c72a62d012a21fd647d238784bd0b":[2,0,0,0,6,8,24], -"pose_parameters_8hpp.html#a360d95ba9769e4cb5cfc7aa2a2bab927":[2,0,0,0,6,8,17], -"pose_parameters_8hpp.html#a3ce26fa0a7373e612d130d1657ac7d16":[2,0,0,0,6,8,15], -"pose_parameters_8hpp.html#a3df938ef93037c534c5d342720d5fb70":[2,0,0,0,6,8,11], -"pose_parameters_8hpp.html#a417991b82e2e14e8dc90a09e4facef19":[2,0,0,0,6,8,25], -"pose_parameters_8hpp.html#a41a5430dc7296645934584b8ea0238d7":[2,0,0,0,6,8,10], -"pose_parameters_8hpp.html#a4596b1c0cc8f654025d6c5c4c43a92b5":[2,0,0,0,6,8,13], -"pose_parameters_8hpp.html#a46dc266a61a0b0061563cb9c6359cb71":[2,0,0,0,6,8,53], -"pose_parameters_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1":[2,0,0,0,6,8,3], -"pose_parameters_8hpp.html#a4ce7d2037ec2a189cd284d34726c2d49":[2,0,0,0,6,8,50], -"pose_parameters_8hpp.html#a4dad15b160be5343298d80f4d83a6150":[2,0,0,0,6,8,37], -"pose_parameters_8hpp.html#a4dd1047c27e639d21f830f97017b5e44":[2,0,0,0,6,8,56], -"pose_parameters_8hpp.html#a550c78ab4e4e1d31194d65445fa12b94":[2,0,0,0,6,8,23], -"pose_parameters_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322":[2,0,0,0,6,8,7], -"pose_parameters_8hpp.html#a5efd2c1cd059608982d7ff66ed1a606f":[2,0,0,0,6,8,31], -"pose_parameters_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110":[2,0,0,0,6,8,5], -"pose_parameters_8hpp.html#a5f72bc3d372f33c5b095335a687030e7":[2,0,0,0,6,8,29], -"pose_parameters_8hpp.html#a600643a9a3f46d6a4cab58943e059d57":[2,0,0,0,6,8,46], -"pose_parameters_8hpp.html#a62ee3fdd0dfb13209926711937899b8e":[2,0,0,0,6,8,21], -"pose_parameters_8hpp.html#a674110c186802f7df02ad7822a885542":[2,0,0,0,6,8,36], -"pose_parameters_8hpp.html#a67518f0a66cb3ee382b88a999e4f20b8":[2,0,0,0,6,8,38], -"pose_parameters_8hpp.html#a67936cc61d129d2262546534b2c7cd30":[2,0,0,0,6,8,51], -"pose_parameters_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280":[2,0,0,0,6,8,0], -"pose_parameters_8hpp.html#a7987426d997b6b040302d25fd07403ac":[2,0,0,0,6,8,9], -"pose_parameters_8hpp.html#a7af31bad1c8e2f89c8e3eaea9b1c654c":[2,0,0,0,6,8,19], -"pose_parameters_8hpp.html#a7fdd75b1478d65f11ebc77144662958c":[2,0,0,0,6,8,8], -"pose_parameters_8hpp.html#a84b4b00bb40c0c3a4cce7eed5978f047":[2,0,0,0,6,8,33], -"pose_parameters_8hpp.html#a8b293ab02337be3f90218c5b824ece06":[2,0,0,0,6,8,6], -"pose_parameters_8hpp.html#a8b6edeb3f39ac581317c10e48e6729ad":[2,0,0,0,6,8,45], -"pose_parameters_8hpp.html#a8bbf4f3e7a4739c4a44faff8d2c7ada9":[2,0,0,0,6,8,18], -"pose_parameters_8hpp.html#a8ce48a4305cac872140ef4eb3d8c6896":[2,0,0,0,6,8,48], -"pose_parameters_8hpp.html#a91d47f70c39fdf167d46ea6b4361209b":[2,0,0,0,6,8,49], -"pose_parameters_8hpp.html#a93a4ee242c33f626ff146643bb8971bd":[2,0,0,0,6,8,35], -"pose_parameters_8hpp.html#a9a089b86a0cb8dfbf81501de2ec10b07":[2,0,0,0,6,8,22], -"pose_parameters_8hpp.html#a9e87deaa37c301fac10af492469bcc86":[2,0,0,0,6,8,52], -"pose_parameters_8hpp.html#aa5fe1c898b53e3f7736ad9037571edaf":[2,0,0,0,6,8,26], -"pose_parameters_8hpp.html#aa95149b7c176de2ec33a0093c8e24a36":[2,0,0,0,6,8,32], -"pose_parameters_8hpp.html#aacf6e688031bb116e4878b811e8dbc23":[2,0,0,0,6,8,12], -"pose_parameters_8hpp.html#aba7025c2e941605b2f5d70ce6a37f0e5":[2,0,0,0,6,8,55], -"pose_parameters_8hpp.html#abc8fdb41aa395c46430373facfbd554c":[2,0,0,0,6,8,14], -"pose_parameters_8hpp.html#acea3456a45f673bd479b817caca9567a":[2,0,0,0,6,8,20], -"pose_parameters_8hpp.html#ad49ac3147773460e2d0bd95c0c6004e0":[2,0,0,0,6,8,28], -"pose_parameters_8hpp.html#ad8ed879d7e9d7bb73c0da7650ce934da":[2,0,0,0,6,8,54], -"pose_parameters_8hpp.html#ad964ad6758567f7244d134599e8cb04b":[2,0,0,0,6,8,58], -"pose_parameters_8hpp.html#ae8d324a5c49dcbfd1b6f820608f5a292":[2,0,0,0,6,8,39], -"pose_parameters_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54":[2,0,0,0,6,8,4], -"pose_parameters_8hpp.html#aefbe109a859cc12a9a06f607e61d8dba":[2,0,0,0,6,8,40], -"pose_parameters_8hpp.html#af15beef165379754507c429962130965":[2,0,0,0,6,8,27], -"pose_parameters_8hpp.html#af45cddacd69fff73a4ea4acbbbac43e0":[2,0,0,0,6,8,41], -"pose_parameters_8hpp.html#af5bcc4a300e5d6f2572ba2b955c2c992":[2,0,0,0,6,8,47], +"pose_parameters_8hpp.html#a1b7d7061c819ee76328d5917ee009b1d":[2,0,0,0,6,8,1], +"pose_parameters_8hpp.html#a1f690bf083e250642144bf8e5d6e6d2c":[2,0,0,0,6,8,3], +"pose_parameters_8hpp.html#a307b2c7b1506415a4ba44590fe8a7258":[2,0,0,0,6,8,10], +"pose_parameters_8hpp.html#a3df938ef93037c534c5d342720d5fb70":[2,0,0,0,6,8,13], +"pose_parameters_8hpp.html#a522d4552d2aeabe367f4d3bf371e6b3e":[2,0,0,0,6,8,15], +"pose_parameters_8hpp.html#a54a6c42a42a0a7e539061f5e30abb4bc":[2,0,0,0,6,8,9], +"pose_parameters_8hpp.html#a692472b562fba051964f9ddea07b97d7":[2,0,0,0,6,8,2], +"pose_parameters_8hpp.html#a84d87ec0e4ed3cf75a37ce99d0d25ef7":[2,0,0,0,6,8,6], +"pose_parameters_8hpp.html#aa170c3107396e4d0e4214bb0c1b78f08":[2,0,0,0,6,8,5], +"pose_parameters_8hpp.html#aab3de911b04b96c1850cc05c6947e184":[2,0,0,0,6,8,0], +"pose_parameters_8hpp.html#aacf6e688031bb116e4878b811e8dbc23":[2,0,0,0,6,8,14], +"pose_parameters_8hpp.html#ab48e314ecd19f55f664b14da1d83312f":[2,0,0,0,6,8,7], +"pose_parameters_8hpp.html#ad7ca8d89f9045481075902c8bd98b8f4":[2,0,0,0,6,8,8], +"pose_parameters_8hpp.html#ade70b024ee461ae04e7233bf3937c5c6":[2,0,0,0,6,8,12], +"pose_parameters_8hpp.html#ae0730c6559abdb976423ecf81eac4620":[2,0,0,0,6,8,11], +"pose_parameters_8hpp.html#af1ed202254520cd489723052d1f5a86d":[2,0,0,0,6,8,4], "pose_parameters_8hpp_source.html":[2,0,0,0,6,8], -"pose_renderer_8hpp.html":[2,0,0,0,6,9], -"pose_renderer_8hpp_source.html":[2,0,0,0,6,9], +"pose_parameters_render_8hpp.html":[2,0,0,0,6,9], +"pose_parameters_render_8hpp.html#a0d821946779eaea1be5996816c4ca6bd":[2,0,0,0,6,9,1], +"pose_parameters_render_8hpp.html#a11bd7e53698eabe32b69b48708cf7b19":[2,0,0,0,6,9,12], +"pose_parameters_render_8hpp.html#a17cec2005928720d6da0e83ba26cca01":[2,0,0,0,6,9,2], +"pose_parameters_render_8hpp.html#a21fcb98366f6ea8895fc7f527f232db5":[2,0,0,0,6,9,15], +"pose_parameters_render_8hpp.html#a28c039598f94c77f8f977c862d6df856":[2,0,0,0,6,9,7], +"pose_parameters_render_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1":[2,0,0,0,6,9,3], +"pose_parameters_render_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322":[2,0,0,0,6,9,9], +"pose_parameters_render_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110":[2,0,0,0,6,9,5], +"pose_parameters_render_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280":[2,0,0,0,6,9,0], +"pose_parameters_render_8hpp.html#a7987426d997b6b040302d25fd07403ac":[2,0,0,0,6,9,11], +"pose_parameters_render_8hpp.html#a7fdd75b1478d65f11ebc77144662958c":[2,0,0,0,6,9,10], +"pose_parameters_render_8hpp.html#a8b293ab02337be3f90218c5b824ece06":[2,0,0,0,6,9,8], +"pose_parameters_render_8hpp.html#abb49286241ba7a1d754b31dee333274a":[2,0,0,0,6,9,13], +"pose_parameters_render_8hpp.html#abcf4268a8395cd7d537e41327bd121d9":[2,0,0,0,6,9,6], +"pose_parameters_render_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54":[2,0,0,0,6,9,4], +"pose_parameters_render_8hpp.html#af45cddacd69fff73a4ea4acbbbac43e0":[2,0,0,0,6,9,14], +"pose_parameters_render_8hpp_source.html":[2,0,0,0,6,9], +"pose_renderer_8hpp.html":[2,0,0,0,6,10], +"pose_renderer_8hpp_source.html":[2,0,0,0,6,10], "priority_queue_8hpp.html":[2,0,0,0,8,2], "priority_queue_8hpp.html#aa65c081c13e0d0453938a3c41d04dc49":[2,0,0,0,8,2,1], "priority_queue_8hpp_source.html":[2,0,0,0,8,2], @@ -144,14 +121,14 @@ var NAVTREEINDEX4 = "render_hand_8hpp.html#a74458454b8bec064b435a3bde5ad25e0":[2,0,0,0,5,9,1], "render_hand_8hpp.html#afb5b711819f94b51f32460861d9cea38":[2,0,0,0,5,9,0], "render_hand_8hpp_source.html":[2,0,0,0,5,9], -"render_pose_8hpp.html":[2,0,0,0,6,10], -"render_pose_8hpp.html#a7e2c7f463bbbbe9665faa46c073cc5ac":[2,0,0,0,6,10,5], -"render_pose_8hpp.html#a832678e25561cd77d174847b0dddc6bb":[2,0,0,0,6,10,4], -"render_pose_8hpp.html#a99a08148f440bd96546076e15f0de04c":[2,0,0,0,6,10,2], -"render_pose_8hpp.html#a9a3b197334a6a606f85eea43128a9a46":[2,0,0,0,6,10,0], -"render_pose_8hpp.html#aa01e90a66388f8ced55d0aa61fb205a1":[2,0,0,0,6,10,1], -"render_pose_8hpp.html#ab79ad497b3b69db2d233656a2e97bc63":[2,0,0,0,6,10,3], -"render_pose_8hpp_source.html":[2,0,0,0,6,10], +"render_pose_8hpp.html":[2,0,0,0,6,11], +"render_pose_8hpp.html#a7e2c7f463bbbbe9665faa46c073cc5ac":[2,0,0,0,6,11,5], +"render_pose_8hpp.html#a832678e25561cd77d174847b0dddc6bb":[2,0,0,0,6,11,4], +"render_pose_8hpp.html#a99a08148f440bd96546076e15f0de04c":[2,0,0,0,6,11,2], +"render_pose_8hpp.html#a9a3b197334a6a606f85eea43128a9a46":[2,0,0,0,6,11,0], +"render_pose_8hpp.html#aa01e90a66388f8ced55d0aa61fb205a1":[2,0,0,0,6,11,1], +"render_pose_8hpp.html#ab79ad497b3b69db2d233656a2e97bc63":[2,0,0,0,6,11,3], +"render_pose_8hpp_source.html":[2,0,0,0,6,11], "renderer_8hpp.html":[2,0,0,0,0,19], "renderer_8hpp_source.html":[2,0,0,0,0,19], "resize_and_merge_base_8hpp.html":[2,0,0,0,0,20], @@ -249,5 +226,28 @@ var NAVTREEINDEX4 = "structop_1_1_rectangle.html#a5db9f0e8c946d837a1d351cc0bc72811":[1,0,2,12,15], "structop_1_1_rectangle.html#a64e6891af0088a4ad271a725601b8043":[1,0,2,12,18], "structop_1_1_rectangle.html#a65620c7efbb3db95d85c90c2be3a851d":[1,0,2,12,9], -"structop_1_1_rectangle.html#a85cabb0d2f3af02e32be35bb9841c1f3":[1,0,2,12,3] +"structop_1_1_rectangle.html#a85cabb0d2f3af02e32be35bb9841c1f3":[1,0,2,12,3], +"structop_1_1_rectangle.html#abd3476f9a32ad2058ea67c75c2a547a2":[1,0,2,12,10], +"structop_1_1_rectangle.html#abea1a6760629dc4ed99875dae9d5ac36":[1,0,2,12,11], +"structop_1_1_rectangle.html#ac4ae58fe6ffd2f811f5cbc48661c1856":[1,0,2,12,17], +"structop_1_1_rectangle.html#addb67763ca3a0ca9fd4f7184ad9d11ae":[1,0,2,12,13], +"structop_1_1_rectangle.html#aed0ca00eb295de406ec8ec6dd03c1da5":[1,0,2,12,14], +"structop_1_1_rectangle.html#aed48a0008434867b879a678c1da015b3":[1,0,2,12,6], +"structop_1_1_rectangle.html#afbb0da8956e35178d3f28d2b1d998175":[1,0,2,12,1], +"structop_1_1_wrapper_struct_face.html":[1,0,2,105], +"structop_1_1_wrapper_struct_face.html#a48844c4c23c71372258518015d0b81b1":[1,0,2,105,0], +"structop_1_1_wrapper_struct_face.html#a49f609ae1c075f272bbaf32e128cc3a9":[1,0,2,105,1], +"structop_1_1_wrapper_struct_face.html#a65a0244cbcea06621c6f8c41e519990f":[1,0,2,105,2], +"structop_1_1_wrapper_struct_face.html#a8fadeca500dde0df2a35f864bf05ee05":[1,0,2,105,3], +"structop_1_1_wrapper_struct_face.html#a982e3f1a13358a522e1882d17cb80d57":[1,0,2,105,6], +"structop_1_1_wrapper_struct_face.html#a9845712fd6ebb66fccb0c1647e3491a0":[1,0,2,105,4], +"structop_1_1_wrapper_struct_face.html#accc6e564598130b9bf0a6d0ec9c304c4":[1,0,2,105,5], +"structop_1_1_wrapper_struct_hand.html":[1,0,2,106], +"structop_1_1_wrapper_struct_hand.html#a3283127d10840219bf2aacedeef0b72b":[1,0,2,106,0], +"structop_1_1_wrapper_struct_hand.html#a667ad7eed9f4f96b460f331d25f3d87f":[1,0,2,106,3], +"structop_1_1_wrapper_struct_hand.html#a6a54d5b5766d23412c87bd10c26cb291":[1,0,2,106,4], +"structop_1_1_wrapper_struct_hand.html#a716f9c98cbee1a4a70d5978875795c4d":[1,0,2,106,1], +"structop_1_1_wrapper_struct_hand.html#a8074cf22f8926d7f4d1d60cacae99c3e":[1,0,2,106,2], +"structop_1_1_wrapper_struct_hand.html#a86ca862d3d24a5cf0b1122b64aac7a68":[1,0,2,106,9], +"structop_1_1_wrapper_struct_hand.html#a90ddd24ee55b6aabd9a1728ccd91525e":[1,0,2,106,5] }; diff --git a/html/navtreeindex5.js b/html/navtreeindex5.js index 3fd4b19b..48359f5f 100644 --- a/html/navtreeindex5.js +++ b/html/navtreeindex5.js @@ -1,28 +1,5 @@ var NAVTREEINDEX5 = { -"structop_1_1_rectangle.html#abd3476f9a32ad2058ea67c75c2a547a2":[1,0,2,12,10], -"structop_1_1_rectangle.html#abea1a6760629dc4ed99875dae9d5ac36":[1,0,2,12,11], -"structop_1_1_rectangle.html#ac4ae58fe6ffd2f811f5cbc48661c1856":[1,0,2,12,17], -"structop_1_1_rectangle.html#addb67763ca3a0ca9fd4f7184ad9d11ae":[1,0,2,12,13], -"structop_1_1_rectangle.html#aed0ca00eb295de406ec8ec6dd03c1da5":[1,0,2,12,14], -"structop_1_1_rectangle.html#aed48a0008434867b879a678c1da015b3":[1,0,2,12,6], -"structop_1_1_rectangle.html#afbb0da8956e35178d3f28d2b1d998175":[1,0,2,12,1], -"structop_1_1_wrapper_struct_face.html":[1,0,2,105], -"structop_1_1_wrapper_struct_face.html#a48844c4c23c71372258518015d0b81b1":[1,0,2,105,0], -"structop_1_1_wrapper_struct_face.html#a49f609ae1c075f272bbaf32e128cc3a9":[1,0,2,105,1], -"structop_1_1_wrapper_struct_face.html#a65a0244cbcea06621c6f8c41e519990f":[1,0,2,105,2], -"structop_1_1_wrapper_struct_face.html#a8fadeca500dde0df2a35f864bf05ee05":[1,0,2,105,3], -"structop_1_1_wrapper_struct_face.html#a982e3f1a13358a522e1882d17cb80d57":[1,0,2,105,6], -"structop_1_1_wrapper_struct_face.html#a9845712fd6ebb66fccb0c1647e3491a0":[1,0,2,105,4], -"structop_1_1_wrapper_struct_face.html#accc6e564598130b9bf0a6d0ec9c304c4":[1,0,2,105,5], -"structop_1_1_wrapper_struct_hand.html":[1,0,2,106], -"structop_1_1_wrapper_struct_hand.html#a3283127d10840219bf2aacedeef0b72b":[1,0,2,106,0], -"structop_1_1_wrapper_struct_hand.html#a667ad7eed9f4f96b460f331d25f3d87f":[1,0,2,106,3], -"structop_1_1_wrapper_struct_hand.html#a6a54d5b5766d23412c87bd10c26cb291":[1,0,2,106,4], -"structop_1_1_wrapper_struct_hand.html#a716f9c98cbee1a4a70d5978875795c4d":[1,0,2,106,1], -"structop_1_1_wrapper_struct_hand.html#a8074cf22f8926d7f4d1d60cacae99c3e":[1,0,2,106,2], -"structop_1_1_wrapper_struct_hand.html#a86ca862d3d24a5cf0b1122b64aac7a68":[1,0,2,106,9], -"structop_1_1_wrapper_struct_hand.html#a90ddd24ee55b6aabd9a1728ccd91525e":[1,0,2,106,5], "structop_1_1_wrapper_struct_hand.html#a9655c0dfa83eefde174d09e622482089":[1,0,2,106,6], "structop_1_1_wrapper_struct_hand.html#adaea15e182e5c75129293873cd94e35f":[1,0,2,106,7], "structop_1_1_wrapper_struct_hand.html#aea6263dc96708b11fab72416d810b3d6":[1,0,2,106,8], @@ -201,12 +178,12 @@ var NAVTREEINDEX5 = "w_person_id_extractor_8hpp.html":[2,0,0,0,1,1,2], "w_person_id_extractor_8hpp.html#a674a652ad38b355285417529fc050847":[2,0,0,0,1,1,2,1], "w_person_id_extractor_8hpp_source.html":[2,0,0,0,1,1,2], -"w_pose_extractor_8hpp.html":[2,0,0,0,6,11], -"w_pose_extractor_8hpp.html#a020603e3ad6326cb1dce43485157f768":[2,0,0,0,6,11,1], -"w_pose_extractor_8hpp_source.html":[2,0,0,0,6,11], -"w_pose_renderer_8hpp.html":[2,0,0,0,6,12], -"w_pose_renderer_8hpp.html#ae76afeeeaedaebe6941f41a4bdf50e2a":[2,0,0,0,6,12,1], -"w_pose_renderer_8hpp_source.html":[2,0,0,0,6,12], +"w_pose_extractor_8hpp.html":[2,0,0,0,6,12], +"w_pose_extractor_8hpp.html#a020603e3ad6326cb1dce43485157f768":[2,0,0,0,6,12,1], +"w_pose_extractor_8hpp_source.html":[2,0,0,0,6,12], +"w_pose_renderer_8hpp.html":[2,0,0,0,6,13], +"w_pose_renderer_8hpp.html#ae76afeeeaedaebe6941f41a4bdf50e2a":[2,0,0,0,6,13,1], +"w_pose_renderer_8hpp_source.html":[2,0,0,0,6,13], "w_pose_saver_8hpp.html":[2,0,0,0,3,17], "w_pose_saver_8hpp.html#a31ad937a2e52ea08ce925031d26616b9":[2,0,0,0,3,17,1], "w_pose_saver_8hpp_source.html":[2,0,0,0,3,17], diff --git a/html/pose_2enum_classes_8hpp.html b/html/pose_2enum_classes_8hpp.html index 505d8cd9..5258395d 100644 --- a/html/pose_2enum_classes_8hpp.html +++ b/html/pose_2enum_classes_8hpp.html @@ -128,6 +128,7 @@ Enumerations
      op::PoseModel::BODY_19 = 4, op::PoseModel::BODY_23 = 5, +op::PoseModel::BODY_59 = 6, op::PoseModel::Size
    } diff --git a/html/pose_2enum_classes_8hpp.js b/html/pose_2enum_classes_8hpp.js index 1152395b..320dbe61 100644 --- a/html/pose_2enum_classes_8hpp.js +++ b/html/pose_2enum_classes_8hpp.js @@ -7,6 +7,7 @@ var pose_2enum_classes_8hpp = [ "BODY_18", "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fab0fd0573c626fcd55b70d4547328ad7d", null ], [ "BODY_19", "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fae3ae2003e0e0458bdc49480fb19c876e", null ], [ "BODY_23", "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa003cc3795b0eeed2af2dfd34ed482794", null ], + [ "BODY_59", "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa68aa8b41e419d187d9f7daff5d65708f", null ], [ "Size", "pose_2enum_classes_8hpp.html#af5b3ce2a5d3de87cb31b9b67e96f261fa6f6cb72d544962fa333e2e34ce64f719", null ] ] ], [ "PoseProperty", "pose_2enum_classes_8hpp.html#a37c58b781e5bcd9fee67a7768afc5d0e", [ diff --git a/html/pose_2enum_classes_8hpp_source.html b/html/pose_2enum_classes_8hpp_source.html index b8d23d2c..3e565f39 100644 --- a/html/pose_2enum_classes_8hpp_source.html +++ b/html/pose_2enum_classes_8hpp_source.html @@ -120,27 +120,29 @@ $(document).ready(function(){initNavTree('pose_2enum_classes_8hpp_source.html','
    14  BODY_18 = 3,
    15  BODY_19 = 4,
    16  BODY_23 = 5,
    -
    17  Size,
    -
    18  };
    -
    19 
    -
    20  enum class PoseProperty : unsigned char
    -
    21  {
    -
    22  NMSThreshold = 0,
    -
    23  ConnectInterMinAboveThreshold,
    -
    24  ConnectInterThreshold,
    -
    25  ConnectMinSubsetCnt,
    -
    26  ConnectMinSubsetScore,
    -
    27  Size,
    -
    28  };
    -
    29 }
    -
    30 
    -
    31 #endif // OPENPOSE_POSE_ENUM_CLASSES_HPP
    +
    17  BODY_59 = 6,
    +
    18  Size,
    +
    19  };
    +
    20 
    +
    21  enum class PoseProperty : unsigned char
    +
    22  {
    +
    23  NMSThreshold = 0,
    +
    24  ConnectInterMinAboveThreshold,
    +
    25  ConnectInterThreshold,
    +
    26  ConnectMinSubsetCnt,
    +
    27  ConnectMinSubsetScore,
    +
    28  Size,
    +
    29  };
    +
    30 }
    +
    31 
    +
    32 #endif // OPENPOSE_POSE_ENUM_CLASSES_HPP
    PoseModel
    Definition: enumClasses.hpp:9
    +
    -
    PoseProperty
    Definition: enumClasses.hpp:20
    +
    PoseProperty
    Definition: enumClasses.hpp:21
    diff --git a/html/pose_2headers_8hpp.html b/html/pose_2headers_8hpp.html index 934b6189..20b99f0d 100644 --- a/html/pose_2headers_8hpp.html +++ b/html/pose_2headers_8hpp.html @@ -115,6 +115,7 @@ $(document).ready(function(){initNavTree('pose_2headers_8hpp.html','');}); #include <openpose/pose/poseExtractorCaffe.hpp>
    #include <openpose/pose/poseGpuRenderer.hpp>
    #include <openpose/pose/poseParameters.hpp>
    +#include <openpose/pose/poseParametersRender.hpp>
    #include <openpose/pose/poseRenderer.hpp>
    #include <openpose/pose/renderPose.hpp>
    #include <openpose/pose/wPoseExtractor.hpp>
    diff --git a/html/pose_2headers_8hpp_source.html b/html/pose_2headers_8hpp_source.html index cf702dff..56791fc5 100644 --- a/html/pose_2headers_8hpp_source.html +++ b/html/pose_2headers_8hpp_source.html @@ -119,12 +119,13 @@ $(document).ready(function(){initNavTree('pose_2headers_8hpp_source.html','');})
    10 #include <openpose/pose/poseExtractorCaffe.hpp>
    11 #include <openpose/pose/poseGpuRenderer.hpp>
    12 #include <openpose/pose/poseParameters.hpp>
    -
    13 #include <openpose/pose/poseRenderer.hpp>
    -
    14 #include <openpose/pose/renderPose.hpp>
    -
    15 #include <openpose/pose/wPoseExtractor.hpp>
    -
    16 #include <openpose/pose/wPoseRenderer.hpp>
    -
    17 
    -
    18 #endif // OPENPOSE_POSE_HEADERS_HPP
    +
    13 #include <openpose/pose/poseParametersRender.hpp>
    +
    14 #include <openpose/pose/poseRenderer.hpp>
    +
    15 #include <openpose/pose/renderPose.hpp>
    +
    16 #include <openpose/pose/wPoseExtractor.hpp>
    +
    17 #include <openpose/pose/wPoseRenderer.hpp>
    +
    18 
    +
    19 #endif // OPENPOSE_POSE_HEADERS_HPP
    @@ -132,6 +133,7 @@ $(document).ready(function(){initNavTree('pose_2headers_8hpp_source.html','');})
    +
    diff --git a/html/pose_cpu_renderer_8hpp_source.html b/html/pose_cpu_renderer_8hpp_source.html index e4a1a2ac..174daab4 100644 --- a/html/pose_cpu_renderer_8hpp_source.html +++ b/html/pose_cpu_renderer_8hpp_source.html @@ -139,7 +139,7 @@ $(document).ready(function(){initNavTree('pose_cpu_renderer_8hpp_source.html',''
    #define DELETE_COPY(className)
    Definition: macros.hpp:25
    -
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParameters.hpp:306
    +
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParametersRender.hpp:10
    PoseModel
    Definition: enumClasses.hpp:9
    @@ -148,7 +148,7 @@ $(document).ready(function(){initNavTree('pose_cpu_renderer_8hpp_source.html',''
    #define OP_API
    Definition: macros.hpp:5
    Definition: poseCpuRenderer.hpp:13
    Definition: renderer.hpp:9
    -
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParameters.hpp:307
    +
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParametersRender.hpp:11
    diff --git a/html/pose_extractor_8hpp_source.html b/html/pose_extractor_8hpp_source.html index 5e6ce26f..8716cad6 100644 --- a/html/pose_extractor_8hpp_source.html +++ b/html/pose_extractor_8hpp_source.html @@ -185,7 +185,7 @@ $(document).ready(function(){initNavTree('pose_extractor_8hpp_source.html','');}
    -
    PoseProperty
    Definition: enumClasses.hpp:20
    +
    PoseProperty
    Definition: enumClasses.hpp:21
    ScaleMode
    Definition: enumClasses.hpp:6
    float mScaleNetToOutput
    Definition: poseExtractor.hpp:53
    diff --git a/html/pose_gpu_renderer_8hpp_source.html b/html/pose_gpu_renderer_8hpp_source.html index 0f3c6837..85310d11 100644 --- a/html/pose_gpu_renderer_8hpp_source.html +++ b/html/pose_gpu_renderer_8hpp_source.html @@ -149,7 +149,7 @@ $(document).ready(function(){initNavTree('pose_gpu_renderer_8hpp_source.html',''
    #define DELETE_COPY(className)
    Definition: macros.hpp:25
    -
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParameters.hpp:306
    +
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParametersRender.hpp:10
    PoseModel
    Definition: enumClasses.hpp:9
    @@ -159,7 +159,7 @@ $(document).ready(function(){initNavTree('pose_gpu_renderer_8hpp_source.html',''
    Definition: gpuRenderer.hpp:11
    #define OP_API
    Definition: macros.hpp:5
    -
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParameters.hpp:307
    +
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParametersRender.hpp:11
    diff --git a/html/pose_parameters_8hpp.html b/html/pose_parameters_8hpp.html index 105ca531..8ebb0190 100644 --- a/html/pose_parameters_8hpp.html +++ b/html/pose_parameters_8hpp.html @@ -105,7 +105,6 @@ $(document).ready(function(){initNavTree('pose_parameters_8hpp.html','');});
    @@ -115,6 +114,7 @@ $(document).ready(function(){initNavTree('pose_parameters_8hpp.html','');});

    Go to the source code of this file.

    @@ -123,354 +123,47 @@ Namespaces
     op
     
    - - - - - - - - - - - - - - - - - - - - - -

    -Macros

    #define POSE_COCO_PAIRS_RENDER_GPU   {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}
     
    #define POSE_COCO_COLORS_RENDER_GPU
     
    #define POSE_MPI_PAIRS_RENDER_GPU   { 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}
     
    #define POSE_MPI_COLORS_RENDER_GPU
     
    #define POSE_BODY_18_PAIRS_RENDER_GPU   POSE_COCO_PAIRS_RENDER_GPU
     
    #define POSE_BODY_18_COLORS_RENDER_GPU   POSE_COCO_COLORS_RENDER_GPU
     
    #define POSE_BODY_19_PAIRS_RENDER_GPU   {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}
     
    #define POSE_BODY_19_COLORS_RENDER_GPU
     
    #define POSE_BODY_23_PAIRS_RENDER_GPU   { 0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,11,12,13,14,14,15,15,16,16,17, 0,18,18,19,18,21,19,20,21,22}
     
    #define POSE_BODY_23_COLORS_RENDER_GPU
     
    - - + + + + + + + + + + + + + + + + + + + + + + + + + +

    Functions

    const std::map< unsigned int,
    -std::string > & 
    op::getPoseBodyPartMapping (const PoseModel poseModel)
     
    OP_API const std::map
    +< unsigned int, std::string > & 
    op::getPoseBodyPartMapping (const PoseModel poseModel)
     
    OP_API const std::string & op::getPoseProtoTxt (const PoseModel poseModel)
     
    OP_API const std::string & op::getPoseTrainedModel (const PoseModel poseModel)
     
    OP_API unsigned int op::getPoseNumberBodyParts (const PoseModel poseModel)
     
    OP_API const std::vector
    +< unsigned int > & 
    op::getPosePartPairs (const PoseModel poseModel)
     
    OP_API const std::vector
    +< unsigned int > & 
    op::getPoseMapIndex (const PoseModel poseModel)
     
    OP_API unsigned int op::getPoseMaxPeaks (const PoseModel poseModel)
     
    OP_API float op::getPoseNetDecreaseFactor (const PoseModel poseModel)
     
    OP_API unsigned int op::poseBodyPartMapStringToKey (const PoseModel poseModel, const std::string &string)
     
    OP_API unsigned int op::poseBodyPartMapStringToKey (const PoseModel poseModel, const std::vector< std::string > &strings)
     
    OP_API float op::getPoseDefaultNmsThreshold (const PoseModel poseModel)
     
    OP_API float op::getPoseDefaultConnectInterMinAboveThreshold (const PoseModel poseModel)
     
    OP_API float op::getPoseDefaultConnectInterThreshold (const PoseModel poseModel)
     
    OP_API unsigned int op::getPoseDefaultMinSubsetCnt (const PoseModel poseModel)
     
    OP_API float op::getPoseDefaultConnectMinSubsetScore (const PoseModel poseModel)
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

    Variables

    const unsigned int op::POSE_MAX_PEOPLE = 96u
     
    const std::map< unsigned int,
    -std::string > 
    op::POSE_COCO_BODY_PARTS
     
    const unsigned int op::POSE_COCO_NUMBER_PARTS = 18u
     
    const std::vector< unsigned int > op::POSE_COCO_MAP_IDX {31,32, 39,40, 33,34, 35,36, 41,42, 43,44, 19,20, 21,22, 23,24, 25,26, 27,28, 29,30, 47,48, 49,50, 53,54, 51,52, 55,56, 37,38, 45,46}
     
    const std::vector< unsigned int > op::POSE_COCO_PAIRS_RENDER {POSE_COCO_PAIRS_RENDER_GPU}
     
    const std::vector< unsigned int > op::POSE_COCO_PAIRS {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, 2,16, 5,17}
     
    const std::vector< float > op::POSE_COCO_COLORS_RENDER {POSE_COCO_COLORS_RENDER_GPU}
     
    const std::map< unsigned int,
    -std::string > 
    op::POSE_MPI_BODY_PARTS
     
    const unsigned int op::POSE_MPI_NUMBER_PARTS = 15
     
    const std::vector< unsigned int > op::POSE_MPI_MAP_IDX {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}
     
    const std::vector< unsigned
    -int > POSE_MPI_PAIRS 
    op::POSE_MPI_PAIRS_RENDER_GPU
     
    const std::vector< float > op::POSE_MPI_COLORS_RENDER {POSE_MPI_COLORS_RENDER_GPU}
     
    const std::map< unsigned int,
    -std::string > 
    op::POSE_BODY_18_BODY_PARTS
     
    const unsigned int op::POSE_BODY_18_NUMBER_PARTS {POSE_COCO_NUMBER_PARTS}
     
    const std::vector< unsigned int > op::POSE_BODY_18_MAP_IDX {POSE_COCO_MAP_IDX}
     
    const std::vector< unsigned int > op::POSE_BODY_18_PAIRS_RENDER {POSE_BODY_18_PAIRS_RENDER_GPU}
     
    const std::vector< unsigned int > op::POSE_BODY_18_PAIRS {POSE_COCO_PAIRS}
     
    const std::vector< float > op::POSE_BODY_18_COLORS_RENDER {POSE_BODY_18_COLORS_RENDER_GPU}
     
    const std::map< unsigned int,
    -std::string > 
    op::POSE_BODY_19_BODY_PARTS
     
    const unsigned int op::POSE_BODY_19_NUMBER_PARTS = 19u
     
    const std::vector< unsigned int > op::POSE_BODY_19_MAP_IDX {20,21, 34,35, 42,43, 36,37, 38,39, 44,45, 46,47, 26,27, 22,23, 24,25, 28,29, 30,31, 32,33, 50,51, 52,53, 56,57, 54,55, 58,59, 40,41, 48,49}
     
    const std::vector< unsigned int > op::POSE_BODY_19_PAIRS_RENDER {POSE_COCO_PAIRS_RENDER_GPU}
     
    const std::vector< unsigned int > op::POSE_BODY_19_PAIRS {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, 2,17, 5,18}
     
    const std::vector< float > op::POSE_BODY_19_COLORS_RENDER {POSE_BODY_19_COLORS_RENDER_GPU}
     
    const std::map< unsigned int,
    -std::string > 
    op::POSE_BODY_23_BODY_PARTS
     
    const unsigned int op::POSE_BODY_23_NUMBER_PARTS = 23u
     
    const std::vector< unsigned int > op::POSE_BODY_23_MAP_IDX {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}
     
    const std::vector< unsigned int > op::POSE_BODY_23_PAIRS_RENDER {POSE_BODY_23_PAIRS_RENDER_GPU}
     
    const std::vector< unsigned int > op::POSE_BODY_23_PAIRS { 0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,10,12,13,14,14,15,15,16,15,17, 0,18,18,19,18,21,19,20,21,22, 1,20, 4,22}
     
    const std::vector< float > op::POSE_BODY_23_COLORS_RENDER {POSE_BODY_23_COLORS_RENDER_GPU}
     
    const std::array< float,(int)
    -PoseModel::Size > 
    op::POSE_CCN_DECREASE_FACTOR
     
    const std::array< unsigned int,(int)
    -PoseModel::Size > 
    op::POSE_MAX_PEAKS
     
    const std::array< unsigned int,(int)
    -PoseModel::Size > 
    op::POSE_NUMBER_BODY_PARTS
     
    const std::array< std::vector
    -< unsigned int >,(int)
    -PoseModel::Size > 
    op::POSE_BODY_PART_PAIRS
     
    const std::array< std::vector
    -< unsigned int >,(int)
    -PoseModel::Size > 
    op::POSE_BODY_PART_PAIRS_RENDER
     
    const std::array< std::vector
    -< unsigned int >,(int)
    -PoseModel::Size > 
    op::POSE_MAP_IDX
     
    const std::array< std::vector
    -< float >,(int)
    -PoseModel::Size > 
    op::POSE_COLORS
     
    const std::array< std::string,(int)
    -PoseModel::Size > 
    op::POSE_PROTOTXT
     
    const std::array< std::string,(int)
    -PoseModel::Size > 
    op::POSE_TRAINED_MODEL
     
    const std::array< float,(int)
    -PoseModel::Size > 
    op::POSE_DEFAULT_NMS_THRESHOLD
     
    const std::array< float,(int)
    -PoseModel::Size > 
    op::POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD
     
    const std::array< float,(int)
    -PoseModel::Size > 
    op::POSE_DEFAULT_CONNECT_INTER_THRESHOLD
     
    const std::array< unsigned int,(int)
    -PoseModel::Size > 
    op::POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT
     
    const std::array< float,(int)
    -PoseModel::Size > 
    op::POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE
     
    const auto op::POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f
     
    const auto op::POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f
     
    const auto op::POSE_MAX_PEOPLE = 96u
     
    -

    Macro Definition Documentation

    - -
    -
    - - - - -
    #define POSE_BODY_18_COLORS_RENDER_GPU   POSE_COCO_COLORS_RENDER_GPU
    -
    - -
    -
    - -
    -
    - - - - -
    #define POSE_BODY_18_PAIRS_RENDER_GPU   POSE_COCO_PAIRS_RENDER_GPU
    -
    - -
    -
    - -
    -
    - - - - -
    #define POSE_BODY_19_COLORS_RENDER_GPU
    -
    -Value:
    255.f, 0.f, 85.f, \
    -
    255.f, 0.f, 0.f, \
    -
    255.f, 85.f, 0.f, \
    -
    255.f, 170.f, 0.f, \
    -
    255.f, 255.f, 0.f, \
    -
    170.f, 255.f, 0.f, \
    -
    85.f, 255.f, 0.f, \
    -
    0.f, 255.f, 0.f, \
    -
    255.f, 0.f, 0.f, \
    -
    0.f, 255.f, 85.f, \
    -
    0.f, 255.f, 170.f, \
    -
    0.f, 255.f, 255.f, \
    -
    0.f, 170.f, 255.f, \
    -
    0.f, 85.f, 255.f, \
    -
    0.f, 0.f, 255.f, \
    -
    255.f, 0.f, 170.f, \
    -
    170.f, 0.f, 255.f, \
    -
    255.f, 0.f, 255.f, \
    -
    85.f, 0.f, 255.f
    -
    -
    -
    - -
    -
    - - - - -
    #define POSE_BODY_19_PAIRS_RENDER_GPU   {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}
    -
    - -
    -
    - -
    -
    - - - - -
    #define POSE_BODY_23_COLORS_RENDER_GPU
    -
    -Value:
    255.f, 0.f, 0.f, \
    -
    255.f, 55.f, 0.f, \
    -
    255.f, 110.f, 0.f, \
    -
    255.f, 165.f, 0.f, \
    -
    255.f, 215.f, 0.f, \
    -
    255.f, 235.f, 0.f, \
    -
    255.f, 255.f, 0.f, \
    -
    255.f, 0.f, 0.f, \
    -
    175.f, 255.f, 0.f, \
    -
    85.f, 255.f, 0.f, \
    -
    0.f, 255.f, 0.f, \
    -
    0.f, 255.f, 85.f, \
    -
    0.f, 255.f, 170.f, \
    -
    25.f, 25.f, 128.f, \
    -
    0.f, 85.f, 255.f, \
    -
    0.f, 170.f, 255.f, \
    -
    0.f, 212.5f, 255.f, \
    -
    0.f, 255.f, 255.f, \
    -
    255.f, 0.f, 0.f, \
    -
    255.f, 0.f, 255.f, \
    -
    238.f, 130.f, 238.f, \
    -
    138.f, 43.f, 226.f, \
    -
    75.f, 0.f, 130.f
    -
    -
    -
    - -
    -
    - - - - -
    #define POSE_BODY_23_PAIRS_RENDER_GPU   { 0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,11,12,13,14,14,15,15,16,16,17, 0,18,18,19,18,21,19,20,21,22}
    -
    - -
    -
    - -
    -
    - - - - -
    #define POSE_COCO_COLORS_RENDER_GPU
    -
    -Value:
    255.f, 0.f, 85.f, \
    -
    255.f, 0.f, 0.f, \
    -
    255.f, 85.f, 0.f, \
    -
    255.f, 170.f, 0.f, \
    -
    255.f, 255.f, 0.f, \
    -
    170.f, 255.f, 0.f, \
    -
    85.f, 255.f, 0.f, \
    -
    0.f, 255.f, 0.f, \
    -
    0.f, 255.f, 85.f, \
    -
    0.f, 255.f, 170.f, \
    -
    0.f, 255.f, 255.f, \
    -
    0.f, 170.f, 255.f, \
    -
    0.f, 85.f, 255.f, \
    -
    0.f, 0.f, 255.f, \
    -
    255.f, 0.f, 170.f, \
    -
    170.f, 0.f, 255.f, \
    -
    255.f, 0.f, 255.f, \
    -
    85.f, 0.f, 255.f
    -
    -
    -
    - -
    -
    - - - - -
    #define POSE_COCO_PAIRS_RENDER_GPU   {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}
    -
    - -
    -
    - -
    -
    - - - - -
    #define POSE_MPI_COLORS_RENDER_GPU
    -
    -Value:
    255.f, 0.f, 85.f, \
    -
    255.f, 0.f, 0.f, \
    -
    255.f, 85.f, 0.f, \
    -
    255.f, 170.f, 0.f, \
    -
    255.f, 255.f, 0.f, \
    -
    170.f, 255.f, 0.f, \
    -
    85.f, 255.f, 0.f, \
    -
    43.f, 255.f, 0.f, \
    -
    0.f, 255.f, 0.f, \
    -
    0.f, 255.f, 85.f, \
    -
    0.f, 255.f, 170.f, \
    -
    0.f, 255.f, 255.f, \
    -
    0.f, 170.f, 255.f, \
    -
    0.f, 85.f, 255.f, \
    -
    0.f, 0.f, 255.f
    -
    -
    -
    - -
    -
    - - - - -
    #define POSE_MPI_PAIRS_RENDER_GPU   { 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}
    -
    - -
    -
    diff --git a/html/pose_parameters_8hpp.js b/html/pose_parameters_8hpp.js index 5b40eeb1..25ad49fc 100644 --- a/html/pose_parameters_8hpp.js +++ b/html/pose_parameters_8hpp.js @@ -1,62 +1,19 @@ var pose_parameters_8hpp = [ - [ "POSE_BODY_18_COLORS_RENDER_GPU", "pose_parameters_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280", null ], - [ "POSE_BODY_18_PAIRS_RENDER_GPU", "pose_parameters_8hpp.html#a0d821946779eaea1be5996816c4ca6bd", null ], - [ "POSE_BODY_19_COLORS_RENDER_GPU", "pose_parameters_8hpp.html#a17cec2005928720d6da0e83ba26cca01", null ], - [ "POSE_BODY_19_PAIRS_RENDER_GPU", "pose_parameters_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1", null ], - [ "POSE_BODY_23_COLORS_RENDER_GPU", "pose_parameters_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54", null ], - [ "POSE_BODY_23_PAIRS_RENDER_GPU", "pose_parameters_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110", null ], - [ "POSE_COCO_COLORS_RENDER_GPU", "pose_parameters_8hpp.html#a8b293ab02337be3f90218c5b824ece06", null ], - [ "POSE_COCO_PAIRS_RENDER_GPU", "pose_parameters_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322", null ], - [ "POSE_MPI_COLORS_RENDER_GPU", "pose_parameters_8hpp.html#a7fdd75b1478d65f11ebc77144662958c", null ], - [ "POSE_MPI_PAIRS_RENDER_GPU", "pose_parameters_8hpp.html#a7987426d997b6b040302d25fd07403ac", null ], - [ "getPoseBodyPartMapping", "pose_parameters_8hpp.html#a41a5430dc7296645934584b8ea0238d7", null ], + [ "getPoseBodyPartMapping", "pose_parameters_8hpp.html#aab3de911b04b96c1850cc05c6947e184", null ], + [ "getPoseDefaultConnectInterMinAboveThreshold", "pose_parameters_8hpp.html#a1b7d7061c819ee76328d5917ee009b1d", null ], + [ "getPoseDefaultConnectInterThreshold", "pose_parameters_8hpp.html#a692472b562fba051964f9ddea07b97d7", null ], + [ "getPoseDefaultConnectMinSubsetScore", "pose_parameters_8hpp.html#a1f690bf083e250642144bf8e5d6e6d2c", null ], + [ "getPoseDefaultMinSubsetCnt", "pose_parameters_8hpp.html#af1ed202254520cd489723052d1f5a86d", null ], + [ "getPoseDefaultNmsThreshold", "pose_parameters_8hpp.html#aa170c3107396e4d0e4214bb0c1b78f08", null ], + [ "getPoseMapIndex", "pose_parameters_8hpp.html#a84d87ec0e4ed3cf75a37ce99d0d25ef7", null ], + [ "getPoseMaxPeaks", "pose_parameters_8hpp.html#ab48e314ecd19f55f664b14da1d83312f", null ], + [ "getPoseNetDecreaseFactor", "pose_parameters_8hpp.html#ad7ca8d89f9045481075902c8bd98b8f4", null ], + [ "getPoseNumberBodyParts", "pose_parameters_8hpp.html#a54a6c42a42a0a7e539061f5e30abb4bc", null ], + [ "getPosePartPairs", "pose_parameters_8hpp.html#a307b2c7b1506415a4ba44590fe8a7258", null ], + [ "getPoseProtoTxt", "pose_parameters_8hpp.html#ae0730c6559abdb976423ecf81eac4620", null ], + [ "getPoseTrainedModel", "pose_parameters_8hpp.html#ade70b024ee461ae04e7233bf3937c5c6", null ], [ "poseBodyPartMapStringToKey", "pose_parameters_8hpp.html#a3df938ef93037c534c5d342720d5fb70", null ], [ "poseBodyPartMapStringToKey", "pose_parameters_8hpp.html#aacf6e688031bb116e4878b811e8dbc23", null ], - [ "POSE_BODY_18_BODY_PARTS", "pose_parameters_8hpp.html#a4596b1c0cc8f654025d6c5c4c43a92b5", null ], - [ "POSE_BODY_18_COLORS_RENDER", "pose_parameters_8hpp.html#abc8fdb41aa395c46430373facfbd554c", null ], - [ "POSE_BODY_18_MAP_IDX", "pose_parameters_8hpp.html#a3ce26fa0a7373e612d130d1657ac7d16", null ], - [ "POSE_BODY_18_NUMBER_PARTS", "pose_parameters_8hpp.html#a1508c5fa871a1da61a2b740a9c5e2df1", null ], - [ "POSE_BODY_18_PAIRS", "pose_parameters_8hpp.html#a360d95ba9769e4cb5cfc7aa2a2bab927", null ], - [ "POSE_BODY_18_PAIRS_RENDER", "pose_parameters_8hpp.html#a8bbf4f3e7a4739c4a44faff8d2c7ada9", null ], - [ "POSE_BODY_19_BODY_PARTS", "pose_parameters_8hpp.html#a7af31bad1c8e2f89c8e3eaea9b1c654c", null ], - [ "POSE_BODY_19_COLORS_RENDER", "pose_parameters_8hpp.html#acea3456a45f673bd479b817caca9567a", null ], - [ "POSE_BODY_19_MAP_IDX", "pose_parameters_8hpp.html#a62ee3fdd0dfb13209926711937899b8e", null ], - [ "POSE_BODY_19_NUMBER_PARTS", "pose_parameters_8hpp.html#a9a089b86a0cb8dfbf81501de2ec10b07", null ], - [ "POSE_BODY_19_PAIRS", "pose_parameters_8hpp.html#a550c78ab4e4e1d31194d65445fa12b94", null ], - [ "POSE_BODY_19_PAIRS_RENDER", "pose_parameters_8hpp.html#a2d9c72a62d012a21fd647d238784bd0b", null ], - [ "POSE_BODY_23_BODY_PARTS", "pose_parameters_8hpp.html#a417991b82e2e14e8dc90a09e4facef19", null ], - [ "POSE_BODY_23_COLORS_RENDER", "pose_parameters_8hpp.html#aa5fe1c898b53e3f7736ad9037571edaf", null ], - [ "POSE_BODY_23_MAP_IDX", "pose_parameters_8hpp.html#af15beef165379754507c429962130965", null ], - [ "POSE_BODY_23_NUMBER_PARTS", "pose_parameters_8hpp.html#ad49ac3147773460e2d0bd95c0c6004e0", null ], - [ "POSE_BODY_23_PAIRS", "pose_parameters_8hpp.html#a5f72bc3d372f33c5b095335a687030e7", null ], - [ "POSE_BODY_23_PAIRS_RENDER", "pose_parameters_8hpp.html#a0ea1d13b5a9b47ba2534aec20ab39335", null ], - [ "POSE_BODY_PART_PAIRS", "pose_parameters_8hpp.html#a5efd2c1cd059608982d7ff66ed1a606f", null ], - [ "POSE_BODY_PART_PAIRS_RENDER", "pose_parameters_8hpp.html#aa95149b7c176de2ec33a0093c8e24a36", null ], - [ "POSE_CCN_DECREASE_FACTOR", "pose_parameters_8hpp.html#a84b4b00bb40c0c3a4cce7eed5978f047", null ], - [ "POSE_COCO_BODY_PARTS", "pose_parameters_8hpp.html#a1007a541c7af1a5e1e15475b8c4cec3b", null ], - [ "POSE_COCO_COLORS_RENDER", "pose_parameters_8hpp.html#a93a4ee242c33f626ff146643bb8971bd", null ], - [ "POSE_COCO_MAP_IDX", "pose_parameters_8hpp.html#a674110c186802f7df02ad7822a885542", null ], - [ "POSE_COCO_NUMBER_PARTS", "pose_parameters_8hpp.html#a4dad15b160be5343298d80f4d83a6150", null ], - [ "POSE_COCO_PAIRS", "pose_parameters_8hpp.html#a67518f0a66cb3ee382b88a999e4f20b8", null ], - [ "POSE_COCO_PAIRS_RENDER", "pose_parameters_8hpp.html#ae8d324a5c49dcbfd1b6f820608f5a292", null ], - [ "POSE_COLORS", "pose_parameters_8hpp.html#aefbe109a859cc12a9a06f607e61d8dba", null ], - [ "POSE_DEFAULT_ALPHA_HEAT_MAP", "pose_parameters_8hpp.html#af45cddacd69fff73a4ea4acbbbac43e0", null ], - [ "POSE_DEFAULT_ALPHA_KEYPOINT", "pose_parameters_8hpp.html#a21fcb98366f6ea8895fc7f527f232db5", null ], - [ "POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD", "pose_parameters_8hpp.html#a029c14582c63e33a9b7350bb374527c8", null ], - [ "POSE_DEFAULT_CONNECT_INTER_THRESHOLD", "pose_parameters_8hpp.html#a02de45e0a3df20b593d9b1b79a96f20c", null ], - [ "POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT", "pose_parameters_8hpp.html#a8b6edeb3f39ac581317c10e48e6729ad", null ], - [ "POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE", "pose_parameters_8hpp.html#a600643a9a3f46d6a4cab58943e059d57", null ], - [ "POSE_DEFAULT_NMS_THRESHOLD", "pose_parameters_8hpp.html#af5bcc4a300e5d6f2572ba2b955c2c992", null ], - [ "POSE_MAP_IDX", "pose_parameters_8hpp.html#a8ce48a4305cac872140ef4eb3d8c6896", null ], - [ "POSE_MAX_PEAKS", "pose_parameters_8hpp.html#a91d47f70c39fdf167d46ea6b4361209b", null ], - [ "POSE_MAX_PEOPLE", "pose_parameters_8hpp.html#a4ce7d2037ec2a189cd284d34726c2d49", null ], - [ "POSE_MPI_BODY_PARTS", "pose_parameters_8hpp.html#a67936cc61d129d2262546534b2c7cd30", null ], - [ "POSE_MPI_COLORS_RENDER", "pose_parameters_8hpp.html#a9e87deaa37c301fac10af492469bcc86", null ], - [ "POSE_MPI_MAP_IDX", "pose_parameters_8hpp.html#a46dc266a61a0b0061563cb9c6359cb71", null ], - [ "POSE_MPI_NUMBER_PARTS", "pose_parameters_8hpp.html#ad8ed879d7e9d7bb73c0da7650ce934da", null ], - [ "POSE_MPI_PAIRS_RENDER_GPU", "pose_parameters_8hpp.html#aba7025c2e941605b2f5d70ce6a37f0e5", null ], - [ "POSE_NUMBER_BODY_PARTS", "pose_parameters_8hpp.html#a4dd1047c27e639d21f830f97017b5e44", null ], - [ "POSE_PROTOTXT", "pose_parameters_8hpp.html#a2d63d4b60789b52bb8524b7596cb73a7", null ], - [ "POSE_TRAINED_MODEL", "pose_parameters_8hpp.html#ad964ad6758567f7244d134599e8cb04b", null ] + [ "POSE_MAX_PEOPLE", "pose_parameters_8hpp.html#a522d4552d2aeabe367f4d3bf371e6b3e", null ] ]; \ No newline at end of file diff --git a/html/pose_parameters_8hpp_source.html b/html/pose_parameters_8hpp_source.html index 5404e835..b16629e6 100644 --- a/html/pose_parameters_8hpp_source.html +++ b/html/pose_parameters_8hpp_source.html @@ -113,375 +113,55 @@ $(document).ready(function(){initNavTree('pose_parameters_8hpp_source.html','');
    4 #include <map>
    5 #include <openpose/core/common.hpp>
    6 #include <openpose/pose/enumClasses.hpp>
    -
    7 
    -
    8 namespace op
    -
    9 {
    -
    10  // All #define are for CUDA code
    -
    11 
    -
    12  // Constant Global Parameters
    -
    13  const unsigned int POSE_MAX_PEOPLE = 96u;
    -
    14 
    -
    15  // Model-Dependent Parameters
    -
    16  // COCO
    -
    17  const std::map<unsigned int, std::string> POSE_COCO_BODY_PARTS {
    -
    18  {0, "Nose"},
    -
    19  {1, "Neck"},
    -
    20  {2, "RShoulder"},
    -
    21  {3, "RElbow"},
    -
    22  {4, "RWrist"},
    -
    23  {5, "LShoulder"},
    -
    24  {6, "LElbow"},
    -
    25  {7, "LWrist"},
    -
    26  {8, "RHip"},
    -
    27  {9, "RKnee"},
    -
    28  {10, "RAnkle"},
    -
    29  {11, "LHip"},
    -
    30  {12, "LKnee"},
    -
    31  {13, "LAnkle"},
    -
    32  {14, "REye"},
    -
    33  {15, "LEye"},
    -
    34  {16, "REar"},
    -
    35  {17, "LEar"},
    -
    36  {18, "Background"}
    -
    37  };
    -
    38  const unsigned int POSE_COCO_NUMBER_PARTS = 18u; // Equivalent to size of std::map POSE_COCO_BODY_PARTS - 1 (removing background)
    -
    39  const std::vector<unsigned int> POSE_COCO_MAP_IDX {31,32, 39,40, 33,34, 35,36, 41,42, 43,44, 19,20, 21,22, 23,24, 25,26, 27,28, 29,30, 47,48, 49,50, 53,54, 51,52, 55,56, 37,38, 45,46};
    -
    40  #define POSE_COCO_PAIRS_RENDER_GPU {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}
    -
    41  const std::vector<unsigned int> POSE_COCO_PAIRS_RENDER {POSE_COCO_PAIRS_RENDER_GPU};
    -
    42  const std::vector<unsigned int> POSE_COCO_PAIRS {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, 2,16, 5,17};
    -
    43  #define POSE_COCO_COLORS_RENDER_GPU \
    -
    44  255.f, 0.f, 85.f, \
    -
    45  255.f, 0.f, 0.f, \
    -
    46  255.f, 85.f, 0.f, \
    -
    47  255.f, 170.f, 0.f, \
    -
    48  255.f, 255.f, 0.f, \
    -
    49  170.f, 255.f, 0.f, \
    -
    50  85.f, 255.f, 0.f, \
    -
    51  0.f, 255.f, 0.f, \
    -
    52  0.f, 255.f, 85.f, \
    -
    53  0.f, 255.f, 170.f, \
    -
    54  0.f, 255.f, 255.f, \
    -
    55  0.f, 170.f, 255.f, \
    -
    56  0.f, 85.f, 255.f, \
    -
    57  0.f, 0.f, 255.f, \
    -
    58  255.f, 0.f, 170.f, \
    -
    59  170.f, 0.f, 255.f, \
    -
    60  255.f, 0.f, 255.f, \
    -
    61  85.f, 0.f, 255.f
    -
    62  const std::vector<float> POSE_COCO_COLORS_RENDER{POSE_COCO_COLORS_RENDER_GPU};
    -
    63  // MPI
    -
    64  const std::map<unsigned int, std::string> POSE_MPI_BODY_PARTS {
    -
    65  {0, "Head"},
    -
    66  {1, "Neck"},
    -
    67  {2, "RShoulder"},
    -
    68  {3, "RElbow"},
    -
    69  {4, "RWrist"},
    -
    70  {5, "LShoulder"},
    -
    71  {6, "LElbow"},
    -
    72  {7, "LWrist"},
    -
    73  {8, "RHip"},
    -
    74  {9, "RKnee"},
    -
    75  {10, "RAnkle"},
    -
    76  {11, "LHip"},
    -
    77  {12, "LKnee"},
    -
    78  {13, "LAnkle"},
    -
    79  {14, "Chest"},
    -
    80  {15, "Background"}
    -
    81  };
    -
    82  const unsigned int POSE_MPI_NUMBER_PARTS = 15; // Equivalent to size of std::map POSE_MPI_NUMBER_PARTS - 1 (removing background)
    -
    83  const std::vector<unsigned int> POSE_MPI_MAP_IDX {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};
    -
    84  #define POSE_MPI_PAIRS_RENDER_GPU { 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}
    -
    85  const std::vector<unsigned int> POSE_MPI_PAIRS POSE_MPI_PAIRS_RENDER_GPU;
    -
    86  // MPI colors chosen such that they are closed to COCO colors
    -
    87  #define POSE_MPI_COLORS_RENDER_GPU \
    -
    88  255.f, 0.f, 85.f, \
    -
    89  255.f, 0.f, 0.f, \
    -
    90  255.f, 85.f, 0.f, \
    -
    91  255.f, 170.f, 0.f, \
    -
    92  255.f, 255.f, 0.f, \
    -
    93  170.f, 255.f, 0.f, \
    -
    94  85.f, 255.f, 0.f, \
    -
    95  43.f, 255.f, 0.f, \
    -
    96  0.f, 255.f, 0.f, \
    -
    97  0.f, 255.f, 85.f, \
    -
    98  0.f, 255.f, 170.f, \
    -
    99  0.f, 255.f, 255.f, \
    -
    100  0.f, 170.f, 255.f, \
    -
    101  0.f, 85.f, 255.f, \
    -
    102  0.f, 0.f, 255.f
    -
    103  const std::vector<float> POSE_MPI_COLORS_RENDER{POSE_MPI_COLORS_RENDER_GPU};
    -
    104  // BODY_18
    -
    105  const std::map<unsigned int, std::string> POSE_BODY_18_BODY_PARTS { // Windows map copy error if `= POSE_COCO_BODY_PARTS`
    -
    106  { 0, "Nose" },
    -
    107  { 1, "Neck" },
    -
    108  { 2, "RShoulder" },
    -
    109  { 3, "RElbow" },
    -
    110  { 4, "RWrist" },
    -
    111  { 5, "LShoulder" },
    -
    112  { 6, "LElbow" },
    -
    113  { 7, "LWrist" },
    -
    114  { 8, "RHip" },
    -
    115  { 9, "RKnee" },
    -
    116  { 10, "RAnkle" },
    -
    117  { 11, "LHip" },
    -
    118  { 12, "LKnee" },
    -
    119  { 13, "LAnkle" },
    -
    120  { 14, "REye" },
    -
    121  { 15, "LEye" },
    -
    122  { 16, "REar" },
    -
    123  { 17, "LEar" },
    -
    124  { 18, "Background" }
    -
    125  };
    -
    126  const unsigned int POSE_BODY_18_NUMBER_PARTS {POSE_COCO_NUMBER_PARTS};
    -
    127  const std::vector<unsigned int> POSE_BODY_18_MAP_IDX {POSE_COCO_MAP_IDX};
    -
    128  #define POSE_BODY_18_PAIRS_RENDER_GPU POSE_COCO_PAIRS_RENDER_GPU
    -
    129  const std::vector<unsigned int> POSE_BODY_18_PAIRS_RENDER {POSE_BODY_18_PAIRS_RENDER_GPU};
    -
    130  const std::vector<unsigned int> POSE_BODY_18_PAIRS {POSE_COCO_PAIRS};
    -
    131  #define POSE_BODY_18_COLORS_RENDER_GPU POSE_COCO_COLORS_RENDER_GPU
    -
    132  const std::vector<float> POSE_BODY_18_COLORS_RENDER {POSE_BODY_18_COLORS_RENDER_GPU};
    -
    133  // BODY_19
    -
    134  const std::map<unsigned int, std::string> POSE_BODY_19_BODY_PARTS {
    -
    135  { 0, "Nose" },
    -
    136  { 1, "Neck" },
    -
    137  { 2, "RShoulder" },
    -
    138  { 3, "RElbow" },
    -
    139  { 4, "RWrist" },
    -
    140  { 5, "LShoulder" },
    -
    141  { 6, "LElbow" },
    -
    142  { 7, "LWrist" },
    -
    143  { 8, "LowerAbs" },
    -
    144  { 9, "RHip" },
    -
    145  { 10, "RKnee" },
    -
    146  { 11, "RAnkle" },
    -
    147  { 12, "LHip" },
    -
    148  { 13, "LKnee" },
    -
    149  { 14, "LAnkle" },
    -
    150  { 15, "REye" },
    -
    151  { 16, "LEye" },
    -
    152  { 17, "REar" },
    -
    153  { 18, "LEar" },
    -
    154  { 19, "Background" }
    -
    155  };
    -
    156  const unsigned int POSE_BODY_19_NUMBER_PARTS = 19u; // Equivalent to size of std::map POSE_BODY_19_BODY_PARTS - 1 (removing background)
    -
    157  const std::vector<unsigned int> POSE_BODY_19_MAP_IDX {20,21, 34,35, 42,43, 36,37, 38,39, 44,45, 46,47, 26,27, 22,23, 24,25, 28,29, 30,31, 32,33, 50,51, 52,53, 56,57, 54,55, 58,59, 40,41, 48,49};
    -
    158  #define POSE_BODY_19_PAIRS_RENDER_GPU {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}
    -
    159  const std::vector<unsigned int> POSE_BODY_19_PAIRS_RENDER {POSE_COCO_PAIRS_RENDER_GPU};
    -
    160  const std::vector<unsigned int> POSE_BODY_19_PAIRS {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, 2,17, 5,18};
    -
    161  #define POSE_BODY_19_COLORS_RENDER_GPU \
    -
    162  255.f, 0.f, 85.f, \
    -
    163  255.f, 0.f, 0.f, \
    -
    164  255.f, 85.f, 0.f, \
    -
    165  255.f, 170.f, 0.f, \
    -
    166  255.f, 255.f, 0.f, \
    -
    167  170.f, 255.f, 0.f, \
    -
    168  85.f, 255.f, 0.f, \
    -
    169  0.f, 255.f, 0.f, \
    -
    170  255.f, 0.f, 0.f, \
    -
    171  0.f, 255.f, 85.f, \
    -
    172  0.f, 255.f, 170.f, \
    -
    173  0.f, 255.f, 255.f, \
    -
    174  0.f, 170.f, 255.f, \
    -
    175  0.f, 85.f, 255.f, \
    -
    176  0.f, 0.f, 255.f, \
    -
    177  255.f, 0.f, 170.f, \
    -
    178  170.f, 0.f, 255.f, \
    -
    179  255.f, 0.f, 255.f, \
    -
    180  85.f, 0.f, 255.f
    -
    181  const std::vector<float> POSE_BODY_19_COLORS_RENDER{POSE_BODY_19_COLORS_RENDER_GPU};
    -
    182  // BODY_23
    -
    183  const std::map<unsigned int, std::string> POSE_BODY_23_BODY_PARTS {
    -
    184  {0, "Neck"},
    -
    185  {1, "RShoulder"},
    -
    186  {2, "RElbow"},
    -
    187  {3, "RWrist"},
    -
    188  {4, "LShoulder"},
    -
    189  {5, "LElbow"},
    -
    190  {6, "LWrist"},
    -
    191  {7, "LowerAbs"},
    -
    192  {8, "RHip"},
    -
    193  {9, "RKnee"},
    -
    194  {10, "RAnkle"},
    -
    195  {11, "RBigToe"},
    -
    196  {12, "RSmallToe"},
    -
    197  {13, "LHip"},
    -
    198  {14, "LKnee"},
    -
    199  {15, "LAnkle"},
    -
    200  {16, "LBigToe"},
    -
    201  {17, "LSmallToe"},
    -
    202  {18, "Nose"},
    -
    203  {19, "REye"},
    -
    204  {20, "REar"},
    -
    205  {21, "LEye"},
    -
    206  {22, "LEar"},
    -
    207  {23, "Background"}
    -
    208  };
    -
    209  const unsigned int POSE_BODY_23_NUMBER_PARTS = 23u; // Equivalent to size of std::map POSE_BODY_23_BODY_PARTS - 1 (removing background)
    -
    210  const std::vector<unsigned int> POSE_BODY_23_MAP_IDX {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};
    -
    211  #define POSE_BODY_23_PAIRS_RENDER_GPU { 0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,11,12,13,14,14,15,15,16,16,17, 0,18,18,19,18,21,19,20,21,22}
    -
    212  const std::vector<unsigned int> POSE_BODY_23_PAIRS_RENDER {POSE_BODY_23_PAIRS_RENDER_GPU};
    -
    213  const std::vector<unsigned int> POSE_BODY_23_PAIRS { 0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,10,12,13,14,14,15,15,16,15,17, 0,18,18,19,18,21,19,20,21,22, 1,20, 4,22};
    -
    214  #define POSE_BODY_23_COLORS_RENDER_GPU \
    -
    215  255.f, 0.f, 0.f, \
    -
    216  255.f, 55.f, 0.f, \
    -
    217  255.f, 110.f, 0.f, \
    -
    218  255.f, 165.f, 0.f, \
    -
    219  255.f, 215.f, 0.f, \
    -
    220  255.f, 235.f, 0.f, \
    -
    221  255.f, 255.f, 0.f, \
    -
    222  255.f, 0.f, 0.f, \
    -
    223  175.f, 255.f, 0.f, \
    -
    224  85.f, 255.f, 0.f, \
    -
    225  0.f, 255.f, 0.f, \
    -
    226  0.f, 255.f, 85.f, \
    -
    227  0.f, 255.f, 170.f, \
    -
    228  25.f, 25.f, 128.f, \
    -
    229  0.f, 85.f, 255.f, \
    -
    230  0.f, 170.f, 255.f, \
    -
    231  0.f, 212.5f, 255.f, \
    -
    232  0.f, 255.f, 255.f, \
    -
    233  255.f, 0.f, 0.f, \
    -
    234  255.f, 0.f, 255.f, \
    -
    235  238.f, 130.f, 238.f, \
    -
    236  138.f, 43.f, 226.f, \
    -
    237  75.f, 0.f, 130.f
    -
    238  const std::vector<float> POSE_BODY_23_COLORS_RENDER{POSE_BODY_23_COLORS_RENDER_GPU};
    -
    239 
    -
    240  // Constant Array Parameters
    -
    241  const std::array<float, (int)PoseModel::Size> POSE_CCN_DECREASE_FACTOR{
    -
    242  8.f, 8.f, 8.f, 8.f, 8.f, 8.f
    -
    243  };
    -
    244  const std::array<unsigned int, (int)PoseModel::Size> POSE_MAX_PEAKS{
    -
    245  POSE_MAX_PEOPLE, POSE_MAX_PEOPLE, POSE_MAX_PEOPLE, POSE_MAX_PEOPLE, POSE_MAX_PEOPLE, POSE_MAX_PEOPLE
    -
    246  };
    -
    247  const std::array<unsigned int, (int)PoseModel::Size> POSE_NUMBER_BODY_PARTS{
    -
    248  POSE_COCO_NUMBER_PARTS, POSE_MPI_NUMBER_PARTS, POSE_MPI_NUMBER_PARTS, POSE_BODY_18_NUMBER_PARTS, POSE_BODY_19_NUMBER_PARTS, POSE_BODY_23_NUMBER_PARTS
    -
    249  };
    -
    250  const std::array<std::vector<unsigned int>, (int)PoseModel::Size> POSE_BODY_PART_PAIRS{
    -
    251  POSE_COCO_PAIRS, POSE_MPI_PAIRS, POSE_MPI_PAIRS, POSE_BODY_18_PAIRS, POSE_BODY_19_PAIRS, POSE_BODY_23_PAIRS
    -
    252  };
    -
    253  const std::array<std::vector<unsigned int>, (int)PoseModel::Size> POSE_BODY_PART_PAIRS_RENDER{
    -
    254  POSE_COCO_PAIRS_RENDER, POSE_MPI_PAIRS, POSE_MPI_PAIRS, POSE_BODY_18_PAIRS_RENDER, POSE_BODY_19_PAIRS_RENDER, POSE_BODY_23_PAIRS_RENDER
    -
    255  };
    -
    256  const std::array<std::vector<unsigned int>, (int)PoseModel::Size> POSE_MAP_IDX{
    -
    257  POSE_COCO_MAP_IDX, POSE_MPI_MAP_IDX, POSE_MPI_MAP_IDX, POSE_BODY_18_MAP_IDX, POSE_BODY_19_MAP_IDX, POSE_BODY_23_MAP_IDX
    -
    258  };
    -
    259  const std::array<std::vector<float>, (int)PoseModel::Size> POSE_COLORS{
    -
    260  POSE_COCO_COLORS_RENDER,POSE_MPI_COLORS_RENDER, POSE_MPI_COLORS_RENDER, POSE_BODY_18_COLORS_RENDER, POSE_BODY_19_COLORS_RENDER, POSE_BODY_23_COLORS_RENDER
    -
    261  };
    -
    262  const std::array<std::string, (int)PoseModel::Size> POSE_PROTOTXT{
    -
    263  "pose/coco/pose_deploy_linevec.prototxt",
    -
    264  "pose/mpi/pose_deploy_linevec.prototxt",
    -
    265  "pose/mpi/pose_deploy_linevec_faster_4_stages.prototxt",
    -
    266  "pose/body_18/pose_deploy.prototxt",
    -
    267  "pose/body_19/pose_deploy.prototxt",
    -
    268  "pose/body_23/pose_deploy.prototxt"
    -
    269  };
    -
    270  const std::array<std::string, (int)PoseModel::Size> POSE_TRAINED_MODEL{
    -
    271  "pose/coco/pose_iter_440000.caffemodel",
    -
    272  "pose/mpi/pose_iter_160000.caffemodel",
    -
    273  "pose/mpi/pose_iter_160000.caffemodel",
    -
    274  "pose/body_18/pose_iter_XXXXXX.caffemodel",
    -
    275  "pose/body_19/pose_iter_XXXXXX.caffemodel",
    -
    276  "pose/body_23/pose_iter_XXXXXX.caffemodel"
    -
    277  };
    -
    278  // POSE_BODY_PART_MAPPING crashes on Windows at dynamic initialization, to avoid this crash:
    -
    279  // POSE_BODY_PART_MAPPING has been moved to poseParameters.cpp and getPoseBodyPartMapping() wraps it
    -
    280  // const std::array<std::map<unsigned int, std::string>, (int)PoseModel::Size> POSE_BODY_PART_MAPPING{
    -
    281  // POSE_COCO_BODY_PARTS, POSE_MPI_BODY_PARTS, POSE_MPI_BODY_PARTS
    -
    282  // };
    -
    283  const std::map<unsigned int, std::string>& getPoseBodyPartMapping(const PoseModel poseModel);
    -
    284 
    -
    285  // Default Model Parameters
    -
    286  // They might be modified on running time
    -
    287  const std::array<float, (int)PoseModel::Size> POSE_DEFAULT_NMS_THRESHOLD{
    -
    288  0.05f, 0.6f, 0.3f, 0.05f, 0.05f, 0.05f
    -
    289  };
    -
    290  const std::array<float, (int)PoseModel::Size> POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD{
    -
    291  0.95f, 0.95f, 0.95f, 0.95f, 0.95f, 0.95f
    -
    292  // 0.85f, 0.85f, 0.85f, 0.85f, 0.85f, 0.85f // Matlab version
    -
    293  };
    -
    294  const std::array<float, (int)PoseModel::Size> POSE_DEFAULT_CONNECT_INTER_THRESHOLD{
    -
    295  0.05f, 0.01f, 0.01f, 0.05f, 0.05f, 0.05f
    -
    296  };
    -
    297  const std::array<unsigned int, (int)PoseModel::Size> POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT{
    -
    298  3, 3, 3, 3, 3, 3
    -
    299  };
    -
    300  const std::array<float, (int)PoseModel::Size> POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE{
    -
    301  0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f
    -
    302  // 0.2f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f // Matlab version
    -
    303  };
    -
    304 
    -
    305  // Rendering parameters
    -
    306  const auto POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f;
    -
    307  const auto POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f;
    -
    308 
    -
    309  // Auxiliary functions
    -
    310  OP_API unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::string& string);
    -
    311  OP_API unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::vector<std::string>& strings);
    -
    312 }
    -
    313 
    -
    314 #endif // OPENPOSE_POSE_POSE_PARAMETERS_HPP
    +
    7 #include <openpose/pose/poseParametersRender.hpp>
    +
    8 
    +
    9 namespace op
    +
    10 {
    +
    11  // Constant Global Parameters
    +
    12  const auto POSE_MAX_PEOPLE = 96u;
    +
    13 
    +
    14  // Model functions
    +
    15  // POSE_BODY_PART_MAPPING on HPP crashes on Windows at dynamic initialization
    +
    16  OP_API const std::map<unsigned int, std::string>& getPoseBodyPartMapping(const PoseModel poseModel);
    +
    17  OP_API const std::string& getPoseProtoTxt(const PoseModel poseModel);
    +
    18  OP_API const std::string& getPoseTrainedModel(const PoseModel poseModel);
    +
    19  OP_API unsigned int getPoseNumberBodyParts(const PoseModel poseModel);
    +
    20  OP_API const std::vector<unsigned int>& getPosePartPairs(const PoseModel poseModel);
    +
    21  OP_API const std::vector<unsigned int>& getPoseMapIndex(const PoseModel poseModel);
    +
    22  OP_API unsigned int getPoseMaxPeaks(const PoseModel poseModel);
    +
    23  OP_API float getPoseNetDecreaseFactor(const PoseModel poseModel);
    +
    24  OP_API unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::string& string);
    +
    25  OP_API unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::vector<std::string>& strings);
    +
    26 
    +
    27  // Default NSM and body connector parameters
    +
    28  OP_API float getPoseDefaultNmsThreshold(const PoseModel poseModel);
    +
    29  OP_API float getPoseDefaultConnectInterMinAboveThreshold(const PoseModel poseModel);
    +
    30  OP_API float getPoseDefaultConnectInterThreshold(const PoseModel poseModel);
    +
    31  OP_API unsigned int getPoseDefaultMinSubsetCnt(const PoseModel poseModel);
    +
    32  OP_API float getPoseDefaultConnectMinSubsetScore(const PoseModel poseModel);
    +
    33 }
    +
    34 
    +
    35 #endif // OPENPOSE_POSE_POSE_PARAMETERS_HPP
    +
    OP_API float getPoseDefaultConnectMinSubsetScore(const PoseModel poseModel)
    -
    const unsigned int POSE_COCO_NUMBER_PARTS
    Definition: poseParameters.hpp:38
    -
    #define POSE_BODY_18_COLORS_RENDER_GPU
    Definition: poseParameters.hpp:131
    -
    const unsigned int POSE_BODY_18_NUMBER_PARTS
    Definition: poseParameters.hpp:126
    -
    const std::map< unsigned int, std::string > POSE_COCO_BODY_PARTS
    Definition: poseParameters.hpp:17
    -
    const std::array< float,(int) PoseModel::Size > POSE_DEFAULT_NMS_THRESHOLD
    Definition: poseParameters.hpp:287
    -
    const std::array< unsigned int,(int) PoseModel::Size > POSE_MAX_PEAKS
    Definition: poseParameters.hpp:244
    -
    #define POSE_BODY_23_PAIRS_RENDER_GPU
    Definition: poseParameters.hpp:211
    -
    const std::vector< unsigned int > POSE_BODY_23_PAIRS
    Definition: poseParameters.hpp:213
    -
    const std::vector< unsigned int > POSE_BODY_19_MAP_IDX
    Definition: poseParameters.hpp:157
    -
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParameters.hpp:306
    -
    const unsigned int POSE_BODY_23_NUMBER_PARTS
    Definition: poseParameters.hpp:209
    +
    OP_API const std::vector< unsigned int > & getPoseMapIndex(const PoseModel poseModel)
    +
    OP_API float getPoseDefaultConnectInterThreshold(const PoseModel poseModel)
    +
    OP_API const std::vector< unsigned int > & getPosePartPairs(const PoseModel poseModel)
    +
    OP_API unsigned int getPoseMaxPeaks(const PoseModel poseModel)
    OP_API unsigned int poseBodyPartMapStringToKey(const PoseModel poseModel, const std::string &string)
    PoseModel
    Definition: enumClasses.hpp:9
    -
    const std::map< unsigned int, std::string > & getPoseBodyPartMapping(const PoseModel poseModel)
    -
    #define POSE_BODY_23_COLORS_RENDER_GPU
    Definition: poseParameters.hpp:214
    -
    const std::array< std::string,(int) PoseModel::Size > POSE_TRAINED_MODEL
    Definition: poseParameters.hpp:270
    -
    const std::array< float,(int) PoseModel::Size > POSE_CCN_DECREASE_FACTOR
    Definition: poseParameters.hpp:241
    -
    const unsigned int POSE_MPI_NUMBER_PARTS
    Definition: poseParameters.hpp:82
    -
    const std::vector< float > POSE_MPI_COLORS_RENDER
    Definition: poseParameters.hpp:103
    +
    OP_API const std::string & getPoseProtoTxt(const PoseModel poseModel)
    +
    const auto POSE_MAX_PEOPLE
    Definition: poseParameters.hpp:12
    +
    OP_API unsigned int getPoseDefaultMinSubsetCnt(const PoseModel poseModel)
    +
    OP_API const std::map< unsigned int, std::string > & getPoseBodyPartMapping(const PoseModel poseModel)
    -
    #define POSE_BODY_19_COLORS_RENDER_GPU
    Definition: poseParameters.hpp:161
    -
    const std::vector< unsigned int > POSE_BODY_19_PAIRS_RENDER
    Definition: poseParameters.hpp:159
    -
    const std::vector< float > POSE_BODY_18_COLORS_RENDER
    Definition: poseParameters.hpp:132
    -
    const std::vector< unsigned int > POSE_BODY_18_MAP_IDX
    Definition: poseParameters.hpp:127
    -
    const unsigned int POSE_MAX_PEOPLE
    Definition: poseParameters.hpp:13
    -
    const std::array< std::vector< float >,(int) PoseModel::Size > POSE_COLORS
    Definition: poseParameters.hpp:259
    -
    const std::vector< float > POSE_COCO_COLORS_RENDER
    Definition: poseParameters.hpp:62
    -
    const std::vector< unsigned int > POSE_COCO_PAIRS_RENDER
    Definition: poseParameters.hpp:41
    -
    const std::vector< unsigned int > POSE_COCO_MAP_IDX
    Definition: poseParameters.hpp:39
    -
    #define POSE_COCO_COLORS_RENDER_GPU
    Definition: poseParameters.hpp:43
    -
    const std::map< unsigned int, std::string > POSE_BODY_19_BODY_PARTS
    Definition: poseParameters.hpp:134
    -
    const std::array< std::vector< unsigned int >,(int) PoseModel::Size > POSE_BODY_PART_PAIRS
    Definition: poseParameters.hpp:250
    -
    const std::vector< float > POSE_BODY_23_COLORS_RENDER
    Definition: poseParameters.hpp:238
    -
    const std::map< unsigned int, std::string > POSE_BODY_23_BODY_PARTS
    Definition: poseParameters.hpp:183
    -
    const std::array< float,(int) PoseModel::Size > POSE_DEFAULT_CONNECT_INTER_THRESHOLD
    Definition: poseParameters.hpp:294
    -
    const std::vector< unsigned int > POSE_BODY_19_PAIRS
    Definition: poseParameters.hpp:160
    -
    const std::vector< unsigned int > POSE_BODY_23_PAIRS_RENDER
    Definition: poseParameters.hpp:212
    -
    const std::array< float,(int) PoseModel::Size > POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE
    Definition: poseParameters.hpp:300
    -
    const std::vector< unsigned int > POSE_BODY_23_MAP_IDX
    Definition: poseParameters.hpp:210
    -
    const std::vector< unsigned int > POSE_MPI_MAP_IDX
    Definition: poseParameters.hpp:83
    -
    const std::array< unsigned int,(int) PoseModel::Size > POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT
    Definition: poseParameters.hpp:297
    -
    #define POSE_MPI_COLORS_RENDER_GPU
    Definition: poseParameters.hpp:87
    -
    const std::map< unsigned int, std::string > POSE_MPI_BODY_PARTS
    Definition: poseParameters.hpp:64
    -
    #define POSE_BODY_18_PAIRS_RENDER_GPU
    Definition: poseParameters.hpp:128
    -
    const std::array< std::string,(int) PoseModel::Size > POSE_PROTOTXT
    Definition: poseParameters.hpp:262
    -
    const std::array< std::vector< unsigned int >,(int) PoseModel::Size > POSE_BODY_PART_PAIRS_RENDER
    Definition: poseParameters.hpp:253
    -
    const unsigned int POSE_BODY_19_NUMBER_PARTS
    Definition: poseParameters.hpp:156
    -
    const std::vector< unsigned int > POSE_BODY_18_PAIRS_RENDER
    Definition: poseParameters.hpp:129
    -
    #define POSE_COCO_PAIRS_RENDER_GPU
    Definition: poseParameters.hpp:40
    +
    +
    OP_API float getPoseDefaultNmsThreshold(const PoseModel poseModel)
    +
    OP_API float getPoseDefaultConnectInterMinAboveThreshold(const PoseModel poseModel)
    +
    OP_API unsigned int getPoseNumberBodyParts(const PoseModel poseModel)
    #define OP_API
    Definition: macros.hpp:5
    -
    const std::vector< float > POSE_BODY_19_COLORS_RENDER
    Definition: poseParameters.hpp:181
    -
    const std::vector< unsigned int > POSE_MPI_PAIRS POSE_MPI_PAIRS_RENDER_GPU
    Definition: poseParameters.hpp:85
    -
    const std::vector< unsigned int > POSE_BODY_18_PAIRS
    Definition: poseParameters.hpp:130
    -
    -
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParameters.hpp:307
    -
    const std::vector< unsigned int > POSE_COCO_PAIRS
    Definition: poseParameters.hpp:42
    -
    const std::array< unsigned int,(int) PoseModel::Size > POSE_NUMBER_BODY_PARTS
    Definition: poseParameters.hpp:247
    -
    const std::array< float,(int) PoseModel::Size > POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD
    Definition: poseParameters.hpp:290
    -
    const std::array< std::vector< unsigned int >,(int) PoseModel::Size > POSE_MAP_IDX
    Definition: poseParameters.hpp:256
    -
    const std::map< unsigned int, std::string > POSE_BODY_18_BODY_PARTS
    Definition: poseParameters.hpp:105
    +
    OP_API float getPoseNetDecreaseFactor(const PoseModel poseModel)
    +
    OP_API const std::string & getPoseTrainedModel(const PoseModel poseModel)
    diff --git a/html/pose_parameters_render_8hpp.html b/html/pose_parameters_render_8hpp.html new file mode 100644 index 00000000..0a301701 --- /dev/null +++ b/html/pose_parameters_render_8hpp.html @@ -0,0 +1,416 @@ + + + + + + +OpenPose: /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParametersRender.hpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    OpenPose +  1.0.0rc2 +
    +
    OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
    +
    +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    + +
    +
    poseParametersRender.hpp File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Namespaces

     op
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define POSE_COCO_PAIRS_RENDER_GPU
     
    #define POSE_COCO_COLORS_RENDER_GPU
     
    #define POSE_MPI_PAIRS_RENDER_GPU
     
    #define POSE_MPI_COLORS_RENDER_GPU
     
    #define POSE_BODY_18_PAIRS_RENDER_GPU   POSE_COCO_PAIRS_RENDER_GPU
     
    #define POSE_BODY_18_COLORS_RENDER_GPU   POSE_COCO_COLORS_RENDER_GPU
     
    #define POSE_BODY_19_PAIRS_RENDER_GPU
     
    #define POSE_BODY_19_COLORS_RENDER_GPU
     
    #define POSE_BODY_23_PAIRS_RENDER_GPU
     
    #define POSE_BODY_23_COLORS_RENDER_GPU
     
    #define POSE_BODY_59_PAIRS_RENDER_GPU
     
    #define POSE_BODY_59_COLORS_RENDER_GPU
     
    + + + + + +

    +Functions

    OP_API const std::vector< float > & op::getPoseColors (const PoseModel poseModel)
     
    OP_API const std::vector
    +< unsigned int > & 
    op::getPoseBodyPartPairsRender (const PoseModel poseModel)
     
    + + + + + +

    +Variables

    const auto op::POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f
     
    const auto op::POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f
     
    +

    Macro Definition Documentation

    + +
    +
    + + + + +
    #define POSE_BODY_18_COLORS_RENDER_GPU   POSE_COCO_COLORS_RENDER_GPU
    +
    + +
    +
    + +
    +
    + + + + +
    #define POSE_BODY_18_PAIRS_RENDER_GPU   POSE_COCO_PAIRS_RENDER_GPU
    +
    + +
    +
    + +
    +
    + + + + +
    #define POSE_BODY_19_COLORS_RENDER_GPU
    +
    +Value:
    255.f, 0.f, 85.f, \
    +
    255.f, 0.f, 0.f, \
    +
    255.f, 85.f, 0.f, \
    +
    255.f, 170.f, 0.f, \
    +
    255.f, 255.f, 0.f, \
    +
    170.f, 255.f, 0.f, \
    +
    85.f, 255.f, 0.f, \
    +
    0.f, 255.f, 0.f, \
    +
    255.f, 0.f, 0.f, \
    +
    0.f, 255.f, 85.f, \
    +
    0.f, 255.f, 170.f, \
    +
    0.f, 255.f, 255.f, \
    +
    0.f, 170.f, 255.f, \
    +
    0.f, 85.f, 255.f, \
    +
    0.f, 0.f, 255.f, \
    +
    255.f, 0.f, 170.f, \
    +
    170.f, 0.f, 255.f, \
    +
    255.f, 0.f, 255.f, \
    +
    85.f, 0.f, 255.f
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_BODY_19_PAIRS_RENDER_GPU
    +
    +Value:
    { \
    +
    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 \
    +
    }
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_BODY_23_COLORS_RENDER_GPU
    +
    +Value:
    255.f, 0.f, 0.f, \
    +
    255.f, 55.f, 0.f, \
    +
    255.f, 110.f, 0.f, \
    +
    255.f, 165.f, 0.f, \
    +
    255.f, 215.f, 0.f, \
    +
    255.f, 235.f, 0.f, \
    +
    255.f, 255.f, 0.f, \
    +
    255.f, 0.f, 0.f, \
    +
    175.f, 255.f, 0.f, \
    +
    85.f, 255.f, 0.f, \
    +
    0.f, 255.f, 0.f, \
    +
    0.f, 255.f, 85.f, \
    +
    0.f, 255.f, 170.f, \
    +
    25.f, 25.f, 128.f, \
    +
    0.f, 85.f, 255.f, \
    +
    0.f, 170.f, 255.f, \
    +
    0.f, 212.5f, 255.f, \
    +
    0.f, 255.f, 255.f, \
    +
    255.f, 0.f, 0.f, \
    +
    255.f, 0.f, 255.f, \
    +
    238.f, 130.f, 238.f, \
    +
    138.f, 43.f, 226.f, \
    +
    75.f, 0.f, 130.f
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_BODY_23_PAIRS_RENDER_GPU
    +
    +Value:
    { \
    +
    0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,11,12,13,14,14,15,15,16,16,17, 0,18,18,19,18,21,19,20,21,22 \
    +
    }
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_BODY_59_COLORS_RENDER_GPU
    +
    + +
    +
    + +
    +
    + + + + +
    #define POSE_BODY_59_PAIRS_RENDER_GPU
    +
    +Value:
    { \
    +
    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, \
    +
    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, \
    +
    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 \
    +
    }
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_COCO_COLORS_RENDER_GPU
    +
    +Value:
    255.f, 0.f, 85.f, \
    +
    255.f, 0.f, 0.f, \
    +
    255.f, 85.f, 0.f, \
    +
    255.f, 170.f, 0.f, \
    +
    255.f, 255.f, 0.f, \
    +
    170.f, 255.f, 0.f, \
    +
    85.f, 255.f, 0.f, \
    +
    0.f, 255.f, 0.f, \
    +
    0.f, 255.f, 85.f, \
    +
    0.f, 255.f, 170.f, \
    +
    0.f, 255.f, 255.f, \
    +
    0.f, 170.f, 255.f, \
    +
    0.f, 85.f, 255.f, \
    +
    0.f, 0.f, 255.f, \
    +
    255.f, 0.f, 170.f, \
    +
    170.f, 0.f, 255.f, \
    +
    255.f, 0.f, 255.f, \
    +
    85.f, 0.f, 255.f
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_COCO_PAIRS_RENDER_GPU
    +
    +Value:
    { \
    +
    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 \
    +
    }
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_MPI_COLORS_RENDER_GPU
    +
    +Value:
    255.f, 0.f, 85.f, \
    +
    255.f, 0.f, 0.f, \
    +
    255.f, 85.f, 0.f, \
    +
    255.f, 170.f, 0.f, \
    +
    255.f, 255.f, 0.f, \
    +
    170.f, 255.f, 0.f, \
    +
    85.f, 255.f, 0.f, \
    +
    43.f, 255.f, 0.f, \
    +
    0.f, 255.f, 0.f, \
    +
    0.f, 255.f, 85.f, \
    +
    0.f, 255.f, 170.f, \
    +
    0.f, 255.f, 255.f, \
    +
    0.f, 170.f, 255.f, \
    +
    0.f, 85.f, 255.f, \
    +
    0.f, 0.f, 255.f
    +
    +
    +
    + +
    +
    + + + + +
    #define POSE_MPI_PAIRS_RENDER_GPU
    +
    +Value:
    { \
    +
    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 \
    +
    }
    +
    +
    +
    +
    +
    + + + + diff --git a/html/pose_parameters_render_8hpp.js b/html/pose_parameters_render_8hpp.js new file mode 100644 index 00000000..2dc14f2d --- /dev/null +++ b/html/pose_parameters_render_8hpp.js @@ -0,0 +1,19 @@ +var pose_parameters_render_8hpp = +[ + [ "POSE_BODY_18_COLORS_RENDER_GPU", "pose_parameters_render_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280", null ], + [ "POSE_BODY_18_PAIRS_RENDER_GPU", "pose_parameters_render_8hpp.html#a0d821946779eaea1be5996816c4ca6bd", null ], + [ "POSE_BODY_19_COLORS_RENDER_GPU", "pose_parameters_render_8hpp.html#a17cec2005928720d6da0e83ba26cca01", null ], + [ "POSE_BODY_19_PAIRS_RENDER_GPU", "pose_parameters_render_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1", null ], + [ "POSE_BODY_23_COLORS_RENDER_GPU", "pose_parameters_render_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54", null ], + [ "POSE_BODY_23_PAIRS_RENDER_GPU", "pose_parameters_render_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110", null ], + [ "POSE_BODY_59_COLORS_RENDER_GPU", "pose_parameters_render_8hpp.html#abcf4268a8395cd7d537e41327bd121d9", null ], + [ "POSE_BODY_59_PAIRS_RENDER_GPU", "pose_parameters_render_8hpp.html#a28c039598f94c77f8f977c862d6df856", null ], + [ "POSE_COCO_COLORS_RENDER_GPU", "pose_parameters_render_8hpp.html#a8b293ab02337be3f90218c5b824ece06", null ], + [ "POSE_COCO_PAIRS_RENDER_GPU", "pose_parameters_render_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322", null ], + [ "POSE_MPI_COLORS_RENDER_GPU", "pose_parameters_render_8hpp.html#a7fdd75b1478d65f11ebc77144662958c", null ], + [ "POSE_MPI_PAIRS_RENDER_GPU", "pose_parameters_render_8hpp.html#a7987426d997b6b040302d25fd07403ac", null ], + [ "getPoseBodyPartPairsRender", "pose_parameters_render_8hpp.html#a11bd7e53698eabe32b69b48708cf7b19", null ], + [ "getPoseColors", "pose_parameters_render_8hpp.html#abb49286241ba7a1d754b31dee333274a", null ], + [ "POSE_DEFAULT_ALPHA_HEAT_MAP", "pose_parameters_render_8hpp.html#af45cddacd69fff73a4ea4acbbbac43e0", null ], + [ "POSE_DEFAULT_ALPHA_KEYPOINT", "pose_parameters_render_8hpp.html#a21fcb98366f6ea8895fc7f527f232db5", null ] +]; \ No newline at end of file diff --git a/html/pose_parameters_render_8hpp_source.html b/html/pose_parameters_render_8hpp_source.html new file mode 100644 index 00000000..303208a7 --- /dev/null +++ b/html/pose_parameters_render_8hpp_source.html @@ -0,0 +1,296 @@ + + + + + + +OpenPose: /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/pose/poseParametersRender.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    OpenPose +  1.0.0rc2 +
    +
    OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
    +
    +
    + + + + + +
    +
    + +
    +
    +
    + +
    + + + + +
    + +
    + +
    +
    +
    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  // COCO
    +
    16  #define POSE_COCO_PAIRS_RENDER_GPU { \
    +
    17  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 \
    +
    18  }
    +
    19  #define POSE_COCO_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  0.f, 255.f, 85.f, \
    +
    29  0.f, 255.f, 170.f, \
    +
    30  0.f, 255.f, 255.f, \
    +
    31  0.f, 170.f, 255.f, \
    +
    32  0.f, 85.f, 255.f, \
    +
    33  0.f, 0.f, 255.f, \
    +
    34  255.f, 0.f, 170.f, \
    +
    35  170.f, 0.f, 255.f, \
    +
    36  255.f, 0.f, 255.f, \
    +
    37  85.f, 0.f, 255.f
    +
    38  // MPI
    +
    39  // MPI colors chosen such that they are closed to COCO colors
    +
    40  #define POSE_MPI_PAIRS_RENDER_GPU { \
    +
    41  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 \
    +
    42  }
    +
    43  #define POSE_MPI_COLORS_RENDER_GPU \
    +
    44  255.f, 0.f, 85.f, \
    +
    45  255.f, 0.f, 0.f, \
    +
    46  255.f, 85.f, 0.f, \
    +
    47  255.f, 170.f, 0.f, \
    +
    48  255.f, 255.f, 0.f, \
    +
    49  170.f, 255.f, 0.f, \
    +
    50  85.f, 255.f, 0.f, \
    +
    51  43.f, 255.f, 0.f, \
    +
    52  0.f, 255.f, 0.f, \
    +
    53  0.f, 255.f, 85.f, \
    +
    54  0.f, 255.f, 170.f, \
    +
    55  0.f, 255.f, 255.f, \
    +
    56  0.f, 170.f, 255.f, \
    +
    57  0.f, 85.f, 255.f, \
    +
    58  0.f, 0.f, 255.f
    +
    59  // BODY_18
    +
    60  #define POSE_BODY_18_PAIRS_RENDER_GPU POSE_COCO_PAIRS_RENDER_GPU
    +
    61  #define POSE_BODY_18_COLORS_RENDER_GPU POSE_COCO_COLORS_RENDER_GPU
    +
    62  // BODY_19
    +
    63  #define POSE_BODY_19_PAIRS_RENDER_GPU { \
    +
    64  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 \
    +
    65  }
    +
    66  #define POSE_BODY_19_COLORS_RENDER_GPU \
    +
    67  255.f, 0.f, 85.f, \
    +
    68  255.f, 0.f, 0.f, \
    +
    69  255.f, 85.f, 0.f, \
    +
    70  255.f, 170.f, 0.f, \
    +
    71  255.f, 255.f, 0.f, \
    +
    72  170.f, 255.f, 0.f, \
    +
    73  85.f, 255.f, 0.f, \
    +
    74  0.f, 255.f, 0.f, \
    +
    75  255.f, 0.f, 0.f, \
    +
    76  0.f, 255.f, 85.f, \
    +
    77  0.f, 255.f, 170.f, \
    +
    78  0.f, 255.f, 255.f, \
    +
    79  0.f, 170.f, 255.f, \
    +
    80  0.f, 85.f, 255.f, \
    +
    81  0.f, 0.f, 255.f, \
    +
    82  255.f, 0.f, 170.f, \
    +
    83  170.f, 0.f, 255.f, \
    +
    84  255.f, 0.f, 255.f, \
    +
    85  85.f, 0.f, 255.f
    +
    86  // BODY_23
    +
    87  #define POSE_BODY_23_PAIRS_RENDER_GPU { \
    +
    88  0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 0,7, 7,8, 7,13, 8,9, 9,10,10,11,11,12,13,14,14,15,15,16,16,17, 0,18,18,19,18,21,19,20,21,22 \
    +
    89  }
    +
    90  #define POSE_BODY_23_COLORS_RENDER_GPU \
    +
    91  255.f, 0.f, 0.f, \
    +
    92  255.f, 55.f, 0.f, \
    +
    93  255.f, 110.f, 0.f, \
    +
    94  255.f, 165.f, 0.f, \
    +
    95  255.f, 215.f, 0.f, \
    +
    96  255.f, 235.f, 0.f, \
    +
    97  255.f, 255.f, 0.f, \
    +
    98  255.f, 0.f, 0.f, \
    +
    99  175.f, 255.f, 0.f, \
    +
    100  85.f, 255.f, 0.f, \
    +
    101  0.f, 255.f, 0.f, \
    +
    102  0.f, 255.f, 85.f, \
    +
    103  0.f, 255.f, 170.f, \
    +
    104  25.f, 25.f, 128.f, \
    +
    105  0.f, 85.f, 255.f, \
    +
    106  0.f, 170.f, 255.f, \
    +
    107  0.f, 212.5f, 255.f, \
    +
    108  0.f, 255.f, 255.f, \
    +
    109  255.f, 0.f, 0.f, \
    +
    110  255.f, 0.f, 255.f, \
    +
    111  238.f, 130.f, 238.f, \
    +
    112  138.f, 43.f, 226.f, \
    +
    113  75.f, 0.f, 130.f
    +
    114  // BODY_59
    +
    115  #define POSE_BODY_59_PAIRS_RENDER_GPU { \
    +
    116  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, \
    +
    117  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, \
    +
    118  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 \
    +
    119  }
    +
    120  #define POSE_BODY_59_COLORS_RENDER_GPU \
    +
    121  255.f, 0.f, 85.f, \
    +
    122  255.f, 0.f, 0.f, \
    +
    123  255.f, 85.f, 0.f, \
    +
    124  255.f, 170.f, 0.f, \
    +
    125  255.f, 255.f, 0.f, \
    +
    126  170.f, 255.f, 0.f, \
    +
    127  85.f, 255.f, 0.f, \
    +
    128  0.f, 255.f, 0.f, \
    +
    129  255.f, 0.f, 0.f, \
    +
    130  0.f, 255.f, 85.f, \
    +
    131  0.f, 255.f, 170.f, \
    +
    132  0.f, 255.f, 255.f, \
    +
    133  0.f, 170.f, 255.f, \
    +
    134  0.f, 85.f, 255.f, \
    +
    135  0.f, 0.f, 255.f, \
    +
    136  255.f, 0.f, 170.f, \
    +
    137  170.f, 0.f, 255.f, \
    +
    138  255.f, 0.f, 255.f, \
    +
    139  85.f, 0.f, 255.f, \
    +
    140  \
    +
    141  255.f, 0.f, 85.f, \
    +
    142  255.f, 0.f, 0.f, \
    +
    143  255.f, 85.f, 0.f, \
    +
    144  255.f, 170.f, 0.f, \
    +
    145  255.f, 255.f, 0.f, \
    +
    146  170.f, 255.f, 0.f, \
    +
    147  85.f, 255.f, 0.f, \
    +
    148  0.f, 255.f, 0.f, \
    +
    149  255.f, 0.f, 0.f, \
    +
    150  0.f, 255.f, 85.f, \
    +
    151  0.f, 255.f, 170.f, \
    +
    152  0.f, 255.f, 255.f, \
    +
    153  0.f, 170.f, 255.f, \
    +
    154  0.f, 85.f, 255.f, \
    +
    155  0.f, 0.f, 255.f, \
    +
    156  255.f, 0.f, 170.f, \
    +
    157  170.f, 0.f, 255.f, \
    +
    158  255.f, 0.f, 255.f, \
    +
    159  85.f, 0.f, 255.f
    +
    160 
    +
    161  // Rendering functions
    +
    162  OP_API const std::vector<float>& getPoseColors(const PoseModel poseModel);
    +
    163  OP_API const std::vector<unsigned int>& getPoseBodyPartPairsRender(const PoseModel poseModel);
    +
    164 }
    +
    165 
    +
    166 #endif // OPENPOSE_POSE_POSE_PARAMETERS_RENDER_HPP
    + +
    OP_API const std::vector< unsigned int > & getPoseBodyPartPairsRender(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)
    + +
    #define OP_API
    Definition: macros.hpp:5
    +
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParametersRender.hpp:11
    +
    +
    + + + + diff --git a/html/render_pose_8hpp_source.html b/html/render_pose_8hpp_source.html index 56c7763c..abc51a35 100644 --- a/html/render_pose_8hpp_source.html +++ b/html/render_pose_8hpp_source.html @@ -117,35 +117,41 @@ $(document).ready(function(){initNavTree('render_pose_8hpp_source.html','');});
    8 
    9 namespace op
    10 {
    -
    11  OP_API void renderPoseKeypointsCpu(Array<float>& frameArray, const Array<float>& poseKeypoints, const PoseModel poseModel,
    -
    12  const float renderThreshold, const bool blendOriginalFrame = true);
    -
    13 
    -
    14  OP_API void renderPoseKeypointsGpu(float* framePtr, const PoseModel poseModel, const int numberPeople,
    -
    15  const Point<int>& frameSize, const float* const posePtr, const float renderThreshold,
    -
    16  const bool googlyEyes = false, const bool blendOriginalFrame = true,
    -
    17  const float alphaBlending = POSE_DEFAULT_ALPHA_KEYPOINT);
    -
    18 
    -
    19  OP_API void renderPoseHeatMapGpu(float* frame, const PoseModel poseModel, const Point<int>& frameSize,
    -
    20  const float* const heatmap, const Point<int>& heatmapSize, const float scaleToKeepRatio,
    -
    21  const int part, const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    -
    22 
    -
    23  OP_API void renderPoseHeatMapsGpu(float* frame, const PoseModel poseModel, const Point<int>& frameSize,
    -
    24  const float* const heatmap, const Point<int>& heatmapSize, const float scaleToKeepRatio,
    -
    25  const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    -
    26 
    -
    27  OP_API void renderPosePAFGpu(float* framePtr, const PoseModel poseModel, const Point<int>& frameSize,
    -
    28  const float* const heatmapPtr, const Point<int>& heatmapSize, const float scaleToKeepRatio,
    -
    29  const int part, const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    +
    11  OP_API void renderPoseKeypointsCpu(Array<float>& frameArray, const Array<float>& poseKeypoints,
    +
    12  const PoseModel poseModel, const float renderThreshold,
    +
    13  const bool blendOriginalFrame = true);
    +
    14 
    +
    15  OP_API void renderPoseKeypointsGpu(float* framePtr, const PoseModel poseModel, const int numberPeople,
    +
    16  const Point<int>& frameSize, const float* const posePtr,
    +
    17  const float renderThreshold, const bool googlyEyes = false,
    +
    18  const bool blendOriginalFrame = true,
    +
    19  const float alphaBlending = POSE_DEFAULT_ALPHA_KEYPOINT);
    +
    20 
    +
    21  OP_API void renderPoseHeatMapGpu(float* frame, const PoseModel poseModel, const Point<int>& frameSize,
    +
    22  const float* const heatmap, const Point<int>& heatmapSize,
    +
    23  const float scaleToKeepRatio, const int part,
    +
    24  const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    +
    25 
    +
    26  OP_API void renderPoseHeatMapsGpu(float* frame, const PoseModel poseModel, const Point<int>& frameSize,
    +
    27  const float* const heatmap, const Point<int>& heatmapSize,
    +
    28  const float scaleToKeepRatio,
    +
    29  const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    30 
    -
    31  OP_API void renderPosePAFsGpu(float* framePtr, const PoseModel poseModel, const Point<int>& frameSize,
    -
    32  const float* const heatmapPtr, const Point<int>& heatmapSize, const float scaleToKeepRatio,
    -
    33  const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    -
    34 }
    +
    31  OP_API void renderPosePAFGpu(float* framePtr, const PoseModel poseModel, const Point<int>& frameSize,
    +
    32  const float* const heatmapPtr, const Point<int>& heatmapSize,
    +
    33  const float scaleToKeepRatio, const int part,
    +
    34  const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    35 
    -
    36 #endif // OPENPOSE_POSE_RENDER_POSE_HPP
    +
    36  OP_API void renderPosePAFsGpu(float* framePtr, const PoseModel poseModel, const Point<int>& frameSize,
    +
    37  const float* const heatmapPtr, const Point<int>& heatmapSize,
    +
    38  const float scaleToKeepRatio,
    +
    39  const float alphaBlending = POSE_DEFAULT_ALPHA_HEAT_MAP);
    +
    40 }
    +
    41 
    +
    42 #endif // OPENPOSE_POSE_RENDER_POSE_HPP
    -
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParameters.hpp:306
    +
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParametersRender.hpp:10
    OP_API void renderPoseKeypointsCpu(Array< float > &frameArray, const Array< float > &poseKeypoints, const PoseModel poseModel, const float renderThreshold, const bool blendOriginalFrame=true)
    PoseModel
    Definition: enumClasses.hpp:9
    OP_API void renderPoseKeypointsGpu(float *framePtr, const PoseModel poseModel, const int numberPeople, const Point< int > &frameSize, const float *const posePtr, const float renderThreshold, const bool googlyEyes=false, const bool blendOriginalFrame=true, const float alphaBlending=POSE_DEFAULT_ALPHA_KEYPOINT)
    @@ -155,7 +161,7 @@ $(document).ready(function(){initNavTree('render_pose_8hpp_source.html','');});
    OP_API void renderPoseHeatMapGpu(float *frame, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatmap, const Point< int > &heatmapSize, const float scaleToKeepRatio, const int part, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
    OP_API void renderPoseHeatMapsGpu(float *frame, const PoseModel poseModel, const Point< int > &frameSize, const float *const heatmap, const Point< int > &heatmapSize, const float scaleToKeepRatio, const float alphaBlending=POSE_DEFAULT_ALPHA_HEAT_MAP)
    #define OP_API
    Definition: macros.hpp:5
    -
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParameters.hpp:307
    +
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParametersRender.hpp:11
    diff --git a/html/search/all_1.js b/html/search/all_1.js index 91286521..d2e34917 100644 --- a/html/search/all_1.js +++ b/html/search/all_1.js @@ -8,6 +8,7 @@ var searchData= ['body_5f18',['BODY_18',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fab0fd0573c626fcd55b70d4547328ad7d',1,'op']]], ['body_5f19',['BODY_19',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fae3ae2003e0e0458bdc49480fb19c876e',1,'op']]], ['body_5f23',['BODY_23',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fa003cc3795b0eeed2af2dfd34ed482794',1,'op']]], + ['body_5f59',['BODY_59',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fa68aa8b41e419d187d9f7daff5d65708f',1,'op']]], ['bodypartconnectorbase_2ehpp',['bodyPartConnectorBase.hpp',['../body_part_connector_base_8hpp.html',1,'']]], ['bodypartconnectorcaffe',['BodyPartConnectorCaffe',['../classop_1_1_body_part_connector_caffe.html',1,'op']]], ['bodypartconnectorcaffe',['BodyPartConnectorCaffe',['../classop_1_1_body_part_connector_caffe.html#a94e2364fa13ea79b2d6fd72c5db34765',1,'op::BodyPartConnectorCaffe']]], diff --git a/html/search/all_12.js b/html/search/all_12.js index dd73f71a..b63f82b1 100644 --- a/html/search/all_12.js +++ b/html/search/all_12.js @@ -48,7 +48,7 @@ var searchData= ['setworkeroutput',['setWorkerOutput',['../classop_1_1_wrapper.html#a3e9f8993c9a27a012671d671998aa15d',1,'op::Wrapper']]], ['setworkerpostprocessing',['setWorkerPostProcessing',['../classop_1_1_wrapper.html#a6f2cf45c8b571b99ee92114ba8462589',1,'op::Wrapper']]], ['shared_5fptr',['shared_ptr',['../classboost_1_1shared__ptr.html',1,'boost']]], - ['size',['size',['../classop_1_1_queue_base.html#a12cdec56bfe72e722ecc722774989d1b',1,'op::QueueBase::size()'],['../classop_1_1_hand_detector.html#a4d058446e66aff15d8702558fd256b73a6f6cb72d544962fa333e2e34ce64f719',1,'op::HandDetector::Size()'],['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fa6f6cb72d544962fa333e2e34ce64f719',1,'op::Size()'],['../namespaceop.html#a37c58b781e5bcd9fee67a7768afc5d0ea6f6cb72d544962fa333e2e34ce64f719',1,'op::Size()'],['../namespaceop.html#abc501c56c6cf6cf1989c84b1692cb774a6f6cb72d544962fa333e2e34ce64f719',1,'op::Size()']]], + ['size',['Size',['../classop_1_1_hand_detector.html#a4d058446e66aff15d8702558fd256b73a6f6cb72d544962fa333e2e34ce64f719',1,'op::HandDetector::Size()'],['../classop_1_1_queue_base.html#a12cdec56bfe72e722ecc722774989d1b',1,'op::QueueBase::size()'],['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fa6f6cb72d544962fa333e2e34ce64f719',1,'op::Size()'],['../namespaceop.html#a37c58b781e5bcd9fee67a7768afc5d0ea6f6cb72d544962fa333e2e34ce64f719',1,'op::Size()'],['../namespaceop.html#abc501c56c6cf6cf1989c84b1692cb774a6f6cb72d544962fa333e2e34ce64f719',1,'op::Size()']]], ['spelementtorender',['spElementToRender',['../classop_1_1_renderer.html#aca8ebf0c0a50b87f0be82afa090155a0',1,'op::Renderer']]], ['spgpumemory',['spGpuMemory',['../classop_1_1_gpu_renderer.html#a5d729aab549908c758953be742dd0115',1,'op::GpuRenderer']]], ['splitstring',['splitString',['../namespaceop.html#ae80a103d8a4308bc435342b3d31404c8',1,'op']]], diff --git a/html/search/all_6.js b/html/search/all_6.js index aa06bdb1..f16c4f1f 100644 --- a/html/search/all_6.js +++ b/html/search/all_6.js @@ -35,10 +35,24 @@ var searchData= ['getnumbercudathreadsandblocks',['getNumberCudaThreadsAndBlocks',['../namespaceop.html#a8b9860388a640472d25a1dacb007c675',1,'op']]], ['getnumberdimensions',['getNumberDimensions',['../classop_1_1_array.html#adeb008e878709bb5a51e26be55a5452d',1,'op::Array']]], ['getoutputblob',['getOutputBlob',['../classop_1_1_net_caffe.html#a8869d49723a0e94c990b1c4f95f00916',1,'op::NetCaffe']]], - ['getposebodypartmapping',['getPoseBodyPartMapping',['../namespaceop.html#a41a5430dc7296645934584b8ea0238d7',1,'op']]], + ['getposebodypartmapping',['getPoseBodyPartMapping',['../namespaceop.html#aab3de911b04b96c1850cc05c6947e184',1,'op']]], + ['getposebodypartpairsrender',['getPoseBodyPartPairsRender',['../namespaceop.html#a11bd7e53698eabe32b69b48708cf7b19',1,'op']]], + ['getposecolors',['getPoseColors',['../namespaceop.html#abb49286241ba7a1d754b31dee333274a',1,'op']]], + ['getposedefaultconnectinterminabovethreshold',['getPoseDefaultConnectInterMinAboveThreshold',['../namespaceop.html#a1b7d7061c819ee76328d5917ee009b1d',1,'op']]], + ['getposedefaultconnectinterthreshold',['getPoseDefaultConnectInterThreshold',['../namespaceop.html#a692472b562fba051964f9ddea07b97d7',1,'op']]], + ['getposedefaultconnectminsubsetscore',['getPoseDefaultConnectMinSubsetScore',['../namespaceop.html#a1f690bf083e250642144bf8e5d6e6d2c',1,'op']]], + ['getposedefaultminsubsetcnt',['getPoseDefaultMinSubsetCnt',['../namespaceop.html#af1ed202254520cd489723052d1f5a86d',1,'op']]], + ['getposedefaultnmsthreshold',['getPoseDefaultNmsThreshold',['../namespaceop.html#aa170c3107396e4d0e4214bb0c1b78f08',1,'op']]], ['getposegpuconstptr',['getPoseGpuConstPtr',['../classop_1_1_pose_extractor.html#a50f1a79f774b3cd9e9c0825669e8a154',1,'op::PoseExtractor::getPoseGpuConstPtr()'],['../classop_1_1_pose_extractor_caffe.html#a6982cb1a7203129610fe0959a45c81cf',1,'op::PoseExtractorCaffe::getPoseGpuConstPtr()']]], ['getposekeypoints',['getPoseKeypoints',['../classop_1_1_pose_extractor.html#a63432a905e6fcd9be8d9464a80a7fd52',1,'op::PoseExtractor']]], + ['getposemapindex',['getPoseMapIndex',['../namespaceop.html#a84d87ec0e4ed3cf75a37ce99d0d25ef7',1,'op']]], + ['getposemaxpeaks',['getPoseMaxPeaks',['../namespaceop.html#ab48e314ecd19f55f664b14da1d83312f',1,'op']]], + ['getposenetdecreasefactor',['getPoseNetDecreaseFactor',['../namespaceop.html#ad7ca8d89f9045481075902c8bd98b8f4',1,'op']]], + ['getposenumberbodyparts',['getPoseNumberBodyParts',['../namespaceop.html#a54a6c42a42a0a7e539061f5e30abb4bc',1,'op']]], + ['getposepartpairs',['getPosePartPairs',['../namespaceop.html#a307b2c7b1506415a4ba44590fe8a7258',1,'op']]], + ['getposeprototxt',['getPoseProtoTxt',['../namespaceop.html#ae0730c6559abdb976423ecf81eac4620',1,'op']]], ['getposescores',['getPoseScores',['../classop_1_1_pose_extractor.html#a99e7a656f0bace55402a187e9326ded1',1,'op::PoseExtractor']]], + ['getposetrainedmodel',['getPoseTrainedModel',['../namespaceop.html#ade70b024ee461ae04e7233bf3937c5c6',1,'op']]], ['getprioritythreshold',['getPriorityThreshold',['../classop_1_1_configure_log.html#a416a31ba539e8780480a0a48bcc9b95a',1,'op::ConfigureLog']]], ['getptr',['getPtr',['../classop_1_1_array.html#af4715967fd2b028a97fd30257e697275',1,'op::Array']]], ['getrawframe',['getRawFrame',['../classop_1_1_producer.html#a39f52d80ac4146c82ed12aae0f05478e',1,'op::Producer::getRawFrame()'],['../classop_1_1_video_capture_reader.html#af57cc02f86ee0c29ccb83f1f7c37bec2',1,'op::VideoCaptureReader::getRawFrame()']]], diff --git a/html/search/all_d.js b/html/search/all_d.js index 1ce19a9d..ee50c0cd 100644 --- a/html/search/all_d.js +++ b/html/search/all_d.js @@ -12,13 +12,14 @@ var searchData= ['netoutputresolution',['NetOutputResolution',['../namespaceop.html#af72fe4ed32846c12f41b049d3d0e1bdaa668a2bc599fd07445eae0730d043c96d',1,'op']]], ['netoutputsize',['netOutputSize',['../structop_1_1_datum.html#ac734d4262a5a7892c6d4094cdd2bcc7c',1,'op::Datum']]], ['nmsbase_2ehpp',['nmsBase.hpp',['../nms_base_8hpp.html',1,'']]], - ['nmscaffe',['NmsCaffe',['../classop_1_1_nms_caffe.html#afb808d9a264ce50664f8641e477d9e2d',1,'op::NmsCaffe']]], ['nmscaffe',['NmsCaffe',['../classop_1_1_nms_caffe.html',1,'op']]], + ['nmscaffe',['NmsCaffe',['../classop_1_1_nms_caffe.html#afb808d9a264ce50664f8641e477d9e2d',1,'op::NmsCaffe']]], ['nmscaffe_2ehpp',['nmsCaffe.hpp',['../nms_caffe_8hpp.html',1,'']]], ['nmscpu',['nmsCpu',['../namespaceop.html#ae2fb8a239d937b884913caa5bcbc2357',1,'op']]], ['nmsgpu',['nmsGpu',['../namespaceop.html#a38079f817e21c1b47c88704174b6abc7',1,'op']]], ['nmsthreshold',['NMSThreshold',['../namespaceop.html#a37c58b781e5bcd9fee67a7768afc5d0ea83be5d7f6f29b19cf24f7393551c0439',1,'op']]], ['none',['None',['../namespaceop.html#afce557f02e337e16150d00bdf72ec033a6adf97f83acf6453d4a6a4b1070f3754',1,'op::None()'],['../namespaceop.html#a54b73745852c270cfd891eed0f6f2332a6adf97f83acf6453d4a6a4b1070f3754',1,'op::None()'],['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a6adf97f83acf6453d4a6a4b1070f3754',1,'op::None()']]], ['nooutput',['NoOutput',['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a828d496739024f4af00df1e277d96ebd',1,'op']]], - ['normal',['Normal',['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a960b44c579bc2f6818d2daaf9e4c16f0',1,'op']]] + ['normal',['Normal',['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a960b44c579bc2f6818d2daaf9e4c16f0',1,'op']]], + ['noscale',['NoScale',['../namespaceop.html#af72fe4ed32846c12f41b049d3d0e1bdaa6089ccf7c3fe93a62745e51200419c60',1,'op']]] ]; diff --git a/html/search/all_f.js b/html/search/all_f.js index d7c94196..68715e15 100644 --- a/html/search/all_f.js +++ b/html/search/all_f.js @@ -15,67 +15,27 @@ var searchData= ['pointercontainergreater',['PointerContainerGreater',['../classop_1_1_pointer_container_greater.html',1,'op']]], ['pointercontainerless',['PointerContainerLess',['../classop_1_1_pointer_container_less.html',1,'op']]], ['pop',['pop',['../classop_1_1_queue_base.html#a5b28915cc58e040aca673bdfdf7c8be3',1,'op::QueueBase']]], - ['pose_5fbody_5f18_5fbody_5fparts',['POSE_BODY_18_BODY_PARTS',['../namespaceop.html#a4596b1c0cc8f654025d6c5c4c43a92b5',1,'op']]], - ['pose_5fbody_5f18_5fcolors_5frender',['POSE_BODY_18_COLORS_RENDER',['../namespaceop.html#abc8fdb41aa395c46430373facfbd554c',1,'op']]], - ['pose_5fbody_5f18_5fcolors_5frender_5fgpu',['POSE_BODY_18_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280',1,'poseParameters.hpp']]], - ['pose_5fbody_5f18_5fmap_5fidx',['POSE_BODY_18_MAP_IDX',['../namespaceop.html#a3ce26fa0a7373e612d130d1657ac7d16',1,'op']]], - ['pose_5fbody_5f18_5fnumber_5fparts',['POSE_BODY_18_NUMBER_PARTS',['../namespaceop.html#a1508c5fa871a1da61a2b740a9c5e2df1',1,'op']]], - ['pose_5fbody_5f18_5fpairs',['POSE_BODY_18_PAIRS',['../namespaceop.html#a360d95ba9769e4cb5cfc7aa2a2bab927',1,'op']]], - ['pose_5fbody_5f18_5fpairs_5frender',['POSE_BODY_18_PAIRS_RENDER',['../namespaceop.html#a8bbf4f3e7a4739c4a44faff8d2c7ada9',1,'op']]], - ['pose_5fbody_5f18_5fpairs_5frender_5fgpu',['POSE_BODY_18_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a0d821946779eaea1be5996816c4ca6bd',1,'poseParameters.hpp']]], - ['pose_5fbody_5f19_5fbody_5fparts',['POSE_BODY_19_BODY_PARTS',['../namespaceop.html#a7af31bad1c8e2f89c8e3eaea9b1c654c',1,'op']]], - ['pose_5fbody_5f19_5fcolors_5frender',['POSE_BODY_19_COLORS_RENDER',['../namespaceop.html#acea3456a45f673bd479b817caca9567a',1,'op']]], - ['pose_5fbody_5f19_5fcolors_5frender_5fgpu',['POSE_BODY_19_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a17cec2005928720d6da0e83ba26cca01',1,'poseParameters.hpp']]], - ['pose_5fbody_5f19_5fmap_5fidx',['POSE_BODY_19_MAP_IDX',['../namespaceop.html#a62ee3fdd0dfb13209926711937899b8e',1,'op']]], - ['pose_5fbody_5f19_5fnumber_5fparts',['POSE_BODY_19_NUMBER_PARTS',['../namespaceop.html#a9a089b86a0cb8dfbf81501de2ec10b07',1,'op']]], - ['pose_5fbody_5f19_5fpairs',['POSE_BODY_19_PAIRS',['../namespaceop.html#a550c78ab4e4e1d31194d65445fa12b94',1,'op']]], - ['pose_5fbody_5f19_5fpairs_5frender',['POSE_BODY_19_PAIRS_RENDER',['../namespaceop.html#a2d9c72a62d012a21fd647d238784bd0b',1,'op']]], - ['pose_5fbody_5f19_5fpairs_5frender_5fgpu',['POSE_BODY_19_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1',1,'poseParameters.hpp']]], - ['pose_5fbody_5f23_5fbody_5fparts',['POSE_BODY_23_BODY_PARTS',['../namespaceop.html#a417991b82e2e14e8dc90a09e4facef19',1,'op']]], - ['pose_5fbody_5f23_5fcolors_5frender',['POSE_BODY_23_COLORS_RENDER',['../namespaceop.html#aa5fe1c898b53e3f7736ad9037571edaf',1,'op']]], - ['pose_5fbody_5f23_5fcolors_5frender_5fgpu',['POSE_BODY_23_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54',1,'poseParameters.hpp']]], - ['pose_5fbody_5f23_5fmap_5fidx',['POSE_BODY_23_MAP_IDX',['../namespaceop.html#af15beef165379754507c429962130965',1,'op']]], - ['pose_5fbody_5f23_5fnumber_5fparts',['POSE_BODY_23_NUMBER_PARTS',['../namespaceop.html#ad49ac3147773460e2d0bd95c0c6004e0',1,'op']]], - ['pose_5fbody_5f23_5fpairs',['POSE_BODY_23_PAIRS',['../namespaceop.html#a5f72bc3d372f33c5b095335a687030e7',1,'op']]], - ['pose_5fbody_5f23_5fpairs_5frender',['POSE_BODY_23_PAIRS_RENDER',['../namespaceop.html#a0ea1d13b5a9b47ba2534aec20ab39335',1,'op']]], - ['pose_5fbody_5f23_5fpairs_5frender_5fgpu',['POSE_BODY_23_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110',1,'poseParameters.hpp']]], - ['pose_5fbody_5fpart_5fpairs',['POSE_BODY_PART_PAIRS',['../namespaceop.html#a5efd2c1cd059608982d7ff66ed1a606f',1,'op']]], - ['pose_5fbody_5fpart_5fpairs_5frender',['POSE_BODY_PART_PAIRS_RENDER',['../namespaceop.html#aa95149b7c176de2ec33a0093c8e24a36',1,'op']]], - ['pose_5fccn_5fdecrease_5ffactor',['POSE_CCN_DECREASE_FACTOR',['../namespaceop.html#a84b4b00bb40c0c3a4cce7eed5978f047',1,'op']]], - ['pose_5fcoco_5fbody_5fparts',['POSE_COCO_BODY_PARTS',['../namespaceop.html#a1007a541c7af1a5e1e15475b8c4cec3b',1,'op']]], - ['pose_5fcoco_5fcolors_5frender',['POSE_COCO_COLORS_RENDER',['../namespaceop.html#a93a4ee242c33f626ff146643bb8971bd',1,'op']]], - ['pose_5fcoco_5fcolors_5frender_5fgpu',['POSE_COCO_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a8b293ab02337be3f90218c5b824ece06',1,'poseParameters.hpp']]], - ['pose_5fcoco_5fmap_5fidx',['POSE_COCO_MAP_IDX',['../namespaceop.html#a674110c186802f7df02ad7822a885542',1,'op']]], - ['pose_5fcoco_5fnumber_5fparts',['POSE_COCO_NUMBER_PARTS',['../namespaceop.html#a4dad15b160be5343298d80f4d83a6150',1,'op']]], - ['pose_5fcoco_5fpairs',['POSE_COCO_PAIRS',['../namespaceop.html#a67518f0a66cb3ee382b88a999e4f20b8',1,'op']]], - ['pose_5fcoco_5fpairs_5frender',['POSE_COCO_PAIRS_RENDER',['../namespaceop.html#ae8d324a5c49dcbfd1b6f820608f5a292',1,'op']]], - ['pose_5fcoco_5fpairs_5frender_5fgpu',['POSE_COCO_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322',1,'poseParameters.hpp']]], - ['pose_5fcolors',['POSE_COLORS',['../namespaceop.html#aefbe109a859cc12a9a06f607e61d8dba',1,'op']]], + ['pose_5fbody_5f18_5fcolors_5frender_5fgpu',['POSE_BODY_18_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f18_5fpairs_5frender_5fgpu',['POSE_BODY_18_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a0d821946779eaea1be5996816c4ca6bd',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f19_5fcolors_5frender_5fgpu',['POSE_BODY_19_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a17cec2005928720d6da0e83ba26cca01',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f19_5fpairs_5frender_5fgpu',['POSE_BODY_19_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f23_5fcolors_5frender_5fgpu',['POSE_BODY_23_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f23_5fpairs_5frender_5fgpu',['POSE_BODY_23_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f59_5fcolors_5frender_5fgpu',['POSE_BODY_59_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#abcf4268a8395cd7d537e41327bd121d9',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f59_5fpairs_5frender_5fgpu',['POSE_BODY_59_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a28c039598f94c77f8f977c862d6df856',1,'poseParametersRender.hpp']]], + ['pose_5fcoco_5fcolors_5frender_5fgpu',['POSE_COCO_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a8b293ab02337be3f90218c5b824ece06',1,'poseParametersRender.hpp']]], + ['pose_5fcoco_5fpairs_5frender_5fgpu',['POSE_COCO_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322',1,'poseParametersRender.hpp']]], ['pose_5fdefault_5falpha_5fheat_5fmap',['POSE_DEFAULT_ALPHA_HEAT_MAP',['../namespaceop.html#af45cddacd69fff73a4ea4acbbbac43e0',1,'op']]], ['pose_5fdefault_5falpha_5fkeypoint',['POSE_DEFAULT_ALPHA_KEYPOINT',['../namespaceop.html#a21fcb98366f6ea8895fc7f527f232db5',1,'op']]], - ['pose_5fdefault_5fconnect_5finter_5fmin_5fabove_5fthreshold',['POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD',['../namespaceop.html#a029c14582c63e33a9b7350bb374527c8',1,'op']]], - ['pose_5fdefault_5fconnect_5finter_5fthreshold',['POSE_DEFAULT_CONNECT_INTER_THRESHOLD',['../namespaceop.html#a02de45e0a3df20b593d9b1b79a96f20c',1,'op']]], - ['pose_5fdefault_5fconnect_5fmin_5fsubset_5fcnt',['POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT',['../namespaceop.html#a8b6edeb3f39ac581317c10e48e6729ad',1,'op']]], - ['pose_5fdefault_5fconnect_5fmin_5fsubset_5fscore',['POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE',['../namespaceop.html#a600643a9a3f46d6a4cab58943e059d57',1,'op']]], - ['pose_5fdefault_5fnms_5fthreshold',['POSE_DEFAULT_NMS_THRESHOLD',['../namespaceop.html#af5bcc4a300e5d6f2572ba2b955c2c992',1,'op']]], - ['pose_5fmap_5fidx',['POSE_MAP_IDX',['../namespaceop.html#a8ce48a4305cac872140ef4eb3d8c6896',1,'op']]], - ['pose_5fmax_5fpeaks',['POSE_MAX_PEAKS',['../namespaceop.html#a91d47f70c39fdf167d46ea6b4361209b',1,'op']]], - ['pose_5fmax_5fpeople',['POSE_MAX_PEOPLE',['../namespaceop.html#a4ce7d2037ec2a189cd284d34726c2d49',1,'op']]], - ['pose_5fmpi_5fbody_5fparts',['POSE_MPI_BODY_PARTS',['../namespaceop.html#a67936cc61d129d2262546534b2c7cd30',1,'op']]], - ['pose_5fmpi_5fcolors_5frender',['POSE_MPI_COLORS_RENDER',['../namespaceop.html#a9e87deaa37c301fac10af492469bcc86',1,'op']]], - ['pose_5fmpi_5fcolors_5frender_5fgpu',['POSE_MPI_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a7fdd75b1478d65f11ebc77144662958c',1,'poseParameters.hpp']]], - ['pose_5fmpi_5fmap_5fidx',['POSE_MPI_MAP_IDX',['../namespaceop.html#a46dc266a61a0b0061563cb9c6359cb71',1,'op']]], - ['pose_5fmpi_5fnumber_5fparts',['POSE_MPI_NUMBER_PARTS',['../namespaceop.html#ad8ed879d7e9d7bb73c0da7650ce934da',1,'op']]], - ['pose_5fmpi_5fpairs_5frender_5fgpu',['POSE_MPI_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a7987426d997b6b040302d25fd07403ac',1,'POSE_MPI_PAIRS_RENDER_GPU(): poseParameters.hpp'],['../namespaceop.html#aba7025c2e941605b2f5d70ce6a37f0e5',1,'op::POSE_MPI_PAIRS_RENDER_GPU()']]], - ['pose_5fnumber_5fbody_5fparts',['POSE_NUMBER_BODY_PARTS',['../namespaceop.html#a4dd1047c27e639d21f830f97017b5e44',1,'op']]], - ['pose_5fprototxt',['POSE_PROTOTXT',['../namespaceop.html#a2d63d4b60789b52bb8524b7596cb73a7',1,'op']]], - ['pose_5ftrained_5fmodel',['POSE_TRAINED_MODEL',['../namespaceop.html#ad964ad6758567f7244d134599e8cb04b',1,'op']]], + ['pose_5fmax_5fpeople',['POSE_MAX_PEOPLE',['../namespaceop.html#a522d4552d2aeabe367f4d3bf371e6b3e',1,'op']]], + ['pose_5fmpi_5fcolors_5frender_5fgpu',['POSE_MPI_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a7fdd75b1478d65f11ebc77144662958c',1,'poseParametersRender.hpp']]], + ['pose_5fmpi_5fpairs_5frender_5fgpu',['POSE_MPI_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a7987426d997b6b040302d25fd07403ac',1,'poseParametersRender.hpp']]], ['posebodypartmapstringtokey',['poseBodyPartMapStringToKey',['../namespaceop.html#a3df938ef93037c534c5d342720d5fb70',1,'op::poseBodyPartMapStringToKey(const PoseModel poseModel, const std::string &string)'],['../namespaceop.html#aacf6e688031bb116e4878b811e8dbc23',1,'op::poseBodyPartMapStringToKey(const PoseModel poseModel, const std::vector< std::string > &strings)']]], ['posecpurenderer',['PoseCpuRenderer',['../classop_1_1_pose_cpu_renderer.html',1,'op']]], ['posecpurenderer',['PoseCpuRenderer',['../classop_1_1_pose_cpu_renderer.html#a8b5c83bbf076b949b1209261f25d170d',1,'op::PoseCpuRenderer']]], ['posecpurenderer_2ehpp',['poseCpuRenderer.hpp',['../pose_cpu_renderer_8hpp.html',1,'']]], - ['poseextractor',['PoseExtractor',['../classop_1_1_pose_extractor.html',1,'op']]], ['poseextractor',['PoseExtractor',['../classop_1_1_pose_extractor.html#a3b88d13440d182925701386549b7a61f',1,'op::PoseExtractor']]], + ['poseextractor',['PoseExtractor',['../classop_1_1_pose_extractor.html',1,'op']]], ['poseextractor_2ehpp',['poseExtractor.hpp',['../pose_extractor_8hpp.html',1,'']]], ['poseextractorcaffe',['PoseExtractorCaffe',['../classop_1_1_pose_extractor_caffe.html#adb9510d859f0e179358d03e78ec22b0c',1,'op::PoseExtractorCaffe']]], ['poseextractorcaffe',['PoseExtractorCaffe',['../classop_1_1_pose_extractor_caffe.html',1,'op']]], @@ -88,19 +48,20 @@ var searchData= ['posekeypoints',['poseKeypoints',['../structop_1_1_datum.html#a6d629b1f6f7b958fe4cf2ef4cdf57c5b',1,'op::Datum']]], ['posemodel',['poseModel',['../structop_1_1_wrapper_struct_pose.html#a35147b6fb9e300d79b71637793053a1b',1,'op::WrapperStructPose::poseModel()'],['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261f',1,'op::PoseModel()']]], ['poseparameters_2ehpp',['poseParameters.hpp',['../pose_parameters_8hpp.html',1,'']]], + ['poseparametersrender_2ehpp',['poseParametersRender.hpp',['../pose_parameters_render_8hpp.html',1,'']]], ['poseproperty',['PoseProperty',['../namespaceop.html#a37c58b781e5bcd9fee67a7768afc5d0e',1,'op']]], - ['poserenderer',['PoseRenderer',['../classop_1_1_pose_renderer.html',1,'op']]], ['poserenderer',['PoseRenderer',['../classop_1_1_pose_renderer.html#a1dfd34d42fa69913a9702e0a0ebcd04e',1,'op::PoseRenderer']]], + ['poserenderer',['PoseRenderer',['../classop_1_1_pose_renderer.html',1,'op']]], ['poserenderer_2ehpp',['poseRenderer.hpp',['../pose_renderer_8hpp.html',1,'']]], ['posescores',['poseScores',['../structop_1_1_datum.html#afb117821de7aff9ac3c219ef3bbc0c14',1,'op::Datum']]], ['printaveragedtimemseveryxiterations',['printAveragedTimeMsEveryXIterations',['../classop_1_1_profiler.html#a1192952d076f52b884b32fcd496df2ec',1,'op::Profiler']]], ['printaveragedtimemsoniterationx',['printAveragedTimeMsOnIterationX',['../classop_1_1_profiler.html#a58b930a54a98bbc91af074395852da76',1,'op::Profiler']]], ['priority',['Priority',['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14',1,'op']]], - ['priorityqueue',['PriorityQueue',['../classop_1_1_priority_queue.html',1,'op']]], ['priorityqueue',['PriorityQueue',['../classop_1_1_priority_queue.html#acecdd3c5789942777652b66d08578d93',1,'op::PriorityQueue']]], + ['priorityqueue',['PriorityQueue',['../classop_1_1_priority_queue.html',1,'op']]], ['priorityqueue_2ehpp',['priorityQueue.hpp',['../priority_queue_8hpp.html',1,'']]], - ['producer',['Producer',['../classop_1_1_producer.html#a4fe2921798031db39fef934848a23c82',1,'op::Producer']]], ['producer',['Producer',['../classop_1_1_producer.html',1,'op']]], + ['producer',['Producer',['../classop_1_1_producer.html#a4fe2921798031db39fef934848a23c82',1,'op::Producer']]], ['producer_2ehpp',['producer.hpp',['../producer_8hpp.html',1,'']]], ['producerfpsmode',['ProducerFpsMode',['../namespaceop.html#ac0230b669b296920c0cfc41b7587268f',1,'op']]], ['producerproperty',['ProducerProperty',['../namespaceop.html#abc501c56c6cf6cf1989c84b1692cb774',1,'op']]], diff --git a/html/search/defines_5.js b/html/search/defines_5.js index 0cc6e9b5..7b16d968 100644 --- a/html/search/defines_5.js +++ b/html/search/defines_5.js @@ -1,13 +1,15 @@ var searchData= [ - ['pose_5fbody_5f18_5fcolors_5frender_5fgpu',['POSE_BODY_18_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280',1,'poseParameters.hpp']]], - ['pose_5fbody_5f18_5fpairs_5frender_5fgpu',['POSE_BODY_18_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a0d821946779eaea1be5996816c4ca6bd',1,'poseParameters.hpp']]], - ['pose_5fbody_5f19_5fcolors_5frender_5fgpu',['POSE_BODY_19_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a17cec2005928720d6da0e83ba26cca01',1,'poseParameters.hpp']]], - ['pose_5fbody_5f19_5fpairs_5frender_5fgpu',['POSE_BODY_19_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1',1,'poseParameters.hpp']]], - ['pose_5fbody_5f23_5fcolors_5frender_5fgpu',['POSE_BODY_23_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54',1,'poseParameters.hpp']]], - ['pose_5fbody_5f23_5fpairs_5frender_5fgpu',['POSE_BODY_23_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110',1,'poseParameters.hpp']]], - ['pose_5fcoco_5fcolors_5frender_5fgpu',['POSE_COCO_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a8b293ab02337be3f90218c5b824ece06',1,'poseParameters.hpp']]], - ['pose_5fcoco_5fpairs_5frender_5fgpu',['POSE_COCO_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322',1,'poseParameters.hpp']]], - ['pose_5fmpi_5fcolors_5frender_5fgpu',['POSE_MPI_COLORS_RENDER_GPU',['../pose_parameters_8hpp.html#a7fdd75b1478d65f11ebc77144662958c',1,'poseParameters.hpp']]], - ['pose_5fmpi_5fpairs_5frender_5fgpu',['POSE_MPI_PAIRS_RENDER_GPU',['../pose_parameters_8hpp.html#a7987426d997b6b040302d25fd07403ac',1,'poseParameters.hpp']]] + ['pose_5fbody_5f18_5fcolors_5frender_5fgpu',['POSE_BODY_18_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a6e17f6ddfcedd5b314d356d30bbf4280',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f18_5fpairs_5frender_5fgpu',['POSE_BODY_18_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a0d821946779eaea1be5996816c4ca6bd',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f19_5fcolors_5frender_5fgpu',['POSE_BODY_19_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a17cec2005928720d6da0e83ba26cca01',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f19_5fpairs_5frender_5fgpu',['POSE_BODY_19_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a497bfbf7fddb6e960565ec70bb6b2ad1',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f23_5fcolors_5frender_5fgpu',['POSE_BODY_23_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#aeb1e2dd8178c15024e372185e2e5cf54',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f23_5fpairs_5frender_5fgpu',['POSE_BODY_23_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a5f3db3bbb18fe8d978661f3c5417c110',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f59_5fcolors_5frender_5fgpu',['POSE_BODY_59_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#abcf4268a8395cd7d537e41327bd121d9',1,'poseParametersRender.hpp']]], + ['pose_5fbody_5f59_5fpairs_5frender_5fgpu',['POSE_BODY_59_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a28c039598f94c77f8f977c862d6df856',1,'poseParametersRender.hpp']]], + ['pose_5fcoco_5fcolors_5frender_5fgpu',['POSE_COCO_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a8b293ab02337be3f90218c5b824ece06',1,'poseParametersRender.hpp']]], + ['pose_5fcoco_5fpairs_5frender_5fgpu',['POSE_COCO_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a5afab27fbbebc71b8753a20dd6c9a322',1,'poseParametersRender.hpp']]], + ['pose_5fmpi_5fcolors_5frender_5fgpu',['POSE_MPI_COLORS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a7fdd75b1478d65f11ebc77144662958c',1,'poseParametersRender.hpp']]], + ['pose_5fmpi_5fpairs_5frender_5fgpu',['POSE_MPI_PAIRS_RENDER_GPU',['../pose_parameters_render_8hpp.html#a7987426d997b6b040302d25fd07403ac',1,'poseParametersRender.hpp']]] ]; diff --git a/html/search/enumvalues_1.js b/html/search/enumvalues_1.js index 620d78e0..c15d7503 100644 --- a/html/search/enumvalues_1.js +++ b/html/search/enumvalues_1.js @@ -3,5 +3,6 @@ var searchData= ['background',['Background',['../namespaceop.html#a1c3dbc214e7552f7ef9cc753ee97226baa9ded1e5ce5d75814730bb4caaf49419',1,'op']]], ['body_5f18',['BODY_18',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fab0fd0573c626fcd55b70d4547328ad7d',1,'op']]], ['body_5f19',['BODY_19',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fae3ae2003e0e0458bdc49480fb19c876e',1,'op']]], - ['body_5f23',['BODY_23',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fa003cc3795b0eeed2af2dfd34ed482794',1,'op']]] + ['body_5f23',['BODY_23',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fa003cc3795b0eeed2af2dfd34ed482794',1,'op']]], + ['body_5f59',['BODY_59',['../namespaceop.html#af5b3ce2a5d3de87cb31b9b67e96f261fa68aa8b41e419d187d9f7daff5d65708f',1,'op']]] ]; diff --git a/html/search/enumvalues_a.js b/html/search/enumvalues_a.js index 3eafcbc5..619ca2a6 100644 --- a/html/search/enumvalues_a.js +++ b/html/search/enumvalues_a.js @@ -4,5 +4,6 @@ var searchData= ['nmsthreshold',['NMSThreshold',['../namespaceop.html#a37c58b781e5bcd9fee67a7768afc5d0ea83be5d7f6f29b19cf24f7393551c0439',1,'op']]], ['none',['None',['../namespaceop.html#afce557f02e337e16150d00bdf72ec033a6adf97f83acf6453d4a6a4b1070f3754',1,'op::None()'],['../namespaceop.html#a54b73745852c270cfd891eed0f6f2332a6adf97f83acf6453d4a6a4b1070f3754',1,'op::None()'],['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a6adf97f83acf6453d4a6a4b1070f3754',1,'op::None()']]], ['nooutput',['NoOutput',['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a828d496739024f4af00df1e277d96ebd',1,'op']]], - ['normal',['Normal',['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a960b44c579bc2f6818d2daaf9e4c16f0',1,'op']]] + ['normal',['Normal',['../namespaceop.html#adc43fb9031418e7f8112816a3b535d14a960b44c579bc2f6818d2daaf9e4c16f0',1,'op']]], + ['noscale',['NoScale',['../namespaceop.html#af72fe4ed32846c12f41b049d3d0e1bdaa6089ccf7c3fe93a62745e51200419c60',1,'op']]] ]; diff --git a/html/search/files_e.js b/html/search/files_e.js index b5ca68d2..5e873e84 100644 --- a/html/search/files_e.js +++ b/html/search/files_e.js @@ -8,6 +8,7 @@ var searchData= ['poseextractorcaffe_2ehpp',['poseExtractorCaffe.hpp',['../pose_extractor_caffe_8hpp.html',1,'']]], ['posegpurenderer_2ehpp',['poseGpuRenderer.hpp',['../pose_gpu_renderer_8hpp.html',1,'']]], ['poseparameters_2ehpp',['poseParameters.hpp',['../pose_parameters_8hpp.html',1,'']]], + ['poseparametersrender_2ehpp',['poseParametersRender.hpp',['../pose_parameters_render_8hpp.html',1,'']]], ['poserenderer_2ehpp',['poseRenderer.hpp',['../pose_renderer_8hpp.html',1,'']]], ['priorityqueue_2ehpp',['priorityQueue.hpp',['../priority_queue_8hpp.html',1,'']]], ['producer_2ehpp',['producer.hpp',['../producer_8hpp.html',1,'']]], diff --git a/html/search/functions_6.js b/html/search/functions_6.js index d10c6ad9..e79c033b 100644 --- a/html/search/functions_6.js +++ b/html/search/functions_6.js @@ -35,10 +35,24 @@ var searchData= ['getnumbercudathreadsandblocks',['getNumberCudaThreadsAndBlocks',['../namespaceop.html#a8b9860388a640472d25a1dacb007c675',1,'op']]], ['getnumberdimensions',['getNumberDimensions',['../classop_1_1_array.html#adeb008e878709bb5a51e26be55a5452d',1,'op::Array']]], ['getoutputblob',['getOutputBlob',['../classop_1_1_net_caffe.html#a8869d49723a0e94c990b1c4f95f00916',1,'op::NetCaffe']]], - ['getposebodypartmapping',['getPoseBodyPartMapping',['../namespaceop.html#a41a5430dc7296645934584b8ea0238d7',1,'op']]], + ['getposebodypartmapping',['getPoseBodyPartMapping',['../namespaceop.html#aab3de911b04b96c1850cc05c6947e184',1,'op']]], + ['getposebodypartpairsrender',['getPoseBodyPartPairsRender',['../namespaceop.html#a11bd7e53698eabe32b69b48708cf7b19',1,'op']]], + ['getposecolors',['getPoseColors',['../namespaceop.html#abb49286241ba7a1d754b31dee333274a',1,'op']]], + ['getposedefaultconnectinterminabovethreshold',['getPoseDefaultConnectInterMinAboveThreshold',['../namespaceop.html#a1b7d7061c819ee76328d5917ee009b1d',1,'op']]], + ['getposedefaultconnectinterthreshold',['getPoseDefaultConnectInterThreshold',['../namespaceop.html#a692472b562fba051964f9ddea07b97d7',1,'op']]], + ['getposedefaultconnectminsubsetscore',['getPoseDefaultConnectMinSubsetScore',['../namespaceop.html#a1f690bf083e250642144bf8e5d6e6d2c',1,'op']]], + ['getposedefaultminsubsetcnt',['getPoseDefaultMinSubsetCnt',['../namespaceop.html#af1ed202254520cd489723052d1f5a86d',1,'op']]], + ['getposedefaultnmsthreshold',['getPoseDefaultNmsThreshold',['../namespaceop.html#aa170c3107396e4d0e4214bb0c1b78f08',1,'op']]], ['getposegpuconstptr',['getPoseGpuConstPtr',['../classop_1_1_pose_extractor.html#a50f1a79f774b3cd9e9c0825669e8a154',1,'op::PoseExtractor::getPoseGpuConstPtr()'],['../classop_1_1_pose_extractor_caffe.html#a6982cb1a7203129610fe0959a45c81cf',1,'op::PoseExtractorCaffe::getPoseGpuConstPtr()']]], ['getposekeypoints',['getPoseKeypoints',['../classop_1_1_pose_extractor.html#a63432a905e6fcd9be8d9464a80a7fd52',1,'op::PoseExtractor']]], + ['getposemapindex',['getPoseMapIndex',['../namespaceop.html#a84d87ec0e4ed3cf75a37ce99d0d25ef7',1,'op']]], + ['getposemaxpeaks',['getPoseMaxPeaks',['../namespaceop.html#ab48e314ecd19f55f664b14da1d83312f',1,'op']]], + ['getposenetdecreasefactor',['getPoseNetDecreaseFactor',['../namespaceop.html#ad7ca8d89f9045481075902c8bd98b8f4',1,'op']]], + ['getposenumberbodyparts',['getPoseNumberBodyParts',['../namespaceop.html#a54a6c42a42a0a7e539061f5e30abb4bc',1,'op']]], + ['getposepartpairs',['getPosePartPairs',['../namespaceop.html#a307b2c7b1506415a4ba44590fe8a7258',1,'op']]], + ['getposeprototxt',['getPoseProtoTxt',['../namespaceop.html#ae0730c6559abdb976423ecf81eac4620',1,'op']]], ['getposescores',['getPoseScores',['../classop_1_1_pose_extractor.html#a99e7a656f0bace55402a187e9326ded1',1,'op::PoseExtractor']]], + ['getposetrainedmodel',['getPoseTrainedModel',['../namespaceop.html#ade70b024ee461ae04e7233bf3937c5c6',1,'op']]], ['getprioritythreshold',['getPriorityThreshold',['../classop_1_1_configure_log.html#a416a31ba539e8780480a0a48bcc9b95a',1,'op::ConfigureLog']]], ['getptr',['getPtr',['../classop_1_1_array.html#af4715967fd2b028a97fd30257e697275',1,'op::Array']]], ['getrawframe',['getRawFrame',['../classop_1_1_producer.html#a39f52d80ac4146c82ed12aae0f05478e',1,'op::Producer::getRawFrame()'],['../classop_1_1_video_capture_reader.html#af57cc02f86ee0c29ccb83f1f7c37bec2',1,'op::VideoCaptureReader::getRawFrame()']]], diff --git a/html/search/variables_d.js b/html/search/variables_d.js index 96cb9700..d08761e1 100644 --- a/html/search/variables_d.js +++ b/html/search/variables_d.js @@ -1,51 +1,8 @@ var searchData= [ - ['pose_5fbody_5f18_5fbody_5fparts',['POSE_BODY_18_BODY_PARTS',['../namespaceop.html#a4596b1c0cc8f654025d6c5c4c43a92b5',1,'op']]], - ['pose_5fbody_5f18_5fcolors_5frender',['POSE_BODY_18_COLORS_RENDER',['../namespaceop.html#abc8fdb41aa395c46430373facfbd554c',1,'op']]], - ['pose_5fbody_5f18_5fmap_5fidx',['POSE_BODY_18_MAP_IDX',['../namespaceop.html#a3ce26fa0a7373e612d130d1657ac7d16',1,'op']]], - ['pose_5fbody_5f18_5fnumber_5fparts',['POSE_BODY_18_NUMBER_PARTS',['../namespaceop.html#a1508c5fa871a1da61a2b740a9c5e2df1',1,'op']]], - ['pose_5fbody_5f18_5fpairs',['POSE_BODY_18_PAIRS',['../namespaceop.html#a360d95ba9769e4cb5cfc7aa2a2bab927',1,'op']]], - ['pose_5fbody_5f18_5fpairs_5frender',['POSE_BODY_18_PAIRS_RENDER',['../namespaceop.html#a8bbf4f3e7a4739c4a44faff8d2c7ada9',1,'op']]], - ['pose_5fbody_5f19_5fbody_5fparts',['POSE_BODY_19_BODY_PARTS',['../namespaceop.html#a7af31bad1c8e2f89c8e3eaea9b1c654c',1,'op']]], - ['pose_5fbody_5f19_5fcolors_5frender',['POSE_BODY_19_COLORS_RENDER',['../namespaceop.html#acea3456a45f673bd479b817caca9567a',1,'op']]], - ['pose_5fbody_5f19_5fmap_5fidx',['POSE_BODY_19_MAP_IDX',['../namespaceop.html#a62ee3fdd0dfb13209926711937899b8e',1,'op']]], - ['pose_5fbody_5f19_5fnumber_5fparts',['POSE_BODY_19_NUMBER_PARTS',['../namespaceop.html#a9a089b86a0cb8dfbf81501de2ec10b07',1,'op']]], - ['pose_5fbody_5f19_5fpairs',['POSE_BODY_19_PAIRS',['../namespaceop.html#a550c78ab4e4e1d31194d65445fa12b94',1,'op']]], - ['pose_5fbody_5f19_5fpairs_5frender',['POSE_BODY_19_PAIRS_RENDER',['../namespaceop.html#a2d9c72a62d012a21fd647d238784bd0b',1,'op']]], - ['pose_5fbody_5f23_5fbody_5fparts',['POSE_BODY_23_BODY_PARTS',['../namespaceop.html#a417991b82e2e14e8dc90a09e4facef19',1,'op']]], - ['pose_5fbody_5f23_5fcolors_5frender',['POSE_BODY_23_COLORS_RENDER',['../namespaceop.html#aa5fe1c898b53e3f7736ad9037571edaf',1,'op']]], - ['pose_5fbody_5f23_5fmap_5fidx',['POSE_BODY_23_MAP_IDX',['../namespaceop.html#af15beef165379754507c429962130965',1,'op']]], - ['pose_5fbody_5f23_5fnumber_5fparts',['POSE_BODY_23_NUMBER_PARTS',['../namespaceop.html#ad49ac3147773460e2d0bd95c0c6004e0',1,'op']]], - ['pose_5fbody_5f23_5fpairs',['POSE_BODY_23_PAIRS',['../namespaceop.html#a5f72bc3d372f33c5b095335a687030e7',1,'op']]], - ['pose_5fbody_5f23_5fpairs_5frender',['POSE_BODY_23_PAIRS_RENDER',['../namespaceop.html#a0ea1d13b5a9b47ba2534aec20ab39335',1,'op']]], - ['pose_5fbody_5fpart_5fpairs',['POSE_BODY_PART_PAIRS',['../namespaceop.html#a5efd2c1cd059608982d7ff66ed1a606f',1,'op']]], - ['pose_5fbody_5fpart_5fpairs_5frender',['POSE_BODY_PART_PAIRS_RENDER',['../namespaceop.html#aa95149b7c176de2ec33a0093c8e24a36',1,'op']]], - ['pose_5fccn_5fdecrease_5ffactor',['POSE_CCN_DECREASE_FACTOR',['../namespaceop.html#a84b4b00bb40c0c3a4cce7eed5978f047',1,'op']]], - ['pose_5fcoco_5fbody_5fparts',['POSE_COCO_BODY_PARTS',['../namespaceop.html#a1007a541c7af1a5e1e15475b8c4cec3b',1,'op']]], - ['pose_5fcoco_5fcolors_5frender',['POSE_COCO_COLORS_RENDER',['../namespaceop.html#a93a4ee242c33f626ff146643bb8971bd',1,'op']]], - ['pose_5fcoco_5fmap_5fidx',['POSE_COCO_MAP_IDX',['../namespaceop.html#a674110c186802f7df02ad7822a885542',1,'op']]], - ['pose_5fcoco_5fnumber_5fparts',['POSE_COCO_NUMBER_PARTS',['../namespaceop.html#a4dad15b160be5343298d80f4d83a6150',1,'op']]], - ['pose_5fcoco_5fpairs',['POSE_COCO_PAIRS',['../namespaceop.html#a67518f0a66cb3ee382b88a999e4f20b8',1,'op']]], - ['pose_5fcoco_5fpairs_5frender',['POSE_COCO_PAIRS_RENDER',['../namespaceop.html#ae8d324a5c49dcbfd1b6f820608f5a292',1,'op']]], - ['pose_5fcolors',['POSE_COLORS',['../namespaceop.html#aefbe109a859cc12a9a06f607e61d8dba',1,'op']]], ['pose_5fdefault_5falpha_5fheat_5fmap',['POSE_DEFAULT_ALPHA_HEAT_MAP',['../namespaceop.html#af45cddacd69fff73a4ea4acbbbac43e0',1,'op']]], ['pose_5fdefault_5falpha_5fkeypoint',['POSE_DEFAULT_ALPHA_KEYPOINT',['../namespaceop.html#a21fcb98366f6ea8895fc7f527f232db5',1,'op']]], - ['pose_5fdefault_5fconnect_5finter_5fmin_5fabove_5fthreshold',['POSE_DEFAULT_CONNECT_INTER_MIN_ABOVE_THRESHOLD',['../namespaceop.html#a029c14582c63e33a9b7350bb374527c8',1,'op']]], - ['pose_5fdefault_5fconnect_5finter_5fthreshold',['POSE_DEFAULT_CONNECT_INTER_THRESHOLD',['../namespaceop.html#a02de45e0a3df20b593d9b1b79a96f20c',1,'op']]], - ['pose_5fdefault_5fconnect_5fmin_5fsubset_5fcnt',['POSE_DEFAULT_CONNECT_MIN_SUBSET_CNT',['../namespaceop.html#a8b6edeb3f39ac581317c10e48e6729ad',1,'op']]], - ['pose_5fdefault_5fconnect_5fmin_5fsubset_5fscore',['POSE_DEFAULT_CONNECT_MIN_SUBSET_SCORE',['../namespaceop.html#a600643a9a3f46d6a4cab58943e059d57',1,'op']]], - ['pose_5fdefault_5fnms_5fthreshold',['POSE_DEFAULT_NMS_THRESHOLD',['../namespaceop.html#af5bcc4a300e5d6f2572ba2b955c2c992',1,'op']]], - ['pose_5fmap_5fidx',['POSE_MAP_IDX',['../namespaceop.html#a8ce48a4305cac872140ef4eb3d8c6896',1,'op']]], - ['pose_5fmax_5fpeaks',['POSE_MAX_PEAKS',['../namespaceop.html#a91d47f70c39fdf167d46ea6b4361209b',1,'op']]], - ['pose_5fmax_5fpeople',['POSE_MAX_PEOPLE',['../namespaceop.html#a4ce7d2037ec2a189cd284d34726c2d49',1,'op']]], - ['pose_5fmpi_5fbody_5fparts',['POSE_MPI_BODY_PARTS',['../namespaceop.html#a67936cc61d129d2262546534b2c7cd30',1,'op']]], - ['pose_5fmpi_5fcolors_5frender',['POSE_MPI_COLORS_RENDER',['../namespaceop.html#a9e87deaa37c301fac10af492469bcc86',1,'op']]], - ['pose_5fmpi_5fmap_5fidx',['POSE_MPI_MAP_IDX',['../namespaceop.html#a46dc266a61a0b0061563cb9c6359cb71',1,'op']]], - ['pose_5fmpi_5fnumber_5fparts',['POSE_MPI_NUMBER_PARTS',['../namespaceop.html#ad8ed879d7e9d7bb73c0da7650ce934da',1,'op']]], - ['pose_5fmpi_5fpairs_5frender_5fgpu',['POSE_MPI_PAIRS_RENDER_GPU',['../namespaceop.html#aba7025c2e941605b2f5d70ce6a37f0e5',1,'op']]], - ['pose_5fnumber_5fbody_5fparts',['POSE_NUMBER_BODY_PARTS',['../namespaceop.html#a4dd1047c27e639d21f830f97017b5e44',1,'op']]], - ['pose_5fprototxt',['POSE_PROTOTXT',['../namespaceop.html#a2d63d4b60789b52bb8524b7596cb73a7',1,'op']]], - ['pose_5ftrained_5fmodel',['POSE_TRAINED_MODEL',['../namespaceop.html#ad964ad6758567f7244d134599e8cb04b',1,'op']]], + ['pose_5fmax_5fpeople',['POSE_MAX_PEOPLE',['../namespaceop.html#a522d4552d2aeabe367f4d3bf371e6b3e',1,'op']]], ['poseheatmaps',['poseHeatMaps',['../structop_1_1_datum.html#a5429e97e0ab9b0e2209a3947af668381',1,'op::Datum']]], ['poseids',['poseIds',['../structop_1_1_datum.html#aba90dccffb5a830296231bd430c4766c',1,'op::Datum']]], ['posekeypoints',['poseKeypoints',['../structop_1_1_datum.html#a6d629b1f6f7b958fe4cf2ef4cdf57c5b',1,'op::Datum']]], diff --git a/html/wrapper_8hpp_source.html b/html/wrapper_8hpp_source.html index d56b8dd3..7829ab9f 100644 --- a/html/wrapper_8hpp_source.html +++ b/html/wrapper_8hpp_source.html @@ -198,1075 +198,1106 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    204  private:
    205  const ThreadManagerMode mThreadManagerMode;
    206  const std::shared_ptr<std::pair<std::atomic<bool>, std::atomic<int>>> spVideoSeek;
    -
    207  ThreadManager<std::shared_ptr<TDatums>> mThreadManager;
    -
    208  bool mUserInputWsOnNewThread;
    -
    209  bool mUserPostProcessingWsOnNewThread;
    -
    210  bool mUserOutputWsOnNewThread;
    -
    211  unsigned long long mThreadId;
    -
    212  bool mMultiThreadEnabled;
    -
    213  // Workers
    -
    214  std::vector<TWorker> mUserInputWs;
    -
    215  TWorker wDatumProducer;
    -
    216  TWorker spWIdGenerator;
    -
    217  TWorker spWScaleAndSizeExtractor;
    -
    218  TWorker spWCvMatToOpInput;
    -
    219  TWorker spWCvMatToOpOutput;
    -
    220  std::vector<std::vector<TWorker>> spWPoses;
    -
    221  std::vector<TWorker> mPostProcessingWs;
    -
    222  std::vector<TWorker> mUserPostProcessingWs;
    -
    223  std::vector<TWorker> mOutputWs;
    -
    224  TWorker spWGui;
    -
    225  std::vector<TWorker> mUserOutputWs;
    -
    226 
    -
    233  void reset();
    -
    234 
    -
    241  void configureThreadManager();
    -
    242 
    -
    250  unsigned long long threadIdPP();
    -
    251 
    -
    252  DELETE_COPY(Wrapper);
    -
    253  };
    -
    254 }
    -
    255 
    +
    207  bool mConfigured;
    +
    208  ThreadManager<std::shared_ptr<TDatums>> mThreadManager;
    +
    209  bool mUserInputWsOnNewThread;
    +
    210  bool mUserPostProcessingWsOnNewThread;
    +
    211  bool mUserOutputWsOnNewThread;
    +
    212  unsigned long long mThreadId;
    +
    213  bool mMultiThreadEnabled;
    +
    214  // Workers
    +
    215  std::vector<TWorker> mUserInputWs;
    +
    216  TWorker wDatumProducer;
    +
    217  TWorker spWIdGenerator;
    +
    218  TWorker spWScaleAndSizeExtractor;
    +
    219  TWorker spWCvMatToOpInput;
    +
    220  TWorker spWCvMatToOpOutput;
    +
    221  std::vector<std::vector<TWorker>> spWPoses;
    +
    222  std::vector<TWorker> mPostProcessingWs;
    +
    223  std::vector<TWorker> mUserPostProcessingWs;
    +
    224  std::vector<TWorker> mOutputWs;
    +
    225  TWorker spWGui;
    +
    226  std::vector<TWorker> mUserOutputWs;
    +
    227 
    +
    234  void reset();
    +
    235 
    +
    242  void configureThreadManager();
    +
    243 
    +
    251  unsigned long long threadIdPP();
    +
    252 
    +
    253  DELETE_COPY(Wrapper);
    +
    254  };
    +
    255 }
    256 
    257 
    258 
    259 
    -
    260 // Implementation
    -
    261 #include <openpose/core/headers.hpp>
    -
    262 #include <openpose/face/headers.hpp>
    -
    263 #include <openpose/filestream/headers.hpp>
    -
    264 #include <openpose/gui/headers.hpp>
    -
    265 #include <openpose/hand/headers.hpp>
    -
    266 #include <openpose/pose/headers.hpp>
    -
    267 #include <openpose/producer/headers.hpp>
    -
    268 #include <openpose/experimental/tracking/headers.hpp>
    -
    269 #include <openpose/utilities/cuda.hpp>
    -
    270 #include <openpose/utilities/fileSystem.hpp>
    -
    271 #include <openpose/utilities/standard.hpp>
    -
    272 namespace op
    -
    273 {
    -
    274  template<typename TDatums, typename TWorker, typename TQueue>
    -
    275  Wrapper<TDatums, TWorker, TQueue>::Wrapper(const ThreadManagerMode threadManagerMode) :
    -
    276  mThreadManagerMode{threadManagerMode},
    -
    277  spVideoSeek{std::make_shared<std::pair<std::atomic<bool>, std::atomic<int>>>()},
    -
    278  mThreadManager{threadManagerMode},
    -
    279  mMultiThreadEnabled{true}
    -
    280  {
    -
    281  try
    -
    282  {
    -
    283  // It cannot be directly included in the constructor (compiler error for copying std::atomic)
    -
    284  spVideoSeek->first = false;
    -
    285  spVideoSeek->second = 0;
    -
    286  }
    -
    287  catch (const std::exception& e)
    -
    288  {
    -
    289  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    290  }
    -
    291  }
    -
    292 
    -
    293  template<typename TDatums, typename TWorker, typename TQueue>
    -
    294  Wrapper<TDatums, TWorker, TQueue>::~Wrapper()
    -
    295  {
    -
    296  try
    -
    297  {
    -
    298  stop();
    -
    299  reset();
    -
    300  }
    -
    301  catch (const std::exception& e)
    -
    302  {
    -
    303  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    304  }
    -
    305  }
    -
    306 
    -
    307  template<typename TDatums, typename TWorker, typename TQueue>
    -
    308  void Wrapper<TDatums, TWorker, TQueue>::disableMultiThreading()
    -
    309  {
    -
    310  try
    -
    311  {
    -
    312  mMultiThreadEnabled = false;
    -
    313  }
    -
    314  catch (const std::exception& e)
    -
    315  {
    -
    316  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    317  }
    -
    318  }
    -
    319 
    -
    320  template<typename TDatums, typename TWorker, typename TQueue>
    -
    321  void Wrapper<TDatums, TWorker, TQueue>::setWorkerInput(const TWorker& worker, const bool workerOnNewThread)
    -
    322  {
    -
    323  try
    -
    324  {
    -
    325  mUserInputWs.clear();
    -
    326  if (worker == nullptr)
    -
    327  error("Your worker is a nullptr.", __LINE__, __FILE__, __FUNCTION__);
    -
    328  mUserInputWs.emplace_back(worker);
    -
    329  mUserInputWsOnNewThread = {workerOnNewThread};
    -
    330  }
    -
    331  catch (const std::exception& e)
    -
    332  {
    -
    333  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    334  }
    -
    335  }
    -
    336 
    -
    337  template<typename TDatums, typename TWorker, typename TQueue>
    -
    338  void Wrapper<TDatums, TWorker, TQueue>::setWorkerPostProcessing(const TWorker& worker,
    -
    339  const bool workerOnNewThread)
    -
    340  {
    -
    341  try
    -
    342  {
    -
    343  mUserPostProcessingWs.clear();
    -
    344  if (worker == nullptr)
    -
    345  error("Your worker is a nullptr.", __LINE__, __FILE__, __FUNCTION__);
    -
    346  mUserPostProcessingWs.emplace_back(worker);
    -
    347  mUserPostProcessingWsOnNewThread = {workerOnNewThread};
    -
    348  }
    -
    349  catch (const std::exception& e)
    -
    350  {
    -
    351  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    352  }
    -
    353  }
    -
    354 
    -
    355  template<typename TDatums, typename TWorker, typename TQueue>
    -
    356  void Wrapper<TDatums, TWorker, TQueue>::setWorkerOutput(const TWorker& worker, const bool workerOnNewThread)
    -
    357  {
    -
    358  try
    -
    359  {
    -
    360  mUserOutputWs.clear();
    -
    361  if (worker == nullptr)
    -
    362  error("Your worker is a nullptr.", __LINE__, __FILE__, __FUNCTION__);
    -
    363  mUserOutputWs.emplace_back(worker);
    -
    364  mUserOutputWsOnNewThread = {workerOnNewThread};
    -
    365  }
    -
    366  catch (const std::exception& e)
    -
    367  {
    -
    368  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    369  }
    -
    370  }
    -
    371 
    -
    372  template<typename TDatums, typename TWorker, typename TQueue>
    -
    373  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    -
    374  const WrapperStructInput& wrapperStructInput,
    -
    375  const WrapperStructOutput& wrapperStructOutput)
    -
    376  {
    -
    377  try
    -
    378  {
    -
    379  configure(wrapperStructPose, WrapperStructFace{}, WrapperStructHand{},
    -
    380  wrapperStructInput, wrapperStructOutput);
    -
    381  }
    -
    382  catch (const std::exception& e)
    -
    383  {
    -
    384  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    385  }
    -
    386  }
    -
    387 
    -
    388  template<typename TDatums, typename TWorker, typename TQueue>
    -
    389  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    -
    390  const WrapperStructFace& wrapperStructFace,
    -
    391  const WrapperStructInput& wrapperStructInput,
    -
    392  const WrapperStructOutput& wrapperStructOutput)
    -
    393  {
    -
    394  try
    -
    395  {
    -
    396  configure(wrapperStructPose, wrapperStructFace, WrapperStructHand{},
    -
    397  wrapperStructInput, wrapperStructOutput);
    -
    398  }
    -
    399  catch (const std::exception& e)
    -
    400  {
    -
    401  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    402  }
    -
    403  }
    -
    404 
    -
    405  template<typename TDatums, typename TWorker, typename TQueue>
    -
    406  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    -
    407  const WrapperStructHand& wrapperStructHand,
    -
    408  const WrapperStructInput& wrapperStructInput,
    -
    409  const WrapperStructOutput& wrapperStructOutput)
    -
    410  {
    -
    411  try
    -
    412  {
    -
    413  configure(wrapperStructPose, WrapperStructFace{}, wrapperStructHand,
    -
    414  wrapperStructInput, wrapperStructOutput);
    -
    415  }
    -
    416  catch (const std::exception& e)
    -
    417  {
    -
    418  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    419  }
    -
    420  }
    -
    421 
    -
    422  template<typename TDatums, typename TWorker, typename TQueue>
    -
    423  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    -
    424  const WrapperStructFace& wrapperStructFace,
    -
    425  const WrapperStructHand& wrapperStructHand,
    -
    426  const WrapperStructInput& wrapperStructInput,
    -
    427  const WrapperStructOutput& wrapperStructOutput)
    -
    428  {
    -
    429  try
    -
    430  {
    -
    431  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    -
    432 
    -
    433  // Shortcut
    -
    434  typedef std::shared_ptr<TDatums> TDatumsPtr;
    -
    435 
    -
    436  // Required parameters
    -
    437  const auto renderOutput = wrapperStructPose.renderMode != RenderMode::None
    -
    438  || wrapperStructFace.renderMode != RenderMode::None
    -
    439  || wrapperStructHand.renderMode != RenderMode::None;
    -
    440  const auto renderOutputGpu = wrapperStructPose.renderMode == RenderMode::Gpu
    -
    441  || wrapperStructFace.renderMode == RenderMode::Gpu
    -
    442  || wrapperStructHand.renderMode == RenderMode::Gpu;
    -
    443  const auto renderFace = wrapperStructFace.enable && wrapperStructFace.renderMode != RenderMode::None;
    -
    444  const auto renderHand = wrapperStructHand.enable && wrapperStructHand.renderMode != RenderMode::None;
    -
    445  const auto renderHandGpu = wrapperStructHand.enable && wrapperStructHand.renderMode == RenderMode::Gpu;
    -
    446 
    -
    447  // Check no wrong/contradictory flags enabled
    -
    448  if (wrapperStructPose.alphaKeypoint < 0. || wrapperStructPose.alphaKeypoint > 1.
    -
    449  || wrapperStructFace.alphaHeatMap < 0. || wrapperStructFace.alphaHeatMap > 1.
    -
    450  || wrapperStructHand.alphaHeatMap < 0. || wrapperStructHand.alphaHeatMap > 1.)
    -
    451  error("Alpha value for blending must be in the range [0,1].", __LINE__, __FUNCTION__, __FILE__);
    -
    452  if (wrapperStructPose.scaleGap <= 0.f && wrapperStructPose.scalesNumber > 1)
    -
    453  error("The scale gap must be greater than 0 (it has no effect if the number of scales is 1).",
    -
    454  __LINE__, __FUNCTION__, __FILE__);
    -
    455  if (!renderOutput && (!wrapperStructOutput.writeImages.empty() || !wrapperStructOutput.writeVideo.empty()))
    -
    456  {
    -
    457  const auto message = "In order to save the rendered frames (`write_images` or `write_video`), you must"
    -
    458  " set `render_output` to true.";
    -
    459  error(message, __LINE__, __FUNCTION__, __FILE__);
    -
    460  }
    -
    461  if (!wrapperStructOutput.writeHeatMaps.empty() && wrapperStructPose.heatMapTypes.empty())
    -
    462  {
    -
    463  const auto message = "In order to save the heatmaps (`write_heatmaps`), you need to pick which heat"
    -
    464  " maps you want to save: `heatmaps_add_X` flags or fill the"
    -
    465  " wrapperStructPose.heatMapTypes.";
    -
    466  error(message, __LINE__, __FUNCTION__, __FILE__);
    -
    467  }
    -
    468  if (!wrapperStructOutput.writeHeatMaps.empty()
    -
    469  && (wrapperStructPose.heatMapScale != ScaleMode::UnsignedChar &&
    -
    470  wrapperStructOutput.writeHeatMapsFormat != "float"))
    -
    471  {
    -
    472  const auto message = "In order to save the heatmaps, you must either set"
    -
    473  " wrapperStructPose.heatMapScale to ScaleMode::UnsignedChar (i.e. range [0, 255])"
    -
    474  " or `write_heatmaps_format` to `float` to storage floating numbers in binary"
    -
    475  " mode.";
    -
    476  error(message, __LINE__, __FUNCTION__, __FILE__);
    -
    477  }
    -
    478  if (mUserOutputWs.empty() && mThreadManagerMode != ThreadManagerMode::Asynchronous
    -
    479  && mThreadManagerMode != ThreadManagerMode::AsynchronousOut)
    -
    480  {
    -
    481  const std::string additionalMessage{
    -
    482  " You could also set mThreadManagerMode = mThreadManagerMode::Asynchronous(Out) and/or add your"
    -
    483  " own output worker class before calling this function."
    -
    484  };
    -
    485  const auto savingSomething = (
    -
    486  !wrapperStructOutput.writeImages.empty() || !wrapperStructOutput.writeVideo.empty()
    -
    487  || !wrapperStructOutput.writeKeypoint.empty() || !wrapperStructOutput.writeKeypointJson.empty()
    -
    488  || !wrapperStructOutput.writeCocoJson.empty() || !wrapperStructOutput.writeHeatMaps.empty()
    -
    489  );
    -
    490  if (!wrapperStructOutput.displayGui && !savingSomething)
    -
    491  {
    -
    492  const auto message = "No output is selected (`no_display`) and no results are generated (no"
    -
    493  " `write_X` flags enabled). Thus, no output would be generated."
    -
    494  + additionalMessage;
    -
    495  error(message, __LINE__, __FUNCTION__, __FILE__);
    -
    496  }
    -
    497  if (wrapperStructInput.framesRepeat && savingSomething)
    -
    498  {
    -
    499  const auto message = "Frames repetition (`frames_repeat`) is enabled as well as some writing"
    -
    500  " function (`write_X`). This program would never stop recording the same"
    -
    501  " frames over and over. Please, disable repetition or remove writing.";
    -
    502  error(message, __LINE__, __FUNCTION__, __FILE__);
    -
    503  }
    -
    504  // Warnings
    -
    505  if ((wrapperStructOutput.displayGui && wrapperStructOutput.guiVerbose) && !renderOutput)
    -
    506  {
    -
    507  const auto message = "No render is enabled (e.g. `render_pose 0`), so you might also want to"
    -
    508  " remove the display (set `no_display` or `no_gui_verbose`). If you simply"
    -
    509  " want to use OpenPose to record video/images without keypoints, you only"
    -
    510  " need to set `num_gpu 0`." + additionalMessage;
    -
    511  log(message, Priority::High);
    -
    512  }
    -
    513  if (wrapperStructInput.realTimeProcessing && savingSomething)
    -
    514  {
    -
    515  const auto message = "Real time processing is enabled as well as some writing function. Thus, some"
    -
    516  " frames might be skipped. Consider disabling real time processing if you"
    -
    517  " intend to save any results.";
    -
    518  log(message, Priority::High);
    -
    519  }
    -
    520  }
    -
    521  if (!wrapperStructOutput.writeVideo.empty() && wrapperStructInput.producerSharedPtr == nullptr)
    -
    522  error("Writting video is only available if the OpenPose producer is used (i.e."
    -
    523  " wrapperStructInput.producerSharedPtr cannot be a nullptr).", __LINE__, __FUNCTION__, __FILE__);
    -
    524  if (!wrapperStructPose.enable)
    -
    525  {
    -
    526  if (!wrapperStructFace.enable)
    -
    527  error("Body keypoint detection must be enabled.", __LINE__, __FUNCTION__, __FILE__);
    -
    528  if (wrapperStructHand.enable)
    -
    529  error("Body keypoint detection must be enabled in order to run hand keypoint detection.",
    -
    530  __LINE__, __FUNCTION__, __FILE__);
    -
    531  }
    -
    532 
    -
    533  // Get number GPUs
    -
    534  auto gpuNumber = wrapperStructPose.gpuNumber;
    -
    535  auto gpuNumberStart = wrapperStructPose.gpuNumberStart;
    -
    536  // If number GPU < 0 --> set it to all the available GPUs
    -
    537  if (gpuNumber < 0)
    -
    538  {
    -
    539  // Get total number GPUs
    -
    540  gpuNumber = getGpuNumber();
    -
    541  // Reset initial GPU to 0 (we want them all)
    -
    542  gpuNumberStart = 0;
    -
    543  // Logging message
    -
    544  log("Auto-detecting GPUs... Detected " + std::to_string(gpuNumber) + " GPU(s), using them all.",
    -
    545  Priority::High);
    -
    546  }
    -
    547 
    -
    548  // Proper format
    -
    549  const auto writeImagesCleaned = formatAsDirectory(wrapperStructOutput.writeImages);
    -
    550  const auto writeKeypointCleaned = formatAsDirectory(wrapperStructOutput.writeKeypoint);
    -
    551  const auto writeKeypointJsonCleaned = formatAsDirectory(wrapperStructOutput.writeKeypointJson);
    -
    552  const auto writeHeatMapsCleaned = formatAsDirectory(wrapperStructOutput.writeHeatMaps);
    -
    553  const auto modelFolder = formatAsDirectory(wrapperStructPose.modelFolder);
    -
    554 
    -
    555  // Common parameters
    -
    556  auto finalOutputSize = wrapperStructPose.outputSize;
    -
    557  Point<int> producerSize{-1,-1};
    -
    558  if (wrapperStructInput.producerSharedPtr != nullptr)
    -
    559  {
    -
    560  // 1. Set producer properties
    -
    561  const auto displayProducerFpsMode = (wrapperStructInput.realTimeProcessing
    -
    562  ? ProducerFpsMode::OriginalFps : ProducerFpsMode::RetrievalFps);
    -
    563  wrapperStructInput.producerSharedPtr->setProducerFpsMode(displayProducerFpsMode);
    -
    564  wrapperStructInput.producerSharedPtr->set(ProducerProperty::Flip, wrapperStructInput.frameFlip);
    -
    565  wrapperStructInput.producerSharedPtr->set(ProducerProperty::Rotation, wrapperStructInput.frameRotate);
    -
    566  wrapperStructInput.producerSharedPtr->set(ProducerProperty::AutoRepeat,
    -
    567  wrapperStructInput.framesRepeat);
    -
    568  // 2. Set finalOutputSize
    -
    569  producerSize = Point<int>{(int)wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FRAME_WIDTH),
    -
    570  (int)wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FRAME_HEIGHT)};
    -
    571  // Set finalOutputSize to input size if desired
    -
    572  if (finalOutputSize.x == -1 || finalOutputSize.y == -1)
    -
    573  finalOutputSize = producerSize;
    -
    574  }
    -
    575 
    -
    576  // Producer
    -
    577  if (wrapperStructInput.producerSharedPtr != nullptr)
    -
    578  {
    -
    579  const auto datumProducer = std::make_shared<DatumProducer<TDatums>>(
    -
    580  wrapperStructInput.producerSharedPtr, wrapperStructInput.frameFirst, wrapperStructInput.frameLast,
    -
    581  spVideoSeek
    -
    582  );
    -
    583  wDatumProducer = std::make_shared<WDatumProducer<TDatumsPtr, TDatums>>(datumProducer);
    -
    584  }
    -
    585  else
    -
    586  wDatumProducer = nullptr;
    -
    587 
    -
    588  // Get input scales and sizes
    -
    589  const auto scaleAndSizeExtractor = std::make_shared<ScaleAndSizeExtractor>(
    -
    590  wrapperStructPose.netInputSize, finalOutputSize, wrapperStructPose.scalesNumber,
    -
    591  wrapperStructPose.scaleGap
    -
    592  );
    -
    593  spWScaleAndSizeExtractor = std::make_shared<WScaleAndSizeExtractor<TDatumsPtr>>(scaleAndSizeExtractor);
    -
    594 
    -
    595  // Input cvMat to OpenPose input & output format
    -
    596  const auto cvMatToOpInput = std::make_shared<CvMatToOpInput>();
    -
    597  spWCvMatToOpInput = std::make_shared<WCvMatToOpInput<TDatumsPtr>>(cvMatToOpInput);
    -
    598  if (renderOutput)
    -
    599  {
    -
    600  const auto cvMatToOpOutput = std::make_shared<CvMatToOpOutput>();
    -
    601  spWCvMatToOpOutput = std::make_shared<WCvMatToOpOutput<TDatumsPtr>>(cvMatToOpOutput);
    -
    602  }
    -
    603 
    -
    604  // Pose estimators & renderers
    -
    605  std::vector<std::shared_ptr<PoseExtractor>> poseExtractors;
    -
    606  std::vector<std::shared_ptr<PoseGpuRenderer>> poseGpuRenderers;
    -
    607  std::shared_ptr<PoseCpuRenderer> poseCpuRenderer;
    -
    608  std::vector<TWorker> cpuRenderers;
    -
    609  spWPoses.clear();
    -
    610  spWPoses.resize(gpuNumber);
    -
    611  if (wrapperStructPose.enable)
    -
    612  {
    -
    613  // Pose estimators
    -
    614  for (auto gpuId = 0; gpuId < gpuNumber; gpuId++)
    -
    615  poseExtractors.emplace_back(std::make_shared<PoseExtractorCaffe>(
    -
    616  wrapperStructPose.poseModel, modelFolder, gpuId + gpuNumberStart,
    -
    617  wrapperStructPose.heatMapTypes, wrapperStructPose.heatMapScale,
    -
    618  wrapperStructPose.enableGoogleLogging
    -
    619  ));
    -
    620 
    -
    621  // Pose renderers
    -
    622  if (renderOutputGpu || wrapperStructPose.renderMode == RenderMode::Cpu)
    -
    623  {
    -
    624  // If wrapperStructPose.renderMode != RenderMode::Gpu but renderOutput, then we create an alpha = 0
    -
    625  // pose renderer in order to keep the removing background option
    -
    626  const auto alphaKeypoint = (wrapperStructPose.renderMode != RenderMode::None
    -
    627  ? wrapperStructPose.alphaKeypoint : 0.f);
    -
    628  const auto alphaHeatMap = (wrapperStructPose.renderMode != RenderMode::None
    -
    629  ? wrapperStructPose.alphaHeatMap : 0.f);
    -
    630  // GPU rendering
    -
    631  if (renderOutputGpu)
    -
    632  {
    -
    633  for (const auto& poseExtractor : poseExtractors)
    -
    634  {
    -
    635  poseGpuRenderers.emplace_back(std::make_shared<PoseGpuRenderer>(
    -
    636  wrapperStructPose.poseModel, poseExtractor, wrapperStructPose.renderThreshold,
    -
    637  wrapperStructPose.blendOriginalFrame, alphaKeypoint,
    -
    638  alphaHeatMap, wrapperStructPose.defaultPartToRender
    -
    639  ));
    -
    640  }
    -
    641  }
    -
    642  // CPU rendering
    -
    643  if (wrapperStructPose.renderMode == RenderMode::Cpu)
    -
    644  {
    -
    645  poseCpuRenderer = std::make_shared<PoseCpuRenderer>(wrapperStructPose.poseModel,
    -
    646  wrapperStructPose.renderThreshold,
    -
    647  wrapperStructPose.blendOriginalFrame);
    -
    648  cpuRenderers.emplace_back(std::make_shared<WPoseRenderer<TDatumsPtr>>(poseCpuRenderer));
    -
    649  }
    -
    650  }
    -
    651  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    -
    652 
    -
    653  // Pose extractor(s)
    -
    654  spWPoses.resize(poseExtractors.size());
    -
    655  for (auto i = 0u; i < spWPoses.size(); i++)
    -
    656  spWPoses.at(i) = {std::make_shared<WPoseExtractor<TDatumsPtr>>(poseExtractors.at(i))};
    -
    657  }
    -
    658 
    -
    659 
    -
    660  // Face extractor(s)
    -
    661  if (wrapperStructFace.enable)
    -
    662  {
    -
    663  // Face detector
    -
    664  // OpenPose face detector
    -
    665  if (wrapperStructPose.enable)
    +
    260 
    +
    261 // Implementation
    +
    262 #include <openpose/core/headers.hpp>
    +
    263 #include <openpose/face/headers.hpp>
    +
    264 #include <openpose/filestream/headers.hpp>
    +
    265 #include <openpose/gui/headers.hpp>
    +
    266 #include <openpose/hand/headers.hpp>
    +
    267 #include <openpose/pose/headers.hpp>
    +
    268 #include <openpose/producer/headers.hpp>
    +
    269 #include <openpose/experimental/tracking/headers.hpp>
    +
    270 #include <openpose/utilities/cuda.hpp>
    +
    271 #include <openpose/utilities/fileSystem.hpp>
    +
    272 #include <openpose/utilities/standard.hpp>
    +
    273 namespace op
    +
    274 {
    +
    275  template<typename TDatums, typename TWorker, typename TQueue>
    +
    276  Wrapper<TDatums, TWorker, TQueue>::Wrapper(const ThreadManagerMode threadManagerMode) :
    +
    277  mThreadManagerMode{threadManagerMode},
    +
    278  spVideoSeek{std::make_shared<std::pair<std::atomic<bool>, std::atomic<int>>>()},
    +
    279  mConfigured{false},
    +
    280  mThreadManager{threadManagerMode},
    +
    281  mMultiThreadEnabled{true}
    +
    282  {
    +
    283  try
    +
    284  {
    +
    285  // It cannot be directly included in the constructor (compiler error for copying std::atomic)
    +
    286  spVideoSeek->first = false;
    +
    287  spVideoSeek->second = 0;
    +
    288  }
    +
    289  catch (const std::exception& e)
    +
    290  {
    +
    291  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    292  }
    +
    293  }
    +
    294 
    +
    295  template<typename TDatums, typename TWorker, typename TQueue>
    +
    296  Wrapper<TDatums, TWorker, TQueue>::~Wrapper()
    +
    297  {
    +
    298  try
    +
    299  {
    +
    300  stop();
    +
    301  reset();
    +
    302  }
    +
    303  catch (const std::exception& e)
    +
    304  {
    +
    305  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    306  }
    +
    307  }
    +
    308 
    +
    309  template<typename TDatums, typename TWorker, typename TQueue>
    +
    310  void Wrapper<TDatums, TWorker, TQueue>::disableMultiThreading()
    +
    311  {
    +
    312  try
    +
    313  {
    +
    314  mMultiThreadEnabled = false;
    +
    315  }
    +
    316  catch (const std::exception& e)
    +
    317  {
    +
    318  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    319  }
    +
    320  }
    +
    321 
    +
    322  template<typename TDatums, typename TWorker, typename TQueue>
    +
    323  void Wrapper<TDatums, TWorker, TQueue>::setWorkerInput(const TWorker& worker, const bool workerOnNewThread)
    +
    324  {
    +
    325  try
    +
    326  {
    +
    327  mUserInputWs.clear();
    +
    328  if (worker == nullptr)
    +
    329  error("Your worker is a nullptr.", __LINE__, __FILE__, __FUNCTION__);
    +
    330  mUserInputWs.emplace_back(worker);
    +
    331  mUserInputWsOnNewThread = {workerOnNewThread};
    +
    332  }
    +
    333  catch (const std::exception& e)
    +
    334  {
    +
    335  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    336  }
    +
    337  }
    +
    338 
    +
    339  template<typename TDatums, typename TWorker, typename TQueue>
    +
    340  void Wrapper<TDatums, TWorker, TQueue>::setWorkerPostProcessing(const TWorker& worker,
    +
    341  const bool workerOnNewThread)
    +
    342  {
    +
    343  try
    +
    344  {
    +
    345  mUserPostProcessingWs.clear();
    +
    346  if (worker == nullptr)
    +
    347  error("Your worker is a nullptr.", __LINE__, __FILE__, __FUNCTION__);
    +
    348  mUserPostProcessingWs.emplace_back(worker);
    +
    349  mUserPostProcessingWsOnNewThread = {workerOnNewThread};
    +
    350  }
    +
    351  catch (const std::exception& e)
    +
    352  {
    +
    353  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    354  }
    +
    355  }
    +
    356 
    +
    357  template<typename TDatums, typename TWorker, typename TQueue>
    +
    358  void Wrapper<TDatums, TWorker, TQueue>::setWorkerOutput(const TWorker& worker, const bool workerOnNewThread)
    +
    359  {
    +
    360  try
    +
    361  {
    +
    362  mUserOutputWs.clear();
    +
    363  if (worker == nullptr)
    +
    364  error("Your worker is a nullptr.", __LINE__, __FILE__, __FUNCTION__);
    +
    365  mUserOutputWs.emplace_back(worker);
    +
    366  mUserOutputWsOnNewThread = {workerOnNewThread};
    +
    367  }
    +
    368  catch (const std::exception& e)
    +
    369  {
    +
    370  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    371  }
    +
    372  }
    +
    373 
    +
    374  template<typename TDatums, typename TWorker, typename TQueue>
    +
    375  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    +
    376  const WrapperStructInput& wrapperStructInput,
    +
    377  const WrapperStructOutput& wrapperStructOutput)
    +
    378  {
    +
    379  try
    +
    380  {
    +
    381  configure(wrapperStructPose, WrapperStructFace{}, WrapperStructHand{},
    +
    382  wrapperStructInput, wrapperStructOutput);
    +
    383  }
    +
    384  catch (const std::exception& e)
    +
    385  {
    +
    386  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    387  }
    +
    388  }
    +
    389 
    +
    390  template<typename TDatums, typename TWorker, typename TQueue>
    +
    391  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    +
    392  const WrapperStructFace& wrapperStructFace,
    +
    393  const WrapperStructInput& wrapperStructInput,
    +
    394  const WrapperStructOutput& wrapperStructOutput)
    +
    395  {
    +
    396  try
    +
    397  {
    +
    398  configure(wrapperStructPose, wrapperStructFace, WrapperStructHand{},
    +
    399  wrapperStructInput, wrapperStructOutput);
    +
    400  }
    +
    401  catch (const std::exception& e)
    +
    402  {
    +
    403  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    404  }
    +
    405  }
    +
    406 
    +
    407  template<typename TDatums, typename TWorker, typename TQueue>
    +
    408  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    +
    409  const WrapperStructHand& wrapperStructHand,
    +
    410  const WrapperStructInput& wrapperStructInput,
    +
    411  const WrapperStructOutput& wrapperStructOutput)
    +
    412  {
    +
    413  try
    +
    414  {
    +
    415  configure(wrapperStructPose, WrapperStructFace{}, wrapperStructHand,
    +
    416  wrapperStructInput, wrapperStructOutput);
    +
    417  }
    +
    418  catch (const std::exception& e)
    +
    419  {
    +
    420  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    421  }
    +
    422  }
    +
    423 
    +
    424  template<typename TDatums, typename TWorker, typename TQueue>
    +
    425  void Wrapper<TDatums, TWorker, TQueue>::configure(const WrapperStructPose& wrapperStructPose,
    +
    426  const WrapperStructFace& wrapperStructFace,
    +
    427  const WrapperStructHand& wrapperStructHand,
    +
    428  const WrapperStructInput& wrapperStructInput,
    +
    429  const WrapperStructOutput& wrapperStructOutput)
    +
    430  {
    +
    431  try
    +
    432  {
    +
    433  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    +
    434 
    +
    435  // Shortcut
    +
    436  typedef std::shared_ptr<TDatums> TDatumsPtr;
    +
    437 
    +
    438  // Required parameters
    +
    439  const auto renderOutput = wrapperStructPose.renderMode != RenderMode::None
    +
    440  || wrapperStructFace.renderMode != RenderMode::None
    +
    441  || wrapperStructHand.renderMode != RenderMode::None;
    +
    442  const auto renderOutputGpu = wrapperStructPose.renderMode == RenderMode::Gpu
    +
    443  || wrapperStructFace.renderMode == RenderMode::Gpu
    +
    444  || wrapperStructHand.renderMode == RenderMode::Gpu;
    +
    445  const auto renderFace = wrapperStructFace.enable && wrapperStructFace.renderMode != RenderMode::None;
    +
    446  const auto renderHand = wrapperStructHand.enable && wrapperStructHand.renderMode != RenderMode::None;
    +
    447  const auto renderHandGpu = wrapperStructHand.enable && wrapperStructHand.renderMode == RenderMode::Gpu;
    +
    448 
    +
    449  // Check no wrong/contradictory flags enabled
    +
    450  if (wrapperStructPose.alphaKeypoint < 0. || wrapperStructPose.alphaKeypoint > 1.
    +
    451  || wrapperStructFace.alphaHeatMap < 0. || wrapperStructFace.alphaHeatMap > 1.
    +
    452  || wrapperStructHand.alphaHeatMap < 0. || wrapperStructHand.alphaHeatMap > 1.)
    +
    453  error("Alpha value for blending must be in the range [0,1].", __LINE__, __FUNCTION__, __FILE__);
    +
    454  if (wrapperStructPose.scaleGap <= 0.f && wrapperStructPose.scalesNumber > 1)
    +
    455  error("The scale gap must be greater than 0 (it has no effect if the number of scales is 1).",
    +
    456  __LINE__, __FUNCTION__, __FILE__);
    +
    457  if (!renderOutput && (!wrapperStructOutput.writeImages.empty() || !wrapperStructOutput.writeVideo.empty()))
    +
    458  {
    +
    459  const auto message = "In order to save the rendered frames (`write_images` or `write_video`), you must"
    +
    460  " set `render_output` to true.";
    +
    461  error(message, __LINE__, __FUNCTION__, __FILE__);
    +
    462  }
    +
    463  if (!wrapperStructOutput.writeHeatMaps.empty() && wrapperStructPose.heatMapTypes.empty())
    +
    464  {
    +
    465  const auto message = "In order to save the heatmaps (`write_heatmaps`), you need to pick which heat"
    +
    466  " maps you want to save: `heatmaps_add_X` flags or fill the"
    +
    467  " wrapperStructPose.heatMapTypes.";
    +
    468  error(message, __LINE__, __FUNCTION__, __FILE__);
    +
    469  }
    +
    470  if (!wrapperStructOutput.writeHeatMaps.empty()
    +
    471  && (wrapperStructPose.heatMapScale != ScaleMode::UnsignedChar &&
    +
    472  wrapperStructOutput.writeHeatMapsFormat != "float"))
    +
    473  {
    +
    474  const auto message = "In order to save the heatmaps, you must either set"
    +
    475  " wrapperStructPose.heatMapScale to ScaleMode::UnsignedChar (i.e. range [0, 255])"
    +
    476  " or `write_heatmaps_format` to `float` to storage floating numbers in binary"
    +
    477  " mode.";
    +
    478  error(message, __LINE__, __FUNCTION__, __FILE__);
    +
    479  }
    +
    480  if (mUserOutputWs.empty() && mThreadManagerMode != ThreadManagerMode::Asynchronous
    +
    481  && mThreadManagerMode != ThreadManagerMode::AsynchronousOut)
    +
    482  {
    +
    483  const std::string additionalMessage{
    +
    484  " You could also set mThreadManagerMode = mThreadManagerMode::Asynchronous(Out) and/or add your"
    +
    485  " own output worker class before calling this function."
    +
    486  };
    +
    487  const auto savingSomething = (
    +
    488  !wrapperStructOutput.writeImages.empty() || !wrapperStructOutput.writeVideo.empty()
    +
    489  || !wrapperStructOutput.writeKeypoint.empty() || !wrapperStructOutput.writeKeypointJson.empty()
    +
    490  || !wrapperStructOutput.writeCocoJson.empty() || !wrapperStructOutput.writeHeatMaps.empty()
    +
    491  );
    +
    492  if (!wrapperStructOutput.displayGui && !savingSomething)
    +
    493  {
    +
    494  const auto message = "No output is selected (`no_display`) and no results are generated (no"
    +
    495  " `write_X` flags enabled). Thus, no output would be generated."
    +
    496  + additionalMessage;
    +
    497  error(message, __LINE__, __FUNCTION__, __FILE__);
    +
    498  }
    +
    499  if (wrapperStructInput.framesRepeat && savingSomething)
    +
    500  {
    +
    501  const auto message = "Frames repetition (`frames_repeat`) is enabled as well as some writing"
    +
    502  " function (`write_X`). This program would never stop recording the same"
    +
    503  " frames over and over. Please, disable repetition or remove writing.";
    +
    504  error(message, __LINE__, __FUNCTION__, __FILE__);
    +
    505  }
    +
    506  // Warnings
    +
    507  if ((wrapperStructOutput.displayGui && wrapperStructOutput.guiVerbose) && !renderOutput)
    +
    508  {
    +
    509  const auto message = "No render is enabled (e.g. `render_pose 0`), so you might also want to"
    +
    510  " remove the display (set `no_display` or `no_gui_verbose`). If you simply"
    +
    511  " want to use OpenPose to record video/images without keypoints, you only"
    +
    512  " need to set `num_gpu 0`." + additionalMessage;
    +
    513  log(message, Priority::High);
    +
    514  }
    +
    515  if (wrapperStructInput.realTimeProcessing && savingSomething)
    +
    516  {
    +
    517  const auto message = "Real time processing is enabled as well as some writing function. Thus, some"
    +
    518  " frames might be skipped. Consider disabling real time processing if you"
    +
    519  " intend to save any results.";
    +
    520  log(message, Priority::High);
    +
    521  }
    +
    522  }
    +
    523  if (!wrapperStructOutput.writeVideo.empty() && wrapperStructInput.producerSharedPtr == nullptr)
    +
    524  error("Writting video is only available if the OpenPose producer is used (i.e."
    +
    525  " wrapperStructInput.producerSharedPtr cannot be a nullptr).", __LINE__, __FUNCTION__, __FILE__);
    +
    526  if (!wrapperStructPose.enable)
    +
    527  {
    +
    528  if (!wrapperStructFace.enable)
    +
    529  error("Body keypoint detection must be enabled.", __LINE__, __FUNCTION__, __FILE__);
    +
    530  if (wrapperStructHand.enable)
    +
    531  error("Body keypoint detection must be enabled in order to run hand keypoint detection.",
    +
    532  __LINE__, __FUNCTION__, __FILE__);
    +
    533  }
    +
    534 
    +
    535  // Get number GPUs
    +
    536  auto gpuNumber = wrapperStructPose.gpuNumber;
    +
    537  auto gpuNumberStart = wrapperStructPose.gpuNumberStart;
    +
    538  // If number GPU < 0 --> set it to all the available GPUs
    +
    539  if (gpuNumber < 0)
    +
    540  {
    +
    541  // Get total number GPUs
    +
    542  gpuNumber = getGpuNumber();
    +
    543  // Reset initial GPU to 0 (we want them all)
    +
    544  gpuNumberStart = 0;
    +
    545  // Logging message
    +
    546  log("Auto-detecting GPUs... Detected " + std::to_string(gpuNumber) + " GPU(s), using them all.",
    +
    547  Priority::High);
    +
    548  }
    +
    549 
    +
    550  // Proper format
    +
    551  const auto writeImagesCleaned = formatAsDirectory(wrapperStructOutput.writeImages);
    +
    552  const auto writeKeypointCleaned = formatAsDirectory(wrapperStructOutput.writeKeypoint);
    +
    553  const auto writeKeypointJsonCleaned = formatAsDirectory(wrapperStructOutput.writeKeypointJson);
    +
    554  const auto writeHeatMapsCleaned = formatAsDirectory(wrapperStructOutput.writeHeatMaps);
    +
    555  const auto modelFolder = formatAsDirectory(wrapperStructPose.modelFolder);
    +
    556 
    +
    557  // Common parameters
    +
    558  auto finalOutputSize = wrapperStructPose.outputSize;
    +
    559  Point<int> producerSize{-1,-1};
    +
    560  if (wrapperStructInput.producerSharedPtr != nullptr)
    +
    561  {
    +
    562  // 1. Set producer properties
    +
    563  const auto displayProducerFpsMode = (wrapperStructInput.realTimeProcessing
    +
    564  ? ProducerFpsMode::OriginalFps : ProducerFpsMode::RetrievalFps);
    +
    565  wrapperStructInput.producerSharedPtr->setProducerFpsMode(displayProducerFpsMode);
    +
    566  wrapperStructInput.producerSharedPtr->set(ProducerProperty::Flip, wrapperStructInput.frameFlip);
    +
    567  wrapperStructInput.producerSharedPtr->set(ProducerProperty::Rotation, wrapperStructInput.frameRotate);
    +
    568  wrapperStructInput.producerSharedPtr->set(ProducerProperty::AutoRepeat,
    +
    569  wrapperStructInput.framesRepeat);
    +
    570  // 2. Set finalOutputSize
    +
    571  producerSize = Point<int>{(int)wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FRAME_WIDTH),
    +
    572  (int)wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FRAME_HEIGHT)};
    +
    573  // Set finalOutputSize to input size if desired
    +
    574  if (finalOutputSize.x == -1 || finalOutputSize.y == -1)
    +
    575  finalOutputSize = producerSize;
    +
    576  }
    +
    577 
    +
    578  // Producer
    +
    579  if (wrapperStructInput.producerSharedPtr != nullptr)
    +
    580  {
    +
    581  const auto datumProducer = std::make_shared<DatumProducer<TDatums>>(
    +
    582  wrapperStructInput.producerSharedPtr, wrapperStructInput.frameFirst, wrapperStructInput.frameLast,
    +
    583  spVideoSeek
    +
    584  );
    +
    585  wDatumProducer = std::make_shared<WDatumProducer<TDatumsPtr, TDatums>>(datumProducer);
    +
    586  }
    +
    587  else
    +
    588  wDatumProducer = nullptr;
    +
    589 
    +
    590  std::vector<std::shared_ptr<PoseExtractor>> poseExtractors;
    +
    591  std::vector<std::shared_ptr<PoseGpuRenderer>> poseGpuRenderers;
    +
    592  std::shared_ptr<PoseCpuRenderer> poseCpuRenderer;
    +
    593  if (gpuNumber > 0)
    +
    594  {
    +
    595  // Get input scales and sizes
    +
    596  const auto scaleAndSizeExtractor = std::make_shared<ScaleAndSizeExtractor>(
    +
    597  wrapperStructPose.netInputSize, finalOutputSize, wrapperStructPose.scalesNumber,
    +
    598  wrapperStructPose.scaleGap
    +
    599  );
    +
    600  spWScaleAndSizeExtractor = std::make_shared<WScaleAndSizeExtractor<TDatumsPtr>>(scaleAndSizeExtractor);
    +
    601 
    +
    602  // Input cvMat to OpenPose input & output format
    +
    603  const auto cvMatToOpInput = std::make_shared<CvMatToOpInput>();
    +
    604  spWCvMatToOpInput = std::make_shared<WCvMatToOpInput<TDatumsPtr>>(cvMatToOpInput);
    +
    605  if (renderOutput)
    +
    606  {
    +
    607  const auto cvMatToOpOutput = std::make_shared<CvMatToOpOutput>();
    +
    608  spWCvMatToOpOutput = std::make_shared<WCvMatToOpOutput<TDatumsPtr>>(cvMatToOpOutput);
    +
    609  }
    +
    610 
    +
    611  // Pose estimators & renderers
    +
    612  std::vector<TWorker> cpuRenderers;
    +
    613  spWPoses.clear();
    +
    614  spWPoses.resize(gpuNumber);
    +
    615  if (wrapperStructPose.enable)
    +
    616  {
    +
    617  // Pose estimators
    +
    618  for (auto gpuId = 0; gpuId < gpuNumber; gpuId++)
    +
    619  poseExtractors.emplace_back(std::make_shared<PoseExtractorCaffe>(
    +
    620  wrapperStructPose.poseModel, modelFolder, gpuId + gpuNumberStart,
    +
    621  wrapperStructPose.heatMapTypes, wrapperStructPose.heatMapScale,
    +
    622  wrapperStructPose.enableGoogleLogging
    +
    623  ));
    +
    624 
    +
    625  // Pose renderers
    +
    626  if (renderOutputGpu || wrapperStructPose.renderMode == RenderMode::Cpu)
    +
    627  {
    +
    628  // If wrapperStructPose.renderMode != RenderMode::Gpu but renderOutput, then we create an
    +
    629  // alpha = 0 pose renderer in order to keep the removing background option
    +
    630  const auto alphaKeypoint = (wrapperStructPose.renderMode != RenderMode::None
    +
    631  ? wrapperStructPose.alphaKeypoint : 0.f);
    +
    632  const auto alphaHeatMap = (wrapperStructPose.renderMode != RenderMode::None
    +
    633  ? wrapperStructPose.alphaHeatMap : 0.f);
    +
    634  // GPU rendering
    +
    635  if (renderOutputGpu)
    +
    636  {
    +
    637  for (const auto& poseExtractor : poseExtractors)
    +
    638  {
    +
    639  poseGpuRenderers.emplace_back(std::make_shared<PoseGpuRenderer>(
    +
    640  wrapperStructPose.poseModel, poseExtractor, wrapperStructPose.renderThreshold,
    +
    641  wrapperStructPose.blendOriginalFrame, alphaKeypoint,
    +
    642  alphaHeatMap, wrapperStructPose.defaultPartToRender
    +
    643  ));
    +
    644  }
    +
    645  }
    +
    646  // CPU rendering
    +
    647  if (wrapperStructPose.renderMode == RenderMode::Cpu)
    +
    648  {
    +
    649  poseCpuRenderer = std::make_shared<PoseCpuRenderer>(wrapperStructPose.poseModel,
    +
    650  wrapperStructPose.renderThreshold,
    +
    651  wrapperStructPose.blendOriginalFrame);
    +
    652  cpuRenderers.emplace_back(std::make_shared<WPoseRenderer<TDatumsPtr>>(poseCpuRenderer));
    +
    653  }
    +
    654  }
    +
    655  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    +
    656 
    +
    657  // Pose extractor(s)
    +
    658  spWPoses.resize(poseExtractors.size());
    +
    659  for (auto i = 0u; i < spWPoses.size(); i++)
    +
    660  spWPoses.at(i) = {std::make_shared<WPoseExtractor<TDatumsPtr>>(poseExtractors.at(i))};
    +
    661  }
    +
    662 
    +
    663 
    +
    664  // Face extractor(s)
    +
    665  if (wrapperStructFace.enable)
    666  {
    -
    667  const auto faceDetector = std::make_shared<FaceDetector>(wrapperStructPose.poseModel);
    -
    668  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    -
    669  spWPoses.at(gpu).emplace_back(std::make_shared<WFaceDetector<TDatumsPtr>>(faceDetector));
    -
    670  }
    -
    671  // OpenCV face detector
    -
    672  else
    -
    673  {
    -
    674  log("Body keypoint detection is disabled. Hence, using OpenCV face detector (much less accurate"
    -
    675  " but faster).", Priority::High);
    -
    676  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    +
    667  // Face detector
    +
    668  // OpenPose face detector
    +
    669  if (wrapperStructPose.enable)
    +
    670  {
    +
    671  const auto faceDetector = std::make_shared<FaceDetector>(wrapperStructPose.poseModel);
    +
    672  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    +
    673  spWPoses.at(gpu).emplace_back(std::make_shared<WFaceDetector<TDatumsPtr>>(faceDetector));
    +
    674  }
    +
    675  // OpenCV face detector
    +
    676  else
    677  {
    -
    678  // 1 FaceDetectorOpenCV per thread, OpenCV face detector is not thread-safe
    -
    679  const auto faceDetectorOpenCV = std::make_shared<FaceDetectorOpenCV>(modelFolder);
    -
    680  spWPoses.at(gpu).emplace_back(
    -
    681  std::make_shared<WFaceDetectorOpenCV<TDatumsPtr>>(faceDetectorOpenCV)
    -
    682  );
    -
    683  }
    -
    684  }
    -
    685  // Face keypoint extractor
    -
    686  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    -
    687  {
    -
    688  // Face keypoint extractor
    -
    689  const auto netOutputSize = wrapperStructFace.netInputSize;
    -
    690  const auto faceExtractor = std::make_shared<FaceExtractorCaffe>(
    -
    691  wrapperStructFace.netInputSize, netOutputSize, modelFolder,
    -
    692  gpu + gpuNumberStart, wrapperStructPose.heatMapTypes, wrapperStructPose.heatMapScale,
    -
    693  wrapperStructPose.enableGoogleLogging
    -
    694  );
    -
    695  spWPoses.at(gpu).emplace_back(std::make_shared<WFaceExtractor<TDatumsPtr>>(faceExtractor));
    -
    696  }
    -
    697  }
    -
    698 
    -
    699  // Hand extractor(s)
    -
    700  if (wrapperStructHand.enable)
    -
    701  {
    -
    702  const auto handDetector = std::make_shared<HandDetector>(wrapperStructPose.poseModel);
    -
    703  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    -
    704  {
    -
    705  // Hand detector
    -
    706  // If tracking
    -
    707  if (wrapperStructHand.tracking)
    -
    708  spWPoses.at(gpu).emplace_back(
    -
    709  std::make_shared<WHandDetectorTracking<TDatumsPtr>>(handDetector)
    -
    710  );
    -
    711  // If detection
    -
    712  else
    -
    713  spWPoses.at(gpu).emplace_back(std::make_shared<WHandDetector<TDatumsPtr>>(handDetector));
    -
    714  // Hand keypoint extractor
    -
    715  const auto netOutputSize = wrapperStructHand.netInputSize;
    -
    716  const auto handExtractor = std::make_shared<HandExtractorCaffe>(
    -
    717  wrapperStructHand.netInputSize, netOutputSize, modelFolder,
    -
    718  gpu + gpuNumberStart, wrapperStructHand.scalesNumber, wrapperStructHand.scaleRange,
    -
    719  wrapperStructPose.heatMapTypes, wrapperStructPose.heatMapScale,
    -
    720  wrapperStructPose.enableGoogleLogging
    -
    721  );
    -
    722  spWPoses.at(gpu).emplace_back(std::make_shared<WHandExtractor<TDatumsPtr>>(handExtractor));
    -
    723  // If tracking
    -
    724  if (wrapperStructHand.tracking)
    -
    725  spWPoses.at(gpu).emplace_back(std::make_shared<WHandDetectorUpdate<TDatumsPtr>>(handDetector));
    -
    726  }
    -
    727  }
    -
    728 
    -
    729  // Pose renderer(s)
    -
    730  if (!poseGpuRenderers.empty())
    -
    731  for (auto i = 0u; i < spWPoses.size(); i++)
    -
    732  spWPoses.at(i).emplace_back(std::make_shared<WPoseRenderer<TDatumsPtr>>(poseGpuRenderers.at(i)));
    -
    733 
    -
    734  // Face renderer(s)
    -
    735  if (renderFace)
    -
    736  {
    -
    737  // CPU rendering
    -
    738  if (wrapperStructFace.renderMode == RenderMode::Cpu)
    -
    739  {
    -
    740  // Construct face renderer
    -
    741  const auto faceRenderer = std::make_shared<FaceCpuRenderer>(wrapperStructFace.renderThreshold,
    -
    742  wrapperStructFace.alphaKeypoint,
    -
    743  wrapperStructFace.alphaHeatMap);
    -
    744  // Add worker
    -
    745  cpuRenderers.emplace_back(std::make_shared<WFaceRenderer<TDatumsPtr>>(faceRenderer));
    -
    746  }
    -
    747  // GPU rendering
    -
    748  else if (wrapperStructFace.renderMode == RenderMode::Gpu)
    -
    749  {
    -
    750  for (auto i = 0u; i < spWPoses.size(); i++)
    -
    751  {
    -
    752  // Construct face renderer
    -
    753  const auto faceRenderer = std::make_shared<FaceGpuRenderer>(wrapperStructFace.renderThreshold,
    -
    754  wrapperStructFace.alphaKeypoint,
    -
    755  wrapperStructFace.alphaHeatMap);
    -
    756  // Performance boost -> share spGpuMemory for all renderers
    -
    757  if (!poseGpuRenderers.empty())
    -
    758  {
    -
    759  const bool isLastRenderer = !renderHandGpu;
    -
    760  const auto renderer = std::static_pointer_cast<PoseGpuRenderer>(poseGpuRenderers.at(i));
    -
    761  faceRenderer->setSharedParametersAndIfLast(renderer->getSharedParameters(),
    -
    762  isLastRenderer);
    -
    763  }
    -
    764  // Add worker
    -
    765  spWPoses.at(i).emplace_back(std::make_shared<WFaceRenderer<TDatumsPtr>>(faceRenderer));
    -
    766  }
    -
    767  }
    -
    768  else
    -
    769  error("Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
    -
    770  }
    -
    771 
    -
    772  // Hand renderer(s)
    -
    773  if (renderHand)
    -
    774  {
    -
    775  // CPU rendering
    -
    776  if (wrapperStructHand.renderMode == RenderMode::Cpu)
    -
    777  {
    -
    778  // Construct hand renderer
    -
    779  const auto handRenderer = std::make_shared<HandCpuRenderer>(wrapperStructHand.renderThreshold,
    -
    780  wrapperStructHand.alphaKeypoint,
    -
    781  wrapperStructHand.alphaHeatMap);
    -
    782  // Add worker
    -
    783  cpuRenderers.emplace_back(std::make_shared<WHandRenderer<TDatumsPtr>>(handRenderer));
    -
    784  }
    -
    785  // GPU rendering
    -
    786  else if (wrapperStructHand.renderMode == RenderMode::Gpu)
    +
    678  log("Body keypoint detection is disabled. Hence, using OpenCV face detector (much less"
    +
    679  " accurate but faster).", Priority::High);
    +
    680  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    +
    681  {
    +
    682  // 1 FaceDetectorOpenCV per thread, OpenCV face detector is not thread-safe
    +
    683  const auto faceDetectorOpenCV = std::make_shared<FaceDetectorOpenCV>(modelFolder);
    +
    684  spWPoses.at(gpu).emplace_back(
    +
    685  std::make_shared<WFaceDetectorOpenCV<TDatumsPtr>>(faceDetectorOpenCV)
    +
    686  );
    +
    687  }
    +
    688  }
    +
    689  // Face keypoint extractor
    +
    690  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    +
    691  {
    +
    692  // Face keypoint extractor
    +
    693  const auto netOutputSize = wrapperStructFace.netInputSize;
    +
    694  const auto faceExtractor = std::make_shared<FaceExtractorCaffe>(
    +
    695  wrapperStructFace.netInputSize, netOutputSize, modelFolder,
    +
    696  gpu + gpuNumberStart, wrapperStructPose.heatMapTypes, wrapperStructPose.heatMapScale,
    +
    697  wrapperStructPose.enableGoogleLogging
    +
    698  );
    +
    699  spWPoses.at(gpu).emplace_back(std::make_shared<WFaceExtractor<TDatumsPtr>>(faceExtractor));
    +
    700  }
    +
    701  }
    +
    702 
    +
    703  // Hand extractor(s)
    +
    704  if (wrapperStructHand.enable)
    +
    705  {
    +
    706  const auto handDetector = std::make_shared<HandDetector>(wrapperStructPose.poseModel);
    +
    707  for (auto gpu = 0u; gpu < spWPoses.size(); gpu++)
    +
    708  {
    +
    709  // Hand detector
    +
    710  // If tracking
    +
    711  if (wrapperStructHand.tracking)
    +
    712  spWPoses.at(gpu).emplace_back(
    +
    713  std::make_shared<WHandDetectorTracking<TDatumsPtr>>(handDetector)
    +
    714  );
    +
    715  // If detection
    +
    716  else
    +
    717  spWPoses.at(gpu).emplace_back(std::make_shared<WHandDetector<TDatumsPtr>>(handDetector));
    +
    718  // Hand keypoint extractor
    +
    719  const auto netOutputSize = wrapperStructHand.netInputSize;
    +
    720  const auto handExtractor = std::make_shared<HandExtractorCaffe>(
    +
    721  wrapperStructHand.netInputSize, netOutputSize, modelFolder,
    +
    722  gpu + gpuNumberStart, wrapperStructHand.scalesNumber, wrapperStructHand.scaleRange,
    +
    723  wrapperStructPose.heatMapTypes, wrapperStructPose.heatMapScale,
    +
    724  wrapperStructPose.enableGoogleLogging
    +
    725  );
    +
    726  spWPoses.at(gpu).emplace_back(
    +
    727  std::make_shared<WHandExtractor<TDatumsPtr>>(handExtractor)
    +
    728  );
    +
    729  // If tracking
    +
    730  if (wrapperStructHand.tracking)
    +
    731  spWPoses.at(gpu).emplace_back(
    +
    732  std::make_shared<WHandDetectorUpdate<TDatumsPtr>>(handDetector)
    +
    733  );
    +
    734  }
    +
    735  }
    +
    736 
    +
    737  // Pose renderer(s)
    +
    738  if (!poseGpuRenderers.empty())
    +
    739  for (auto i = 0u; i < spWPoses.size(); i++)
    +
    740  spWPoses.at(i).emplace_back(std::make_shared<WPoseRenderer<TDatumsPtr>>(
    +
    741  poseGpuRenderers.at(i)
    +
    742  ));
    +
    743 
    +
    744  // Face renderer(s)
    +
    745  if (renderFace)
    +
    746  {
    +
    747  // CPU rendering
    +
    748  if (wrapperStructFace.renderMode == RenderMode::Cpu)
    +
    749  {
    +
    750  // Construct face renderer
    +
    751  const auto faceRenderer = std::make_shared<FaceCpuRenderer>(wrapperStructFace.renderThreshold,
    +
    752  wrapperStructFace.alphaKeypoint,
    +
    753  wrapperStructFace.alphaHeatMap);
    +
    754  // Add worker
    +
    755  cpuRenderers.emplace_back(std::make_shared<WFaceRenderer<TDatumsPtr>>(faceRenderer));
    +
    756  }
    +
    757  // GPU rendering
    +
    758  else if (wrapperStructFace.renderMode == RenderMode::Gpu)
    +
    759  {
    +
    760  for (auto i = 0u; i < spWPoses.size(); i++)
    +
    761  {
    +
    762  // Construct face renderer
    +
    763  const auto faceRenderer = std::make_shared<FaceGpuRenderer>(
    +
    764  wrapperStructFace.renderThreshold, wrapperStructFace.alphaKeypoint,
    +
    765  wrapperStructFace.alphaHeatMap
    +
    766  );
    +
    767  // Performance boost -> share spGpuMemory for all renderers
    +
    768  if (!poseGpuRenderers.empty())
    +
    769  {
    +
    770  const bool isLastRenderer = !renderHandGpu;
    +
    771  const auto renderer = std::static_pointer_cast<PoseGpuRenderer>(
    +
    772  poseGpuRenderers.at(i)
    +
    773  );
    +
    774  faceRenderer->setSharedParametersAndIfLast(renderer->getSharedParameters(),
    +
    775  isLastRenderer);
    +
    776  }
    +
    777  // Add worker
    +
    778  spWPoses.at(i).emplace_back(std::make_shared<WFaceRenderer<TDatumsPtr>>(faceRenderer));
    +
    779  }
    +
    780  }
    +
    781  else
    +
    782  error("Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
    +
    783  }
    +
    784 
    +
    785  // Hand renderer(s)
    +
    786  if (renderHand)
    787  {
    -
    788  for (auto i = 0u; i < spWPoses.size(); i++)
    -
    789  {
    -
    790  // Construct hands renderer
    -
    791  const auto handRenderer = std::make_shared<HandGpuRenderer>(wrapperStructHand.renderThreshold,
    -
    792  wrapperStructHand.alphaKeypoint,
    -
    793  wrapperStructHand.alphaHeatMap);
    -
    794  // Performance boost -> share spGpuMemory for all renderers
    -
    795  if (!poseGpuRenderers.empty())
    -
    796  {
    -
    797  const bool isLastRenderer = true;
    -
    798  const auto renderer = std::static_pointer_cast<PoseGpuRenderer>(poseGpuRenderers.at(i));
    -
    799  handRenderer->setSharedParametersAndIfLast(renderer->getSharedParameters(),
    -
    800  isLastRenderer);
    -
    801  }
    -
    802  // Add worker
    -
    803  spWPoses.at(i).emplace_back(std::make_shared<WHandRenderer<TDatumsPtr>>(handRenderer));
    -
    804  }
    -
    805  }
    -
    806  else
    -
    807  error("Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
    -
    808  }
    -
    809 
    -
    810  // Itermediate workers (e.g. OpenPose format to cv::Mat, json & frames recorder, ...)
    -
    811  mPostProcessingWs.clear();
    -
    812  // Frame buffer and ordering
    -
    813  if (spWPoses.size() > 1u)
    -
    814  mPostProcessingWs.emplace_back(std::make_shared<WQueueOrderer<TDatumsPtr>>());
    -
    815  // Person ID identification
    -
    816  if (wrapperStructPose.identification)
    -
    817  {
    -
    818  const auto personIdExtractor = std::make_shared<PersonIdExtractor>();
    -
    819  mPostProcessingWs.emplace_back(std::make_shared<WPersonIdExtractor<TDatumsPtr>>(personIdExtractor));
    -
    820  }
    -
    821  // Frames processor (OpenPose format -> cv::Mat format)
    -
    822  if (renderOutput)
    -
    823  {
    -
    824  mPostProcessingWs = mergeVectors(mPostProcessingWs, cpuRenderers);
    -
    825  const auto opOutputToCvMat = std::make_shared<OpOutputToCvMat>();
    -
    826  mPostProcessingWs.emplace_back(std::make_shared<WOpOutputToCvMat<TDatumsPtr>>(opOutputToCvMat));
    -
    827  }
    -
    828  // Re-scale pose if desired
    -
    829  // If desired scale is not the current input
    -
    830  if (wrapperStructPose.keypointScale != ScaleMode::InputResolution
    -
    831  // and desired scale is not output when size(input) = size(output)
    -
    832  && !(wrapperStructPose.keypointScale == ScaleMode::OutputResolution &&
    -
    833  (finalOutputSize == producerSize || finalOutputSize.x <= 0 || finalOutputSize.y <= 0))
    -
    834  // and desired scale is not net output when size(input) = size(net output)
    -
    835  && !(wrapperStructPose.keypointScale == ScaleMode::NetOutputResolution
    -
    836  && producerSize == wrapperStructPose.netInputSize))
    -
    837  {
    -
    838  // Then we must rescale the keypoints
    -
    839  auto keypointScaler = std::make_shared<KeypointScaler>(wrapperStructPose.keypointScale);
    -
    840  mPostProcessingWs.emplace_back(std::make_shared<WKeypointScaler<TDatumsPtr>>(keypointScaler));
    -
    841  }
    -
    842 
    -
    843  mOutputWs.clear();
    -
    844  // Write people pose data on disk (json for OpenCV >= 3, xml, yml...)
    -
    845  if (!writeKeypointCleaned.empty())
    -
    846  {
    -
    847  const auto keypointSaver = std::make_shared<KeypointSaver>(writeKeypointCleaned,
    -
    848  wrapperStructOutput.writeKeypointFormat);
    -
    849  mOutputWs.emplace_back(std::make_shared<WPoseSaver<TDatumsPtr>>(keypointSaver));
    -
    850  if (wrapperStructFace.enable)
    -
    851  mOutputWs.emplace_back(std::make_shared<WFaceSaver<TDatumsPtr>>(keypointSaver));
    -
    852  if (wrapperStructHand.enable)
    -
    853  mOutputWs.emplace_back(std::make_shared<WHandSaver<TDatumsPtr>>(keypointSaver));
    -
    854  }
    -
    855  // Write people pose data on disk (json format)
    -
    856  if (!writeKeypointJsonCleaned.empty())
    -
    857  {
    -
    858  const auto keypointJsonSaver = std::make_shared<KeypointJsonSaver>(writeKeypointJsonCleaned);
    -
    859  mOutputWs.emplace_back(std::make_shared<WKeypointJsonSaver<TDatumsPtr>>(keypointJsonSaver));
    +
    788  // CPU rendering
    +
    789  if (wrapperStructHand.renderMode == RenderMode::Cpu)
    +
    790  {
    +
    791  // Construct hand renderer
    +
    792  const auto handRenderer = std::make_shared<HandCpuRenderer>(wrapperStructHand.renderThreshold,
    +
    793  wrapperStructHand.alphaKeypoint,
    +
    794  wrapperStructHand.alphaHeatMap);
    +
    795  // Add worker
    +
    796  cpuRenderers.emplace_back(std::make_shared<WHandRenderer<TDatumsPtr>>(handRenderer));
    +
    797  }
    +
    798  // GPU rendering
    +
    799  else if (wrapperStructHand.renderMode == RenderMode::Gpu)
    +
    800  {
    +
    801  for (auto i = 0u; i < spWPoses.size(); i++)
    +
    802  {
    +
    803  // Construct hands renderer
    +
    804  const auto handRenderer = std::make_shared<HandGpuRenderer>(
    +
    805  wrapperStructHand.renderThreshold, wrapperStructHand.alphaKeypoint,
    +
    806  wrapperStructHand.alphaHeatMap
    +
    807  );
    +
    808  // Performance boost -> share spGpuMemory for all renderers
    +
    809  if (!poseGpuRenderers.empty())
    +
    810  {
    +
    811  const bool isLastRenderer = true;
    +
    812  const auto renderer = std::static_pointer_cast<PoseGpuRenderer>(
    +
    813  poseGpuRenderers.at(i)
    +
    814  );
    +
    815  handRenderer->setSharedParametersAndIfLast(renderer->getSharedParameters(),
    +
    816  isLastRenderer);
    +
    817  }
    +
    818  // Add worker
    +
    819  spWPoses.at(i).emplace_back(std::make_shared<WHandRenderer<TDatumsPtr>>(handRenderer));
    +
    820  }
    +
    821  }
    +
    822  else
    +
    823  error("Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
    +
    824  }
    +
    825 
    +
    826  // Itermediate workers (e.g. OpenPose format to cv::Mat, json & frames recorder, ...)
    +
    827  mPostProcessingWs.clear();
    +
    828  // Frame buffer and ordering
    +
    829  if (spWPoses.size() > 1u)
    +
    830  mPostProcessingWs.emplace_back(std::make_shared<WQueueOrderer<TDatumsPtr>>());
    +
    831  // Person ID identification
    +
    832  if (wrapperStructPose.identification)
    +
    833  {
    +
    834  const auto personIdExtractor = std::make_shared<PersonIdExtractor>();
    +
    835  mPostProcessingWs.emplace_back(
    +
    836  std::make_shared<WPersonIdExtractor<TDatumsPtr>>(personIdExtractor)
    +
    837  );
    +
    838  }
    +
    839  // Frames processor (OpenPose format -> cv::Mat format)
    +
    840  if (renderOutput)
    +
    841  {
    +
    842  mPostProcessingWs = mergeVectors(mPostProcessingWs, cpuRenderers);
    +
    843  const auto opOutputToCvMat = std::make_shared<OpOutputToCvMat>();
    +
    844  mPostProcessingWs.emplace_back(std::make_shared<WOpOutputToCvMat<TDatumsPtr>>(opOutputToCvMat));
    +
    845  }
    +
    846  // Re-scale pose if desired
    +
    847  // If desired scale is not the current input
    +
    848  if (wrapperStructPose.keypointScale != ScaleMode::InputResolution
    +
    849  // and desired scale is not output when size(input) = size(output)
    +
    850  && !(wrapperStructPose.keypointScale == ScaleMode::OutputResolution &&
    +
    851  (finalOutputSize == producerSize || finalOutputSize.x <= 0 || finalOutputSize.y <= 0))
    +
    852  // and desired scale is not net output when size(input) = size(net output)
    +
    853  && !(wrapperStructPose.keypointScale == ScaleMode::NetOutputResolution
    +
    854  && producerSize == wrapperStructPose.netInputSize))
    +
    855  {
    +
    856  // Then we must rescale the keypoints
    +
    857  auto keypointScaler = std::make_shared<KeypointScaler>(wrapperStructPose.keypointScale);
    +
    858  mPostProcessingWs.emplace_back(std::make_shared<WKeypointScaler<TDatumsPtr>>(keypointScaler));
    +
    859  }
    860  }
    -
    861  // Write people pose data on disk (COCO validation json format)
    -
    862  if (!wrapperStructOutput.writeCocoJson.empty())
    -
    863  {
    -
    864  // If humanFormat: bigger size (& maybe slower to process), but easier for user to read it
    -
    865  const auto humanFormat = true;
    -
    866  const auto cocoJsonSaver = std::make_shared<CocoJsonSaver>(wrapperStructOutput.writeCocoJson,
    -
    867  humanFormat);
    -
    868  mOutputWs.emplace_back(std::make_shared<WCocoJsonSaver<TDatumsPtr>>(cocoJsonSaver));
    -
    869  }
    -
    870  // Write frames as desired image format on hard disk
    -
    871  if (!writeImagesCleaned.empty())
    -
    872  {
    -
    873  const auto imageSaver = std::make_shared<ImageSaver>(writeImagesCleaned,
    -
    874  wrapperStructOutput.writeImagesFormat);
    -
    875  mOutputWs.emplace_back(std::make_shared<WImageSaver<TDatumsPtr>>(imageSaver));
    -
    876  }
    -
    877  // Write frames as *.avi video on hard disk
    -
    878  if (!wrapperStructOutput.writeVideo.empty() && wrapperStructInput.producerSharedPtr != nullptr)
    -
    879  {
    -
    880  if (finalOutputSize.x <= 0 || finalOutputSize.y <= 0)
    -
    881  error("Video can only be recorded if outputSize is fixed (e.g. video, webcam, IP camera),"
    -
    882  "but not for a image directory.", __LINE__, __FUNCTION__, __FILE__);
    -
    883  const auto originalVideoFps = (wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FPS) > 0.
    -
    884  ? wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FPS) : 30.);
    -
    885  const auto videoSaver = std::make_shared<VideoSaver>(
    -
    886  wrapperStructOutput.writeVideo, CV_FOURCC('M','J','P','G'), originalVideoFps, finalOutputSize
    -
    887  );
    -
    888  mOutputWs.emplace_back(std::make_shared<WVideoSaver<TDatumsPtr>>(videoSaver));
    -
    889  }
    -
    890  // Write heat maps as desired image format on hard disk
    -
    891  if (!writeHeatMapsCleaned.empty())
    -
    892  {
    -
    893  const auto heatMapSaver = std::make_shared<HeatMapSaver>(writeHeatMapsCleaned,
    -
    894  wrapperStructOutput.writeHeatMapsFormat);
    -
    895  mOutputWs.emplace_back(std::make_shared<WHeatMapSaver<TDatumsPtr>>(heatMapSaver));
    -
    896  }
    -
    897  // Add frame information for GUI
    -
    898  // If this WGuiInfoAdder instance is placed before the WImageSaver or WVideoSaver, then the resulting
    -
    899  // recorded frames will look exactly as the final displayed image by the GUI
    -
    900  if (wrapperStructOutput.guiVerbose && (wrapperStructOutput.displayGui || !mUserOutputWs.empty()
    -
    901  || mThreadManagerMode == ThreadManagerMode::Asynchronous
    -
    902  || mThreadManagerMode == ThreadManagerMode::AsynchronousOut))
    -
    903  {
    -
    904  const auto guiInfoAdder = std::make_shared<GuiInfoAdder>(gpuNumber, wrapperStructOutput.displayGui);
    -
    905  mOutputWs.emplace_back(std::make_shared<WGuiInfoAdder<TDatumsPtr>>(guiInfoAdder));
    -
    906  }
    -
    907  // Minimal graphical user interface (GUI)
    -
    908  spWGui = nullptr;
    -
    909  if (wrapperStructOutput.displayGui)
    -
    910  {
    -
    911  // PoseRenderers to Renderers
    -
    912  std::vector<std::shared_ptr<Renderer>> renderers;
    -
    913  if (wrapperStructPose.renderMode == RenderMode::Cpu)
    -
    914  renderers.emplace_back(std::static_pointer_cast<Renderer>(poseCpuRenderer));
    -
    915  else
    -
    916  for (const auto& poseGpuRenderer : poseGpuRenderers)
    -
    917  renderers.emplace_back(std::static_pointer_cast<Renderer>(poseGpuRenderer));
    -
    918  // Gui
    -
    919  const auto gui = std::make_shared<Gui>(
    -
    920  finalOutputSize, wrapperStructOutput.fullScreen, mThreadManager.getIsRunningSharedPtr(),
    -
    921  spVideoSeek, poseExtractors, renderers
    -
    922  );
    -
    923  // WGui
    -
    924  spWGui = {std::make_shared<WGui<TDatumsPtr>>(gui)};
    +
    861 
    +
    862  mOutputWs.clear();
    +
    863  // Write people pose data on disk (json for OpenCV >= 3, xml, yml...)
    +
    864  if (!writeKeypointCleaned.empty())
    +
    865  {
    +
    866  const auto keypointSaver = std::make_shared<KeypointSaver>(writeKeypointCleaned,
    +
    867  wrapperStructOutput.writeKeypointFormat);
    +
    868  mOutputWs.emplace_back(std::make_shared<WPoseSaver<TDatumsPtr>>(keypointSaver));
    +
    869  if (wrapperStructFace.enable)
    +
    870  mOutputWs.emplace_back(std::make_shared<WFaceSaver<TDatumsPtr>>(keypointSaver));
    +
    871  if (wrapperStructHand.enable)
    +
    872  mOutputWs.emplace_back(std::make_shared<WHandSaver<TDatumsPtr>>(keypointSaver));
    +
    873  }
    +
    874  // Write people pose data on disk (json format)
    +
    875  if (!writeKeypointJsonCleaned.empty())
    +
    876  {
    +
    877  const auto keypointJsonSaver = std::make_shared<KeypointJsonSaver>(writeKeypointJsonCleaned);
    +
    878  mOutputWs.emplace_back(std::make_shared<WKeypointJsonSaver<TDatumsPtr>>(keypointJsonSaver));
    +
    879  }
    +
    880  // Write people pose data on disk (COCO validation json format)
    +
    881  if (!wrapperStructOutput.writeCocoJson.empty())
    +
    882  {
    +
    883  // If humanFormat: bigger size (& maybe slower to process), but easier for user to read it
    +
    884  const auto humanFormat = true;
    +
    885  const auto cocoJsonSaver = std::make_shared<CocoJsonSaver>(wrapperStructOutput.writeCocoJson,
    +
    886  humanFormat);
    +
    887  mOutputWs.emplace_back(std::make_shared<WCocoJsonSaver<TDatumsPtr>>(cocoJsonSaver));
    +
    888  }
    +
    889  // Write frames as desired image format on hard disk
    +
    890  if (!writeImagesCleaned.empty())
    +
    891  {
    +
    892  const auto imageSaver = std::make_shared<ImageSaver>(writeImagesCleaned,
    +
    893  wrapperStructOutput.writeImagesFormat);
    +
    894  mOutputWs.emplace_back(std::make_shared<WImageSaver<TDatumsPtr>>(imageSaver));
    +
    895  }
    +
    896  // Write frames as *.avi video on hard disk
    +
    897  if (!wrapperStructOutput.writeVideo.empty() && wrapperStructInput.producerSharedPtr != nullptr)
    +
    898  {
    +
    899  if (finalOutputSize.x <= 0 || finalOutputSize.y <= 0)
    +
    900  error("Video can only be recorded if outputSize is fixed (e.g. video, webcam, IP camera),"
    +
    901  "but not for a image directory.", __LINE__, __FUNCTION__, __FILE__);
    +
    902  const auto originalVideoFps = (wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FPS) > 0.
    +
    903  ? wrapperStructInput.producerSharedPtr->get(CV_CAP_PROP_FPS) : 30.);
    +
    904  const auto videoSaver = std::make_shared<VideoSaver>(
    +
    905  wrapperStructOutput.writeVideo, CV_FOURCC('M','J','P','G'), originalVideoFps, finalOutputSize
    +
    906  );
    +
    907  mOutputWs.emplace_back(std::make_shared<WVideoSaver<TDatumsPtr>>(videoSaver));
    +
    908  }
    +
    909  // Write heat maps as desired image format on hard disk
    +
    910  if (!writeHeatMapsCleaned.empty())
    +
    911  {
    +
    912  const auto heatMapSaver = std::make_shared<HeatMapSaver>(writeHeatMapsCleaned,
    +
    913  wrapperStructOutput.writeHeatMapsFormat);
    +
    914  mOutputWs.emplace_back(std::make_shared<WHeatMapSaver<TDatumsPtr>>(heatMapSaver));
    +
    915  }
    +
    916  // Add frame information for GUI
    +
    917  // If this WGuiInfoAdder instance is placed before the WImageSaver or WVideoSaver, then the resulting
    +
    918  // recorded frames will look exactly as the final displayed image by the GUI
    +
    919  if (wrapperStructOutput.guiVerbose && (wrapperStructOutput.displayGui || !mUserOutputWs.empty()
    +
    920  || mThreadManagerMode == ThreadManagerMode::Asynchronous
    +
    921  || mThreadManagerMode == ThreadManagerMode::AsynchronousOut))
    +
    922  {
    +
    923  const auto guiInfoAdder = std::make_shared<GuiInfoAdder>(gpuNumber, wrapperStructOutput.displayGui);
    +
    924  mOutputWs.emplace_back(std::make_shared<WGuiInfoAdder<TDatumsPtr>>(guiInfoAdder));
    925  }
    -
    926  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    -
    927  }
    -
    928  catch (const std::exception& e)
    -
    929  {
    -
    930  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    931  }
    -
    932  }
    -
    933 
    -
    934  template<typename TDatums, typename TWorker, typename TQueue>
    -
    935  void Wrapper<TDatums, TWorker, TQueue>::exec()
    -
    936  {
    -
    937  try
    -
    938  {
    -
    939  configureThreadManager();
    -
    940  mThreadManager.exec();
    -
    941  }
    -
    942  catch (const std::exception& e)
    -
    943  {
    -
    944  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    945  }
    -
    946  }
    -
    947 
    -
    948  template<typename TDatums, typename TWorker, typename TQueue>
    -
    949  void Wrapper<TDatums, TWorker, TQueue>::start()
    -
    950  {
    -
    951  try
    -
    952  {
    -
    953  configureThreadManager();
    -
    954  mThreadManager.start();
    -
    955  }
    -
    956  catch (const std::exception& e)
    -
    957  {
    -
    958  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    959  }
    -
    960  }
    -
    961 
    -
    962  template<typename TDatums, typename TWorker, typename TQueue>
    -
    963  void Wrapper<TDatums, TWorker, TQueue>::stop()
    -
    964  {
    -
    965  try
    -
    966  {
    -
    967  mThreadManager.stop();
    -
    968  }
    -
    969  catch (const std::exception& e)
    -
    970  {
    -
    971  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    972  }
    -
    973  }
    -
    974 
    -
    975  template<typename TDatums, typename TWorker, typename TQueue>
    -
    976  bool Wrapper<TDatums, TWorker, TQueue>::isRunning() const
    -
    977  {
    -
    978  try
    -
    979  {
    -
    980  return mThreadManager.isRunning();
    -
    981  }
    -
    982  catch (const std::exception& e)
    -
    983  {
    -
    984  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    985  return false;
    -
    986  }
    -
    987  }
    -
    988 
    -
    989  template<typename TDatums, typename TWorker, typename TQueue>
    -
    990  bool Wrapper<TDatums, TWorker, TQueue>::tryEmplace(std::shared_ptr<TDatums>& tDatums)
    -
    991  {
    -
    992  try
    +
    926  // Minimal graphical user interface (GUI)
    +
    927  spWGui = nullptr;
    +
    928  if (wrapperStructOutput.displayGui)
    +
    929  {
    +
    930  // PoseRenderers to Renderers
    +
    931  std::vector<std::shared_ptr<Renderer>> renderers;
    +
    932  if (wrapperStructPose.renderMode == RenderMode::Cpu)
    +
    933  renderers.emplace_back(std::static_pointer_cast<Renderer>(poseCpuRenderer));
    +
    934  else
    +
    935  for (const auto& poseGpuRenderer : poseGpuRenderers)
    +
    936  renderers.emplace_back(std::static_pointer_cast<Renderer>(poseGpuRenderer));
    +
    937  // Gui
    +
    938  const auto gui = std::make_shared<Gui>(
    +
    939  finalOutputSize, wrapperStructOutput.fullScreen, mThreadManager.getIsRunningSharedPtr(),
    +
    940  spVideoSeek, poseExtractors, renderers
    +
    941  );
    +
    942  // WGui
    +
    943  spWGui = {std::make_shared<WGui<TDatumsPtr>>(gui)};
    +
    944  }
    +
    945  // Set wrapper as configured
    +
    946  mConfigured = true;
    +
    947  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    +
    948  }
    +
    949  catch (const std::exception& e)
    +
    950  {
    +
    951  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    952  }
    +
    953  }
    +
    954 
    +
    955  template<typename TDatums, typename TWorker, typename TQueue>
    +
    956  void Wrapper<TDatums, TWorker, TQueue>::exec()
    +
    957  {
    +
    958  try
    +
    959  {
    +
    960  configureThreadManager();
    +
    961  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    +
    962  mThreadManager.exec();
    +
    963  }
    +
    964  catch (const std::exception& e)
    +
    965  {
    +
    966  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    967  }
    +
    968  }
    +
    969 
    +
    970  template<typename TDatums, typename TWorker, typename TQueue>
    +
    971  void Wrapper<TDatums, TWorker, TQueue>::start()
    +
    972  {
    +
    973  try
    +
    974  {
    +
    975  configureThreadManager();
    +
    976  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    +
    977  mThreadManager.start();
    +
    978  }
    +
    979  catch (const std::exception& e)
    +
    980  {
    +
    981  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    982  }
    +
    983  }
    +
    984 
    +
    985  template<typename TDatums, typename TWorker, typename TQueue>
    +
    986  void Wrapper<TDatums, TWorker, TQueue>::stop()
    +
    987  {
    +
    988  try
    +
    989  {
    +
    990  mThreadManager.stop();
    +
    991  }
    +
    992  catch (const std::exception& e)
    993  {
    -
    994  if (!mUserInputWs.empty())
    -
    995  error("Emplace cannot be called if an input worker was already selected.",
    -
    996  __LINE__, __FUNCTION__, __FILE__);
    -
    997  return mThreadManager.tryEmplace(tDatums);
    -
    998  }
    -
    999  catch (const std::exception& e)
    -
    1000  {
    -
    1001  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1002  return false;
    -
    1003  }
    -
    1004  }
    -
    1005 
    -
    1006  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1007  bool Wrapper<TDatums, TWorker, TQueue>::waitAndEmplace(std::shared_ptr<TDatums>& tDatums)
    -
    1008  {
    -
    1009  try
    -
    1010  {
    -
    1011  if (!mUserInputWs.empty())
    -
    1012  error("Emplace cannot be called if an input worker was already selected.",
    -
    1013  __LINE__, __FUNCTION__, __FILE__);
    -
    1014  return mThreadManager.waitAndEmplace(tDatums);
    -
    1015  }
    -
    1016  catch (const std::exception& e)
    -
    1017  {
    -
    1018  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1019  return false;
    -
    1020  }
    -
    1021  }
    -
    1022 
    -
    1023  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1024  bool Wrapper<TDatums, TWorker, TQueue>::tryPush(const std::shared_ptr<TDatums>& tDatums)
    -
    1025  {
    -
    1026  try
    -
    1027  {
    -
    1028  if (!mUserInputWs.empty())
    -
    1029  error("Push cannot be called if an input worker was already selected.",
    -
    1030  __LINE__, __FUNCTION__, __FILE__);
    -
    1031  return mThreadManager.tryPush(tDatums);
    -
    1032  }
    -
    1033  catch (const std::exception& e)
    -
    1034  {
    -
    1035  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1036  return false;
    -
    1037  }
    -
    1038  }
    -
    1039 
    -
    1040  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1041  bool Wrapper<TDatums, TWorker, TQueue>::waitAndPush(const std::shared_ptr<TDatums>& tDatums)
    -
    1042  {
    -
    1043  try
    -
    1044  {
    -
    1045  if (!mUserInputWs.empty())
    -
    1046  error("Push cannot be called if an input worker was already selected.",
    -
    1047  __LINE__, __FUNCTION__, __FILE__);
    -
    1048  return mThreadManager.waitAndPush(tDatums);
    -
    1049  }
    -
    1050  catch (const std::exception& e)
    -
    1051  {
    -
    1052  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1053  return false;
    -
    1054  }
    -
    1055  }
    -
    1056 
    -
    1057  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1058  bool Wrapper<TDatums, TWorker, TQueue>::tryPop(std::shared_ptr<TDatums>& tDatums)
    -
    1059  {
    -
    1060  try
    -
    1061  {
    -
    1062  if (!mUserOutputWs.empty())
    -
    1063  error("Pop cannot be called if an output worker was already selected.",
    -
    1064  __LINE__, __FUNCTION__, __FILE__);
    -
    1065  return mThreadManager.tryPop(tDatums);
    -
    1066  }
    -
    1067  catch (const std::exception& e)
    -
    1068  {
    -
    1069  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1070  return false;
    -
    1071  }
    -
    1072  }
    -
    1073 
    -
    1074  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1075  bool Wrapper<TDatums, TWorker, TQueue>::waitAndPop(std::shared_ptr<TDatums>& tDatums)
    -
    1076  {
    -
    1077  try
    -
    1078  {
    -
    1079  if (!mUserOutputWs.empty())
    -
    1080  error("Pop cannot be called if an output worker was already selected.",
    -
    1081  __LINE__, __FUNCTION__, __FILE__);
    -
    1082  return mThreadManager.waitAndPop(tDatums);
    -
    1083  }
    -
    1084  catch (const std::exception& e)
    -
    1085  {
    -
    1086  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1087  return false;
    -
    1088  }
    -
    1089  }
    -
    1090 
    -
    1091  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1092  void Wrapper<TDatums, TWorker, TQueue>::reset()
    -
    1093  {
    -
    1094  try
    -
    1095  {
    -
    1096  mThreadManager.reset();
    -
    1097  mThreadId = 0ull;
    -
    1098  // Reset
    -
    1099  mUserInputWs.clear();
    -
    1100  wDatumProducer = nullptr;
    -
    1101  spWScaleAndSizeExtractor = nullptr;
    -
    1102  spWCvMatToOpInput = nullptr;
    -
    1103  spWCvMatToOpOutput = nullptr;
    -
    1104  spWPoses.clear();
    -
    1105  mPostProcessingWs.clear();
    -
    1106  mUserPostProcessingWs.clear();
    -
    1107  mOutputWs.clear();
    -
    1108  spWGui = nullptr;
    -
    1109  mUserOutputWs.clear();
    -
    1110  }
    -
    1111  catch (const std::exception& e)
    -
    1112  {
    -
    1113  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1114  }
    -
    1115  }
    -
    1116 
    -
    1117  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1118  void Wrapper<TDatums, TWorker, TQueue>::configureThreadManager()
    -
    1119  {
    -
    1120  try
    -
    1121  {
    -
    1122  // The less number of queues -> the less lag
    -
    1123 
    -
    1124  // Security checks
    -
    1125  if (spWScaleAndSizeExtractor == nullptr || spWCvMatToOpInput == nullptr)
    -
    1126  error("Configure the Wrapper class before calling `start()`.", __LINE__, __FUNCTION__, __FILE__);
    -
    1127  if ((wDatumProducer == nullptr) == (mUserInputWs.empty())
    -
    1128  && mThreadManagerMode != ThreadManagerMode::Asynchronous
    -
    1129  && mThreadManagerMode != ThreadManagerMode::AsynchronousIn)
    -
    1130  {
    -
    1131  const auto message = "You need to have 1 and only 1 producer selected. You can introduce your own"
    -
    1132  " producer by using setWorkerInput() or use the OpenPose default producer by"
    -
    1133  " configuring it in the configure function) or use the"
    -
    1134  " ThreadManagerMode::Asynchronous(In) mode.";
    -
    1135  error(message, __LINE__, __FUNCTION__, __FILE__);
    -
    1136  }
    -
    1137  if (mOutputWs.empty() && mUserOutputWs.empty() && spWGui == nullptr
    -
    1138  && mThreadManagerMode != ThreadManagerMode::Asynchronous
    -
    1139  && mThreadManagerMode != ThreadManagerMode::AsynchronousOut)
    -
    1140  {
    -
    1141  error("No output selected.", __LINE__, __FUNCTION__, __FILE__);
    -
    1142  }
    -
    1143 
    -
    1144  // Thread Manager:
    -
    1145  // Clean previous thread manager (avoid configure to crash the program if used more than once)
    -
    1146  mThreadManager.reset();
    -
    1147  mThreadId = 0ull;
    -
    1148  auto queueIn = 0ull;
    -
    1149  auto queueOut = 1ull;
    -
    1150  // If custom user Worker and uses its own thread
    -
    1151  spWIdGenerator = std::make_shared<WIdGenerator<std::shared_ptr<TDatums>>>();
    -
    1152  if (!mUserInputWs.empty() && mUserInputWsOnNewThread)
    -
    1153  {
    -
    1154  // Thread 0, queues 0 -> 1
    -
    1155  mThreadManager.add(mThreadId, mUserInputWs, queueIn++, queueOut++);
    -
    1156  threadIdPP();
    -
    1157  // Thread 1, queues 1 -> 2
    -
    1158  if (spWCvMatToOpOutput == nullptr)
    -
    1159  mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput},
    -
    1160  queueIn++, queueOut++);
    -
    1161  else
    -
    1162  mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput,
    -
    1163  spWCvMatToOpOutput}, queueIn++, queueOut++);
    -
    1164  }
    -
    1165  // If custom user Worker in same thread or producer on same thread
    -
    1166  else
    -
    1167  {
    -
    1168  std::vector<TWorker> workersAux;
    -
    1169  // Custom user Worker
    -
    1170  if (!mUserInputWs.empty())
    -
    1171  workersAux = mergeVectors(workersAux, mUserInputWs);
    -
    1172  // OpenPose producer
    -
    1173  else if (wDatumProducer != nullptr)
    -
    1174  workersAux = mergeVectors(workersAux, {wDatumProducer});
    -
    1175  // Otherwise
    -
    1176  else if (mThreadManagerMode != ThreadManagerMode::Asynchronous
    -
    1177  && mThreadManagerMode != ThreadManagerMode::AsynchronousIn)
    -
    1178  error("No input selected.", __LINE__, __FUNCTION__, __FILE__);
    -
    1179 
    -
    1180  if (spWCvMatToOpOutput == nullptr)
    -
    1181  workersAux = mergeVectors(workersAux, {spWIdGenerator, spWScaleAndSizeExtractor,
    -
    1182  spWCvMatToOpInput});
    -
    1183  else
    -
    1184  workersAux = mergeVectors(workersAux, {spWIdGenerator, spWScaleAndSizeExtractor,
    -
    1185  spWCvMatToOpInput, spWCvMatToOpOutput});
    -
    1186  // Thread 0 or 1, queues 0 -> 1
    -
    1187  mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
    -
    1188  }
    -
    1189  threadIdPP();
    -
    1190  // Pose estimation & rendering
    -
    1191  // Thread 1 or 2...X, queues 1 -> 2, X = 2 + #GPUs
    -
    1192  if (!spWPoses.empty())
    -
    1193  {
    -
    1194  if (mMultiThreadEnabled)
    -
    1195  {
    -
    1196  for (auto& wPose : spWPoses)
    -
    1197  {
    -
    1198  mThreadManager.add(mThreadId, wPose, queueIn, queueOut);
    -
    1199  threadIdPP();
    -
    1200  }
    -
    1201  }
    -
    1202  else
    -
    1203  {
    -
    1204  if (spWPoses.size() > 1)
    -
    1205  log("Multi-threading disabled, only 1 thread running. All GPUs have been disabled but the"
    -
    1206  " first one, which is defined by gpuNumberStart (e.g. in the OpenPose demo, it is set"
    -
    1207  " with the `num_gpu_start` flag).", Priority::High);
    -
    1208  mThreadManager.add(mThreadId, spWPoses.at(0), queueIn, queueOut);
    -
    1209  }
    -
    1210  queueIn++;
    -
    1211  queueOut++;
    -
    1212  }
    -
    1213  // If custom user Worker and uses its own thread
    -
    1214  if (!mUserPostProcessingWs.empty() && mUserPostProcessingWsOnNewThread)
    -
    1215  {
    -
    1216  // Post processing workers
    -
    1217  if (!mPostProcessingWs.empty())
    -
    1218  {
    -
    1219  // Thread 2 or 3, queues 2 -> 3
    -
    1220  mThreadManager.add(mThreadId, mPostProcessingWs, queueIn++, queueOut++);
    -
    1221  threadIdPP();
    -
    1222  }
    -
    1223  // User processing workers
    -
    1224  // Thread 3 or 4, queues 3 -> 4
    -
    1225  mThreadManager.add(mThreadId, mUserPostProcessingWs, queueIn++, queueOut++);
    -
    1226  threadIdPP();
    -
    1227  // Output workers
    -
    1228  if (!mOutputWs.empty())
    -
    1229  {
    -
    1230  // Thread 4 or 5, queues 4 -> 5
    -
    1231  mThreadManager.add(mThreadId, mOutputWs, queueIn++, queueOut++);
    -
    1232  threadIdPP();
    -
    1233  }
    -
    1234  }
    -
    1235  // If custom user Worker in same thread or producer on same thread
    -
    1236  else
    -
    1237  {
    -
    1238  // Post processing workers + User post processing workers + Output workers
    -
    1239  auto workersAux = mergeVectors(mPostProcessingWs, mUserPostProcessingWs);
    -
    1240  workersAux = mergeVectors(workersAux, mOutputWs);
    -
    1241  if (!workersAux.empty())
    -
    1242  {
    -
    1243  // Thread 2 or 3, queues 2 -> 3
    -
    1244  mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
    -
    1245  threadIdPP();
    -
    1246  }
    -
    1247  }
    -
    1248  // User output worker
    -
    1249  // Thread Y, queues Q -> Q+1
    -
    1250  if (!mUserOutputWs.empty())
    -
    1251  {
    -
    1252  if (mUserOutputWsOnNewThread)
    -
    1253  {
    -
    1254  mThreadManager.add(mThreadId, mUserOutputWs, queueIn++, queueOut++);
    -
    1255  threadIdPP();
    -
    1256  }
    -
    1257  else
    -
    1258  mThreadManager.add(mThreadId-1, mUserOutputWs, queueIn++, queueOut++);
    -
    1259  }
    -
    1260  // OpenPose GUI
    -
    1261  if (spWGui != nullptr)
    -
    1262  {
    -
    1263  // Thread Y+1, queues Q+1 -> Q+2
    -
    1264  mThreadManager.add(mThreadId, spWGui, queueIn++, queueOut++);
    -
    1265  threadIdPP();
    -
    1266  }
    -
    1267  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    -
    1268  }
    -
    1269  catch (const std::exception& e)
    -
    1270  {
    -
    1271  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1272  }
    -
    1273  }
    -
    1274 
    -
    1275  template<typename TDatums, typename TWorker, typename TQueue>
    -
    1276  unsigned long long Wrapper<TDatums, TWorker, TQueue>::threadIdPP()
    -
    1277  {
    -
    1278  try
    -
    1279  {
    -
    1280  if (mMultiThreadEnabled)
    -
    1281  mThreadId++;
    -
    1282  return mThreadId;
    -
    1283  }
    -
    1284  catch (const std::exception& e)
    -
    1285  {
    -
    1286  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    -
    1287  return 0ull;
    -
    1288  }
    -
    1289  }
    -
    1290 
    -
    1291  extern template class Wrapper<DATUM_BASE_NO_PTR>;
    -
    1292 }
    -
    1293 
    -
    1294 #endif // OPENPOSE_WRAPPER_WRAPPER_HPP
    +
    994  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    995  }
    +
    996  }
    +
    997 
    +
    998  template<typename TDatums, typename TWorker, typename TQueue>
    +
    999  bool Wrapper<TDatums, TWorker, TQueue>::isRunning() const
    +
    1000  {
    +
    1001  try
    +
    1002  {
    +
    1003  return mThreadManager.isRunning();
    +
    1004  }
    +
    1005  catch (const std::exception& e)
    +
    1006  {
    +
    1007  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1008  return false;
    +
    1009  }
    +
    1010  }
    +
    1011 
    +
    1012  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1013  bool Wrapper<TDatums, TWorker, TQueue>::tryEmplace(std::shared_ptr<TDatums>& tDatums)
    +
    1014  {
    +
    1015  try
    +
    1016  {
    +
    1017  if (!mUserInputWs.empty())
    +
    1018  error("Emplace cannot be called if an input worker was already selected.",
    +
    1019  __LINE__, __FUNCTION__, __FILE__);
    +
    1020  return mThreadManager.tryEmplace(tDatums);
    +
    1021  }
    +
    1022  catch (const std::exception& e)
    +
    1023  {
    +
    1024  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1025  return false;
    +
    1026  }
    +
    1027  }
    +
    1028 
    +
    1029  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1030  bool Wrapper<TDatums, TWorker, TQueue>::waitAndEmplace(std::shared_ptr<TDatums>& tDatums)
    +
    1031  {
    +
    1032  try
    +
    1033  {
    +
    1034  if (!mUserInputWs.empty())
    +
    1035  error("Emplace cannot be called if an input worker was already selected.",
    +
    1036  __LINE__, __FUNCTION__, __FILE__);
    +
    1037  return mThreadManager.waitAndEmplace(tDatums);
    +
    1038  }
    +
    1039  catch (const std::exception& e)
    +
    1040  {
    +
    1041  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1042  return false;
    +
    1043  }
    +
    1044  }
    +
    1045 
    +
    1046  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1047  bool Wrapper<TDatums, TWorker, TQueue>::tryPush(const std::shared_ptr<TDatums>& tDatums)
    +
    1048  {
    +
    1049  try
    +
    1050  {
    +
    1051  if (!mUserInputWs.empty())
    +
    1052  error("Push cannot be called if an input worker was already selected.",
    +
    1053  __LINE__, __FUNCTION__, __FILE__);
    +
    1054  return mThreadManager.tryPush(tDatums);
    +
    1055  }
    +
    1056  catch (const std::exception& e)
    +
    1057  {
    +
    1058  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1059  return false;
    +
    1060  }
    +
    1061  }
    +
    1062 
    +
    1063  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1064  bool Wrapper<TDatums, TWorker, TQueue>::waitAndPush(const std::shared_ptr<TDatums>& tDatums)
    +
    1065  {
    +
    1066  try
    +
    1067  {
    +
    1068  if (!mUserInputWs.empty())
    +
    1069  error("Push cannot be called if an input worker was already selected.",
    +
    1070  __LINE__, __FUNCTION__, __FILE__);
    +
    1071  return mThreadManager.waitAndPush(tDatums);
    +
    1072  }
    +
    1073  catch (const std::exception& e)
    +
    1074  {
    +
    1075  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1076  return false;
    +
    1077  }
    +
    1078  }
    +
    1079 
    +
    1080  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1081  bool Wrapper<TDatums, TWorker, TQueue>::tryPop(std::shared_ptr<TDatums>& tDatums)
    +
    1082  {
    +
    1083  try
    +
    1084  {
    +
    1085  if (!mUserOutputWs.empty())
    +
    1086  error("Pop cannot be called if an output worker was already selected.",
    +
    1087  __LINE__, __FUNCTION__, __FILE__);
    +
    1088  return mThreadManager.tryPop(tDatums);
    +
    1089  }
    +
    1090  catch (const std::exception& e)
    +
    1091  {
    +
    1092  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1093  return false;
    +
    1094  }
    +
    1095  }
    +
    1096 
    +
    1097  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1098  bool Wrapper<TDatums, TWorker, TQueue>::waitAndPop(std::shared_ptr<TDatums>& tDatums)
    +
    1099  {
    +
    1100  try
    +
    1101  {
    +
    1102  if (!mUserOutputWs.empty())
    +
    1103  error("Pop cannot be called if an output worker was already selected.",
    +
    1104  __LINE__, __FUNCTION__, __FILE__);
    +
    1105  return mThreadManager.waitAndPop(tDatums);
    +
    1106  }
    +
    1107  catch (const std::exception& e)
    +
    1108  {
    +
    1109  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1110  return false;
    +
    1111  }
    +
    1112  }
    +
    1113 
    +
    1114  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1115  void Wrapper<TDatums, TWorker, TQueue>::reset()
    +
    1116  {
    +
    1117  try
    +
    1118  {
    +
    1119  mConfigured = false;
    +
    1120  mThreadManager.reset();
    +
    1121  mThreadId = 0ull;
    +
    1122  // Reset
    +
    1123  mUserInputWs.clear();
    +
    1124  wDatumProducer = nullptr;
    +
    1125  spWScaleAndSizeExtractor = nullptr;
    +
    1126  spWCvMatToOpInput = nullptr;
    +
    1127  spWCvMatToOpOutput = nullptr;
    +
    1128  spWPoses.clear();
    +
    1129  mPostProcessingWs.clear();
    +
    1130  mUserPostProcessingWs.clear();
    +
    1131  mOutputWs.clear();
    +
    1132  spWGui = nullptr;
    +
    1133  mUserOutputWs.clear();
    +
    1134  }
    +
    1135  catch (const std::exception& e)
    +
    1136  {
    +
    1137  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1138  }
    +
    1139  }
    +
    1140 
    +
    1141  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1142  void Wrapper<TDatums, TWorker, TQueue>::configureThreadManager()
    +
    1143  {
    +
    1144  try
    +
    1145  {
    +
    1146  // The less number of queues -> the less lag
    +
    1147 
    +
    1148  // Security checks
    +
    1149  if (!mConfigured)
    +
    1150  error("Configure the Wrapper class before calling `start()`.", __LINE__, __FUNCTION__, __FILE__);
    +
    1151  if ((wDatumProducer == nullptr) == (mUserInputWs.empty())
    +
    1152  && mThreadManagerMode != ThreadManagerMode::Asynchronous
    +
    1153  && mThreadManagerMode != ThreadManagerMode::AsynchronousIn)
    +
    1154  {
    +
    1155  const auto message = "You need to have 1 and only 1 producer selected. You can introduce your own"
    +
    1156  " producer by using setWorkerInput() or use the OpenPose default producer by"
    +
    1157  " configuring it in the configure function) or use the"
    +
    1158  " ThreadManagerMode::Asynchronous(In) mode.";
    +
    1159  error(message, __LINE__, __FUNCTION__, __FILE__);
    +
    1160  }
    +
    1161  if (mOutputWs.empty() && mUserOutputWs.empty() && spWGui == nullptr
    +
    1162  && mThreadManagerMode != ThreadManagerMode::Asynchronous
    +
    1163  && mThreadManagerMode != ThreadManagerMode::AsynchronousOut)
    +
    1164  {
    +
    1165  error("No output selected.", __LINE__, __FUNCTION__, __FILE__);
    +
    1166  }
    +
    1167 
    +
    1168  // Thread Manager:
    +
    1169  // Clean previous thread manager (avoid configure to crash the program if used more than once)
    +
    1170  mThreadManager.reset();
    +
    1171  mThreadId = 0ull;
    +
    1172  auto queueIn = 0ull;
    +
    1173  auto queueOut = 1ull;
    +
    1174  // If custom user Worker and uses its own thread
    +
    1175  spWIdGenerator = std::make_shared<WIdGenerator<std::shared_ptr<TDatums>>>();
    +
    1176  if (!mUserInputWs.empty() && mUserInputWsOnNewThread)
    +
    1177  {
    +
    1178  // Thread 0, queues 0 -> 1
    +
    1179  mThreadManager.add(mThreadId, mUserInputWs, queueIn++, queueOut++);
    +
    1180  if (spWScaleAndSizeExtractor != nullptr && spWCvMatToOpInput != nullptr)
    +
    1181  {
    +
    1182  threadIdPP();
    +
    1183  // Thread 1, queues 1 -> 2
    +
    1184  if (spWCvMatToOpOutput == nullptr)
    +
    1185  mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput},
    +
    1186  queueIn++, queueOut++);
    +
    1187  else
    +
    1188  mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput,
    +
    1189  spWCvMatToOpOutput}, queueIn++, queueOut++);
    +
    1190  }
    +
    1191  else
    +
    1192  mThreadManager.add(mThreadId, spWIdGenerator, queueIn++, queueOut++);
    +
    1193  }
    +
    1194  // If custom user Worker in same thread or producer on same thread
    +
    1195  else
    +
    1196  {
    +
    1197  std::vector<TWorker> workersAux;
    +
    1198  // Custom user Worker
    +
    1199  if (!mUserInputWs.empty())
    +
    1200  workersAux = mergeVectors(workersAux, mUserInputWs);
    +
    1201  // OpenPose producer
    +
    1202  else if (wDatumProducer != nullptr)
    +
    1203  workersAux = mergeVectors(workersAux, {wDatumProducer});
    +
    1204  // Otherwise
    +
    1205  else if (mThreadManagerMode != ThreadManagerMode::Asynchronous
    +
    1206  && mThreadManagerMode != ThreadManagerMode::AsynchronousIn)
    +
    1207  error("No input selected.", __LINE__, __FUNCTION__, __FILE__);
    +
    1208  // ID generator
    +
    1209  workersAux = mergeVectors(workersAux, {spWIdGenerator});
    +
    1210  // Scale & cv::Mat to OP format
    +
    1211  if (spWScaleAndSizeExtractor != nullptr && spWCvMatToOpInput != nullptr)
    +
    1212  workersAux = mergeVectors(workersAux, {spWScaleAndSizeExtractor,
    +
    1213  spWCvMatToOpInput});
    +
    1214  // cv::Mat to output format
    +
    1215  if (spWCvMatToOpOutput != nullptr)
    +
    1216  workersAux = mergeVectors(workersAux, {spWCvMatToOpOutput});
    +
    1217  // Thread 0 or 1, queues 0 -> 1
    +
    1218  mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
    +
    1219  }
    +
    1220  threadIdPP();
    +
    1221  // Pose estimation & rendering
    +
    1222  // Thread 1 or 2...X, queues 1 -> 2, X = 2 + #GPUs
    +
    1223  if (!spWPoses.empty())
    +
    1224  {
    +
    1225  if (mMultiThreadEnabled)
    +
    1226  {
    +
    1227  for (auto& wPose : spWPoses)
    +
    1228  {
    +
    1229  mThreadManager.add(mThreadId, wPose, queueIn, queueOut);
    +
    1230  threadIdPP();
    +
    1231  }
    +
    1232  }
    +
    1233  else
    +
    1234  {
    +
    1235  if (spWPoses.size() > 1)
    +
    1236  log("Multi-threading disabled, only 1 thread running. All GPUs have been disabled but the"
    +
    1237  " first one, which is defined by gpuNumberStart (e.g. in the OpenPose demo, it is set"
    +
    1238  " with the `num_gpu_start` flag).", Priority::High);
    +
    1239  mThreadManager.add(mThreadId, spWPoses.at(0), queueIn, queueOut);
    +
    1240  }
    +
    1241  queueIn++;
    +
    1242  queueOut++;
    +
    1243  }
    +
    1244  // If custom user Worker and uses its own thread
    +
    1245  if (!mUserPostProcessingWs.empty() && mUserPostProcessingWsOnNewThread)
    +
    1246  {
    +
    1247  // Post processing workers
    +
    1248  if (!mPostProcessingWs.empty())
    +
    1249  {
    +
    1250  // Thread 2 or 3, queues 2 -> 3
    +
    1251  mThreadManager.add(mThreadId, mPostProcessingWs, queueIn++, queueOut++);
    +
    1252  threadIdPP();
    +
    1253  }
    +
    1254  // User processing workers
    +
    1255  // Thread 3 or 4, queues 3 -> 4
    +
    1256  mThreadManager.add(mThreadId, mUserPostProcessingWs, queueIn++, queueOut++);
    +
    1257  threadIdPP();
    +
    1258  // Output workers
    +
    1259  if (!mOutputWs.empty())
    +
    1260  {
    +
    1261  // Thread 4 or 5, queues 4 -> 5
    +
    1262  mThreadManager.add(mThreadId, mOutputWs, queueIn++, queueOut++);
    +
    1263  threadIdPP();
    +
    1264  }
    +
    1265  }
    +
    1266  // If custom user Worker in same thread or producer on same thread
    +
    1267  else
    +
    1268  {
    +
    1269  // Post processing workers + User post processing workers + Output workers
    +
    1270  auto workersAux = mergeVectors(mPostProcessingWs, mUserPostProcessingWs);
    +
    1271  workersAux = mergeVectors(workersAux, mOutputWs);
    +
    1272  if (!workersAux.empty())
    +
    1273  {
    +
    1274  // Thread 2 or 3, queues 2 -> 3
    +
    1275  mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
    +
    1276  threadIdPP();
    +
    1277  }
    +
    1278  }
    +
    1279  // User output worker
    +
    1280  // Thread Y, queues Q -> Q+1
    +
    1281  if (!mUserOutputWs.empty())
    +
    1282  {
    +
    1283  if (mUserOutputWsOnNewThread)
    +
    1284  {
    +
    1285  mThreadManager.add(mThreadId, mUserOutputWs, queueIn++, queueOut++);
    +
    1286  threadIdPP();
    +
    1287  }
    +
    1288  else
    +
    1289  mThreadManager.add(mThreadId-1, mUserOutputWs, queueIn++, queueOut++);
    +
    1290  }
    +
    1291  // OpenPose GUI
    +
    1292  if (spWGui != nullptr)
    +
    1293  {
    +
    1294  // Thread Y+1, queues Q+1 -> Q+2
    +
    1295  mThreadManager.add(mThreadId, spWGui, queueIn++, queueOut++);
    +
    1296  threadIdPP();
    +
    1297  }
    +
    1298  log("", Priority::Low, __LINE__, __FUNCTION__, __FILE__);
    +
    1299  }
    +
    1300  catch (const std::exception& e)
    +
    1301  {
    +
    1302  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1303  }
    +
    1304  }
    +
    1305 
    +
    1306  template<typename TDatums, typename TWorker, typename TQueue>
    +
    1307  unsigned long long Wrapper<TDatums, TWorker, TQueue>::threadIdPP()
    +
    1308  {
    +
    1309  try
    +
    1310  {
    +
    1311  if (mMultiThreadEnabled)
    +
    1312  mThreadId++;
    +
    1313  return mThreadId;
    +
    1314  }
    +
    1315  catch (const std::exception& e)
    +
    1316  {
    +
    1317  error(e.what(), __LINE__, __FUNCTION__, __FILE__);
    +
    1318  return 0ull;
    +
    1319  }
    +
    1320  }
    +
    1321 
    +
    1322  extern template class Wrapper<DATUM_BASE_NO_PTR>;
    +
    1323 }
    +
    1324 
    +
    1325 #endif // OPENPOSE_WRAPPER_WRAPPER_HPP
    PoseModel poseModel
    Definition: wrapperStructPose.hpp:87
    Point< int > netInputSize
    Definition: wrapperStructPose.hpp:30
    @@ -1275,7 +1306,7 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    float alphaHeatMap
    Definition: wrapperStructPose.hpp:105
    Definition: wHandDetectorTracking.hpp:11
    -
    Wrapper(const ThreadManagerMode threadManagerMode=ThreadManagerMode::Synchronous)
    Definition: wrapper.hpp:275
    +
    Wrapper(const ThreadManagerMode threadManagerMode=ThreadManagerMode::Synchronous)
    Definition: wrapper.hpp:276
    Definition: wGuiInfoAdder.hpp:11
    std::string writeKeypointJson
    Definition: wrapperStructOutput.hpp:49
    Definition: wPersonIdExtractor.hpp:11
    @@ -1286,17 +1317,17 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    std::string writeHeatMapsFormat
    Definition: wrapperStructOutput.hpp:89
    Definition: wPoseSaver.hpp:12
    bool identification
    Definition: wrapperStructPose.hpp:156
    -
    bool tryPush(const std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1024
    +
    bool tryPush(const std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1047
    Definition: wrapperStructPose.hpp:16
    std::string writeKeypoint
    Definition: wrapperStructOutput.hpp:36
    float alphaKeypoint
    Definition: wrapperStructFace.hpp:39
    bool frameFlip
    Definition: wrapperStructInput.hpp:41
    Definition: wFaceSaver.hpp:12
    -
    void stop()
    Definition: wrapper.hpp:963
    +
    void stop()
    Definition: wrapper.hpp:986
    float alphaKeypoint
    Definition: wrapperStructHand.hpp:59
    -
    bool tryPop(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1058
    -
    void exec()
    Definition: wrapper.hpp:935
    +
    bool tryPop(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1081
    +
    void exec()
    Definition: wrapper.hpp:956
    @@ -1304,7 +1335,7 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    Definition: wKeypointJsonSaver.hpp:11
    Definition: wHandRenderer.hpp:11
    Definition: wFaceExtractor.hpp:11
    -
    void setWorkerPostProcessing(const TWorker &worker, const bool workerOnNewThread=true)
    Definition: wrapper.hpp:338
    +
    void setWorkerPostProcessing(const TWorker &worker, const bool workerOnNewThread=true)
    Definition: wrapper.hpp:340
    Definition: wImageSaver.hpp:11
    std::string writeImages
    Definition: wrapperStructOutput.hpp:61
    @@ -1329,9 +1360,9 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    float scaleGap
    Definition: wrapperStructPose.hpp:74
    RenderMode renderMode
    Definition: wrapperStructPose.hpp:80
    -
    bool waitAndEmplace(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1007
    +
    bool waitAndEmplace(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1030
    Definition: wrapper.hpp:32
    -
    bool tryEmplace(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:990
    +
    bool tryEmplace(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1013
    float scaleRange
    Definition: wrapperStructHand.hpp:40
    int gpuNumberStart
    Definition: wrapperStructPose.hpp:59
    RenderMode renderMode
    Definition: wrapperStructFace.hpp:33
    @@ -1342,8 +1373,8 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    Definition: wVideoSaver.hpp:11
    Definition: wOpOutputToCvMat.hpp:11
    -
    bool waitAndPush(const std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1041
    -
    void start()
    Definition: wrapper.hpp:949
    +
    bool waitAndPush(const std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1064
    +
    void start()
    Definition: wrapper.hpp:971
    bool realTimeProcessing
    Definition: wrapperStructInput.hpp:36
    OP_API std::string formatAsDirectory(const std::string &directoryPathString)
    @@ -1352,14 +1383,14 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    Definition: wrapperStructInput.hpp:13
    std::string modelFolder
    Definition: wrapperStructPose.hpp:119
    -
    void configure(const WrapperStructPose &wrapperStructPose, const WrapperStructInput &wrapperStructInput, const WrapperStructOutput &wrapperStructOutput=WrapperStructOutput{})
    Definition: wrapper.hpp:373
    +
    void configure(const WrapperStructPose &wrapperStructPose, const WrapperStructInput &wrapperStructInput, const WrapperStructOutput &wrapperStructOutput=WrapperStructOutput{})
    Definition: wrapper.hpp:375
    int scalesNumber
    Definition: wrapperStructPose.hpp:67
    Definition: wFaceRenderer.hpp:11
    -
    bool waitAndPop(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1075
    +
    bool waitAndPop(std::shared_ptr< TDatums > &tDatums)
    Definition: wrapper.hpp:1098
    std::shared_ptr< Producer > producerSharedPtr
    Definition: wrapperStructInput.hpp:19
    Definition: threadManager.hpp:16
    Definition: wPoseRenderer.hpp:11
    @@ -1369,7 +1400,7 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    Definition: wCocoJsonSaver.hpp:11
    -
    ~Wrapper()
    Definition: wrapper.hpp:294
    +
    ~Wrapper()
    Definition: wrapper.hpp:296
    Definition: wrapperStructHand.hpp:15
    float renderThreshold
    Definition: wrapperStructHand.hpp:72
    @@ -1387,15 +1418,15 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    float alphaKeypoint
    Definition: wrapperStructPose.hpp:98
    -
    void setWorkerOutput(const TWorker &worker, const bool workerOnNewThread=true)
    Definition: wrapper.hpp:356
    +
    void setWorkerOutput(const TWorker &worker, const bool workerOnNewThread=true)
    Definition: wrapper.hpp:358
    Definition: wHeatMapSaver.hpp:11
    bool enable
    Definition: wrapperStructHand.hpp:20
    ScaleMode keypointScale
    Definition: wrapperStructPose.hpp:46
    ThreadManagerMode
    Definition: enumClasses.hpp:9
    int gpuNumber
    Definition: wrapperStructPose.hpp:53
    -
    bool isRunning() const
    Definition: wrapper.hpp:976
    -
    void setWorkerInput(const TWorker &worker, const bool workerOnNewThread=true)
    Definition: wrapper.hpp:321
    +
    bool isRunning() const
    Definition: wrapper.hpp:999
    +
    void setWorkerInput(const TWorker &worker, const bool workerOnNewThread=true)
    Definition: wrapper.hpp:323
    float renderThreshold
    Definition: wrapperStructFace.hpp:52
    int frameRotate
    Definition: wrapperStructInput.hpp:47
    std::string writeImagesFormat
    Definition: wrapperStructOutput.hpp:69
    @@ -1404,7 +1435,7 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
    Definition: wrapperStructOutput.hpp:13
    -
    void disableMultiThreading()
    Definition: wrapper.hpp:308
    +
    void disableMultiThreading()
    Definition: wrapper.hpp:310
    diff --git a/html/wrapper_struct_face_8hpp_source.html b/html/wrapper_struct_face_8hpp_source.html index e9eb6de0..1c23671e 100644 --- a/html/wrapper_struct_face_8hpp_source.html +++ b/html/wrapper_struct_face_8hpp_source.html @@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('wrapper_struct_face_8hpp_source.html',
    Definition: wrapperStructFace.hpp:15
    RenderMode renderMode
    Definition: wrapperStructFace.hpp:33
    bool enable
    Definition: wrapperStructFace.hpp:20
    -
    RenderMode
    Definition: enumClasses.hpp:23
    +
    RenderMode
    Definition: enumClasses.hpp:24
    Point< int > netInputSize
    Definition: wrapperStructFace.hpp:27
    #define OP_API
    Definition: macros.hpp:5
    float renderThreshold
    Definition: wrapperStructFace.hpp:52
    diff --git a/html/wrapper_struct_hand_8hpp_source.html b/html/wrapper_struct_hand_8hpp_source.html index 3e376763..9886df94 100644 --- a/html/wrapper_struct_hand_8hpp_source.html +++ b/html/wrapper_struct_hand_8hpp_source.html @@ -155,7 +155,7 @@ $(document).ready(function(){initNavTree('wrapper_struct_hand_8hpp_source.html',
    float scaleRange
    Definition: wrapperStructHand.hpp:40
    bool tracking
    Definition: wrapperStructHand.hpp:47
    const auto HAND_DEFAULT_ALPHA_KEYPOINT
    Definition: handParameters.hpp:44
    -
    RenderMode
    Definition: enumClasses.hpp:23
    +
    RenderMode
    Definition: enumClasses.hpp:24
    Definition: wrapperStructHand.hpp:15
    float renderThreshold
    Definition: wrapperStructHand.hpp:72
    diff --git a/html/wrapper_struct_pose_8hpp_source.html b/html/wrapper_struct_pose_8hpp_source.html index 5c8d0dda..cb7c1118 100644 --- a/html/wrapper_struct_pose_8hpp_source.html +++ b/html/wrapper_struct_pose_8hpp_source.html @@ -184,7 +184,7 @@ $(document).ready(function(){initNavTree('wrapper_struct_pose_8hpp_source.html',
    ScaleMode heatMapScale
    Definition: wrapperStructPose.hpp:134
    std::vector< HeatMapType > heatMapTypes
    Definition: wrapperStructPose.hpp:126
    -
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParameters.hpp:306
    +
    const auto POSE_DEFAULT_ALPHA_KEYPOINT
    Definition: poseParametersRender.hpp:10
    bool identification
    Definition: wrapperStructPose.hpp:156
    Definition: wrapperStructPose.hpp:16
    PoseModel
    Definition: enumClasses.hpp:9
    @@ -202,7 +202,7 @@ $(document).ready(function(){initNavTree('wrapper_struct_pose_8hpp_source.html',
    std::string modelFolder
    Definition: wrapperStructPose.hpp:119
    int scalesNumber
    Definition: wrapperStructPose.hpp:67
    ScaleMode
    Definition: enumClasses.hpp:6
    -
    RenderMode
    Definition: enumClasses.hpp:23
    +
    RenderMode
    Definition: enumClasses.hpp:24
    bool enableGoogleLogging
    Definition: wrapperStructPose.hpp:151
    float renderThreshold
    Definition: wrapperStructPose.hpp:142
    float alphaKeypoint
    Definition: wrapperStructPose.hpp:98
    @@ -210,7 +210,7 @@ $(document).ready(function(){initNavTree('wrapper_struct_pose_8hpp_source.html',
    int gpuNumber
    Definition: wrapperStructPose.hpp:53
    #define OP_API
    Definition: macros.hpp:5
    -
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParameters.hpp:307
    +
    const auto POSE_DEFAULT_ALPHA_HEAT_MAP
    Definition: poseParametersRender.hpp:11
    bool blendOriginalFrame
    Definition: wrapperStructPose.hpp:92
    -- GitLab