[置顶内容]:YOLOv8深度剖析专栏第一阶段基本完成了,后期主要是对专栏内容进行维护,更新因此也不会那么频繁了,后期计划是不定期在本专栏更新Ultralytics库的内容:比如v5、v10及rt-detr网络的原理及实践,数据增强、指标评估模块的代码解析等,计划在2024.12.31完成,博客文章不会少于35篇,最后价格定在199.9.
先来谈一下我创作本专栏的初心,首先我一直都是YOLO的追随者,不管是读研时还是工作中,和YOLO算法接触的都很频繁。因为简单好用,所以大家都在用,但是很多时候都是跑一下网络或者改一下网络结构,并且似乎很少有人会去解析YOLO预测和训练的流程,或者有解析,解析得也是比较碎片化,所以我也是边阅读源码,边记录下来关键知识点,尽可能在这个专栏中系统完整地呈现给大家。其次为什么会选择YOLOv8,其一是YOLOv8是23年提出来的,是一个很新的算法,并且该库也一直在更新内容,到现在使用YOLOv8项目代码就可以训练目标检测、实例分割、关键点检测和旋转目标检测等任务,只能说YOLOv8 NB!最后是为什么本专栏设置收费,因为要恰饭哈哈哈。
那么跟着本专栏,你会学到什么东西呢:首先你会熟悉各种计算机视觉任务的标注软件的使用,其次你还可以轻松地用YOLOv8训练自己的数据集,最后你可以将非常深入地了解YOLOv8的预测和训练的流程原理。
下面介绍一下本专栏的基本大纲图,一共分成三大篇:公共篇、实践篇和理论篇。对于目标检测、实例分割、关键点检测和旋转目标检测这四个任务,均会按照这三个篇章的内容展开进行介绍。其中实践篇着重于动手训练自己的数据集,里面内容包括必要的代码及工具,跟着实践篇无坑可踩;理论篇主要介绍训练过程的正负样本匹配及损失计算,标签的预处理等,还会介绍预测过程对网络结果的输出处理;公共篇主要是介绍各种标注软件的使用,以及将标注标签转换为训练的标签。
下面介绍一下本专栏的阅读顺序:
如果想要用YOLOv8训练自己的数据集,直接找对应任务下的公共篇去下载标注工具进行标注,然后再找实践篇的训练、验证、预测和导出,划分数据并对数据进行配置容纳后再进行训练。
如果要了解YOLOv8各任务的原理,必须先要去了解YOLOv8目标检测网络的流程,然后再去了解其它任务的各自博客,主要克服了目标检测网络的原理,其他的都没有多大问题。此外,如果你要了解旋转目标检测网络的原理,需要先去看高斯分布、GBB和Prob IoU[旋转目标检测理论篇]这篇博客,里面包含GBB原理及一步步推导的过程,然后再去了解训练流程和预测流程。
下面是已更新的文章目录:
一.公共篇
基础篇主要介绍以下几个内容:第一,深度学习需要相关软件的安装,以及YOLOv8环境的配置;第二,此外还会依次介绍目标检测、实例分割、关键点检测、旋转目标检测任务的数据标注软件安装及标注方法;第三,依次介绍目标检测、实例分割、关键点检测、旋转目标检测任务的YOLOv8网络结构。
1.软件安装及YOLOv8环境配置及验证-CSDN博客:本章内容简单介绍了相关软件的安装以及YOLOv8的环境配置。
2.YOLOv8网络结构介绍-CSDN博客:本章内容介绍了YOLOv8的网络结构,目前已更新了目标检测任务、实例分割任务和关键点检测的网络结构,后续还会更新其他任务的结构。
3.LabelImg下载及目标检测数据标注-CSDN博客:本章内容简单介绍了目标检测任务的数据标注软件以及数据标注,附带本次训练的数据集链接。
4.LabelMe/ISAT下载及实例分割数据标注-CSDN博客:本章内容介绍了LabelMe及ISAT实例分割标注软件的安装及使用,其中ISAT为集成了Sam的自动标注软件,此外还附labelme格式转yolo格式的代码。
5.LabelMe下载及关键点检测数据标注-CSDN博客:本章内容介绍了LabelMe软件的安装及使用该软件对分割点进行标注,附labelme格式转YOLOv8关键点检测标签格式的代码。
6.RoLabelImg下载及旋转目标检测数据标注-CSDN博客:本章内容介绍了旋转目标检测工具RoLabelImg的下载和使用,旋转目标检测标签的标注和转换,附极简单的标签转换代码,只需要更改两个变量名即可完成转换。
7.YOLOv8标签可视化-CSDN博客:本章内容主要是对四个任务的标签进行可视化,主要是为了训练之前检查标签使用的,附完整代码。
二.目标检测篇
目标检测篇主要介绍以下两个内容:实践篇:手把手教你如何使用自己的数据集训练YOLOv8目标检测网络;理论篇:手把手教你YOLOv8目标检测网络是如何进行预测和训练的,以及在训练中是如何匹配正样本并进行损失计算。
1.YOLOv8的训练、验证、预测及导出[目标检测实践篇]-CSDN博客:本章内容介绍了如何使用YOLOv8目标检测模型训练自己数据集,包括数据处理及代码。
2.YOLOv8预测流程-原理解析[目标检测理论篇]-CSDN博客:本章内容介绍了YOLOv8目标检测任务的预测流程的原理。
3.YOLOv8训练流程-原理解析[目标检测理论篇]-CSDN博客:本章内容介绍了YOLOv8目标检测任务的训练流程的原理。
三.实例分割篇
实例分割篇主要介绍以下两个内容:实践篇:手把手教你如何使用自己的数据集训练YOLOv8实例分割网络;理论篇:手把手教你YOLOv8实例分割网络是如何进行预测和训练的,以及在训练中是如何匹配正样本并进行损失计算。
1.YOLOv8_seg的训练、验证、预测及导出[实例分割实践篇]-CSDN博客:本章内容介绍了如何使用YOLOv8实例分割网络的训练自己的数据集并进行验证、预测及导出。
2.YOLOv8_seg预测流程-原理解析[实例分割理论篇]-CSDN博客:本章内容介绍了YOLOv8实例分割任务的预测流程的原理,并且举例说明Prototype和mask ceofficient如何生成预测结果Mask,附prototype热力图可视化代码。
3.YOLOv8_seg训练流程-原理解析[实例分割理论篇]-CSDN博客:本章内容介绍了YOLOv8实例分割任务的训练流程原理,介绍了v8如何把点转换成Mask图,并且以例子的方式分别介绍了Overlap_mask=True和False生成的Mask。
四.关键点检测篇
关键点检测篇主要介绍以下两个内容:实践篇:手把手教你如何使用自己的数据集训练YOLOv8关键点检测网络;理论篇:手把手教你YOLOv8关键点检测网络是如何进行预测和训练的,以及在训练中是如何匹配正样本并进行损失计算。
1.YOLOv8_pose的训练、验证、预测及导出[关键点检测实践篇]-CSDN博客:本章内容主要介绍了如何使用YOLOv8关键点检测网络训练自己的数据集并进行验证、预测和导出。
2.YOLOv8_pose预测流程-原理解析[关键点检测理论篇]-CSDN博客:本章内容主要介绍了关键点预测流程的原理,主要介绍了KeyPoint分支的解码、NMS后处理以及关键点绘制这一部分内容。
3.YOLOv8_pose训练流程-原理解析[关键点检测理论篇]-CSDN博客:本章内容主要介绍了关键点检测的训练流程,主要介绍了关键点检测的OKS Loss、关键点分支的解码。
五.旋转目标检测篇
旋转目标检测篇是真的难,实践篇:手把手教你如何标记自己的数据集并训练YOLOv8旋转目标检测网络;理论篇:除了手把手教你YOLOv8旋转目标检测网络是如何进行训练和预测的,还会详细介绍Prob IoU和GBB的定义和流程,以及介绍旋转框的高斯概率分布表示的推导过程。
1.YOLOv8_obb的训练、验证、预测及导出[旋转目标检测实践篇]-CSDN博客:本章内容主要介绍了如何使用YOLOv8旋转目标检测网络训练自己的数据集并进行验证、预测和导出。
2.高斯分布、GBB和Prob IoU[旋转目标检测理论篇]-CSDN博客:本章主要介绍了高斯分布概率规律,旋转边界框的高斯分布概率表示以及Prob IoU的计算和公式推导。
3.YOLOv8_obb训练流程-原理解析[旋转目标检测理论篇]-CSDN博客:本章主要介绍了YOLOv8旋转目标检测的流程,介绍了标签的解码、预测结果的解码,以及如何理解旋转角度等内容,还介绍旋转目标检测框的正样本选取及Loss计算。
4.YOLOv8_obb预测流程-原理解析[旋转目标检测理论篇]-CSDN博客:本文主要介绍了旋转目标检测网络预测模块的流程,主要介绍了后处理模块的nms_rotated,还有regularize_rboxes。