概述
文章目录
- 简介:
- 1. 安装openVino推理引擎
- 2. 下载OpenVINO-YOLOV4项目代码
- 3. 下载yolov4.weights
- 4. 转换
- 4.1 yolov4.weights文件放到OpenVino-YOLOV4项目下
- 4.2 yolov4.weights文件格式转为.pb格式
- 4.3 .pb格式文件转换为供OpenVINO使用的.bin .xml文件
- 5. 在OpenVino的推理引擎中的使用
- 6. 测试
- 原模型的测试
- openvino转换后的模型实际测试
- 总结:
- 7. yolov4-tiny在各平台的运行速度对比
简介:
openVino 中文官网
github项目: OpenVINO-YOLOV4
github项目:Yolo v4, v3 and v2 for Windows and Linux
1. 安装openVino推理引擎
下载地址:openVino 中文官网
https://docs.openvinotoolkit.org/cn/latest/index.html
注意:github项目:OpenVINO-YOLOV4这个项目要转换YOLO V4版本的权重文件的话,只能用openVino2021.3或者2021.4版本的,低于这个版本的openvino是转换不了的!!!(今天2021年4月9日,现在2021.3 2021.4版本都有)
后面直接一路安装即可。
2. 下载OpenVINO-YOLOV4项目代码
下载地址:github项目:OpenVINO-YOLOV4
3. 下载yolov4.weights
下载地址
4. 转换
4.1 yolov4.weights文件放到OpenVino-YOLOV4项目下
4.2 yolov4.weights文件格式转为.pb格式
打开命令行,进入到OpenVino-YOLOV4项目目录下,输入以下命令装换yolov4.weights为.pb文件
python convert_weights_pb.py --class_names cfg/coco.names --weights_file yolov4.weights --data_format NHWC
4.3 .pb格式文件转换为供OpenVINO使用的.bin .xml文件
- 启动OpenVino 临时环境
在命令行进入openvino_2021binsetupvars.bat所在目录,输入setupvars.bat启动OpenVino临时环境。例如,我的安装路径是:G:openVINOinstallopenvino_2021bin,则按下面操作
- 把.pb格式的文件转为.bin和.xml文件
回到OpenVino-YOLOV4路径下(因为刚刚转换的frozen_darknet_yolov4_model.pb文件在此目录下),输入
python "G:openVINOinstallopenvino_2021.3.394deployment_toolsmodel_optimizermo.py" --input_model frozen_darknet_yolov4_model.pb --transformations_config yolov4.json --batch 1 --reverse_input_channels
"G:openVINOinstallopenvino_2021.3.394deployment_toolsmodel_optimizermo.py"是mo.py文件的路径(如果你的OpenVino安装在其他盘或者是其他版本的,把前面的G:openVINOinstallopenvino_2021.3.394换为对应的就可以了)
转换成功后将会有两个文件生成如下
- 注:我这里使用的环境是tensorflow1.15.5和numpy1.18.5,numpy的版本是1.20的话会报错
把numpy降低为1.19或1.18就不会有这个问题了
5. 在OpenVino的推理引擎中的使用
在OpenVino-YOLOV4项目的pythondemo2021.3目录下有个object_detection_demo_yolov3_async.py文件,这是一个demo文件可以调用刚刚转换的.bin 和 .xml文件给OpenVINO推理引擎用。
命令行下输入
python pythondemo2021.3object_detection_demo_yolov3_async.py -i G:\a.avi -m frozen_darknet_yolov4_model.xml -d CPU
- -i input 输入的图片视频路径(我自己测试时只能检测视频)
- -d device ,可选CPU 或GPU
- -m model ,模型文件.xml
6. 测试
测试视频
链接: https://pan.baidu.com/s/1i7Edyn2VeLI3FADidWC0AA 提取码: n2he
测试条件:
- Windows 10
- cpu i5-10400 @2.9GHz
- cuda 10.1 + nvidia Quadro M4000
- Intel Graphics 630
原模型的测试
-
原模型在cpu上的运行测试,fps 在0.3左右,cpu已经100%跑满
-
原模型yolov4.weights在Quadro M4000 + cuda10.1上的性能,fps在2.5左右,但是GPU的利用率才有20%左右
openvino转换后的模型实际测试
-
在CPU上运行,fps 3.2左右
-
在intel GPU上运行 fps3.0左右
总结:
从上面的结果看使用openvino加速的效果还是非常明显的,原模型在cpu上运行速度才有0.25fps,但是经过openvino优化后在cpu上运行速度可以到3.0fps左右的速度,快乐近12倍。经过优化后在intel CPU上运行的速度和在intel GPU上运行的速度基本没有差别,可能是GPU本身性能不怎么样,也可能是intel的GPU对深度学习类的计算加速效果没有那么好。
7. yolov4-tiny在各平台的运行速度对比
用YOLOv4-tiny训练的两个模型,一个输入尺寸是11201120的,另一个是256256的,分别测试它们在darknet+CPU, darknet+GPU和openVINO+CPU的速度对比
- CPU:Intel i5 10400 @2.9GHZ
- GPU:NVIDIA Quadro M4000 + CUDA10.1 + cudnn
- openVINO 2021.3版本
模型输入尺寸 | darknet + CPU | darknet + GPU | openVINO + CPU |
---|---|---|---|
1120*1120 | 872ms | 137ms | 260ms |
256*256 | 42ms | 15ms | 16ms |
darknet在用CPU的时候计算资源100%占用,用openVINO推理时CPU占用30%左右,openVINO的加速效果还是很显著的。另外加速的效果和输入的尺寸,模型的大小都有关系,定性的说openVINO对于大的模型、大的输入加速效果较明显。例如这里小尺寸输入时加速42/16=2.6 ,加速2.6倍, 大尺寸的 872/260=3.35,加速3.3倍。在上面第6点测试里面,对于完整的YOLOv4加速12倍左右,YOLOV4的参数量是YOLOV4-tiny的10倍以上。综合就是计算总量越大,加速的倍数越高。
最后
以上就是美丽月饼为你收集整理的openVino 部署darkNet YOLOv4模型简介:1. 安装openVino推理引擎2. 下载OpenVINO-YOLOV4项目代码3. 下载yolov4.weights4. 转换5. 在OpenVino的推理引擎中的使用6. 测试总结:7. yolov4-tiny在各平台的运行速度对比的全部内容,希望文章能够帮你解决openVino 部署darkNet YOLOv4模型简介:1. 安装openVino推理引擎2. 下载OpenVINO-YOLOV4项目代码3. 下载yolov4.weights4. 转换5. 在OpenVino的推理引擎中的使用6. 测试总结:7. yolov4-tiny在各平台的运行速度对比所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复