yolov5-6.0安卓部署及避坑指南(windows下)


前言

这几天,想实现下在Android上部署个深度学习模型,就拿yolov5-6.0来说,正文如下:

参考链接:参考


一、准备工作

1、Android Studio

下载网址:Android studio
安装参考:安装

2、ncnn-yolov5-android源码

下载地址:ncnn_yolov5

3、ncnn-android-vulkan包

下载地址:ncnn
windows上建议下载ncnn-20210525-android-vulkan.zip


二、模型转换

这里,我就直接那官方yolov5s.pt来举例了,然后首先你得先将pt->onnx,这一步,网上很多教程,这里直接跳过了。

1.onnx->NCNN

  • 简单粗暴、懒人必备(建议使用,可以省去很多烦恼):
    直接通过这个网站进行转换:onnx2ncnn
  • 通过一.3下载的ncnn包去转换

转换成功后,会得到yolov5s.param和yolov5s.bin,如下:
在这里插入图片描述


三、文件摆放及修改

1、摆放:

将一、3中下载的压缩包放在一、2中的app/src/main/jni下即可(将ncnn中的子文件全都移动到这里),如下图:
在这里插入图片描述
然后用我们的一、1中的Android studio打开该项目即可。

2、模型替换

用二、1中转换生成的.param和.bin文件替换掉原来路径下的,路径如下图:
在这里插入图片描述

3、CMakeLists.txt修改

CMakeLists.txt路径如下:
在这里插入图片描述

将ncnn_DIR的路径修改掉(如果你是按照三、1那样摆放的话), 修改后的文件如下:
在这里插入图片描述

4、.param修改

修改三、2中的.param文件,仅仅修改最后三个Reshape里的参数,修改后如下:
在这里插入图片描述
其他参数可能会有所不同,因为跟你选择的v5版本等有关。

5、cpp修改

修改yolov5ncnn_jni.cpp文件,文件路径如下:
在这里插入图片描述
修改cpp文件中stride 16和stride 32的部分,修改后的文件如下:
在这里插入图片描述

这里修改的内容,来自于你自己的.param文件中的最后两个Permute,如下:
在这里插入图片描述

6、类别修改(可选)

如果你是要部署自己的模型,那么你需要在yolov5ncnn_jni.cpp中进行修改,这里我用的是官方模型,故没做修改,如下:
在这里插入图片描述

7、其他工具包:

在Android Studio中打开如下界面:
在这里插入图片描述
或者在这里插入图片描述
勾选工具包如下:
在这里插入图片描述
这个根据自己需要进行版本选择
在这里插入图片描述
其中NDK建议安装的版本为:
在这里插入图片描述

这些勾选后,直接安装即可

四、运行

这些修改完成后,手机连到电脑上,运行即可,前提是你的手机要开启开发者模式,并且同意USB调试,拿我的手机(HUAWEI Mate40e)为例,各个手机进入开发者模式的方式不同,大家自行百度即可:
在这里插入图片描述
在这里插入图片描述
这两个选项开开即可,然后运行我们的app,即可在我们的手机上出现项目,如下,
在这里插入图片描述
效果图为:
在这里插入图片描述


四、BUG记录

1、NDK问题

首次运行时,出现了如下报错:
在这里插入图片描述
大概率是我们的NDK安装问题,解决方案可以参考这里:bug解决
建议使用这里面的方法二,简单有效,亲测可行。


总结

以上就是本篇的全部内容,如果通篇顺下来的话,应该不会遇到很多问题,我只遇到一个。如还有问题,欢迎评论区指正。

猜你喜欢

转载自blog.csdn.net/qq_55068938/article/details/128832779