3#ifndef LIGHTLY_EDGE_RS_BINDINGS_H
4#define LIGHTLY_EDGE_RS_BINDINGS_H
17namespace lightly_edge_rs {
19constexpr static const uint16_t SUCCESS_CODE = 0;
21constexpr static const int32_t NO_SUBCLASS = -1;
23enum class InferenceDeviceType {
35 const char *error_message;
39 bool object_detector_enable;
40 bool classifiers_enable;
41 uint32_t max_classifications;
46 InferenceDeviceType inference_device_type;
84struct SelectionStrategiesSelectInfo {
86 size_t diversity_buffer_size;
87 size_t *out_diversity_size;
89 size_t similarity_buffer_size;
90 size_t *out_similarity_size;
92 size_t adaptive_diversity_buffer_size;
93 size_t *out_adaptive_diversity_size;
95 size_t detection_buffer_size;
96 size_t *out_detection_size;
110CStatus lightly_edge_new_from_tar(
const char *archive_path,
112 LightlyEdge **out_ptr);
115CStatus lightly_edge_new_from_directory(
const char *model_directory,
117 LightlyEdge **out_ptr);
120void destroy(LightlyEdge * lightly_edge);
123CStatus embed_frame(
const LightlyEdge * lightly_edge,
124 uint8_t *rgb_image_data,
125 size_t rgb_image_data_size,
128 float *out_embedding_buffer);
131CStatus embed_texts(LightlyEdge *lightly_edge,
132 const char *
const *texts,
134 float **out_embeddings);
137CStatus insert_into_embedding_database(LightlyEdge * lightly_edge,
138 const float *embedding_buffer,
139 size_t embedding_buffer_size);
142CStatus register_diversity_strategy(LightlyEdge * lightly_edge,
float min_distance);
145size_t num_diversity_strategies(
const LightlyEdge * lightly_edge);
148size_t num_patches(
const LightlyEdge * lightly_edge);
151CStatus register_similarity_strategy(LightlyEdge * lightly_edge,
152 const float *query_embedding_buffer,
153 size_t query_embedding_buffer_size,
157size_t num_similarity_strategies(
const LightlyEdge * lightly_edge);
160CStatus register_detection_strategy(LightlyEdge * lightly_edge,
166size_t num_detection_strategies(
const LightlyEdge * lightly_edge);
169CStatus register_adaptive_diversity_strategy(LightlyEdge * lightly_edge,
171 size_t max_buffer_length);
174size_t num_adaptive_diversity_strategies(
const LightlyEdge * lightly_edge);
177void clear_strategies(LightlyEdge * lightly_edge);
180CStatus should_select(LightlyEdge * lightly_edge,
181 const float *embedding_buffer,
182 size_t embedding_buffer_size,
184 size_t detection_buffer_size,
185 SelectionStrategiesSelectInfo *out_info);
188CStatus should_select_with_patches(LightlyEdge * lightly_edge,
189 const float *
const *embeddings_buffer,
190 size_t num_embeddings,
191 size_t embedding_dim,
193 size_t detection_buffer_size,
194 SelectionStrategiesSelectInfo *out_info);
197size_t embedding_dimension(
const LightlyEdge * lightly_edge);
200CStatus detect(
const LightlyEdge * lightly_edge,
201 uint8_t *rgb_image_data,
202 size_t rgb_image_data_size,
206 size_t *out_detections_len);
209CStatus detection_class_labels(
const LightlyEdge * lightly_edge,
210 const char **out_classes_buffer,
211 size_t *out_classes_len);
214CStatus detection_subclass_labels(
const LightlyEdge * lightly_edge,
216 const char **out_subclasses_buffer,
217 size_t *out_subclasses_len);
220CStatus set_embedding_patches(LightlyEdge * lightly_edge,
225void reset_embedding_patches(LightlyEdge * lightly_edge);
228CStatus embed_patches(
const LightlyEdge * lightly_edge,
229 uint8_t *rgb_image_data,
230 size_t rgb_image_data_size,
233 float **out_embedding_buffer);
236CStatus create_status_impl(uint16_t code,
const char *error_message);
239void free_status_message(CStatus * status);
Holds information whether a frame should be selected or not.
Definition lightly_edge_rs_bindings.h:72
Definition lightly_edge_rs_bindings.h:77
Holds information whether a frame should be selected or not.
Definition lightly_edge_rs_bindings.h:60
Definition lightly_edge_rs_bindings.h:44
Definition lightly_edge_rs_bindings.h:38
Definition lightly_edge_rs_bindings.h:49
A patch specified by relative coordinates.
Definition lightly_edge_rs_bindings.h:100
Holds information whether a frame should be selected or not.
Definition lightly_edge_rs_bindings.h:66