Skip to content

Remove old image inference #109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion openvino_bindings/src/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ cc_library(
"//src/utils:input_devices",
"//src/utils:status",
"//src/utils:utils",
"//src/image:image_inference",
"//src/sentence_transformer:sentence_transformer_pipeline",
"//src/llm:llm_inference",
"//src/audio:speech_to_text",
Expand Down
125 changes: 0 additions & 125 deletions openvino_bindings/src/bindings.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include <openvino/openvino.hpp>

#include "src/audio/speech_to_text.h"
#include "src/image/image_inference.h"
#include "src/mediapipe/graph_runner.h"
#include "src/mediapipe/serialization/serialization_calculators.h"
#include "src/llm/llm_inference.h"
Expand Down Expand Up @@ -49,11 +48,6 @@ void freeStatusOrInt(StatusOrInt *status) {
// delete status;
//}

void freeStatusOrImageInference(StatusOrString *status) {
//std::cout << "Freeing StatusOrImageInference" << std::endl;
delete status;
}

void freeStatusOrModelResponse(StatusOrModelResponse *status) {
//std::cout << "Freeing StatusOrImageInference" << std::endl;
delete status;
Expand Down Expand Up @@ -91,125 +85,6 @@ void freeStatusOrCameraDevices(StatusOrCameraDevices *status) {
delete status;
}

StatusOrImageInference* imageInferenceOpen(const char* model_path, const char* task, const char* device, const char* label_definitions_json) {
try {
auto instance = new ImageInference(model_path, get_task_type(task), device);
instance->project_labels = nlohmann::json::parse(label_definitions_json);
return new StatusOrImageInference{OkStatus, "", instance};
} catch (...) {
auto except = handle_exceptions();
return new StatusOrImageInference{except->status, except->message};
}
}

Status* imageInferenceClose(CImageInference instance) {
auto inference = reinterpret_cast<ImageInference*>(instance);
inference->close();
delete inference;
return new Status{OkStatus};
}

StatusOrString* imageInferenceInfer(CImageInference instance, unsigned char* image_data, const size_t data_length, bool json, bool csv, bool overlay) {
try {
if(!(json || csv || overlay)){
return new StatusOrString{OverlayNoOutputSelected};
}
auto image_inference = reinterpret_cast<ImageInference*>(instance);
std::vector<char> image_vector(image_data, image_data + data_length);
auto image = cv::imdecode(image_vector, 1);
auto inference_result = image_inference->infer(image);
auto result = image_inference->serialize(inference_result, image, json, csv, overlay).dump();
return new StatusOrString{OkStatus, "", strdup(result.c_str())};
} catch (...) {
auto except = handle_exceptions();
return new StatusOrString{except->status, except->message};
}
}

StatusOrString* imageInferenceInferRoi(CImageInference instance, unsigned char* image_data, const size_t data_length, int x, int y, int width, int height, bool json, bool csv, bool overlay) {
try {
if(!(json || csv || overlay)){
return new StatusOrString{OverlayNoOutputSelected};
}

auto image_inference = reinterpret_cast<ImageInference*>(instance);
std::vector<char> image_vector(image_data, image_data + data_length);
auto image = cv::imdecode(image_vector, 1);
cv::cvtColor(image, image, cv::COLOR_BGR2RGB);
auto rect = cv::Rect(x, y, width, height);
auto roi = image(rect).clone();
auto inference_result = image_inference->infer(roi);
auto result = image_inference->serialize(inference_result, roi, json, csv, overlay).dump();
return new StatusOrString{OkStatus, "", strdup(result.c_str())};
} catch (...) {
auto except = handle_exceptions();
return new StatusOrString{except->status, except->message};
}
}

Status* imageInferenceInferAsync(CImageInference instance, const char* id, unsigned char* image_data, const size_t data_length, bool json, bool csv, bool overlay) {
try {
auto image_inference = reinterpret_cast<ImageInference*>(instance);
std::vector<char> image_vector(image_data, image_data + data_length);
auto image = cv::imdecode(image_vector, 1);
image_inference->inferAsync(image, id, json, csv, overlay);
return new Status{OkStatus, ""};
} catch (...) {
return handle_exceptions();
}
}

Status* imageInferenceSetListener(CImageInference instance, ImageInferenceCallbackFunction callback) {
try {
auto lambda_callback = [callback](StatusEnum status, const std::string& error_message, const std::string& response) {
callback(new StatusOrString{status, strdup(error_message.c_str()), strdup(response.c_str())});
};
auto image_inference = reinterpret_cast<ImageInference*>(instance);
image_inference->set_listener(lambda_callback);
return new Status{OkStatus, ""};
} catch (...) {
return handle_exceptions();
}
}

Status* imageInferenceSerializeModel(const char* model_path, const char* output_path) {
try {
ImageInference::serialize_model(model_path, output_path);
return new Status{OkStatus, ""};
} catch (...) {
return handle_exceptions();
}
}

Status* imageInferenceOpenCamera(CImageInference instance, int device) {
try {
auto image_inference = reinterpret_cast<ImageInference*>(instance);
image_inference->open_camera(device);
return new Status{OkStatus, ""};
} catch (...) {
return handle_exceptions();
}
}

Status* imageInferenceStopCamera(CImageInference instance) {
try {
auto image_inference = reinterpret_cast<ImageInference*>(instance);
image_inference->stop_camera();
return new Status{OkStatus, ""};
} catch (...) {
return handle_exceptions();
}
}

Status* load_font(const char* font_path) {
try {
ImageInference::load_font(font_path);
return new Status{OkStatus};
} catch (...) {
return handle_exceptions();
}
}

StatusOrLLMInference* llmInferenceOpen(const char* model_path, const char* device) {
try {
auto instance = new LLMInference(model_path, device);
Expand Down
18 changes: 0 additions & 18 deletions openvino_bindings/src/bindings.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,6 @@ typedef struct {
int value;
} StatusOrInt;

typedef struct {
enum StatusEnum status;
const char* message;
CImageInference value;
} StatusOrImageInference;

typedef struct {
enum StatusEnum status;
const char* message;
Expand Down Expand Up @@ -171,7 +165,6 @@ typedef void (*VLMInferenceCallbackFunction)(StatusOrString*);
EXPORT void freeStatus(Status *status);
EXPORT void freeStatusOrString(StatusOrString *status);
EXPORT void freeStatusOrInt(StatusOrInt *status);
EXPORT void freeStatusOrImageInference(StatusOrImageInference *status);
EXPORT void freeStatusOrLLMInference(StatusOrLLMInference *status);
EXPORT void freeStatusOrSpeechToText(StatusOrSpeechToText *status);
EXPORT void freeStatusOrModelResponse(StatusOrModelResponse *status);
Expand All @@ -180,17 +173,6 @@ EXPORT void freeStatusOrDevices(StatusOrDevices *status);
EXPORT void freeStatusOrEmbeddings(StatusOrEmbeddings *status);
EXPORT void freeStatusOrCameraDevices(StatusOrCameraDevices *status);

EXPORT StatusOrImageInference* imageInferenceOpen(const char* model_path, const char* task, const char* device, const char* label_definitions_json);
EXPORT StatusOrString* imageInferenceInfer(CImageInference instance, unsigned char* image_data, const size_t data_length, bool json, bool csv, bool overlay);
EXPORT StatusOrString* imageInferenceInferRoi(CImageInference instance, unsigned char* image_data, const size_t data_length, int x, int y, int width, int height, bool json, bool csv, bool overlay);
EXPORT Status* imageInferenceInferAsync(CImageInference instance, const char* id, unsigned char* image_data, const size_t data_length, bool json, bool csv, bool overlay);
EXPORT Status* imageInferenceSetListener(CImageInference instance, ImageInferenceCallbackFunction callback);
EXPORT Status* imageInferenceOpenCamera(CImageInference instance, int device);
EXPORT Status* imageInferenceStopCamera(CImageInference instance);
EXPORT Status* imageInferenceClose(CImageInference instance);
EXPORT Status* imageInferenceSerializeModel(const char* model_path, const char* output_path);
EXPORT Status* load_font(const char* font_path);

EXPORT StatusOrLLMInference* llmInferenceOpen(const char* model_path, const char* device);
EXPORT Status* llmInferenceSetListener(CLLMInference instance, LLMInferenceCallbackFunction callback);
EXPORT StatusOrModelResponse* llmInferencePrompt(CLLMInference instance, const char* message, bool apply_template, float temperature, float top_p);
Expand Down
38 changes: 0 additions & 38 deletions openvino_bindings/src/image/BUILD
Original file line number Diff line number Diff line change
@@ -1,27 +1,3 @@
cc_library(
name = "image_inference",
hdrs = [
"image_inference.h",
],
srcs = [
"image_inference.cc",
],
deps = [
"//third_party:blend2d",
"//third_party:opencv",
"//third_party:model_api",
"@nlohmann_json//:json",
"//src/utils:status",
"//src/utils:errors",
":data_structures",
":post_processing",
":utils",
":serialization",
":overlay",
],
visibility = ["//visibility:public"],
)

cc_library(
name = "utils",
hdrs = [
Expand Down Expand Up @@ -70,20 +46,6 @@ cc_library(
visibility = ["//visibility:public"],
)

cc_library(
name = "post_processing",
hdrs = [
"post_processing.h",
],
deps = [
"//third_party:openvino",
"//third_party:opencv",
"//third_party:model_api",
":contourer",
":data_structures",
],
)

cc_library(
name = "serialization",
hdrs = [
Expand Down
Loading
Loading