10 #include <bnb/types/full_image.hpp>
11 #include <bnb/utils/defs.hpp>
16 #include <unordered_map>
19 namespace bnb {
namespace interfaces {
21 class frx_recognition_result;
22 enum class face_data_source;
23 enum class feature_id;
25 struct action_units_data;
29 struct external_face_data;
32 struct feature_parameter;
33 struct full_image_format;
34 struct lips_shine_mask;
35 struct transformed_mask_byte;
36 struct transformed_mask_gpu;
47 static std::shared_ptr<frame_data> create();
51 virtual std::vector<float> get_full_img_transform() = 0;
54 virtual std::shared_ptr<frx_recognition_result> get_frx_recognition_result() = 0;
56 virtual void set_frx_recognition_result(
const std::shared_ptr<frx_recognition_result> & result) = 0;
63 virtual std::vector<detected_face> get_face_detector_result() = 0;
69 virtual bool get_is_smile() = 0;
71 virtual bool get_is_mouth_open() = 0;
73 virtual bool get_is_brows_raised() = 0;
75 virtual bool get_is_brows_shifted() = 0;
77 virtual bool get_is_wear_glasses() = 0;
79 virtual float get_ruler() = 0;
83 virtual float get_light_correction() = 0;
117 virtual std::optional<std::string> get_face_attributes() = 0;
120 virtual float get_pupillary_distance() = 0;
126 virtual std::vector<float> get_light_source_params() = 0;
134 virtual void add_external_face_data(face_data_source source,
const std::vector<external_face_data> & data) = 0;
138 virtual void add_frame_number(int64_t frame_number) = 0;
146 virtual void add_feature_parameters(
const std::unordered_map<feature_id, std::vector<feature_parameter>> & params) = 0;
149 virtual void add_timestamp_us(
double timestamp_us) = 0;