YOLOV8部署AndroidStudio

        最近在学习如何将yolo的项目部署到移动端的安卓手机上面,做一个学习的分享。部署的过程中遇到了很多问题,其中android studio的环境配置算是耗时最长的,经过一番曲折,并没有柳暗花明,最后部署的效果并不佳,不知道自己的过程哪里出现了问题,希望有大佬指点,以下是我的部署过程。 

1.github下载yolov8的项目源码

https://github.com/ultralytics/ultralyticsicon-default.png?t=N7T8https://github.com/ultralytics/ultralytics1.1  创建属于yolov8的虚拟环境

参考:【深度学习之YOLO8】环境部署_春马与夏的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43376286/article/details/131838647直接使用 pip install ultralytics就可以安装项目所需的所有包

1.2 下载官方的预训练权重https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pticon-default.png?t=N7T8https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt1.3 yolov8训练自己的数据集

1.3.1 创建数据加载配置文件

YOLOV8部署AndroidStudio_第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目录下会生成最好的权重文件

YOLOV8部署AndroidStudio_第2张图片

2.模型转换

要想自己训练的模型在移动端部署,就需要将生成的pt文件转换为android所支持的ncnn格式的文件,转换的过程分为以下两个步骤:

2.1 将pt文件转为onnx

2.1.1 修改ultralytics/ultralytics/nn/modules/block.py中的class C2f(nn.Module)如下:

YOLOV8部署AndroidStudio_第3张图片

YOLOV8部署AndroidStudio_第4张图片

2.1.2 修改ultralytics/ultralytics/nn/modules/head.py中的class Detect(nn.Module)改动如下:

YOLOV8部署AndroidStudio_第5张图片

2.1.3 创建并运行pt-to-onnx文件

YOLOV8部署AndroidStudio_第6张图片

运行成功就会生成best.pt对应的onnx形式的模型文件

YOLOV8部署AndroidStudio_第7张图片

2.1 将onnx文件转为ncnn格式

访问一键生成网站:一键转换 Caffe, ONNX, TensorFlow 到 NCNN, MNN, Tengineicon-default.png?t=N7T8https://convertmodel.com/

 选择上述生成的best.onnx文件,并勾选产生fp16模型

 YOLOV8部署AndroidStudio_第8张图片

转换之后会生成如下两个文件

 YOLOV8部署AndroidStudio_第9张图片

3.准备android项目

GitHub - FeiGeChuanShu/ncnn-android-yolov8: Real time yolov8 Android demo by ncnnicon-default.png?t=N7T8https://github.com/FeiGeChuanShu/ncnn-android-yolov8

3.1 放置ncnn模型文件

YOLOV8部署AndroidStudio_第10张图片

3.2 修改yolo.cpp

3.2.1 修改调用的模型名格式

YOLOV8部署AndroidStudio_第11张图片

3.2.2 修改模型的输入输出层名字

YOLOV8部署AndroidStudio_第12张图片

3.2.3 如下修改成自己的类别名称

YOLOV8部署AndroidStudio_第13张图片

3.2.4 类别的数量 

YOLOV8部署AndroidStudio_第14张图片

3.3 修改 yolov8ncnn.cpp

3.3.1 添加模型

YOLOV8部署AndroidStudio_第15张图片

3.3.2 添加如下:

YOLOV8部署AndroidStudio_第16张图片

3.4 strings.xml

添加移动端模型选择文件

YOLOV8部署AndroidStudio_第17张图片

修改完毕,我们就可以连接真机,查看模型的部署效果。

部署效果

我的部署过程是按照b站这个人的流程来的:yolov8部署Android安卓ncnn 全流程 一镜到底,一定行_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1du411577U/?spm_id_from=333.337.search-card.all.click&vd_source=f37acd6c5a247f45905f51875e5d19e7不知道是哪里出了问题,导致我最后部署的效果是这样的

一直卡在这里,希望有大佬指点。

你可能感兴趣的:(YOLO,yolov8,android,studio)