最近在学习如何将yolo的项目部署到移动端的安卓手机上面,做一个学习的分享。部署的过程中遇到了很多问题,其中android studio的环境配置算是耗时最长的,经过一番曲折,并没有柳暗花明,最后部署的效果并不佳,不知道自己的过程哪里出现了问题,希望有大佬指点,以下是我的部署过程。
1.github下载yolov8的项目源码
https://github.com/ultralytics/ultralyticshttps://github.com/ultralytics/ultralytics1.1 创建属于yolov8的虚拟环境
参考:【深度学习之YOLO8】环境部署_春马与夏的博客-CSDN博客https://blog.csdn.net/qq_43376286/article/details/131838647直接使用 pip install ultralytics就可以安装项目所需的所有包
1.2 下载官方的预训练权重https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pthttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt1.3 yolov8训练自己的数据集
1.3.1 创建数据加载配置文件
1.3.2 训练自定义的数据
yolo task=detect mode=train model=yolov8n.pt data=数据配置文件的路径 batch=16 epochs=100 imgsz=640 workers=16 device=0
完成训练后会runs的weights目录下会生成最好的权重文件
2.模型转换
要想自己训练的模型在移动端部署,就需要将生成的pt文件转换为android所支持的ncnn格式的文件,转换的过程分为以下两个步骤:
2.1 将pt文件转为onnx
2.1.1 修改ultralytics/ultralytics/nn/modules/block.py中的
class C2f(nn.Module)如下:
2.1.2 修改ultralytics/ultralytics/nn/modules/head.py中的
class Detect(nn.Module)改动如下:
2.1.3 创建并运行pt-to-onnx文件
运行成功就会生成best.pt对应的onnx形式的模型文件
2.1 将onnx文件转为ncnn格式
访问一键生成网站:一键转换 Caffe, ONNX, TensorFlow 到 NCNN, MNN, Tenginehttps://convertmodel.com/
选择上述生成的best.onnx文件,并勾选产生fp16模型
转换之后会生成如下两个文件
3.准备android项目
GitHub - FeiGeChuanShu/ncnn-android-yolov8: Real time yolov8 Android demo by ncnnhttps://github.com/FeiGeChuanShu/ncnn-android-yolov8
3.1 放置ncnn模型文件
3.2 修改yolo.cpp
3.2.1 修改调用的模型名格式
3.2.2 修改模型的输入输出层名字
3.2.3 如下修改成自己的类别名称
3.2.4 类别的数量
3.3 修改 yolov8ncnn.cpp
3.3.1 添加模型
3.3.2 添加如下:
3.4 strings.xml
添加移动端模型选择文件
修改完毕,我们就可以连接真机,查看模型的部署效果。
部署效果
我的部署过程是按照b站这个人的流程来的:yolov8部署Android安卓ncnn 全流程 一镜到底,一定行_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1du411577U/?spm_id_from=333.337.search-card.all.click&vd_source=f37acd6c5a247f45905f51875e5d19e7不知道是哪里出了问题,导致我最后部署的效果是这样的
文章来源:https://www.toymoban.com/news/detail-765428.html
一直卡在这里,希望有大佬指点。文章来源地址https://www.toymoban.com/news/detail-765428.html
到了这里,关于YOLOV8部署AndroidStudio的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!