facecomparison.h 1.07 KB
#ifndef FACECOMPARISON_H
#define FACECOMPARISON_H


#include "facerecognize.h"
#include "retinaface.h"
#include "facelandmarks.h"

struct OutputInfo{
    int error_code;
    bool result;
};

struct InitModelError{
    vector<bool> init_error;
};


class FaceComparison{
    public:
        // 人脸检测阈值
        float confidence_threshold = 0.5;
        // 是否进行人脸外廓
        bool is_bbox_process = true;

        // 人脸比对相似度阈值
        float face_recongnize_thr = 0.5;

        // 线程个数
        int num_thread = 2;

        // 推理方式
        MNNForwardType forward_type = MNN_FORWARD_CPU;


        //接口
        int inference(string image_path1,string image_path2,OutputInfo &output_info);
        int inference(Mat image1,Mat image2,OutputInfo &output_info);

    private:
        RetinaFace face_det;
        FaceLandmarks face_landm;
        FaceRecognize face_rec;

    public:
        FaceComparison(){};
        bool init_model(string face_det_model,string face_landm_model,string face_rec_model,InitModelError &model_error);
};
#endif