#include <handExtractorNet.hpp>
Inherited by op::HandExtractorCaffe.
Hand keypoint extractor class.
op::HandExtractorNet::HandExtractorNet |
( |
const Point< int > & |
netInputSize, |
|
|
const Point< int > & |
netOutputSize, |
|
|
const unsigned short |
numberScales = 1 , |
|
|
const float |
rangeScales = 0.4f , |
|
|
const std::vector< HeatMapType > & |
heatMapTypes = {} , |
|
|
const ScaleMode |
heatMapScale = ScaleMode::ZeroToOne |
|
) |
| |
|
explicit |
Constructor of the HandExtractorNet class.
- Parameters
-
netInputSize | Size at which the cropped image (where the hand is located) is resized. |
netOutputSize | Size of the final results. At the moment, it must be equal than netOutputSize. |
numberScales | Number of scales to run. The more scales, the slower it will be but possibly also more accurate. |
rangeScales | The range between the smaller and bigger scale. |
virtual op::HandExtractorNet::~HandExtractorNet |
( |
| ) |
|
|
virtual |
Virtual destructor of the HandExtractorNet class. Required to allow inheritance.
virtual void op::HandExtractorNet::forwardPass |
( |
const std::vector< std::array< Rectangle< float >, 2 >> |
handRectangles, |
|
|
const cv::Mat & |
cvInputData |
|
) |
| |
|
pure virtual |
This function extracts the hand keypoints for each detected hand in the image.
- Parameters
-
handRectangles | location 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). |
cvInputData | Original image in cv::Mat format and BGR format. |
Implemented in op::HandExtractorCaffe.
bool op::HandExtractorNet::getEnabled |
( |
| ) |
const |
std::array<Array<float>, 2> op::HandExtractorNet::getHandKeypoints |
( |
| ) |
const |
This function returns the hand keypoins. VERY IMPORTANT: use getHandKeypoints().clone() if the keypoints are going to be edited in a different thread.
- Returns
- A std::array with all the left hand keypoints (index 0) and all the right ones (index 1). Each Array<float> follows the pose structure, i.e. the first dimension corresponds to all the people in the image, the second to each specific keypoint, and the third one to (x, y, score).
std::array<Array<float>, 2> op::HandExtractorNet::getHeatMaps |
( |
| ) |
const |
void op::HandExtractorNet::initializationOnThread |
( |
| ) |
|
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.
virtual void op::HandExtractorNet::netInitializationOnThread |
( |
| ) |
|
|
protectedpure virtual |
void op::HandExtractorNet::setEnabled |
( |
const bool |
enabled | ) |
|
std::atomic<bool> op::HandExtractorNet::mEnabled |
|
protected |
Array<float> op::HandExtractorNet::mHandImageCrop |
|
protected |
std::array<Array<float>, 2> op::HandExtractorNet::mHandKeypoints |
|
protected |
std::array<Array<float>, 2> op::HandExtractorNet::mHeatMaps |
|
protected |
const ScaleMode op::HandExtractorNet::mHeatMapScaleMode |
|
protected |
const std::vector<HeatMapType> op::HandExtractorNet::mHeatMapTypes |
|
protected |
const std::pair<unsigned short, float> op::HandExtractorNet::mMultiScaleNumberAndRange |
|
protected |
const Point<int> op::HandExtractorNet::mNetOutputSize |
|
protected |
The documentation for this class was generated from the following file: