All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
op::FaceExtractorNet Class Referenceabstract

`#include <faceExtractorNet.hpp>`

Inherited by op::FaceExtractorCaffe.

## Public Member Functions

| FaceExtractorNet (const Point< int > &netInputSize, const Point< int > &netOutputSize, const std::vector< HeatMapType > &heatMapTypes={}, const ScaleMode heatMapScale=ScaleMode::ZeroToOne)
virtual | ~FaceExtractorNet ()
void | initializationOnThread ()
virtual void | forwardPass (const std::vector< Rectangle< float >> &faceRectangles, const cv::Mat &cvInputData)=0
Array< float > | getHeatMaps () const
Array< float > | getFaceKeypoints () const
bool | getEnabled () const
void | setEnabled (const bool enabled)

## Protected Member Functions

virtual void | netInitializationOnThread ()=0

## Protected Attributes

const Point< int > | mNetOutputSize
Array< float > | mFaceImageCrop
Array< float > | mFaceKeypoints
Array< float > | mHeatMaps
const ScaleMode | mHeatMapScaleMode
const std::vector< HeatMapType > | mHeatMapTypes
std::atomic< bool > | mEnabled

## Detailed Description

Face keypoint extractor class.

## Constructor & Destructor Documentation

op::FaceExtractorNet::FaceExtractorNet | ( | const Point< int > & | netInputSize,
|  | const Point< int > & | netOutputSize,
|  | const std::vector< HeatMapType > & | heatMapTypes = `{}`,
|  | const ScaleMode | heatMapScale = `ScaleMode::ZeroToOne`
| ) |  |

explicit

Constructor of the FaceExtractorNet class.

Parameters

  netInputSize | Size at which the cropped image (where the face is located) is resized.
  netOutputSize | Size of the final results. At the moment, it must be equal than netOutputSize.

virtual op::FaceExtractorNet::~FaceExtractorNet | ( |  | ) |

virtual

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

## Member Function Documentation

virtual void op::FaceExtractorNet::forwardPass | ( | const std::vector< Rectangle< float >> & | faceRectangles,
|  | const cv::Mat & | cvInputData
| ) |  |

pure virtual

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

Parameters

  faceRectangles | location of the faces in the image. It is a length-variable std::vector, where each index corresponds to a different person in the image. Internally, a op::Rectangle<float> (similar to cv::Rect for floating values) with the position of that face (or 0,0,0,0 if some face 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::FaceExtractorCaffe.

bool op::FaceExtractorNet::getEnabled | ( |  | ) | const

Array<float> op::FaceExtractorNet::getFaceKeypoints | ( |  | ) | const

This function returns the face keypoins. VERY IMPORTANT: use getFaceKeypoints().clone() if the keypoints are going to be edited in a different thread.

Returns
  A Array with all the face keypoints. It 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).

Array<float> op::FaceExtractorNet::getHeatMaps | ( |  | ) | const

void op::FaceExtractorNet::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::FaceExtractorNet::netInitializationOnThread | ( |  | ) |

protectedpure virtual

Implemented in op::FaceExtractorCaffe.

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

## Member Data Documentation

std::atomic<bool> op::FaceExtractorNet::mEnabled

protected

Array<float> op::FaceExtractorNet::mFaceImageCrop

protected

Array<float> op::FaceExtractorNet::mFaceKeypoints

protected

Array<float> op::FaceExtractorNet::mHeatMaps

protected

const ScaleMode op::FaceExtractorNet::mHeatMapScaleMode

protected

const std::vector<HeatMapType> op::FaceExtractorNet::mHeatMapTypes

protected

const Point<int> op::FaceExtractorNet::mNetOutputSize

protected

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

- /home/travis/build/CMU-Perceptual-Computing-Lab/openpose/include/openpose/face/faceExtractorNet.hpp