OpenPose  1.7.0
The first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints
op::HandExtractorCaffe Class Reference

#include <handExtractorCaffe.hpp>

Inheritance diagram for op::HandExtractorCaffe:

Public Member Functions

 HandExtractorCaffe (const Point< int > &netInputSize, const Point< int > &netOutputSize, const std::string &modelFolder, const int gpuId, const int numberScales=1, const float rangeScales=0.4f, const std::vector< HeatMapType > &heatMapTypes={}, const ScaleMode heatMapScaleMode=ScaleMode::ZeroToOneFixedAspect, const bool enableGoogleLogging=true)
virtual ~HandExtractorCaffe ()
void netInitializationOnThread ()
void forwardPass (const std::vector< std::array< Rectangle< float >, 2 >> handRectangles, const Matrix &inputData)
- Public Member Functions inherited from op::HandExtractorNet
 HandExtractorNet (const Point< int > &netInputSize, const Point< int > &netOutputSize, const int numberScales=1, const float rangeScales=0.4f, const std::vector< HeatMapType > &heatMapTypes={}, const ScaleMode heatMapScaleMode=ScaleMode::ZeroToOneFixedAspect)
virtual ~HandExtractorNet ()
void initializationOnThread ()
std::array< Array< float >, 2 > getHeatMaps () const
std::array< Array< float >, 2 > getHandKeypoints () const
bool getEnabled () const
void setEnabled (const bool enabled)

Additional Inherited Members

- Protected Attributes inherited from op::HandExtractorNet
const std::pair< int, float > mMultiScaleNumberAndRange
const Point< int > mNetOutputSize
Array< float > mHandImageCrop
std::array< Array< float >, 2 > mHandKeypoints
const ScaleMode mHeatMapScaleMode
const std::vector< HeatMapTypemHeatMapTypes
std::array< Array< float >, 2 > mHeatMaps
std::atomic< bool > mEnabled

Detailed Description

Hand keypoint extractor class for Caffe framework.

Definition at line 13 of file handExtractorCaffe.hpp.

Constructor & Destructor Documentation

◆ HandExtractorCaffe()

op::HandExtractorCaffe::HandExtractorCaffe ( const Point< int > &  netInputSize,
const Point< int > &  netOutputSize,
const std::string &  modelFolder,
const int  gpuId,
const int  numberScales = 1,
const float  rangeScales = 0.4f,
const std::vector< HeatMapType > &  heatMapTypes = {},
const ScaleMode  heatMapScaleMode = ScaleMode::ZeroToOneFixedAspect,
const bool  enableGoogleLogging = true 

Constructor of the HandExtractorCaffe class.

netInputSizeSize at which the cropped image (where the hand is located) is resized.
netOutputSizeSize of the final results. At the moment, it must be equal than netOutputSize.
modelFolderFolder where the models are located.
gpuIdThe GPU index (0-based) which the deep net will use.
numberScalesNumber of scales to run. The more scales, the slower it will be but possibly also more accurate.
rangeScalesThe range between the smaller and bigger scale.

◆ ~HandExtractorCaffe()

virtual op::HandExtractorCaffe::~HandExtractorCaffe ( )

Virtual destructor of the HandExtractor class. Required to allow inheritance.

Member Function Documentation

◆ forwardPass()

void op::HandExtractorCaffe::forwardPass ( const std::vector< std::array< Rectangle< float >, 2 >>  handRectangles,
const Matrix inputData 

This function extracts the hand keypoints for each detected hand in the image.

handRectangleslocation of the hands in the image. It is a length-variable std::vector, where each index corresponds to a different person in the image. Internally the std::vector, a std::array of 2 elements: index 0 and 1 for left and right hand respectively. Inside each array element, a op::Rectangle<float> (similar to cv::Rect for floating values) with the position of that hand (or 0,0,0,0 if some hand is missing, e.g., if a specific person has only half of the body inside the image).
inputDataOriginal image in Mat format and BGR format.

Implements op::HandExtractorNet.

◆ netInitializationOnThread()

void op::HandExtractorCaffe::netInitializationOnThread ( )

This function must be call before using any other function. It must also be called inside the thread in which the functions are going to be used.

Implements op::HandExtractorNet.

The documentation for this class was generated from the following file: