OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
faceExtractorNet.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 <atomic>
5 #include <thread>
6 #include <opencv2/core/core.hpp> // cv::Mat
9 
10 namespace op
11 {
16  {
17  public:
23  explicit FaceExtractorNet(const Point<int>& netInputSize, const Point<int>& netOutputSize,
24  const std::vector<HeatMapType>& heatMapTypes = {},
25  const ScaleMode heatMapScale = ScaleMode::ZeroToOne);
26 
31  virtual ~FaceExtractorNet();
32 
37  void initializationOnThread();
38 
47  virtual void forwardPass(const std::vector<Rectangle<float>>& faceRectangles, const cv::Mat& cvInputData) = 0;
48 
49  Array<float> getHeatMaps() const;
50 
58  Array<float> getFaceKeypoints() const;
59 
60  bool getEnabled() const;
61 
62  void setEnabled(const bool enabled);
63 
64  protected:
68  // HeatMaps parameters
71  const std::vector<HeatMapType> mHeatMapTypes;
72  // Temporarily disable it
73  std::atomic<bool> mEnabled;
74 
75  virtual void netInitializationOnThread() = 0;
76 
77  private:
78  // Init with thread
79  std::thread::id mThreadId;
80 
81  void checkThread() const;
82 
84  };
85 }
86 
87 #endif // OPENPOSE_FACE_FACE_EXTRACTOR_HPP
#define DELETE_COPY(className)
Definition: macros.hpp:31
Array< float > mFaceKeypoints
Definition: faceExtractorNet.hpp:67
const std::vector< HeatMapType > mHeatMapTypes
Definition: faceExtractorNet.hpp:71
const ScaleMode mHeatMapScaleMode
Definition: faceExtractorNet.hpp:70
ScaleMode
Definition: enumClasses.hpp:6
Definition: faceExtractorNet.hpp:15
Definition: rectangle.hpp:11
std::vector< T, Alloc > vector
Definition: cl2.hpp:567
std::atomic< bool > mEnabled
Definition: faceExtractorNet.hpp:73
const Point< int > mNetOutputSize
Definition: faceExtractorNet.hpp:65
#define OP_API
Definition: macros.hpp:16
Array< float > mHeatMaps
Definition: faceExtractorNet.hpp:69
Array< float > mFaceImageCrop
Definition: faceExtractorNet.hpp:66