Skip to content

Commit 958770b

Browse files
authored
Hide SharedMatAllocator (#131)
1 parent 1858697 commit 958770b

File tree

4 files changed

+13
-36
lines changed

4 files changed

+13
-36
lines changed

model_api/cpp/models/src/detection_model_ssd.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,12 @@ std::string ModelSSD::ModelType = "ssd";
8989

9090
std::shared_ptr<InternalModelData> ModelSSD::preprocess(const InputData& inputData, InferenceInput& input) {
9191
if (inputNames.size() > 1) {
92-
cv::Mat info(cv::Size(1, 3), CV_32SC1);
93-
info.at<int>(0, 0) = netInputHeight;
94-
info.at<int>(0, 1) = netInputWidth;
95-
info.at<int>(0, 2) = 1;
96-
ov::Tensor infoInput = ov::Tensor(ov::element::i32, ov::Shape({1, 3}), SharedMatAllocator{info});
97-
98-
input.emplace(inputNames[1], infoInput);
92+
ov::Tensor info{ov::element::i32, ov::Shape({1, 3})};
93+
int32_t* data = info.data<int32_t>();
94+
data[0] = netInputHeight;
95+
data[1] = netInputWidth;
96+
data[3] = 1;
97+
input.emplace(inputNames[1], std::move(info));
9998
}
10099
return DetectionModel::preprocess(inputData, input);
101100
}

model_api/cpp/models/src/detection_model_yolov3_onnx.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ std::shared_ptr<InternalModelData> ModelYoloV3ONNX::preprocess(const InputData&
118118
int32_t* data = info.data<int32_t>();
119119
data[0] = origImg.rows;
120120
data[1] = origImg.cols;
121-
input.emplace(inputNames[1], info);
121+
input.emplace(inputNames[1], std::move(info));
122122
return ImageModel::preprocess(inputData, input);
123123
}
124124

model_api/cpp/utils/include/utils/ocv_common.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
#include <opencv2/imgproc.hpp>
1414
#include <openvino/openvino.hpp>
1515

16-
#include "utils/shared_tensor_allocator.hpp"
17-
1816
static inline ov::Tensor wrapMat2Tensor(const cv::Mat& mat) {
1917
auto matType = mat.type() & CV_MAT_DEPTH_MASK;
2018
if (matType != CV_8U && matType != CV_32F) {
@@ -35,6 +33,12 @@ static inline ov::Tensor wrapMat2Tensor(const cv::Mat& mat) {
3533
throw std::runtime_error("Doesn't support conversion from not dense cv::Mat");
3634
}
3735
auto precision = isMatFloat ? ov::element::f32 : ov::element::u8;
36+
struct SharedMatAllocator {
37+
const cv::Mat mat;
38+
void* allocate(size_t bytes, size_t) {return bytes <= mat.rows * mat.step[0] ? mat.data : nullptr;}
39+
void deallocate(void*, size_t, size_t) {}
40+
bool is_equal(const SharedMatAllocator& other) const noexcept {return this == &other;}
41+
};
3842
return ov::Tensor(precision, ov::Shape{ 1, height, width, channels }, SharedMatAllocator{mat});
3943
}
4044

model_api/cpp/utils/include/utils/shared_tensor_allocator.hpp

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)