最新OpenVINO实现yolov5 6.1版本C++

7 篇文章 0 订阅
4 篇文章 0 订阅

yolov5.6出来那么久了竟没有OpenVINO的C++实现,又因为树莓派不支持OpenVINO,所以入手NCS2,NCS2又仅支持FP16....

中间踩了不少坑, 在此记录一下最简单的复现方式,代码Windows通用,直接使用onnx模型文件即可。

生成IR文件

1.openvino部署(Windows跳过)

需要注意的是,之前opencv dnn实现yolov5.6转成了onnx模型文件,OpenVINO是可以直接读取onnx,但由于树莓派使用NCS2仅支持FP16,因此我们需要在Windows将yolov5.6的深度学习模型转换为支持FP16的IR文件。如果是在windows下实现,无需转成IR文件。

(树莓派的OpenVINO工具套件不包含模型优化器Model Optimizer,IR文件包含一个*.xml文件用来描述网络结构,还包含一个*.bin文件用来存储网络的权重和偏置量)

树莓派安装openvino:树莓派安装部署OpenVINO

yolov5.6中export.py可以直接转成openvino的IR模型文件,但没有FP16的参数

需要将export.py中165行:

cmd = f"mo --input_model {file.with_suffix('.onnx')} --output_dir {f}"

改为:

 cmd = f"mo --input_model {file.with_suffix('.onnx')} --output_dir {f}  --scale=255 --data_type=FP16"

 安装openvino-dev,因为树莓派中安装的是2021.4.689版本,所以这里openvino选择2021.4.2版本。(版本不同存在模型文件读取失败的问题)

2.模型转换

export.py中修改参数

imgsz这里是自己训练的数据,大小为320

 --include加入openvino:

 运行export.py,生成openvino模型文件

代码

代码中有模型文件可以直接使用,如果自己的数据的话将模型文件和classes.txt换成自己的就可以了。

GitHub - snail0614/yolov5.6_openvino_cpp

运行结果:

用的yolov5n模型,输入320X320,推理用时45ms左右,速度可以,比单纯树莓派强多了。

yolov5.6.1训练自己的数据(超简单)

opencv dnn模块实现Yolov5_6.1

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值