Skip to content

Commit 4b03bc3

Browse files
Background subtraction
1 parent c853d57 commit 4b03bc3

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

demos/background_subtraction_demo/cpp_gapi/include/custom_kernels.hpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ class NNBGReplacer {
4949
}
5050

5151
protected:
52-
IE::CNNNetwork m_cnn_network;
52+
std::shared_ptr<ov::Model> m_model;
5353
std::string m_tag;
54-
IE::InputsDataMap m_inputs;
55-
IE::OutputsDataMap m_outputs;
54+
std::vector<ov::Output<ov::Node>> m_inputs;
55+
std::vector<ov::Output<ov::Node>> m_outputs;
5656
};
5757

5858
class MaskRCNNBGReplacer : public NNBGReplacer {

demos/background_subtraction_demo/cpp_gapi/src/custom_kernels.cpp

+20-11
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
#include <opencv2/gapi/own/assert.hpp>
2323
#include <opencv2/imgproc.hpp>
2424

25+
#include "openvino/openvino.hpp"
26+
2527
// clang-format off
2628
GAPI_OCV_KERNEL(OCVTensorToImg, custom::GTensorToImg) {
2729
static void run(const cv::Mat &in,
@@ -137,26 +139,26 @@ GAPI_OCV_KERNEL(OCVCalculateMaskRCNNBGMask, custom::GCalculateMaskRCNNBGMask) {
137139
// clang-format on
138140

139141
custom::NNBGReplacer::NNBGReplacer(const std::string& model_path) {
140-
IE::Core core;
141-
m_cnn_network = core.ReadNetwork(model_path);
142-
m_tag = m_cnn_network.getName();
143-
m_inputs = m_cnn_network.getInputsInfo();
144-
m_outputs = m_cnn_network.getOutputsInfo();
142+
ov::Core core;
143+
m_model = core.read_model(model_path);
144+
m_tag = m_model->get_name();
145+
m_inputs = m_model->inputs();
146+
m_outputs = m_model->outputs();
145147
}
146148

147149
custom::MaskRCNNBGReplacer::MaskRCNNBGReplacer(const std::string& model_path) : custom::NNBGReplacer(model_path) {
148150
for (const auto& p : m_outputs) {
149-
const auto& layer_name = p.first;
151+
const auto& layer_name = p.get_node()->get_name();
150152
if (layer_name.rfind("TopK") != std::string::npos) {
151153
continue;
152154
}
153155

154156
if (m_inputs.size() != 1) {
155157
throw std::logic_error("Supported only single input MaskRCNN models!");
156158
}
157-
m_input_name = m_inputs.begin()->first;
159+
m_input_name = m_inputs.begin()->get_node()->get_name();
158160

159-
const auto dims_size = p.second->getTensorDesc().getDims().size();
161+
const auto dims_size = p.get_tensor().get_partial_shape().size();
160162
if (dims_size == 1) {
161163
m_labels_name = layer_name;
162164
} else if (dims_size == 2) {
@@ -177,7 +179,14 @@ cv::GMat custom::MaskRCNNBGReplacer::replace(cv::GFrame in, cv::GMat bgr, const
177179
auto boxes = outputs.at(m_boxes_name);
178180
auto masks = outputs.at(m_masks_name);
179181

180-
const auto& dims = m_inputs.at(m_input_name)->getTensorDesc().getDims();
182+
std::map<std::string, ov::Output<ov::Node>> inputs_map;
183+
for (auto in : m_inputs) {
184+
std::cout << "in.get_node()->get_name() = " << in.get_node()->get_name() << "\n";
185+
inputs_map[in.get_node()->get_name()] = in;
186+
}
187+
std::cout << "m_input_name = " << m_input_name << "\n";
188+
189+
const auto& dims = inputs_map.at(m_input_name).get_tensor().get_partial_shape().get_max_shape();
181190
GAPI_Assert(dims.size() == 4u);
182191
auto mask = custom::GCalculateMaskRCNNBGMask::on(in_size, cv::Size(dims[3], dims[2]), labels, boxes, masks);
183192
auto mask3ch = cv::gapi::medianBlur(cv::gapi::merge3(mask, mask, mask), 11);
@@ -188,12 +197,12 @@ custom::BGMattingReplacer::BGMattingReplacer(const std::string& model_path) : NN
188197
if (m_inputs.size() != 1) {
189198
throw std::logic_error("Supported only single input background matting models!");
190199
}
191-
m_input_name = m_inputs.begin()->first;
200+
m_input_name = m_inputs.begin()->get_node()->get_name();
192201

193202
if (m_outputs.size() != 1) {
194203
throw std::logic_error("Supported only single output background matting models!");
195204
}
196-
m_output_name = m_outputs.begin()->first;
205+
m_output_name = m_outputs.begin()->get_node()->get_name();
197206
}
198207

199208
cv::GMat custom::BGMattingReplacer::replace(cv::GFrame in, cv::GMat bgr, const cv::Size& in_size, cv::GMat background) {

0 commit comments

Comments
 (0)