#pragma once #include #include struct Point { float x = 0.0f; float y = 0.0f; }; struct Face { float score = 0.0f; float x1 = 0.0f; float y1 = 0.0f; float x2 = 0.0f; float y2 = 0.0f; Point kps[5]{}; // SFace: embedding L2-normalizzato da 128 float32. std::vector embedding; }; class FaceEngine { public: FaceEngine(); ~FaceEngine(); FaceEngine(const FaceEngine&) = delete; FaceEngine& operator=(const FaceEngine&) = delete; bool init( const std::string& scrfd_model, const std::string& sface_model); bool process_image( const std::string& image_path, std::vector& faces, int& image_width, int& image_height); private: struct Impl; Impl* impl_; };