facelandmarks.h 984 Bytes
#ifndef FACELANDMARKS_H
#define FACELANDMARKS_H
#include <opencv2/opencv.hpp>
#include<MNN/Interpreter.hpp>
#include<MNN/ImageProcess.hpp>
#include<iostream>
#include<memory>

using namespace std;
using namespace cv;
using namespace MNN;

class FaceLandmarks{
    public:
        int num_thread = 2;
        MNNForwardType forward_type = MNN_FORWARD_CPU;

    public:
        FaceLandmarks();
        // ~FaceLandmarks();
        FaceLandmarks(string model_path){
            init_model(model_path);
        };
        bool init_model(string model_path);
        vector<vector<float>> inference(string image_path);
        vector<vector<float>> inference(Mat image);

    private:
        bool model_init;
        float normal[3]={1.0f/256.f,1.0f/256.f,1.0f/256.f};
        std::shared_ptr<MNN::Interpreter> pfld_interpreter = nullptr;
        MNN::Session* session = nullptr;
        MNN::Tensor* input_tensor = nullptr;
        shared_ptr<MNN::CV::ImageProcess> pretreat;
};
#endif