All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
faceExtractorCaffe.hpp
Go to the documentation of this file.
#ifndef OPENPOSE_FACE_FACE_EXTRACTOR_CAFFE_HPP
#define OPENPOSE_FACE_FACE_EXTRACTOR_CAFFE_HPP
#include <opencv2/core/core.hpp> // cv::Mat
#include <openpose/core/common.hpp>
#include <openpose/core/enumClasses.hpp>
#include <openpose/face/faceExtractorNet.hpp>
namespace op
{
class OP_API FaceExtractorCaffe : public FaceExtractorNet
{
public:
FaceExtractorCaffe(const Point<int>& netInputSize, const Point<int>& netOutputSize,
const std::string& modelFolder, const int gpuId,
const std::vector<HeatMapType>& heatMapTypes = {},
const ScaleMode heatMapScale = ScaleMode::ZeroToOne,
const bool enableGoogleLogging = true);
virtual ~FaceExtractorCaffe();
void netInitializationOnThread();
void forwardPass(const std::vector<Rectangle<float>>& faceRectangles, const cv::Mat& cvInputData);
private:
// PIMPL idiom
// http://www.cppsamples.com/common-tasks/pimpl.html
struct ImplFaceExtractorCaffe;
std::unique_ptr<ImplFaceExtractorCaffe> upImpl;
// PIMP requires DELETE_COPY & destructor, or extra code
// http://oliora.github.io/2015/12/29/pimpl-and-rule-of-zero.html
DELETE_COPY(FaceExtractorCaffe);
};
}
#endif // OPENPOSE_FACE_FACE_EXTRACTOR_CAFFE_HPP
DELETE_COPY
#define DELETE_COPY(className)
Definition: macros.hpp:34
op::Point< int >
op::FaceExtractorCaffe
Definition: faceExtractorCaffe.hpp:14
common.hpp
op::ScaleMode::ZeroToOne
op::ScaleMode
ScaleMode
Definition: enumClasses.hpp:6
op::FaceExtractorNet
Definition: faceExtractorNet.hpp:14
faceExtractorNet.hpp
op::Rectangle
Definition: rectangle.hpp:11
cl::vector
std::vector< T, Alloc > vector
Definition: cl2.hpp:567
OP_API
#define OP_API
Definition: macros.hpp:19
enumClasses.hpp
cl::string
std::string string
Definition: cl2.hpp:574