openVino 部署 darknet YOLOv4模型

简介:
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_2021\bin\setupvars.bat所在目录,输入setupvars.bat启动OpenVino临时环境。例如,我的安装路径是:G:\openVINO\install\openvino_2021\bin,则按下面操作


    安装路径

    启动临时环境
  • 把.pb格式的文件转为.bin和.xml文件
    回到OpenVino-YOLOV4路径下(因为刚刚转换的frozen_darknet_yolov4_model.pb文件在此目录下),输入
python "G:\openVINO\install\openvino_2021.3.394\deployment_tools\model_optimizer\mo.py" --input_model frozen_darknet_yolov4_model.pb --transformations_config yolov4.json --batch 1 --reverse_input_channels

"G:\openVINO\install\openvino_2021.3.394\deployment_tools\model_optimizer\mo.py"是mo.py文件的路径(如果你的OpenVino安装在其他盘或者是其他版本的,把前面的G:\openVINO\install\openvino_2021.3.394换为对应的就可以了)


转换

转换成功后将会有两个文件生成如下


在这里插入图片描述
  • 注:我这里使用的环境是tensorflow1.15.5和numpy1.18.5,numpy的版本是1.20的话会报错


    在这里插入图片描述

    把numpy降低为1.19或1.18就不会有这个问题了


    在这里插入图片描述

5. 在OpenVino的推理引擎中的使用

在OpenVino-YOLOV4项目的pythondemo\2021.3目录下有个object_detection_demo_yolov3_async.py文件,这是一个demo文件可以调用刚刚转换的.bin 和 .xml文件给OpenVINO推理引擎用。


demo文件

命令行下输入

python pythondemo\2021.3\object_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对深度学习类的计算加速效果没有那么好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 夜莺2517阅读 127,828评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 11,866评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,753评论 28 53
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 7,535评论 2 9

友情链接更多精彩内容