YOLOV8部署AndroidStudio

2024-06-04 3653阅读

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

1.github下载yolov8的项目源码

https://github.com/ultralytics/ultralyticsYOLOV8部署AndroidStudio 第1张https://github.com/ultralytics/ultralytics1.1  创建属于yolov8的虚拟环境

参考:【深度学习之YOLO8】环境部署_春马与夏的博客-CSDN博客YOLOV8部署AndroidStudio 第1张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.ptYOLOV8部署AndroidStudio 第1张https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt1.3 yolov8训练自己的数据

1.3.1 创建数据加载配置文件

YOLOV8部署AndroidStudio 第4张

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 第5张

2.模型转换

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

2.1 将pt文件转为onnx

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

YOLOV8部署AndroidStudio 第6张

YOLOV8部署AndroidStudio 第7张

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

YOLOV8部署AndroidStudio 第8张

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

YOLOV8部署AndroidStudio 第9张

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

YOLOV8部署AndroidStudio 第10张

2.1 将onnx文件转为ncnn格式

访问一键生成网站:一键转换 Caffe, ONNX, TensorFlow 到 NCNN, MNN, TengineYOLOV8部署AndroidStudio 第1张https://convertmodel.com/

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

 YOLOV8部署AndroidStudio 第12张

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

 YOLOV8部署AndroidStudio 第13张

3.准备android项目

GitHub - FeiGeChuanShu/ncnn-android-yolov8: Real time yolov8 Android demo by ncnnYOLOV8部署AndroidStudio 第1张https://github.com/FeiGeChuanShu/ncnn-android-yolov8

3.1 放置ncnn模型文件

YOLOV8部署AndroidStudio 第15张

3.2 修改yolo.cpp

3.2.1 修改调用的模型名格式

YOLOV8部署AndroidStudio 第16张

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

YOLOV8部署AndroidStudio 第17张

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

YOLOV8部署AndroidStudio 第18张

3.2.4 类别的数量 

YOLOV8部署AndroidStudio 第19张

3.3 修改 yolov8ncnn.cpp

3.3.1 添加模型

YOLOV8部署AndroidStudio 第20张

3.3.2 添加如下:

YOLOV8部署AndroidStudio 第21张

3.4 strings.xml

添加移动端模型选择文件

YOLOV8部署AndroidStudio 第22张

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

部署效果

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

YOLOV8部署AndroidStudio 第24张

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


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]