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
faceExtractorCaffe.hpp
Go to the documentation of this file.
1 #ifndef OPENPOSE_FACE_FACE_EXTRACTOR_CAFFE_HPP
2 #define OPENPOSE_FACE_FACE_EXTRACTOR_CAFFE_HPP
3 
4 #include <opencv2/core/core.hpp> // cv::Mat
8 
9 namespace op
10 {
15  {
16  public:
22  FaceExtractorCaffe(const Point<int>& netInputSize, const Point<int>& netOutputSize,
23  const std::string& modelFolder, const int gpuId,
24  const std::vector<HeatMapType>& heatMapTypes = {},
25  const ScaleMode heatMapScale = ScaleMode::ZeroToOne,
26  const bool enableGoogleLogging = true);
27 
28  virtual ~FaceExtractorCaffe();
29 
34  void netInitializationOnThread();
35 
44  void forwardPass(const std::vector<Rectangle<float>>& faceRectangles, const cv::Mat& cvInputData);
45 
46  private:
47  // PIMPL idiom
48  // http://www.cppsamples.com/common-tasks/pimpl.html
49  struct ImplFaceExtractorCaffe;
50  std::unique_ptr<ImplFaceExtractorCaffe> upImpl;
51 
52  // PIMP requires DELETE_COPY & destructor, or extra code
53  // http://oliora.github.io/2015/12/29/pimpl-and-rule-of-zero.html
55  };
56 }
57 
58 #endif // OPENPOSE_FACE_FACE_EXTRACTOR_CAFFE_HPP
#define DELETE_COPY(className)
Definition: macros.hpp:30
Definition: faceExtractorCaffe.hpp:14
ScaleMode
Definition: enumClasses.hpp:6
Definition: rectangle.hpp:11
std::vector< T, Alloc > vector
Definition: cl2.hpp:567
#define OP_API
Definition: macros.hpp:15
Definition: faceExtractor.hpp:14
std::string string
Definition: cl2.hpp:574