Go to the documentation of this file.
25 #include <SimoxUtility/algorithm/string.h>
39 def->topic(
listener2DPrx,
"OpenPoseEstimation2D",
"OpenPoseEstimation2DTopicName");
44 "Multiples of 16. If it is increased, the accuracy potentially increases. If it is "
45 "decreased, the speed increases. For maximum speed-accuracy balance, it should keep "
47 "closest aspect ratio possible to the images or videos to be processed.\n Using `-1` "
49 "any of the dimensions, OP will choose the optimal aspect ratio depending on the "
51 "input value.\n E.g. the default `-1x368` is equivalent to `656x368` in 16:9 "
53 "e.g. full HD (1980x1080) and HD (1280x720) resolutions.");
55 "OP_output_resolution",
56 "The image resolution (display and output). Use \"-1x-1\" to force the "
58 " input image resolution.");
61 "Scale gap between scales. No effect unless scale_number > 1. Initial scale "
63 "If you want to change the initial calib->get scale, you actually want to "
65 "`net_resolution` by your desired initial scale.");
69 "Model to be used. E.g. `BODY_25` (25 keypoints, best model), `COCO` (18 "
70 "keypoints), `MPI` (15 keypoints, ~10% faster), "
71 "MPI_4_layers` (15 keypoints, even faster but less accurate).");
75 "Folder path (absolute or relative) where the models (pose, face, ...) are located.");
78 "MinimalAmountKeypoints",
79 "Minimal amount of keypoints per person. Detected persons with less valid "
80 "keypoints will be discarded.");
83 "OP_render_threshold",
84 "Only estimated keypoints whose score confidences are higher than this "
86 " rendered.\n Generally, a high threshold (> 0.5) will only render very "
88 " while small thresholds (~0.1) will also output guessed and occluded "
90 " more false positives (i.e. wrong detections).");
94 "If true, poseEstimation-tasks are started after starting the component. If "
95 "false, the component idles.");
245 ARMARX_WARNING <<
"Could not start 3D pose estimation in 2D component.";
255 const EnableHumanPoseEstimationInput&
input,
std::mutex openpose_initializing_mutex
OpenPoseEstimationComponentPluginUser()
std::atomic_bool update_ready
CByteImage * rgbImageBuffer
virtual void preOnDisconnectImageProcessor()
std::shared_ptr< OpenPoseAdapter > MonocularOpenPoseEstimationPtr
std::atomic_bool result_image_ready
OpenPose2DListenerPrx listener2DPrx
float op_render_threshold
virtual void preOnInitImageProcessor()
CByteImage ** openposeResultImage
void start(const Ice::Current &=Ice::emptyCurrent) override
void start3DPoseEstimation(const Ice::Current &=Ice::emptyCurrent) override
void stop(const Ice::Current &=Ice::emptyCurrent) override
std::atomic_long timestamp_of_update
armarx::RunningTask< OpenPoseEstimationComponentPluginUser >::pointer_type openposeTask
ReaderT::InputType & input
virtual void postOnConnectImageProcessor()
std::atomic_bool running2D
std::mutex openposeResultImageMutex
std::string output_resolution
std::mutex rgbImageBufferMutex
unsigned int minimum_number_of_valid_keypoints_per_entitiy
std::string net_resolution
void stop3DPoseEstimation(const Ice::Current &=Ice::emptyCurrent) override
virtual void postOnDisconnectImageProcessor()
virtual void renderOutputImage(const op::Array< float > &)
HumanPose2DMap openposeResult
virtual void reportEntities()
virtual void preOnConnectImageProcessor()
SpamFilterDataPtr deactivateSpam(float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const
disables the logging for the current line for the given amount of seconds.
MonocularOpenPoseEstimationPtr openposePtr
void enableHumanPoseEstimation(const EnableHumanPoseEstimationInput &input, const Ice::Current &=Ice::emptyCurrent) override
OpenPoseAdapter::OpenPoseSettings op_settings
This file offers overloads of toIce() and fromIce() functions for STL container types.
virtual void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties)