首先介绍下软硬件版本配置
OpenVINO 2020.4版本
CPU :Intel® Core™ i7-10750H CPU @ 2.60GHz
GPU:Intel® UHD Graphics 驱动:27.20.100.8783
模型:Darknet YOLOv3 YOLOv4-tiny 和 PyTorch YOLOv5 v1.0
模型转换流程:Darknet→TensorFlow→OpenVINO
模型转换流程:PyTorch→ONNX→OpenVINO
一.简要流程
1.安装 OpenVINO(网上教程很多就不写了,注意要安装默认路径)
2.模型转换(目前OpenVINO只支持opset 10)
-
(1)首先需要准备好自己的模型, .weights转为.pb .pt转为.onnx备用。
-
(2)OpenVINO的模型转换(以yolov5s为例)
模型转换脚本在本地目录下:
C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer
转换命令:
python mo.py --input_model yolov5s.onnx --output_dir ./output --input_shape [1,3,640,640] --data_type FP16
成功后,可以看到模型输出路径下生成了 bin 和 xml 文件:
3.推理测试
初始化环境
C:\"Program Files (x86)"\IntelSWTools\openvino\bin\setupvars.bat
官方提供了一些demo,运行推理脚本,选择对应的demo,也有python api;
C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\inference_engine\demos
当然这里本人使用yolov5 推理失败了,主要是后处理的问题,还需要研究下;大体流程就是这样的。
二. YOLOv3
OpenVINO CPU推理速度:
硬件:Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
模型:YOLOv3 416*416
FPS:2.5
耗时:360ms左右
附一张OpenVINO推理时的图:
表示还没有OpenCV DNN在CPU上的速度快,粗略跑了下大概300ms左右。
OpenVINO 核显推理速度:
硬件:Intel(R) UHD Graphics
模型:YOLOv3 416*416
FPS:3.4
耗时:295ms左右
三. YOLOv4-tiny
OpenVINO CPU推理速度:
硬件:Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
模型:YOLOv4-tiny 416*416
FPS:19
耗时:52ms左右
OpenVINO 核显推理速度:
硬件:Intel(R) UHD Graphics
模型:YOLOv4-tiny 416*416
FPS:20
耗时:49.5ms左右
四.结语
OpenVINO的加速在电脑CPU上效果并不明显,可能Inter的VPU上加速效果还行;这里yolov5 v1.0 翻车了,主要啥v5版本较多,激活函数也不同;如有需要可以参照以下项目 v5 v2.0版本转OpenVINO测试v5 v3.0的话需要查看官网修改源码的方式转换模型。
yolov5 v2.0 OpenVINO
https://github.com/anhnktp/yolov5_openvino