OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
faceExtractor.hpp
Go to the documentation of this file.
1 #ifndef OPENPOSE_FACE_FACE_EXTRACTOR_HPP
2 #define OPENPOSE_FACE_FACE_EXTRACTOR_HPP
3 
4 #include <thread>
5 #include <opencv2/core/core.hpp> // cv::Mat
8 
9 namespace op
10 {
15  {
16  public:
22  explicit FaceExtractor(const Point<int>& netInputSize, const Point<int>& netOutputSize,
23  const std::vector<HeatMapType>& heatMapTypes = {},
24  const ScaleMode heatMapScale = ScaleMode::ZeroToOne);
25 
30  virtual ~FaceExtractor();
31 
36  void initializationOnThread();
37 
48  virtual void forwardPass(const std::vector<Rectangle<float>>& faceRectangles, const cv::Mat& cvInputData,
49  const double scaleInputToOutput) = 0;
50 
51  Array<float> getHeatMaps() const;
52 
60  Array<float> getFaceKeypoints() const;
61 
62  protected:
66  // HeatMaps parameters
69  const std::vector<HeatMapType> mHeatMapTypes;
70 
71  virtual void netInitializationOnThread() = 0;
72 
73  private:
74  // Init with thread
75  std::thread::id mThreadId;
76 
77  void checkThread() const;
78 
80  };
81 }
82 
83 #endif // OPENPOSE_FACE_FACE_EXTRACTOR_HPP
#define DELETE_COPY(className)
Definition: macros.hpp:24
const Point< int > mNetOutputSize
Definition: faceExtractor.hpp:63
Array< float > mFaceKeypoints
Definition: faceExtractor.hpp:65
const std::vector< HeatMapType > mHeatMapTypes
Definition: faceExtractor.hpp:69
Array< float > mHeatMaps
Definition: faceExtractor.hpp:67
ScaleMode
Definition: enumClasses.hpp:6
Definition: rectangle.hpp:11
const ScaleMode mHeatMapScaleMode
Definition: faceExtractor.hpp:68
#define OP_API
Definition: macros.hpp:9
Definition: faceExtractor.hpp:14
Array< float > mFaceImageCrop
Definition: faceExtractor.hpp:64