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.");
66 def->optional(
op_settings.scale_number,
"OP_scale_number",
"Number of scales to average.");
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.");
76 def->optional(
op_settings.num_gpu_start,
"OP_num_gpu_start",
"GPU device start number.");
77 def->optional(
op_settings.minimum_number_of_valid_keypoints_per_entitiy,
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,
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.
void start3DPoseEstimation(const Ice::Current &=Ice::emptyCurrent) override
float op_render_threshold
std::atomic_long timestamp_of_update
virtual void reportEntities()
OpenPoseAdapter::OpenPoseSettings op_settings
armarx::RunningTask< OpenPoseEstimationComponentPluginUser >::pointer_type openposeTask
virtual void preOnConnectImageProcessor()
void stop(const Ice::Current &=Ice::emptyCurrent) override
std::mutex rgbImageBufferMutex
void start(const Ice::Current &=Ice::emptyCurrent) override
void stop3DPoseEstimation(const Ice::Current &=Ice::emptyCurrent) override
std::mutex openposeResultImageMutex
virtual void postOnConnectImageProcessor()
virtual void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties)
std::mutex openpose_initializing_mutex
HumanPose2DMap openposeResult
std::atomic_bool running2D
MonocularOpenPoseEstimationPtr openposePtr
OpenPoseEstimationComponentPluginUser()
CByteImage * rgbImageBuffer
std::atomic_bool result_image_ready
std::atomic_bool update_ready
void enableHumanPoseEstimation(const EnableHumanPoseEstimationInput &input, const Ice::Current &=Ice::emptyCurrent) override
virtual void preOnDisconnectImageProcessor()
CByteImage ** openposeResultImage
virtual void preOnInitImageProcessor()
OpenPose2DListenerPrx listener2DPrx
virtual void postOnDisconnectImageProcessor()
virtual void renderOutputImage(const op::Array< float > &)
#define ARMARX_INFO
The normal logging level.
#define ARMARX_DEBUG
The logging level for output that is only interesting while debugging.
#define ARMARX_WARNING
The logging level for unexpected behaviour, but not a serious problem.
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< OpenPoseAdapter > MonocularOpenPoseEstimationPtr
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.