PP-MattingV2-onnxrun-cpp-py icon indicating copy to clipboard operation
PP-MattingV2-onnxrun-cpp-py copied to clipboard

后续模型可以考虑增加openvino部署吗 ,只有cpu的话 会比onnxruntime 以及cv快

Open ZJDATY opened this issue 2 years ago • 2 comments

后续模型可以考虑增加openvino部署吗 ,只有cpu的话 会比onnxruntime 以及cv快

ZJDATY avatar Jan 18 '23 17:01 ZJDATY

后续模型可以考虑增加openvino部署吗 ,只有cpu的话 会比onnxruntime 以及cv快

C++的openvino部署,你可以自己编写呀。openvino很简单的,比tensorrt容器上手多了。

编写C++的OpenVINO程序的主要步骤:

(1).通过model = core.compile_model(xx.onnx)编译模型 (2).通过iq = model.create_infer_request()创建推理请求 (3).input = iq.get_input_tensor(0);获取输入的tensor (4).output = iq.get_output_tensor(0);获取输出的tensor (5).input.set_shape({input_batch, input_channel, input_height, input_width});配置输入大小,因为是动态batch,需要先设置大小,此时会分配空间 (6).input_data_host = input.data();获取输入指针,必须set shape后才能获取数据指针,否则会存储空间没分配而异常 把图像预处理并储存到 input_data_host (7).iq.infer() 执行推理步骤 (8).output_data_host = output.data();通过output拿到推理后的输出 对output data进行解码得到最后的输出框

hpc203 avatar Sep 27 '23 10:09 hpc203

后续模型可以考虑增加openvino部署吗 ,只有cpu的话 会比onnxruntime 以及cv快

C++的openvino部署,你可以自己编写呀。openvino很简单的,比tensorrt容器上手多了。

编写C++的OpenVINO程序的主要步骤:

(1).通过model = core.compile_model(xx.onnx)编译模型 (2).通过iq = model.create_infer_request()创建推理请求 (3).input = iq.get_input_tensor(0);获取输入的tensor (4).output = iq.get_output_tensor(0);获取输出的tensor (5).input.set_shape({input_batch, input_channel, input_height, input_width});配置输入大小,因为是动态batch,需要先设置大小,此时会分配空间 (6).input_data_host = input.data();获取输入指针,必须set shape后才能获取数据指针,否则会存储空间没分配而异常 把图像预处理并储存到 input_data_host (7).iq.infer() 执行推理步骤 (8).output_data_host = output.data();通过output拿到推理后的输出 对output data进行解码得到最后的输出框

感谢回复,我这个是一月份的问题,那时候,我还是个小白,虽然现在也没多少长进,但是如果有onnx的c++推理程序,已经可以把改写成openvino了。但是如果一些项目如果只有py的实现,我改写就比较困难了,python里的预处理,后处理都要用到一些python库,我对此还不够了解。

ZJDATY avatar Sep 27 '23 10:09 ZJDATY