YOLOv8改进,YOLOv8检测头融合DynamicHead,并添加小目标检测层(四头检测),适合目标检测、分割等,全网独发
摘要
作者提出一种新的检测头,称为“动态头”,旨在将尺度感知、空间感知和任务感知统一在一起。如果我们将骨干网络的输出(即检测头的输入)视为一个三维张量,其维度为级别 × 空间 × 通道,这样的统一检测头可以看作是一个注意力学习问题,直观的解决方案是对该张量进行全自注意力机制的构建。然而,直接在所有维度上学习注意力函数过于困难,且计算成本过高。因此,作者提出通过分别在特征的每个特定维度上部署注意力机制,即在级别、空间和通道维度上来解决这一问题。
# 理论介绍
DynamicHead模块是针对目标检测任务提出的一种新的头部(head)结构,它的设计目的是通过引入多种注意力机制,提升模型的检测能力。核心思想是使得检测头部可以动态地根据输入特征进行自适应调整,从而提高模型在不同尺度、空间、任务等方面的表现。DynamicHead模块的关键组成部分包括:
- Scale-Aware Attention Module(尺度感知注意力模块):该模块根据特征的尺度进行调整,使得不同尺度的特征能在合适的尺度下进行融合和处理。它通过为不同尺度的特征赋予权重来优化尺度差异的影响。
- Spatial-Aware Attention Module(空间感知注意力模块):该模块针对空间位置进行优化。通过对特征图中的重要区域进行加权,使得网络能更关注目标物体的前景区域,避免特征图的冗余部分对模型性能造成影响。
- Task-Aware Module(任务感知模块):这个模块根据具体任务(如分类、定位等)调整头部的输出。它能根据任务需求优化目标的分类或回归结果,提高模型的准确度和鲁棒性。
下图摘自论文
理论详解可以参考链接:论文地址
代码可在这个链接找到:代码地址
小目标理论
在YOLOv8 中,输入图像的尺寸为 640x640x3,经过 8 倍、16 倍和 32 倍下采样后分别得到 80x80、40x40 以及 20x20 大小的特征图,网络最终在这三个不同尺度的特征图上进行目标检测。在这三个尺度的特征图中,局部感受野最小的是 8 倍下采样特征图,即如果将该特征图映射到原输入图像,则每个网格对应原图 8x8 的区域。对于分辨率较小的目标而言,8 倍下采样得到的特征图感受野仍然偏大,容易丢失某些小目标的位置和细节信息。为了改善目标漏检现状,对 YOLOv8 的 Head 结构进行优化,在原有的三尺度检测头的基础之上,新增一个针对微小目标检测的检测头 ,YOLOv8 原有 P3、P4 和 P5 这 3 个输出层&