Spaces:
No application file
No application file
int main(){ | |
try{ | |
ov::Core core; | |
ov::CompiledModel mCompiledModel = core.compile_model("DFINE.onnx","AUTO"); | |
cv::Mat imageMat = cv::imread("test.png"); | |
cv::cvtColor(imageMat, imageMat, cv::COLOR_BGR2RGB); | |
cv::Mat inferMat; | |
cv::dnn::blobFromImage(imageMat,inferMat,1.0 / 255.0); | |
std::vector<float> im_shape = { (float)1/imageMat.rows, (float)1/imageMat.cols }; | |
auto ireq = mCompiledModel.create_infer_request(); | |
auto inputports = mCompiledModel.inputs(); | |
ov::Tensor input_tensor1(inputports[0].get_element_type(), { 1,3,640,640 }, inferMat.ptr()); | |
ireq.set_input_tensor(0,input_tensor1); | |
ov::Tensor input_tensor2(inputports[1].get_element_type(), { 1,2 }); | |
int64* input_tensor_data = input_tensor2.data<int64>(); | |
for (int i = 0; i < 2; i++) { | |
input_tensor_data[i] = 640; | |
} | |
ireq.set_input_tensor(1,input_tensor2); | |
ireq.infer(); | |
ov::Tensor labels_tensor = ireq.get_output_tensor(0); | |
ov::Tensor bboxs_tensor = ireq.get_output_tensor(1); | |
ov::Tensor scores_tensor = ireq.get_output_tensor(2); | |
float *bo = bboxs_tensor.data<float>(); | |
//example | |
float cx = bo[4] ; | |
float cy = bo[5] ; | |
float bx = bo[6] ; | |
float by = bo[7] ; | |
cv::rectangle(imageMat, cv::Rect(bo[0],bo[1], bo[2]-bo[0], bo[3]-bo[1]), cv::Scalar(0, 255, 0), 2); | |
cv::rectangle(imageMat, cv::Rect(cx,cy, bx-cx, by-cy), cv::Scalar(0, 255, 0), 2); | |
cv::imwrite("aimage.png",imageMat); | |
} | |
catch(const ov::Exception& e){ | |
std::cerr << e.what() << '\n'; | |
} | |
} | |