diff --git a/src/monolithic/gst/elements/gvawatermark/renderer/renderer.cpp b/src/monolithic/gst/elements/gvawatermark/renderer/renderer.cpp index 01103b92f..e0886e233 100644 --- a/src/monolithic/gst/elements/gvawatermark/renderer/renderer.cpp +++ b/src/monolithic/gst/elements/gvawatermark/renderer/renderer.cpp @@ -62,6 +62,10 @@ void Renderer::convert_prims_color(std::vector &prims) { render::Circle circle = std::get(p); circle.color = _color_converter->convert(circle.color); p = circle; + } else if (std::holds_alternative(p)) { + render::InstanceSegmantationMask mask = std::get(p); + mask.color = _color_converter->convert(mask.color); + p = mask; } } } diff --git a/src/monolithic/gst/inference_elements/base/inference_impl.cpp b/src/monolithic/gst/inference_elements/base/inference_impl.cpp index 0a66e5780..e18bf3b78 100644 --- a/src/monolithic/gst/inference_elements/base/inference_impl.cpp +++ b/src/monolithic/gst/inference_elements/base/inference_impl.cpp @@ -478,18 +478,8 @@ void UpdateConfigWithLayerInfo(const std::vector & config[KEY_BASE][KEY_PIXEL_VALUE_MEAN] = three_doubles_to_str(mean); } - int reverse_channels = 0; // TODO: verify that channel reversal works correctly with mean and std! - if (gst_structure_get_int(it->params, "reverse_input_channels", &reverse_channels)) { - config[KEY_BASE][KEY_MODEL_FORMAT] = reverse_channels ? "RGB" : "BGR"; - } - const auto color_space = gst_structure_get_string(it->params, "color_space"); if (color_space) { - // Ensure that reverse_input_channels and color_space are not both defined - if (reverse_channels != 0 && color_space != nullptr) { - throw std::invalid_argument( - "ERROR: Cannot specify both 'reverse_input_channels' and 'color_space' parameters simultaneously"); - } config[KEY_BASE][KEY_MODEL_FORMAT] = color_space; } diff --git a/src/monolithic/inference_backend/image_inference/openvino/model_api_converters.cpp b/src/monolithic/inference_backend/image_inference/openvino/model_api_converters.cpp index 9cb18b8c8..3d0ca9ff9 100644 --- a/src/monolithic/inference_backend/image_inference/openvino/model_api_converters.cpp +++ b/src/monolithic/inference_backend/image_inference/openvino/model_api_converters.cpp @@ -600,19 +600,20 @@ std::map get_model_info_preproc(const std::shared_p g_value_unset(&gvalue); } if (element.first == "reverse_input_channels") { - GValue gvalue = G_VALUE_INIT; - g_value_init(&gvalue, G_TYPE_INT); - g_value_set_int(&gvalue, gint(false)); - std::transform(element.second.as().begin(), element.second.as().end(), element.second.as().begin(), ::tolower); - if (element.second.as() == "yes" || element.second.as() == "true") - g_value_set_int(&gvalue, gint(true)); - - gst_structure_set_value(s, "reverse_input_channels", &gvalue); - GST_INFO("[get_model_info_preproc] reverse_input_channels: %s", element.second.as().c_str()); - g_value_unset(&gvalue); + GValue color_value = G_VALUE_INIT; + g_value_init(&color_value, G_TYPE_STRING); + if (element.second.as() == "yes" || element.second.as() == "true") { + g_value_set_string(&color_value, "RGB"); + } else { + g_value_set_string(&color_value, "BGR"); + } + gst_structure_set_value(s, "color_space", &color_value); + GST_INFO("[get_model_info_preproc] (reverse_input_channels) color_space: %s", + g_value_get_string(&color_value)); + g_value_unset(&color_value); } if (element.first == "reshape") { std::vector size_values = element.second.as>(); @@ -780,4 +781,4 @@ std::map get_model_info_postproc(const std::shared_ return res; } -} // namespace ModelApiConverters \ No newline at end of file +} // namespace ModelApiConverters diff --git a/tests/unit_tests/tests_gstgva/test_pipeline_detection_yolo_11s.py b/tests/unit_tests/tests_gstgva/test_pipeline_detection_yolo_11s.py index 9963bd418..e2e9512fb 100644 --- a/tests/unit_tests/tests_gstgva/test_pipeline_detection_yolo_11s.py +++ b/tests/unit_tests/tests_gstgva/test_pipeline_detection_yolo_11s.py @@ -1,5 +1,5 @@ # ============================================================================== -# Copyright (C) 2025 Intel Corporation +# Copyright (C) 2025-2026 Intel Corporation # # SPDX-License-Identifier: MIT # ============================================================================== @@ -16,7 +16,7 @@ def make_pipeline_str(model_name): PIPELINE_STR = """appsrc name=mysrc \ ! decodebin ! videoconvert ! video/x-raw,format=BGRA \ -! gvadetect pre-process-backend=ie model={} \ +! gvadetect pre-process-backend=opencv model={} \ ! gvawatermark \ ! appsink name=mysink emit-signals=true sync=false """.format(get_model_path(model_name)) return PIPELINE_STR @@ -25,10 +25,10 @@ def make_pipeline_str(model_name): GOLD_TRUE = [ BBox(0.16600936461207816, 0.38890058405662487, 0.4078545726244531, 0.9406926827498019, [], class_id=16), - BBox(0.6055093107665357, 0.13401658383886872, - 0.8919420810698284, 0.2956839696427691, [], class_id=7), - BBox(0.1501398097734139, 0.21889342922873212, - 0.7452847887655665, 0.7433104570456628, [], class_id=1) + BBox(0.6063115210281538, 0.12930250608875107, + 0.8995705738599682, 0.29633996381868855, [], class_id=2), + BBox(0.16694023857921714, 0.2259997108479297, + 0.7387291779924805, 0.7268751913340168, [], class_id=1) ] GOLD_TRUE_SEG = [