diff --git a/html/structop_1_1_wrapper_struct_pose.js b/html/structop_1_1_wrapper_struct_pose.js
index 18cf26e7cd0d4d555721608abac3193e887dcf3a..d383fd34f89d562c224975ef33d24e5fd3064056 100644
--- a/html/structop_1_1_wrapper_struct_pose.js
+++ b/html/structop_1_1_wrapper_struct_pose.js
@@ -1,6 +1,6 @@
var structop_1_1_wrapper_struct_pose =
[
- [ "WrapperStructPose", "structop_1_1_wrapper_struct_pose.html#a6c77662a0529113c9477ca0415642834", null ],
+ [ "WrapperStructPose", "structop_1_1_wrapper_struct_pose.html#a4e6661a205e4d9dc2c7f8eca470aeccb", null ],
[ "addPartCandidates", "structop_1_1_wrapper_struct_pose.html#ad73981c6ad9b23f511ef6f12136bf8e7", null ],
[ "alphaHeatMap", "structop_1_1_wrapper_struct_pose.html#ac1233492c750fbd98df353bffa8f9b78", null ],
[ "alphaKeypoint", "structop_1_1_wrapper_struct_pose.html#a4d3ad84b14697d5f1009fa29e2ff1998", null ],
@@ -24,5 +24,6 @@ var structop_1_1_wrapper_struct_pose =
[ "renderMode", "structop_1_1_wrapper_struct_pose.html#ad6b5ea0cef8eb81d20ab39099ba7716e", null ],
[ "renderThreshold", "structop_1_1_wrapper_struct_pose.html#a322ff95b6a2838fe0d55afb28d2a4224", null ],
[ "scaleGap", "structop_1_1_wrapper_struct_pose.html#a646ae142f821411d22d772b76960d585", null ],
- [ "scalesNumber", "structop_1_1_wrapper_struct_pose.html#ad23a9c103a60709eed9d7b7381828e5e", null ]
+ [ "scalesNumber", "structop_1_1_wrapper_struct_pose.html#ad23a9c103a60709eed9d7b7381828e5e", null ],
+ [ "tracking", "structop_1_1_wrapper_struct_pose.html#aafd895ecc1da1989ff0d72a5171fba7c", null ]
];
\ No newline at end of file
diff --git a/html/w_person_id_extractor_8hpp_source.html b/html/w_person_id_extractor_8hpp_source.html
index 9458c15fa7a46fb6a9803efe4eb56726649ae8a2..f79d1fd6f5dea6931c8784882b2740ed947fff5b 100644
--- a/html/w_person_id_extractor_8hpp_source.html
+++ b/html/w_person_id_extractor_8hpp_source.html
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('w_person_id_extractor_8hpp_source.html
- 14 explicit WPersonIdExtractor(
const std::shared_ptr<PersonIdExtractor>& personIdExtractorSharedPtr);
+ 14 explicit WPersonIdExtractor(
const std::shared_ptr<PersonIdExtractor>& personIdExtractor);
@@ -142,8 +142,8 @@ $(document).ready(function(){initNavTree('w_person_id_extractor_8hpp_source.html
35 template<
typename TDatums>
-
- 37 spPersonIdExtractor{personIdExtractorSharedPtr}
+
+ 37 spPersonIdExtractor{personIdExtractor}
@@ -193,13 +193,13 @@ $(document).ready(function(){initNavTree('w_person_id_extractor_8hpp_source.html
static const std::string timerInit(const int line, const std::string &function, const std::string &file)
OP_API void error(const std::string &message, const int line=-1, const std::string &function="", const std::string &file="")
+
void dLog(const T &message, const Priority priority=Priority::Max, const int line=-1, const std::string &function="", const std::string &file="")
Definition: errorAndLog.hpp:53
bool checkNoNullNorEmpty(const TPointerContainer &tPointerContainer)
Definition: pointerContainer.hpp:7
static void printAveragedTimeMsOnIterationX(const std::string &key, const int line, const std::string &function, const std::string &file, const unsigned long long x=DEFAULT_X)
-
COMPILE_TEMPLATE_DATUM(WPoseTriangulation)
static void timerEnd(const std::string &key)
diff --git a/html/w_pose_extractor_8hpp_source.html b/html/w_pose_extractor_8hpp_source.html
index 563ee4bc88b3bbba0fc9b61f9213858b91b5f19a..603f0ec175bef3ea652cf915a78c756625ea0801 100644
--- a/html/w_pose_extractor_8hpp_source.html
+++ b/html/w_pose_extractor_8hpp_source.html
@@ -172,7 +172,7 @@ $(document).ready(function(){initNavTree('w_pose_extractor_8hpp_source.html','')
64 spPoseExtractor->forwardPass(tDatum.inputNetData,
65 Point<int>{tDatum.cvInputData.cols, tDatum.cvInputData.rows},
- 66 tDatum.scaleInputToNetInputs);
+ 66 tDatum.scaleInputToNetInputs, tDatum.id);
68 tDatum.poseCandidates = spPoseExtractor->getCandidatesCopy();
69 tDatum.poseHeatMaps = spPoseExtractor->getHeatMapsCopy();
@@ -180,29 +180,31 @@ $(document).ready(function(){initNavTree('w_pose_extractor_8hpp_source.html','')
71 tDatum.poseScores = spPoseExtractor->getPoseScores().clone();
72 tDatum.scaleNetToOutput = spPoseExtractor->getScaleNetToOutput();
- 74 tDatum.poseIds = spPoseExtractor->extractIdsLockThread(tDatum.poseKeypoints, tDatum.cvInputData, i, tDatum.id);
-
-
-
-
-
-
-
-
-
-
- 85 catch (
const std::exception& e)
-
-
-
- 89 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
-
-
- 96 #endif // OPENPOSE_POSE_W_POSE_EXTRACTOR_HPP
+ 74 tDatum.poseIds = spPoseExtractor->extractIdsLockThread(tDatum.poseKeypoints, tDatum.cvInputData,
+
+
+ 77 spPoseExtractor->trackLockThread(tDatum.poseKeypoints, tDatum.cvInputData,
+ 78 tDatum.poseIds, i, tDatum.id);
+
+
+
+
+
+
+
+
+ 87 catch (
const std::exception& e)
+
+
+
+ 91 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+
+
+ 98 #endif // OPENPOSE_POSE_W_POSE_EXTRACTOR_HPP
diff --git a/html/wrapper_8hpp_source.html b/html/wrapper_8hpp_source.html
index a3e88ea4cc23c21ae1fb48ae5ff285076b9978f0..f261aa536f8285bd5f4544e087a880aec2b53285 100644
--- a/html/wrapper_8hpp_source.html
+++ b/html/wrapper_8hpp_source.html
@@ -581,729 +581,733 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
606 spWPoseExtractors.resize(poseExtractorNets.size());
608 ? std::make_shared<PersonIdExtractor>() :
nullptr);
- 609 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
-
-
-
- 613 const auto poseExtractor = std::make_shared<PoseExtractor>(
- 614 poseExtractorNets.at(i), personIdExtractor, wrapperStructPose.
numberPeopleMax);
- 615 spWPoseExtractors.at(i) = {std::make_shared<WPoseExtractor<TDatumsPtr>>(poseExtractor)};
-
-
-
-
-
-
-
-
-
-
-
- 627 const auto keepTopNPeople = std::make_shared<KeepTopNPeople>(
-
- 629 for (
auto& wPose : spWPoseExtractors)
-
-
-
-
-
-
- 636 if (wrapperStructFace.
enable)
-
-
-
- 640 if (wrapperStructPose.
enable)
-
- 642 const auto faceDetector = std::make_shared<FaceDetector>(wrapperStructPose.
poseModel);
- 643 for (
auto& wPose : spWPoseExtractors)
-
-
-
-
-
- 649 log(
"Body keypoint detection is disabled. Hence, using OpenCV face detector (much less"
-
- 651 for (
auto& wPose : spWPoseExtractors)
-
-
- 654 const auto faceDetectorOpenCV = std::make_shared<FaceDetectorOpenCV>(modelFolder);
-
-
-
-
-
-
- 661 for (
auto gpu = 0u; gpu < spWPoseExtractors.size(); gpu++)
-
-
- 664 const auto netOutputSize = wrapperStructFace.
netInputSize;
- 665 const auto faceExtractorNet = std::make_shared<FaceExtractorCaffe>(
- 666 wrapperStructFace.
netInputSize, netOutputSize, modelFolder,
-
-
-
- 670 spWPoseExtractors.at(gpu).emplace_back(
-
-
-
-
-
- 676 if (wrapperStructHand.
enable)
-
- 678 const auto handDetector = std::make_shared<HandDetector>(wrapperStructPose.
poseModel);
- 679 for (
auto gpu = 0u; gpu < spWPoseExtractors.size(); gpu++)
-
-
-
-
- 684 spWPoseExtractors.at(gpu).emplace_back(
-
-
-
-
- 689 spWPoseExtractors.at(gpu).emplace_back(
-
-
- 692 const auto netOutputSize = wrapperStructHand.
netInputSize;
- 693 const auto handExtractorNet = std::make_shared<HandExtractorCaffe>(
- 694 wrapperStructHand.
netInputSize, netOutputSize, modelFolder,
-
-
-
-
- 699 spWPoseExtractors.at(gpu).emplace_back(
-
-
-
-
- 704 spWPoseExtractors.at(gpu).emplace_back(
-
-
-
-
-
-
- 711 if (!poseGpuRenderers.empty())
- 712 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
-
- 714 poseGpuRenderers.at(i)
-
-
-
-
-
-
-
-
-
- 724 const auto faceRenderer = std::make_shared<FaceCpuRenderer>(wrapperStructFace.
renderThreshold,
-
-
-
-
-
-
-
-
- 733 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
-
-
- 736 const auto faceRenderer = std::make_shared<FaceGpuRenderer>(
-
-
-
-
- 741 if (!poseGpuRenderers.empty())
-
- 743 const bool isLastRenderer = !renderHandGpu;
-
- 745 poseGpuRenderers.at(i)
-
-
-
-
-
- 751 spWPoseExtractors.at(i).emplace_back(
-
-
-
-
- 756 error(
"Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
-
-
-
-
-
- 766 const auto handRenderer = std::make_shared<HandCpuRenderer>(wrapperStructHand.
renderThreshold,
-
-
-
-
-
-
-
-
- 775 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
-
-
- 778 const auto handRenderer = std::make_shared<HandGpuRenderer>(
-
-
-
-
- 783 if (!poseGpuRenderers.empty())
-
- 785 const bool isLastRenderer =
true;
-
- 787 poseGpuRenderers.at(i)
-
-
-
-
-
- 793 spWPoseExtractors.at(i).emplace_back(
-
-
-
-
- 798 error(
"Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
-
-
-
- 802 mPostProcessingWs.clear();
-
- 804 if (spWPoseExtractors.size() > 1u)
-
-
-
-
-
-
-
-
-
-
-
-
- 817 const auto poseTriangulation = std::make_shared<PoseTriangulation>(wrapperStructPose.
minViews3d);
- 818 mPostProcessingWs.emplace_back(
-
-
-
-
-
-
- 825 mPostProcessingWs =
mergeVectors(mPostProcessingWs, cpuRenderers);
- 826 const auto opOutputToCvMat = std::make_shared<OpOutputToCvMat>();
-
-
-
-
-
-
-
- 834 (finalOutputSize == producerSize || finalOutputSize.x <= 0 || finalOutputSize.y <= 0))
-
-
-
-
-
- 840 auto keypointScaler = std::make_shared<KeypointScaler>(wrapperStructPose.
keypointScale);
-
-
-
-
-
-
- 847 if (!writeKeypointCleaned.empty())
-
- 849 const auto keypointSaver = std::make_shared<KeypointSaver>(writeKeypointCleaned,
-
-
- 852 if (wrapperStructFace.
enable)
-
- 854 if (wrapperStructHand.
enable)
-
-
-
-
- 859 if (!writeJsonCleaned.empty())
-
- 861 const auto peopleJsonSaver = std::make_shared<PeopleJsonSaver>(writeJsonCleaned);
-
-
-
-
-
-
- 868 const auto humanFormat =
true;
- 869 const auto cocoJsonSaver = std::make_shared<CocoJsonSaver>(wrapperStructOutput.
writeCocoJson,
-
-
-
-
- 874 if (!writeImagesCleaned.empty())
-
- 876 const auto imageSaver = std::make_shared<ImageSaver>(writeImagesCleaned,
-
-
-
-
-
-
- 883 if (finalOutputSize.x <= 0 || finalOutputSize.y <= 0)
- 884 error(
"Video can only be recorded if outputSize is fixed (e.g. video, webcam, IP camera),"
- 885 "but not for a image directory.", __LINE__, __FUNCTION__, __FILE__);
- 886 const auto originalVideoFps = (wrapperStructOutput.
writeVideoFps > 0 ?
-
-
- 889 const auto videoSaver = std::make_shared<VideoSaver>(
- 890 wrapperStructOutput.
writeVideo, CV_FOURCC(
'M',
'J',
'P',
'G'), originalVideoFps, finalOutputSize
-
-
-
-
- 895 if (!writeHeatMapsCleaned.empty())
-
- 897 const auto heatMapSaver = std::make_shared<HeatMapSaver>(writeHeatMapsCleaned,
-
-
-
-
-
-
-
- 905 if (wrapperStructOutput.
guiVerbose && (guiEnabled || !mUserOutputWs.empty()
-
-
-
- 909 const auto guiInfoAdder = std::make_shared<GuiInfoAdder>(numberThreads, guiEnabled);
-
-
-
-
-
-
-
- 917 std::vector<std::shared_ptr<Renderer>> renderers;
-
- 919 renderers.emplace_back(std::static_pointer_cast<Renderer>(poseCpuRenderer));
-
- 921 for (
const auto& poseGpuRenderer : poseGpuRenderers)
- 922 renderers.emplace_back(std::static_pointer_cast<Renderer>(poseGpuRenderer));
-
-
-
-
-
-
- 929 auto gui = std::make_shared<Gui3D>(
- 930 finalOutputSize, wrapperStructOutput.
fullScreen, mThreadManager.getIsRunningSharedPtr(),
- 931 spVideoSeek, poseExtractorNets, renderers, wrapperStructPose.
poseModel,
-
-
-
- 935 spWGui = {std::make_shared<WGui3D<TDatumsPtr>>(gui)};
-
-
-
-
-
- 941 auto gui = std::make_shared<Gui>(
- 942 finalOutputSize, wrapperStructOutput.
fullScreen, mThreadManager.getIsRunningSharedPtr(),
- 943 spVideoSeek, poseExtractorNets, renderers
-
-
- 946 spWGui = {std::make_shared<WGui<TDatumsPtr>>(gui)};
-
-
- 949 error(
"Unknown DisplayMode.", __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
-
- 955 catch (
const std::exception& e)
-
- 957 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+ 610 const auto personTracker = (wrapperStructPose.
tracking > -1
+ 611 ? std::make_shared<PersonTracker>(wrapperStructPose.
tracking == 0) :
nullptr);
+ 612 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
+
+
+
+ 616 const auto poseExtractor = std::make_shared<PoseExtractor>(
+ 617 poseExtractorNets.at(i), personIdExtractor, personTracker,
+
+ 619 spWPoseExtractors.at(i) = {std::make_shared<WPoseExtractor<TDatumsPtr>>(poseExtractor)};
+
+
+
+
+
+
+
+
+
+
+
+ 631 const auto keepTopNPeople = std::make_shared<KeepTopNPeople>(
+
+ 633 for (
auto& wPose : spWPoseExtractors)
+
+
+
+
+
+
+ 640 if (wrapperStructFace.
enable)
+
+
+
+ 644 if (wrapperStructPose.
enable)
+
+ 646 const auto faceDetector = std::make_shared<FaceDetector>(wrapperStructPose.
poseModel);
+ 647 for (
auto& wPose : spWPoseExtractors)
+
+
+
+
+
+ 653 log(
"Body keypoint detection is disabled. Hence, using OpenCV face detector (much less"
+
+ 655 for (
auto& wPose : spWPoseExtractors)
+
+
+ 658 const auto faceDetectorOpenCV = std::make_shared<FaceDetectorOpenCV>(modelFolder);
+
+
+
+
+
+
+ 665 for (
auto gpu = 0u; gpu < spWPoseExtractors.size(); gpu++)
+
+
+ 668 const auto netOutputSize = wrapperStructFace.
netInputSize;
+ 669 const auto faceExtractorNet = std::make_shared<FaceExtractorCaffe>(
+ 670 wrapperStructFace.
netInputSize, netOutputSize, modelFolder,
+
+
+
+ 674 spWPoseExtractors.at(gpu).emplace_back(
+
+
+
+
+
+ 680 if (wrapperStructHand.
enable)
+
+ 682 const auto handDetector = std::make_shared<HandDetector>(wrapperStructPose.
poseModel);
+ 683 for (
auto gpu = 0u; gpu < spWPoseExtractors.size(); gpu++)
+
+
+
+
+ 688 spWPoseExtractors.at(gpu).emplace_back(
+
+
+
+
+ 693 spWPoseExtractors.at(gpu).emplace_back(
+
+
+ 696 const auto netOutputSize = wrapperStructHand.
netInputSize;
+ 697 const auto handExtractorNet = std::make_shared<HandExtractorCaffe>(
+ 698 wrapperStructHand.
netInputSize, netOutputSize, modelFolder,
+
+
+
+
+ 703 spWPoseExtractors.at(gpu).emplace_back(
+
+
+
+
+ 708 spWPoseExtractors.at(gpu).emplace_back(
+
+
+
+
+
+
+ 715 if (!poseGpuRenderers.empty())
+ 716 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
+
+ 718 poseGpuRenderers.at(i)
+
+
+
+
+
+
+
+
+
+ 728 const auto faceRenderer = std::make_shared<FaceCpuRenderer>(wrapperStructFace.
renderThreshold,
+
+
+
+
+
+
+
+
+ 737 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
+
+
+ 740 const auto faceRenderer = std::make_shared<FaceGpuRenderer>(
+
+
+
+
+ 745 if (!poseGpuRenderers.empty())
+
+ 747 const bool isLastRenderer = !renderHandGpu;
+
+ 749 poseGpuRenderers.at(i)
+
+
+
+
+
+ 755 spWPoseExtractors.at(i).emplace_back(
+
+
+
+
+ 760 error(
"Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+
+
+
+
+
+ 770 const auto handRenderer = std::make_shared<HandCpuRenderer>(wrapperStructHand.
renderThreshold,
+
+
+
+
+
+
+
+
+ 779 for (
auto i = 0u; i < spWPoseExtractors.size(); i++)
+
+
+ 782 const auto handRenderer = std::make_shared<HandGpuRenderer>(
+
+
+
+
+ 787 if (!poseGpuRenderers.empty())
+
+ 789 const bool isLastRenderer =
true;
+
+ 791 poseGpuRenderers.at(i)
+
+
+
+
+
+ 797 spWPoseExtractors.at(i).emplace_back(
+
+
+
+
+ 802 error(
"Unknown RenderMode.", __LINE__, __FUNCTION__, __FILE__);
+
+
+
+ 806 mPostProcessingWs.clear();
+
+ 808 if (spWPoseExtractors.size() > 1u)
+
+
+
+
+
+
+
+
+
+
+
+
+ 821 const auto poseTriangulation = std::make_shared<PoseTriangulation>(wrapperStructPose.
minViews3d);
+ 822 mPostProcessingWs.emplace_back(
+
+
+
+
+
+
+ 829 mPostProcessingWs =
mergeVectors(mPostProcessingWs, cpuRenderers);
+ 830 const auto opOutputToCvMat = std::make_shared<OpOutputToCvMat>();
+
+
+
+
+
+
+
+ 838 (finalOutputSize == producerSize || finalOutputSize.x <= 0 || finalOutputSize.y <= 0))
+
+
+
+
+
+ 844 auto keypointScaler = std::make_shared<KeypointScaler>(wrapperStructPose.
keypointScale);
+
+
+
+
+
+
+ 851 if (!writeKeypointCleaned.empty())
+
+ 853 const auto keypointSaver = std::make_shared<KeypointSaver>(writeKeypointCleaned,
+
+
+ 856 if (wrapperStructFace.
enable)
+
+ 858 if (wrapperStructHand.
enable)
+
+
+
+
+ 863 if (!writeJsonCleaned.empty())
+
+ 865 const auto peopleJsonSaver = std::make_shared<PeopleJsonSaver>(writeJsonCleaned);
+
+
+
+
+
+
+ 872 const auto humanFormat =
true;
+ 873 const auto cocoJsonSaver = std::make_shared<CocoJsonSaver>(wrapperStructOutput.
writeCocoJson,
+
+
+
+
+ 878 if (!writeImagesCleaned.empty())
+
+ 880 const auto imageSaver = std::make_shared<ImageSaver>(writeImagesCleaned,
+
+
+
+
+
+
+ 887 if (finalOutputSize.x <= 0 || finalOutputSize.y <= 0)
+ 888 error(
"Video can only be recorded if outputSize is fixed (e.g. video, webcam, IP camera),"
+ 889 "but not for a image directory.", __LINE__, __FUNCTION__, __FILE__);
+ 890 const auto originalVideoFps = (wrapperStructOutput.
writeVideoFps > 0 ?
+
+
+ 893 const auto videoSaver = std::make_shared<VideoSaver>(
+ 894 wrapperStructOutput.
writeVideo, CV_FOURCC(
'M',
'J',
'P',
'G'), originalVideoFps, finalOutputSize
+
+
+
+
+ 899 if (!writeHeatMapsCleaned.empty())
+
+ 901 const auto heatMapSaver = std::make_shared<HeatMapSaver>(writeHeatMapsCleaned,
+
+
+
+
+
+
+
+ 909 if (wrapperStructOutput.
guiVerbose && (guiEnabled || !mUserOutputWs.empty()
+
+
+
+ 913 const auto guiInfoAdder = std::make_shared<GuiInfoAdder>(numberThreads, guiEnabled);
+
+
+
+
+
+
+
+ 921 std::vector<std::shared_ptr<Renderer>> renderers;
+
+ 923 renderers.emplace_back(std::static_pointer_cast<Renderer>(poseCpuRenderer));
+
+ 925 for (
const auto& poseGpuRenderer : poseGpuRenderers)
+ 926 renderers.emplace_back(std::static_pointer_cast<Renderer>(poseGpuRenderer));
+
+
+
+
+
+
+ 933 auto gui = std::make_shared<Gui3D>(
+ 934 finalOutputSize, wrapperStructOutput.
fullScreen, mThreadManager.getIsRunningSharedPtr(),
+ 935 spVideoSeek, poseExtractorNets, renderers, wrapperStructPose.
poseModel,
+
+
+
+ 939 spWGui = {std::make_shared<WGui3D<TDatumsPtr>>(gui)};
+
+
+
+
+
+ 945 auto gui = std::make_shared<Gui>(
+ 946 finalOutputSize, wrapperStructOutput.
fullScreen, mThreadManager.getIsRunningSharedPtr(),
+ 947 spVideoSeek, poseExtractorNets, renderers
+
+
+ 950 spWGui = {std::make_shared<WGui<TDatumsPtr>>(gui)};
+
+
+ 953 error(
"Unknown DisplayMode.", __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
-
-
- 961 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 966 configureThreadManager();
-
- 968 mThreadManager.exec();
-
- 970 catch (
const std::exception& e)
-
- 972 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+ 959 catch (
const std::exception& e)
+
+ 961 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+ 965 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 970 configureThreadManager();
+
+ 972 mThreadManager.exec();
-
-
- 976 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 981 configureThreadManager();
-
- 983 mThreadManager.start();
-
- 985 catch (
const std::exception& e)
-
- 987 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+ 974 catch (
const std::exception& e)
+
+ 976 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+ 980 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 985 configureThreadManager();
+
+ 987 mThreadManager.start();
-
-
- 991 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 996 mThreadManager.stop();
-
- 998 catch (
const std::exception& e)
+ 989 catch (
const std::exception& e)
+
+ 991 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+ 995 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
- 1000 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+ 1000 mThreadManager.stop();
-
-
- 1004 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1009 return mThreadManager.isRunning();
-
- 1011 catch (
const std::exception& e)
+ 1002 catch (
const std::exception& e)
+
+ 1004 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+ 1008 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
- 1013 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1018 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1023 if (!mUserInputWs.empty())
- 1024 error(
"Emplace cannot be called if an input worker was already selected.",
- 1025 __LINE__, __FUNCTION__, __FILE__);
- 1026 return mThreadManager.tryEmplace(tDatums);
-
- 1028 catch (
const std::exception& e)
-
- 1030 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1035 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1040 if (!mUserInputWs.empty())
- 1041 error(
"Emplace cannot be called if an input worker was already selected.",
- 1042 __LINE__, __FUNCTION__, __FILE__);
- 1043 return mThreadManager.waitAndEmplace(tDatums);
-
- 1045 catch (
const std::exception& e)
-
- 1047 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1052 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1057 if (!mUserInputWs.empty())
- 1058 error(
"Push cannot be called if an input worker was already selected.",
- 1059 __LINE__, __FUNCTION__, __FILE__);
- 1060 return mThreadManager.tryPush(tDatums);
-
- 1062 catch (
const std::exception& e)
-
- 1064 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1069 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1074 if (!mUserInputWs.empty())
- 1075 error(
"Push cannot be called if an input worker was already selected.",
- 1076 __LINE__, __FUNCTION__, __FILE__);
- 1077 return mThreadManager.waitAndPush(tDatums);
-
- 1079 catch (
const std::exception& e)
-
- 1081 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1086 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1091 if (!mUserOutputWs.empty())
- 1092 error(
"Pop cannot be called if an output worker was already selected.",
- 1093 __LINE__, __FUNCTION__, __FILE__);
- 1094 return mThreadManager.tryPop(tDatums);
-
- 1096 catch (
const std::exception& e)
-
- 1098 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1103 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1108 if (!mUserOutputWs.empty())
- 1109 error(
"Pop cannot be called if an output worker was already selected.",
- 1110 __LINE__, __FUNCTION__, __FILE__);
- 1111 return mThreadManager.waitAndPop(tDatums);
-
- 1113 catch (
const std::exception& e)
-
- 1115 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1120 template<
typename TDatums,
typename TWorker,
typename TQueue>
-
-
-
-
- 1125 mConfigured =
false;
- 1126 mThreadManager.reset();
-
-
- 1129 mUserInputWs.clear();
- 1130 wDatumProducer =
nullptr;
- 1131 spWScaleAndSizeExtractor =
nullptr;
- 1132 spWCvMatToOpInput =
nullptr;
- 1133 spWCvMatToOpOutput =
nullptr;
- 1134 spWPoseExtractors.clear();
- 1135 mPostProcessingWs.clear();
- 1136 mUserPostProcessingWs.clear();
-
-
- 1139 mUserOutputWs.clear();
-
- 1141 catch (
const std::exception& e)
-
- 1143 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+ 1013 return mThreadManager.isRunning();
+
+ 1015 catch (
const std::exception& e)
+
+ 1017 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1022 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 1027 if (!mUserInputWs.empty())
+ 1028 error(
"Emplace cannot be called if an input worker was already selected.",
+ 1029 __LINE__, __FUNCTION__, __FILE__);
+ 1030 return mThreadManager.tryEmplace(tDatums);
+
+ 1032 catch (
const std::exception& e)
+
+ 1034 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1039 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 1044 if (!mUserInputWs.empty())
+ 1045 error(
"Emplace cannot be called if an input worker was already selected.",
+ 1046 __LINE__, __FUNCTION__, __FILE__);
+ 1047 return mThreadManager.waitAndEmplace(tDatums);
+
+ 1049 catch (
const std::exception& e)
+
+ 1051 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1056 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 1061 if (!mUserInputWs.empty())
+ 1062 error(
"Push cannot be called if an input worker was already selected.",
+ 1063 __LINE__, __FUNCTION__, __FILE__);
+ 1064 return mThreadManager.tryPush(tDatums);
+
+ 1066 catch (
const std::exception& e)
+
+ 1068 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1073 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 1078 if (!mUserInputWs.empty())
+ 1079 error(
"Push cannot be called if an input worker was already selected.",
+ 1080 __LINE__, __FUNCTION__, __FILE__);
+ 1081 return mThreadManager.waitAndPush(tDatums);
+
+ 1083 catch (
const std::exception& e)
+
+ 1085 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1090 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 1095 if (!mUserOutputWs.empty())
+ 1096 error(
"Pop cannot be called if an output worker was already selected.",
+ 1097 __LINE__, __FUNCTION__, __FILE__);
+ 1098 return mThreadManager.tryPop(tDatums);
+
+ 1100 catch (
const std::exception& e)
+
+ 1102 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1107 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 1112 if (!mUserOutputWs.empty())
+ 1113 error(
"Pop cannot be called if an output worker was already selected.",
+ 1114 __LINE__, __FUNCTION__, __FILE__);
+ 1115 return mThreadManager.waitAndPop(tDatums);
+
+ 1117 catch (
const std::exception& e)
+
+ 1119 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1124 template<
typename TDatums,
typename TWorker,
typename TQueue>
+
+
+
+
+ 1129 mConfigured =
false;
+ 1130 mThreadManager.reset();
+
+
+ 1133 mUserInputWs.clear();
+ 1134 wDatumProducer =
nullptr;
+ 1135 spWScaleAndSizeExtractor =
nullptr;
+ 1136 spWCvMatToOpInput =
nullptr;
+ 1137 spWCvMatToOpOutput =
nullptr;
+ 1138 spWPoseExtractors.clear();
+ 1139 mPostProcessingWs.clear();
+ 1140 mUserPostProcessingWs.clear();
+
+
+ 1143 mUserOutputWs.clear();
-
-
- 1147 template<
typename TDatums,
typename TWorker,
typename TQueue>
- 1148 void Wrapper<TDatums, TWorker, TQueue>::configureThreadManager()
-
-
-
-
-
-
-
- 1156 error(
"Configure the Wrapper class before calling `start()`.", __LINE__, __FUNCTION__, __FILE__);
- 1157 if ((wDatumProducer ==
nullptr) == (mUserInputWs.empty())
-
-
-
- 1161 const auto message =
"You need to have 1 and only 1 producer selected. You can introduce your own"
- 1162 " producer by using setWorkerInput() or use the OpenPose default producer by"
- 1163 " configuring it in the configure function) or use the"
- 1164 " ThreadManagerMode::Asynchronous(In) mode.";
- 1165 error(message, __LINE__, __FUNCTION__, __FILE__);
-
- 1167 if (mOutputWs.empty() && mUserOutputWs.empty() && spWGui ==
nullptr
-
-
-
- 1171 error(
"No output selected.", __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1176 mThreadManager.reset();
-
- 1178 auto queueIn = 0ull;
- 1179 auto queueOut = 1ull;
-
- 1181 spWIdGenerator = std::make_shared<WIdGenerator<std::shared_ptr<TDatums>>>();
- 1182 if (!mUserInputWs.empty() && mUserInputWsOnNewThread)
-
-
- 1185 mThreadManager.add(mThreadId, mUserInputWs, queueIn++, queueOut++);
- 1186 if (spWScaleAndSizeExtractor !=
nullptr && spWCvMatToOpInput !=
nullptr)
-
-
-
- 1190 if (spWCvMatToOpOutput ==
nullptr)
- 1191 mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput},
- 1192 queueIn++, queueOut++);
-
- 1194 mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput,
- 1195 spWCvMatToOpOutput}, queueIn++, queueOut++);
-
-
- 1198 mThreadManager.add(mThreadId, spWIdGenerator, queueIn++, queueOut++);
-
-
-
-
- 1203 std::vector<TWorker> workersAux;
-
- 1205 if (!mUserInputWs.empty())
-
-
- 1208 else if (wDatumProducer !=
nullptr)
- 1209 workersAux =
mergeVectors(workersAux, {wDatumProducer});
-
-
-
- 1213 error(
"No input selected.", __LINE__, __FUNCTION__, __FILE__);
-
- 1215 workersAux =
mergeVectors(workersAux, {spWIdGenerator});
-
- 1217 if (spWScaleAndSizeExtractor !=
nullptr && spWCvMatToOpInput !=
nullptr)
- 1218 workersAux =
mergeVectors(workersAux, {spWScaleAndSizeExtractor,
- 1219 spWCvMatToOpInput});
-
- 1221 if (spWCvMatToOpOutput !=
nullptr)
- 1222 workersAux =
mergeVectors(workersAux, {spWCvMatToOpOutput});
-
- 1224 mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
-
-
-
-
- 1229 if (!spWPoseExtractors.empty())
-
- 1231 if (mMultiThreadEnabled)
-
- 1233 for (
auto& wPose : spWPoseExtractors)
-
- 1235 mThreadManager.add(mThreadId, wPose, queueIn, queueOut);
-
-
-
-
-
- 1241 if (spWPoseExtractors.size() > 1)
- 1242 log(
"Multi-threading disabled, only 1 thread running. All GPUs have been disabled but the"
- 1243 " first one, which is defined by gpuNumberStart (e.g. in the OpenPose demo, it is set"
-
- 1245 mThreadManager.add(mThreadId, spWPoseExtractors.at(0), queueIn, queueOut);
-
-
-
-
-
- 1251 if (!mUserPostProcessingWs.empty() && mUserPostProcessingWsOnNewThread)
-
-
- 1254 if (!mPostProcessingWs.empty())
-
-
- 1257 mThreadManager.add(mThreadId, mPostProcessingWs, queueIn++, queueOut++);
-
-
-
-
- 1262 mThreadManager.add(mThreadId, mUserPostProcessingWs, queueIn++, queueOut++);
-
-
- 1265 if (!mOutputWs.empty())
-
-
- 1268 mThreadManager.add(mThreadId, mOutputWs, queueIn++, queueOut++);
-
-
-
-
-
-
-
- 1276 auto workersAux =
mergeVectors(mPostProcessingWs, mUserPostProcessingWs);
-
- 1278 if (!workersAux.empty())
-
-
- 1281 mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
-
-
-
-
-
- 1287 if (!mUserOutputWs.empty())
-
- 1289 if (mUserOutputWsOnNewThread)
-
- 1291 mThreadManager.add(mThreadId, mUserOutputWs, queueIn++, queueOut++);
-
-
-
- 1295 mThreadManager.add(mThreadId-1, mUserOutputWs, queueIn++, queueOut++);
-
-
- 1298 if (spWGui !=
nullptr)
-
-
- 1301 mThreadManager.add(mThreadId, spWGui, queueIn++, queueOut++);
-
-
-
-
- 1306 catch (
const std::exception& e)
-
- 1308 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+ 1145 catch (
const std::exception& e)
+
+ 1147 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+ 1151 template<
typename TDatums,
typename TWorker,
typename TQueue>
+ 1152 void Wrapper<TDatums, TWorker, TQueue>::configureThreadManager()
+
+
+
+
+
+
+
+ 1160 error(
"Configure the Wrapper class before calling `start()`.", __LINE__, __FUNCTION__, __FILE__);
+ 1161 if ((wDatumProducer ==
nullptr) == (mUserInputWs.empty())
+
+
+
+ 1165 const auto message =
"You need to have 1 and only 1 producer selected. You can introduce your own"
+ 1166 " producer by using setWorkerInput() or use the OpenPose default producer by"
+ 1167 " configuring it in the configure function) or use the"
+ 1168 " ThreadManagerMode::Asynchronous(In) mode.";
+ 1169 error(message, __LINE__, __FUNCTION__, __FILE__);
+
+ 1171 if (mOutputWs.empty() && mUserOutputWs.empty() && spWGui ==
nullptr
+
+
+
+ 1175 error(
"No output selected.", __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1180 mThreadManager.reset();
+
+ 1182 auto queueIn = 0ull;
+ 1183 auto queueOut = 1ull;
+
+ 1185 spWIdGenerator = std::make_shared<WIdGenerator<std::shared_ptr<TDatums>>>();
+ 1186 if (!mUserInputWs.empty() && mUserInputWsOnNewThread)
+
+
+ 1189 mThreadManager.add(mThreadId, mUserInputWs, queueIn++, queueOut++);
+ 1190 if (spWScaleAndSizeExtractor !=
nullptr && spWCvMatToOpInput !=
nullptr)
+
+
+
+ 1194 if (spWCvMatToOpOutput ==
nullptr)
+ 1195 mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput},
+ 1196 queueIn++, queueOut++);
+
+ 1198 mThreadManager.add(mThreadId, {spWIdGenerator, spWScaleAndSizeExtractor, spWCvMatToOpInput,
+ 1199 spWCvMatToOpOutput}, queueIn++, queueOut++);
+
+
+ 1202 mThreadManager.add(mThreadId, spWIdGenerator, queueIn++, queueOut++);
+
+
+
+
+ 1207 std::vector<TWorker> workersAux;
+
+ 1209 if (!mUserInputWs.empty())
+
+
+ 1212 else if (wDatumProducer !=
nullptr)
+ 1213 workersAux =
mergeVectors(workersAux, {wDatumProducer});
+
+
+
+ 1217 error(
"No input selected.", __LINE__, __FUNCTION__, __FILE__);
+
+ 1219 workersAux =
mergeVectors(workersAux, {spWIdGenerator});
+
+ 1221 if (spWScaleAndSizeExtractor !=
nullptr && spWCvMatToOpInput !=
nullptr)
+ 1222 workersAux =
mergeVectors(workersAux, {spWScaleAndSizeExtractor,
+ 1223 spWCvMatToOpInput});
+
+ 1225 if (spWCvMatToOpOutput !=
nullptr)
+ 1226 workersAux =
mergeVectors(workersAux, {spWCvMatToOpOutput});
+
+ 1228 mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
+
+
+
+
+ 1233 if (!spWPoseExtractors.empty())
+
+ 1235 if (mMultiThreadEnabled)
+
+ 1237 for (
auto& wPose : spWPoseExtractors)
+
+ 1239 mThreadManager.add(mThreadId, wPose, queueIn, queueOut);
+
+
+
+
+
+ 1245 if (spWPoseExtractors.size() > 1)
+ 1246 log(
"Multi-threading disabled, only 1 thread running. All GPUs have been disabled but the"
+ 1247 " first one, which is defined by gpuNumberStart (e.g. in the OpenPose demo, it is set"
+
+ 1249 mThreadManager.add(mThreadId, spWPoseExtractors.at(0), queueIn, queueOut);
+
+
+
+
+
+ 1255 if (!mUserPostProcessingWs.empty() && mUserPostProcessingWsOnNewThread)
+
+
+ 1258 if (!mPostProcessingWs.empty())
+
+
+ 1261 mThreadManager.add(mThreadId, mPostProcessingWs, queueIn++, queueOut++);
+
+
+
+
+ 1266 mThreadManager.add(mThreadId, mUserPostProcessingWs, queueIn++, queueOut++);
+
+
+ 1269 if (!mOutputWs.empty())
+
+
+ 1272 mThreadManager.add(mThreadId, mOutputWs, queueIn++, queueOut++);
+
+
+
+
+
+
+
+ 1280 auto workersAux =
mergeVectors(mPostProcessingWs, mUserPostProcessingWs);
+
+ 1282 if (!workersAux.empty())
+
+
+ 1285 mThreadManager.add(mThreadId, workersAux, queueIn++, queueOut++);
+
+
+
+
+
+ 1291 if (!mUserOutputWs.empty())
+
+ 1293 if (mUserOutputWsOnNewThread)
+
+ 1295 mThreadManager.add(mThreadId, mUserOutputWs, queueIn++, queueOut++);
+
+
+
+ 1299 mThreadManager.add(mThreadId-1, mUserOutputWs, queueIn++, queueOut++);
+
+
+ 1302 if (spWGui !=
nullptr)
+
+
+ 1305 mThreadManager.add(mThreadId, spWGui, queueIn++, queueOut++);
+
+
+
-
-
- 1312 template<
typename TDatums,
typename TWorker,
typename TQueue>
- 1313 unsigned long long Wrapper<TDatums, TWorker, TQueue>::threadIdPP()
-
-
-
- 1317 if (mMultiThreadEnabled)
-
-
-
- 1321 catch (
const std::exception& e)
-
- 1323 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
-
-
-
-
- 1328 extern template class Wrapper<DATUM_BASE_NO_PTR>;
-
-
- 1331 #endif // OPENPOSE_WRAPPER_WRAPPER_HPP
+ 1310 catch (
const std::exception& e)
+
+ 1312 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+ 1316 template<
typename TDatums,
typename TWorker,
typename TQueue>
+ 1317 unsigned long long Wrapper<TDatums, TWorker, TQueue>::threadIdPP()
+
+
+
+ 1321 if (mMultiThreadEnabled)
+
+
+
+ 1325 catch (
const std::exception& e)
+
+ 1327 error(e.what(), __LINE__, __FUNCTION__, __FILE__);
+
+
+
+
+ 1332 extern template class Wrapper<DATUM_BASE_NO_PTR>;
+
+
+ 1335 #endif // OPENPOSE_WRAPPER_WRAPPER_HPP
PoseModel poseModel
Definition: wrapperStructPose.hpp:88
@@ -1325,17 +1329,18 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
Definition: wPoseSaver.hpp:12
bool identification
Definition: wrapperStructPose.hpp:187
-bool tryPush(const std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1053
+bool tryPush(const std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1057
Definition: wrapperStructPose.hpp:17
std::string writeKeypoint
Definition: wrapperStructOutput.hpp:44
float alphaKeypoint
Definition: wrapperStructFace.hpp:39
Definition: wFaceSaver.hpp:12
-void stop()
Definition: wrapper.hpp:992
+void stop()
Definition: wrapper.hpp:996
float alphaKeypoint
Definition: wrapperStructHand.hpp:59
-bool tryPop(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1087
-void exec()
Definition: wrapper.hpp:962
+bool tryPop(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1091
+void exec()
Definition: wrapper.hpp:966
+int tracking
Definition: wrapperStructPose.hpp:194
@@ -1375,9 +1380,9 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
RenderMode renderMode
Definition: wrapperStructPose.hpp:81
-bool waitAndEmplace(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1036
+bool waitAndEmplace(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1040
Definition: wrapper.hpp:32
-bool tryEmplace(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1019
+bool tryEmplace(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1023
float scaleRange
Definition: wrapperStructHand.hpp:40
OP_API GpuMode getGpuMode()
int gpuNumberStart
Definition: wrapperStructPose.hpp:60
@@ -1389,8 +1394,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:1070
-void start()
Definition: wrapper.hpp:977
+bool waitAndPush(const std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1074
+void start()
Definition: wrapper.hpp:981
OP_API std::string formatAsDirectory(const std::string &directoryPathString)
@@ -1406,7 +1411,7 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
Definition: wFaceRenderer.hpp:11
-bool waitAndPop(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1104
+bool waitAndPop(std::shared_ptr< TDatums > &tDatums)
Definition: wrapper.hpp:1108
Definition: threadManager.hpp:16
Definition: wPoseRenderer.hpp:11
@@ -1445,7 +1450,7 @@ $(document).ready(function(){initNavTree('wrapper_8hpp_source.html','');});
ScaleMode keypointScale
Definition: wrapperStructPose.hpp:47
ThreadManagerMode
Definition: enumClasses.hpp:9
int gpuNumber
Definition: wrapperStructPose.hpp:54
-bool isRunning() const
Definition: wrapper.hpp:1005
+bool isRunning() const
Definition: wrapper.hpp:1009
void setWorkerInput(const TWorker &worker, const bool workerOnNewThread=true)
Definition: wrapper.hpp:325
float renderThreshold
Definition: wrapperStructFace.hpp:52
int minViews3d
Definition: wrapperStructPose.hpp:182
diff --git a/html/wrapper_struct_pose_8hpp_source.html b/html/wrapper_struct_pose_8hpp_source.html
index 9f0fb31f9c83bef9bdc92167b3893cc998f6d865..f3a78bf6cbd3fe9923306c9ac86817687f9bf1cd 100644
--- a/html/wrapper_struct_pose_8hpp_source.html
+++ b/html/wrapper_struct_pose_8hpp_source.html
@@ -168,24 +168,27 @@ $(document).ready(function(){initNavTree('wrapper_struct_pose_8hpp_source.html',
-
-
-
- 197 const int gpuNumber = -1,
const int gpuNumberStart = 0,
const int scalesNumber = 1,
-
-
-
-
- 202 const int defaultPartToRender = 0,
const std::string& modelFolder =
"models/",
- 203 const std::vector<HeatMapType>& heatMapTypes = {},
-
- 205 const float renderThreshold = 0.05f,
const int numberPeopleMax = -1,
- 206 const bool enableGoogleLogging =
true,
const bool reconstruct3d =
false,
- 207 const int minViews3d = -1,
const bool identification =
false);
-
-
-
- 211 #endif // OPENPOSE_WRAPPER_WRAPPER_STRUCT_POSE_HPP
+
+
+
+
+
+ 204 const int gpuNumber = -1,
const int gpuNumberStart = 0,
const int scalesNumber = 1,
+
+
+
+
+ 209 const int defaultPartToRender = 0,
const std::string& modelFolder =
"models/",
+ 210 const std::vector<HeatMapType>& heatMapTypes = {},
+
+ 212 const float renderThreshold = 0.05f,
const int numberPeopleMax = -1,
+ 213 const bool enableGoogleLogging =
true,
const bool reconstruct3d =
false,
+ 214 const int minViews3d = -1,
const bool identification =
false,
+ 215 const int tracking = -1);
+
+
+
+ 219 #endif // OPENPOSE_WRAPPER_WRAPPER_STRUCT_POSE_HPP
PoseModel poseModel
Definition: wrapperStructPose.hpp:88
Point< int > netInputSize
Definition: wrapperStructPose.hpp:31
@@ -199,6 +202,7 @@ $(document).ready(function(){initNavTree('wrapper_struct_pose_8hpp_source.html',
bool identification
Definition: wrapperStructPose.hpp:187
Definition: wrapperStructPose.hpp:17
PoseModel
Definition: enumClasses.hpp:9
+int tracking
Definition: wrapperStructPose.hpp:194
int defaultPartToRender
Definition: wrapperStructPose.hpp:115