yolov5模型部署到android及其注意事项
1.模型部署过程
具体流程可以参照迷途小书童note,内容非常详尽,只要肯细心完成部署完全没有问题。文章如下
借鉴文章
2.注意事项
部署过程中走过了无数坑,特此文章,希望后继者们能够轻松一点。
1.操作系统
yolov5.pt文件 在转换为yolov5.bin, yolov5.param部署文件上的时候,最好在linux系统上进行,在服务器上或者windows系统上会有很多问题。安装Vmware,然后再安装虚拟机。本人用的Ubuntu20.04,只要深度学校环境搭配好了,18.04也一样。
2.android studio环境搭建,报错c,c++编译错误
ndk是负责c,c++编译的工具包,网上说出现上述问题,只要路径设置正确,重新编译就可以没有问题了。其实不然, 从as里面下载的ndk包不完整(可能是网络问题,也可能是本身包就不完整)
像我的话当时里面就只有llvm, 这样编译肯定不成功,解决方法是从官网上,重新下载一个ndk的包,将toolchains里面缺少的文件,粘贴过来。然后rebuild project就可以了。
如果还不行的话就下载新版的ndk,像我就是用的目前最新版25.1,只需要补全toolchains里面的文件就可以了。
3.yolov5ncnn app闪退的问题
这个问题不是什么手机兼容性的问题, 人家项目自带的模型,demo可以,自己训练的模型就不行了?原因就是你参数修改的有问题,参数不能照搬照抄,的根据自己yolov5s.param的参数修改。
yolov5s.param文件第二行1处这个参数要在原来的基础上减9,比如我原来是185,现在是185-9=176, 2处的参数要和三处一样。 这里的参数是最容易忽略,搞错的,其他地方照搬照抄就行。
ctrl+f 搜索reshape, 将0=**处统统改为-1, 让他自己计算。
permute处405, 419的值要与yolov5s.bin中的数字对应
完成上述改动就可以编译了。
4.yolov5 部署版本问题
yolov5 v6.0之后的版本export.py与之前的版本有所不同,本人用的5.0版本。
yolov5模型部署到android及其注意事项
1.模型部署过程
具体流程可以参照迷途小书童note,内容非常详尽,只要肯细心完成部署完全没有问题。文章如下
借鉴文章
2.注意事项
部署过程中走过了无数坑,特此文章,希望后继者们能够轻松一点。
1.操作系统
yolov5.pt文件 在转换为yolov5.bin, yolov5.param部署文件上的时候,最好在linux系统上进行,在服务器上或者windows系统上会有很多问题。安装Vmware,然后再安装虚拟机。本人用的Ubuntu20.04,只要深度学校环境搭配好了,18.04也一样。
2.android studio环境搭建,报错c,c++编译错误
ndk是负责c,c++编译的工具包,网上说出现上述问题,只要路径设置正确,重新编译就可以没有问题了。其实不然, 从as里面下载的ndk包不完整(可能是网络问题,也可能是本身包就不完整)
像我的话当时里面就只有llvm, 这样编译肯定不成功,解决方法是从官网上,重新下载一个ndk的包,将toolchains里面缺少的文件,粘贴过来。然后rebuild project就可以了。
如果还不行的话就下载新版的ndk,像我就是用的目前最新版25.1,只需要补全toolchains里面的文件就可以了。
3.yolov5ncnn app闪退的问题
这个问题不是什么手机兼容性的问题, 人家项目自带的模型,demo可以,自己训练的模型就不行了?原因就是你参数修改的有问题,参数不能照搬照抄,的根据自己yolov5s.param的参数修改。
yolov5s.param文件第二行1处这个参数要在原来的基础上减9,比如我原来是185,现在是185-9=176, 2处的参数要和三处一样。 这里的参数是最容易忽略,搞错的,其他地方照搬照抄就行。
ctrl+f 搜索reshape, 将0=**处统统改为-1, 让他自己计算。
permute处405, 419的值要与yolov5s.bin中的数字对应
完成上述改动就可以编译了。
4.yolov5 部署版本问题
yolov5 v6.0之后的版本export.py与之前的版本有所不同,本人用的5.0版本。