本文主要是介绍OpenVINO+Yolov5+Windows10的CPU部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
主要是记录一些参考网址,顺便记录一些废话。。。
在windows上,有时部署还是挺痛苦的,相对部署的人比较少,参考资料也不多,很多模型要自己去摸索。OpenVINO的话主要看官方的模型。
为了在Windows上部署模型,通常我们可以这样做:
(1)可以选择一些比较容易或别人已经部署过的模型。
(2)在没有GPU的情况下,一般用NCNN比较容易成功。本人多次在windows上编译过这个短小精悍的NCNN。
(3)如果用GPU话,可能还是TensorRT更合适。另外libTorch也是个不错的选择。
(4)不用GPU的情况下,windows上OpenVINO和OnnxRuntime可能相对较好。其实我也不是专业部署人员,所以也不敢肯定,只能凭自己的经验说,Intel和Microsoft对windows的平台支持还是要稍微好一点,毕竟自家的平台(虽然Microsoft这些年有被别人牵着鼻子走的感觉),纯CPU的话,我貌似还没有找到比OpenVINO更快的部署工具。
关于OpenVINO的入门介绍可以参考我的前两篇文章:
玩转OpenVINO之一:cpp samples和demo的编译_tanmx219的博客-CSDN博客_openvino 编译demo
玩转OpenVINO之二:试运行mask_rcnn_demo_tanmx219的博客-CSDN博客
好了,言归正传,下面我们来试试在win10上用OpenVINO部署Yolov5,我这里模型很小,用CPU直接部署。
我这里OpenVINO_2021-4.2是自己用VS2017编译的,其主目录地址是:
D:\OpenCV455\openvino
同时我还安装了OpenVINO-toolKit_2021-4.2LTS,
https://registrationcenter-download.intel.com/akdlm/irc_nas/18320/w_openvino_toolkit_p_2021.4.752.exehttps://registrationcenter-download.intel.com/akdlm/irc_nas/18320/w_openvino_toolkit_p_2021.4.752.exe其主目录地址是
C:\Program1\Intel\openvino_2021.4.752
C:\Program1\Intel\openvino_2021.4.752\deployment_tools,
我这里用的是自己用VS2017编译的版本。
Yolov5经过不断更新,已经做得比较人性化了。现在可以直接从Yolov5中用export_openvino直接导出,其导出函数定义为
def export_openvino(model, im, file, prefix=colorstr('OpenVINO:')):# YOLOv5 OpenVINO exporttry:check_requirements(('openvino-dev',)) # requires openvino-dev: https://pypi.org/project/openvino-dev/import openvino.inference_engine as ieLOGGER.info(f'\n{prefix} starting export with openvino {ie.__version__}...')f = str(file).replace('.pt', '_openvino_model' + os.sep)cmd = f"mo --input_model {file.with_suffix('.onnx')} --output_dir {f}"subprocess.check_output(cmd, shell=True)LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)')except Exception as e:LOGGER.info(f'\n{prefix} export failure: {e}')
可见,其使用的代码就是
“mo --input_model {file.with_suffix('.onnx')} --output_dir {f}”
这个命令相当于我在D:\OpenCV455\openvino目录下使用的命令:
"python ./mo_onnx.py --input_model .onnx文件路径 --output_dir 期望模型输出的路径"
注意要保持版本一致,任何一种方式都是可以的。如果不确定,比如我这里,那就老老实实使用“D:\OpenCV455\openvino”下面的转换,完成后再用自己编译的“D:\OpenCV455\openvino”下面的库部署。
部署的源码可参考后面给出的例子,跑的时候会有些问题,我因为自己修改了Yolov5模型,因此部署也适当做了些变更。经测试CPU模式下,每秒十帧以上无压力,OpenVINO对自家平台的支持还是相当不错的。
参考源码:
https://github.com/fanweiya/openvino_yolov5_cpphttps://github.com/fanweiya/openvino_yolov5_cpphttps://github.com/fb029ed/yolov5_cpp_openvinohttps://github.com/fb029ed/yolov5_cpp_openvino
这篇关于OpenVINO+Yolov5+Windows10的CPU部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!