最近在学习如何将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 将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://blog.csdn.net/weixin_50585794/article/details/132823525
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_13319.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!