#ifndef _MOBILEFACEFEATURE_MNN_H #define _MOBILEFACEFEATURE_MNN_H #include #include #include #include #include #include #include #include class MobileFaceFeatureMnn { public: static MobileFaceFeatureMnn* GetInstance(); int GetFaceFeature(const cv::Mat& img, const float* landmarks, float* feature); private: MobileFaceFeatureMnn(); ~MobileFaceFeatureMnn(); cv::Mat estimateTrans(std::vector& srcLmks, std::vector& dstLmks); cv::Mat FaceAlign(const cv::Mat& inputImage, const float* landmarks); private: static MobileFaceFeatureMnn* m_hInstance; std::mutex m_mt; std::shared_ptr m_detector; MNN::CV::ImageProcess::Config m_img_config; MNN::Session* m_sess_mobileface; MNN::Tensor* m_input_tensor; MNN::Tensor* m_feature_tensor; }; #endif