0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解锁YOLOv8修改+注意力模块训练与部署流程

OpenCV学堂 来源:OpenCV学堂 2023-08-11 14:14 次阅读

YOLOv8源码到底在哪?

很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,然后就直接从master/main下面把源码克隆出来一通修改了,其实这种方式风险很高,而且也不是正确的选择,原因在于Master/main分支是工作跟合并的代码主仓,不是发布的版本代码,开源项目团队开发者随时随地都在修改代码,很可能导致引入新BUG,直接使用master/main分支的下面的代码会有两个致命问题:

1. 无法标记版本信息
2. 无法确信代码的是否含有致命BUG
灵魂拷问,YOLOv8对应版本的源代码究竟在哪里?其实对Python安装包稍微了解一下你就知道了,以我自己为例,我是用pip方式安装YOLOv8的,查找一下安装好的YOLOv8包目录应该如下(默认情况下):

43b08b1c-380a-11ee-9e74-dac502259ad0.png

C:UsersAdministratorAppDataLocalProgramsPythonPython38Libsite-packages
然后找到下面的两个文件夹,源码就在这里了。

43dc56d4-380a-11ee-9e74-dac502259ad0.png

YOLOv8添加SE注意力模块

分别修改YOLOv8的模型描述文件yolov8.yaml,模型加载与定义文件task.py与模块结构化实现文件block.py,修改的内容跟YOLOv5注意力机制添加完全一致。修改yolov8.yaml文件,这里我直接插入了SENet注意力模块,修改以后文件与之前的文件对比如下:

4407f244-380a-11ee-9e74-dac502259ad0.png

然后修改源码文件task.py与block.py 实现SENet注意机制解析支持。全部完成之后就可以直接开始训练模型了,这里基于我的DM码数据集完成模型结构修改之后的YOLOv8注意力模型的训练,命令行跟以前唯一不同的是需要从指定修改的YAML文件开始训练,才是对的,训练的命令行如下:

yolo train model=yolov8.yaml data=dm_dataset.yaml epochs=15 imgsz=640 batch=1

4464ef12-380a-11ee-9e74-dac502259ad0.png

4485fbc6-380a-11ee-9e74-dac502259ad0.png

44d52be2-380a-11ee-9e74-dac502259ad0.png

ONNX导出与推理测试

然后导出ONNX格式模型,设置一下opset=11 会有好处。

yolo export model=runsdetect	rain10weightsest.pt format=onnx

44e8caf8-380a-11ee-9e74-dac502259ad0.png

导出ONNX格式也可以啦。

预测推理

yolo predict mode=detect model=runsdetect	rain10weightsest.onnx

4522bed4-380a-11ee-9e74-dac502259ad0.png

454682ec-380a-11ee-9e74-dac502259ad0.png

从此又解锁了YOLOv8模型结构+各种注意力机制的即插即用从训练到导出部署技能。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439
  • YAML
    +关注

    关注

    0

    文章

    21

    浏览量

    2314

原文标题:YOLOv8修改+注意力模块 训练与部署

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现在自定义数据集上,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 2773次阅读
    基于<b class='flag-5'>YOLOv8</b>实现自定义姿态评估模型<b class='flag-5'>训练</b>

    使用YOLOv8做目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。
    的头像 发表于 02-06 10:11 7306次阅读

    YOLOv8自定义数据集训练到模型部署推理简析

    如果你只是想使用而不是开发,强烈推荐通过pip安装方式获取YOLOv8包!YOLOv8安装命令行
    的头像 发表于 03-24 09:27 4582次阅读

    TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示

    YOLOv8实例分割TensorRT 推理代码已经完成C++类封装,三行代码即可实现YOLOv8对象检测与实例分割模型推理,不需要改任何代码即可支持自定义数据训练部署推理
    的头像 发表于 04-25 10:49 5592次阅读
    TensorRT 8.6 C++开发环境配置与<b class='flag-5'>YOLOv8</b>实例分割推理演示

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类模型,本文将介绍在 AI 爱克斯开发板上使用 OpenV
    的头像 发表于 05-12 09:08 1257次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>目标检测模型

    YOLOv8版本升级支持小目标检测与高分辨率图像输入

    YOLOv8版本最近版本又更新了,除了支持姿态评估以外,通过模型结构的修改还支持了小目标检测与高分辨率图像检测。原始的YOLOv8模型结构如下。
    的头像 发表于 05-16 11:14 1.2w次阅读
    <b class='flag-5'>YOLOv8</b>版本升级支持小目标检测与高分辨率图像输入

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类模型,本文将介绍在AI爱克斯开发板上使用OpenVINO加速
    的头像 发表于 05-26 11:03 1186次阅读
    AI爱克斯开发板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目标检测模型

    基于YOLOv5s基础上实现五种视觉注意力模块的改进

    5s基础上实现五种视觉注意力模块的改进,然后训练相同的轮次,横向比较模型的精度。 YOLOv5添加注意
    的头像 发表于 06-02 14:52 1485次阅读
    基于<b class='flag-5'>YOLOv</b>5s基础上实现五种视觉<b class='flag-5'>注意力</b><b class='flag-5'>模块</b>的改进

    教你如何用两行代码搞定YOLOv8各种模型推理

    大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8对象检测、实例分割、姿态评估模型的GPU与CPU上推理演示。
    的头像 发表于 06-18 11:50 2968次阅读
    教你如何用两行代码搞定<b class='flag-5'>YOLOv8</b>各种模型推理

    目标检测算法再升级!YOLOv8保姆级教程一键体验

    以在大型数据集上进行训练,并且能够在各种硬件平台上运行;YOLOv8还有一个关键特性是它的可扩展性,由于其被设计成一个框架,支持所有以前YOLO的版本,使得在不同
    的头像 发表于 02-28 11:16 2539次阅读
    目标检测算法再升级!<b class='flag-5'>YOLOv8</b>保姆级教程一键体验

    三种主流模型部署框架YOLOv8推理演示

    深度学习模型部署有OpenVINO、ONNXRUNTIME、TensorRT三个主流框架,均支持Python与C++的SDK使用。对YOLOv5~YOLOv8的系列模型,均可以通过C++推理实现模型
    的头像 发表于 08-06 11:39 2638次阅读

    如何修改YOLOv8的源码

    很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,
    的头像 发表于 09-04 10:02 1902次阅读
    如何<b class='flag-5'>修改</b><b class='flag-5'>YOLOv8</b>的源码

    YOLOv8实现任意目录下命令行训练

    当你使用YOLOv8命令行训练模型的时候,如果当前执行的目录下没有相关的预训练模型文件,YOLOv8就会自动下载模型权重文件。这个是一个正常操作,但是你还会发现,当你在参数model中
    的头像 发表于 09-04 10:50 1064次阅读
    <b class='flag-5'>YOLOv8</b>实现任意目录下命令行<b class='flag-5'>训练</b>

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用
    的头像 发表于 12-20 10:51 724次阅读
    基于<b class='flag-5'>YOLOv8</b>的自定义医学图像分割

    基于OpenCV DNN实现YOLOv8的模型部署与推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署在Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 1389次阅读
    基于OpenCV DNN实现<b class='flag-5'>YOLOv8</b>的模型<b class='flag-5'>部署</b>与推理演示