yolov5通过ncnn在安卓平台部署

ncnn与yolov5的关系

在这里插入图片描述

ncnn安卓环境部署

(1)下载ncnn-yolov5-android源码
下载
(2)下载ncnn-android-vulkan包
下载
在这里插入图片描述
选择ncnn-20210525-android-vulkan.zip下载
(3)将下载好的ncnn-20210525-android-vulkan.zip解压后放在放在ncnn/cpp下:
在这里插入图片描述
在这里插入图片描述

3.ncnn模型转换

首先安装相关库
在这里插入图片描述
pip install onnx coremltools onnx-simplifier

(1)用/yolov5/module/export.py生成onnx文件
在yolov5文件中cmd进入命令行输入以下语句转换模型(–weights为需要转换权重文件位置和名字)
在这里插入图片描述
python models/export.py --weights yolov5s.pt
执行这句之后,会在权重文件相同文件夹下生成yolov5s.onnx、yolov5s.mlmodel和yolov5s.torchscript.pt三种文件。

转化onnx到ncnn

在这里插入图片描述
转换工具网址

在这里插入图片描述
选择刚刚生成的onnx进行转换ncnn,如果转换成功则后续可以直接部署到Android,但是如果有报错的话我们需要对生成的文件进行一点小小的修改才能部署Android。
在这里插入图片描述
上述报错解决方法:
首先我们把生成的两个文件下载下来。

在这里插入图片描述使用文本编辑器打开这个.param的文件准备,这里我就直接用pycharm打开了
在这里插入图片描述
这里推荐一个工具:Netron ,我们可以使用这个先打开我们的.param文件看看模型数据。
Netron

在这里插入图片描述
找到Concat,记录下倒数第二个参数。(等下要用到)
然后再Input下面添加 “ YoloV5Focus focus 1 1 images ”+之前记录的参数 “/model.0/Concat_output_0”
修改后的param见下。原来有181行,删掉 Split、Crop、Concat 层,新增YoloV5Focus层后,6个op换成了1个op,一共减少5行,将开头的 layer count 减去5,改写为176。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
stride16和stride32的修改根据.param文件里的Permute后的数字进行修改,如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
改完这些就ok了。
下面是运行效果:
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋SCP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值