OpenPose 1.0.0rc2 OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
op::HandExtractorNet Class Referenceabstract

`#include <handExtractorNet.hpp>`

Inherited by op::HandExtractorCaffe.

## Public Member Functions
| 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)
virtual | ~HandExtractorNet ()
void | initializationOnThread ()
virtual void | forwardPass (const std::vector< std::array< Rectangle< float >, 2 >> handRectangles, const cv::Mat &cvInputData)=0
std::array< Array< float >, 2 > | getHeatMaps () const
std::array< Array< float >, 2 > | getHandKeypoints () const
bool | getEnabled () const
void | setEnabled (const bool enabled)

## Protected Member Functions
virtual void | netInitializationOnThread ()=0

## Protected Attributes
const std::pair< unsigned short, float > | mMultiScaleNumberAndRange
const Point< int > | mNetOutputSize
Array< float > | mHandImageCrop
std::array< Array< float >, 2 > | mHandKeypoints
const ScaleMode | mHeatMapScaleMode
const std::vector< HeatMapType > | mHeatMapTypes
std::array< Array< float >, 2 > | mHeatMaps
std::atomic< bool > | mEnabled

## Detailed Description

Hand keypoint extractor class.

## Constructor & Destructor Documentation

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.

## Member Function Documentation

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 | ( |  | ) |
| protected pure virtual

Implemented in op::HandExtractorCaffe.

void op::HandExtractorNet::setEnabled | ( | const bool | enabled | ) |

## Member Data Documentation

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:

- /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/hand/handExtractorNet.hpp