yolov8代码梳理 训练自己的数据 最终版

news2024/12/22 22:14:52

1.总结一下

  1. 最开始为了检测不规则的麻包袋,所以采用了目标检测。yolov3,fasterrcnn,ssd。这种矩形框还是可以用。后面检测的物体变成了规则的纸箱,我们还用目标检测发现,没有旋转角度,因为箱子的摆放不是正的。只能通过opencv的minarea去找到最小矩形框去寻找角度。但是opencv的方式首先对物体要和背景颜色区分,其次不够优美,毕竟算是2步走。
  2. 后面又尝试多训练一个角度,也就是把角度分成180个类别去分类,这个方式及其不稳定,也可能是我代码写的不好,但是后面发现,有人在做旋转矩形检测
  3. 旋转矩形框检测, 说实话,我把杨雪提供的框架跑了一遍,效果很差,角度的回归就像没用一样,反正很不如意。
  4. 实在没辙,只好采用了实力分割,maskrcnn。这个是真好用,大概标定50个样本,训练100epoch效果就很棒了。我们一直采用这种方式大概用了2年。
  5. 但是从我测试了rotated_rtmdet后。我真的觉得醍醐灌顶的爽,一直采用实力分割去做箱子的识别,总让我感觉很别扭。现在终于有一个可以落地的旋转目标检测。我就觉得公司的3D拆垛已经终于走上正轨了。
  6. 后面yolo又推出了,v4v5v6v7 其中还有ppyolo,yolox,yoloe , 包括现在的v8。我也不断的尝试更新算法。但是说实话目标检测真的算是走到头了。当然也是我个人的最终版。因为公司原因,个人将不在做视觉类的项目了,所以视觉类的目标检测和实力分割或者分类也就不在继续研究了。

2.yolov8代码梳理

参考
在这里插入图片描述

说实话,我不太懂他们改变的原因,看代码而言并不困难。基本和v5差不多。而且解耦检测头也是和yolox一样的。
总体来说,这个模型的精度和速度是对做工程和做应用的非常友好,我用自己的数据集,训练50个epoch,没有修改任何东西,map都跑到了99.5.非常惊艳。

3. 训练自己的数据集

  1. 数据集还是yolo格式。如果是labelme标注的json格式,参考 修改json标注为txt文件。或者就直接采用labelImg标注,生成yolo格式的标注文件参考
  2. 修改数据配置文件,也就是复制一份coco.yaml 。修改路径为自己的数据集路径

在这里插入图片描述
文件放在G:\sick\SH_visionary-s\ultralytics\ultralytics\yolo\v8\detect\coco.yaml

  1. 下载yolov8n.pt 放在和train.py同目录下。
    在这里插入图片描述

  2. 修改训练参数,路径在G:\sick\SH_visionary-s\ultralytics\ultralytics\yolo\cfg\default.yaml ,
    在这里插入图片描述
    我就修改了这些

  3. 执行train.py的文件就好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/351004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习算法面试常问问题(三)

pooling层是如何进行反向传播的? average pooling: 在前向传播中,就是把一个patch的值取平均传递给下一层的一个像素。因此,在反向传播中,就是把某个像素的值平均分成n份 分配给上一层。 max pooling: 在前…

一文教你如何编写高效的接口测试,别再浪费时间了

目录 前言 1、什么是接口测试 2、为什么要做接口测试 3、接口测试的范围 4、接口测试的重点 5、测试原则 总结 前言 在所有的开发测试中,接口测试是必不可少的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在…

PMP项目管理未来的发展与趋势

什么是项目管理?关于项目管理的解释主要是基于国际项目管理三大体系不同的解释及本领域权威专家的解释。 项目管理就是以项目为对象的系统管理方法,通过一个临时性的、专门的柔性组织,对项目进行高效率的计划、组织、指导和控制,以…

深度学习术语解释:backbone、head、neck,etc

backbone:翻译为主干网络的意思,既然说是主干网络,就代表其是网络的一部分,那么是哪部分呢?这个主干网络大多时候指的是提取特征的网络,其作用就是提取图片中的信息,共后面的网络使用。这些网络…

深入浅出带你学习利用session.upload_progress进行文件包含

前言 该思路是很久之前在CTF比赛中学习到的,可以简单理解为利用session.upload_progress来进行文件竞争从而达到上传文件进行文件包含或者命令执行的目的,可能大部分人会不理解,我们下面我们展开来讲。 基础知识 session.upload_progress …

Java并发编程面试题——线程安全(原子性、可见性、有序性)

文章目录一、原子性高频问题1.1 Java中如何实现线程安全?1.2 CAS底层实现1.3 CAS的常见问题1.4 四种引用类型 ThreadLocal的问题?二、可见性高频问题2.1 Java的内存模型2.2 保证可见性的方式2.3 volatile修饰引用数据类型2.4 有了MESI协议,为啥还有vol…

2022年全国职业院校技能大赛网络安全竞赛A模块(2)

2022年全国职业院校技能大赛(中职组) 网络安全竞赛试题 (2) 目录 2022年全国职业院校技能大赛(中职组) 网络安全竞赛试题 (2) 模块A 基础设施设置与安全加固 A-1任务一 登录安…

ChatGPT引爆资本狂潮,AI大战升级版打响!谷歌紧急上线对标竞品,微软测试AI搜索引擎,百度宣国产版定档,谁才是最后的赢家?

文 BFT机器人 如果你迄今为止还没有听说过ChatGPT,那就已经彻彻底底被人工智能的新时代甩到身后了。 如果说去年年底ChatGPT刚推出的时候,大多数网友对其的态度还是认为它和Clubhouse一样仅会是昙花一现的话,那么2个月时间过去,C…

【Ubuntu换源教程】不同Ubuntu系统版本换清华源

今天在新电脑上装了虚拟机VMware Workstation Pro 16,在虚拟机上安装了Ubuntu20.04系统。 在做Ubuntu20.04系统换源的时候,发现源要和Ubuntu的版本匹配,之前一直不知道,一直都是盲目换源,版本如果不匹配的话&#xff…

【日常】矩阵正态分布参数检验问题

最近给凯爹做的一个苦力活,统计检验这个东西说实话也挺有趣,跟算法设计一样,好的检验真的是挺难设计的,就有近似算法的那种感觉,检验很难保证size和power都很理想,所以就要做tradeoff,感觉这个假…

DPR-34 AC22V【双位置继电器】

系列型号: DPR-20双位置继电器;DPR-31双位置继电器; DPR-32双位置继电器;DPR-33双位置继电器; DPR-34双位置继电器;DPR-35双位置继电器; DPR-11双位置继电器;DPR-12双位置继电器&…

Python-项目实战--贪吃蛇小游戏-游戏框架搭建(3)

1.游戏框架搭建介绍pygame开发图像界面游戏的几个要素,并且把贪吃蛇游戏的整体框架搭建完成本节知识点包括:pygame的初始化和退出游戏主窗口游戏循环和游戏时钟主窗口背景颜色绘制文本pygame的坐标系游戏事件监听绘制图形定时器事件1.5绘制文本pygame的f…

Nuclei文*件上*传FUZZ POC

目录 1.前言 2. Nuclei文件上传FUZZ POC 3. 实战中的应用 1.前言 该文件上传FUZZ POC主要来源于一个靶*场,该POC 主要用来FUZZ目标js页面中的upload ajax请求,以此来进一步尝试文件上传漏*洞利*用。 这里也要感谢下“打工仔1号”提供的开*发人员常见的文*件上*传javaScr…

设计模式(九)----结构型模式之代理模式

一、结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制或者实现机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满…

数字孪生|可视化图表之堆叠柱状图

一、含义 堆叠柱状图(Stacked Bar Chart)将每个柱子进行分割以显示相同类型下各个数据的大小情况,它将多个数据集的柱子彼此叠加显示,适合用来显示大类别如何细分为较小的类别,以及每部分与总量之间的关系。在展示不同…

Lecture5 实现线性回归(Linear Regression with PyTorch)

目录 1 Pytorch实现线性回归 1.1 实现思路 1.2 完整代码 2 各部分代码逐行详解 2.1 准备数据集 2.2 设计模型 2.2.1 代码 2.2.2 代码逐行详解 2.2.3 疑难点解答 2.3 构建损失函数和优化器 2.4 训练周期 2.5 测试结果 3 线性回归中常用优化器 1 Pytorch实现线性回归…

网络协议(七):传输层-UDP

网络协议系列文章 网络协议(一):基本概念、计算机之间的连接方式 网络协议(二):MAC地址、IP地址、子网掩码、子网和超网 网络协议(三):路由器原理及数据包传输过程 网络协议(四):网络分类、ISP、上网方式、公网私网、NAT 网络…

06- 信用卡反欺诈 (机器学习集成算法) (项目六)

本项目为 kaggle 项目 项目难点在于: 盗刷的比例占总数据量的比例较低, 直接预测为非盗刷也有 99.8% 的准确率.data.info() # 查看所有信息msno.matrix(data) # 查看缺失值axis1 时 # 删除列显示颜色种类 from matplotlib import colors plt.colormaps() # mag…

关于知识图谱TransR

论文题目 Learning Entity and Relation Embeddings for Knowledge Graph Completion 论文链接 TransR 文中指出,不管是TransE还是TransH都是将实体和关系映射同一空间,但是,一个实体可能具有多个层面的信息,不同的关系可能关注…

ray简单介绍

ray使用也有一段时间了, 这篇文章总结下ray的使用场景和用法 ray可以做什么? 总结就两点: 可以将其视为一个进程池(当然不仅限于此), 可以用于开发并发应用还可以将应用改造为分布式 基于以上两点, 有人称之为:Modern Parallel and Distributed Python 构成 Ray AI Runtim…