主要分為如下幾步:
1. 創(chuàng)建Openvino的運(yùn)行時(shí)核心類
2. 為特定設(shè)備編譯AI模型
3. 創(chuàng)建推斷請(qǐng)求
4. 設(shè)置輸入
5. 開始推斷
6. 處理推斷結(jié)果
7. 構(gòu)建應(yīng)用和鏈接openvino運(yùn)行時(shí)庫
參考代碼結(jié)構(gòu):
#include <openvino/openvino.hpp>
ov::Core core;
ov::CompiledModel compiled_model = core.compile_model("model.onnx", "AUTO");
ov::InferRequest infer_request = compiled_model.create_infer_request();
// Get input port for model with one input
auto input_port = compiled_model.input();
// Create tensor from external memory
ov::Tensor input_tensor(input_port.get_element_type(), input_port.get_shape(), memory_ptr);
// Set input tensor for model with one input
infer_request.set_input_tensor(input_tensor);
infer_request.start_async();
infer_request.wait();
// Get output tensor by tensor name
auto output = infer_request.get_tensor("tensor_name");
const float *output_buffer = output.data<const float>();
// output_buffer[] - accessing output tensor data