【YOLOv8改进-SPPF】 AIFI : 基于注意力的尺度内特征交互,保持高准确度的同时减少计算成本

简介: YOLOv8专栏介绍了该系列目标检测框架的最新改进与实战应用。文章提出RT-DETR,首个实时端到端检测器,解决了速度与精度问题。通过高效混合编码器和不确定性最小化查询选择,RT-DETR在COCO数据集上实现高AP并保持高帧率,优于其他YOLO版本。论文和代码已开源。核心代码展示了AIFI Transformer层,用于位置嵌入。更多详情见[YOLOv8专栏](https://blog.csdn.net/shangyanaf/category_12303415.html)。

YOLOv8目标检测创新改进与实战案例专栏

专栏目录: YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

专栏链接: YOLOv8基础解析+创新改进+实战案例

介绍

image-20240717170808583

摘要

YOLO系列因其在速度和准确性之间的合理权衡,成为了实时目标检测中最受欢迎的框架。然而,我们观察到YOLO的速度和准确性受NMS(非极大值抑制)的负面影响。最近,基于Transformer的端到端检测器(DETRs)提供了一种消除NMS的替代方案,但其高计算成本限制了其实用性,并阻碍了其完全利用排除NMS的优势。在本文中,我们提出了实时检测Transformer(RT-DETR),据我们所知,这是第一个解决上述困境的实时端到端目标检测器。我们借鉴先进的DETR,分两步构建RT-DETR:首先,我们专注于在提高速度的同时保持准确性,然后在保持速度的同时提高准确性。具体而言,我们设计了一种高效的混合编码器,通过解耦内尺度交互和跨尺度融合来快速处理多尺度特征,从而提高速度。然后,我们提出了不确定性最小化查询选择,以向解码器提供高质量的初始查询,从而提高准确性。此外,RT-DETR通过调整解码器层数支持灵活的速度调节,以适应各种场景,而无需重新训练。我们的RT-DETR-R50/R101在COCO数据集上分别达到了53.1%和54.3%的AP,并在T4 GPU上达到了108 FPS和74 FPS,超越了之前先进的YOLOs在速度和准确性上的表现。此外,RT-DETR-R50在准确性上比DINO-R50高2.2% AP,且FPS高约21倍。经过Objects365的预训练后,RT-DETR-R50/R101分别达到了55.3%和56.2%的AP。项目页面:https://zhao-yian.github.io/RTDETR。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

核心代码

class AIFI(TransformerEncoderLayer):
    """Defines the AIFI transformer layer."""

    def __init__(self, c1, cm=2048, num_heads=8, dropout=0, act=nn.GELU(), normalize_before=False):
        """Initialize the AIFI instance with specified parameters."""
        super().__init__(c1, cm, num_heads, dropout, act, normalize_before)

    def forward(self, x):
        """Forward pass for the AIFI transformer layer."""
        c, h, w = x.shape[1:]
        pos_embed = self.build_2d_sincos_position_embedding(w, h, c)
        # Flatten [B, C, H, W] to [B, HxW, C]
        x = super().forward(x.flatten(2).permute(0, 2, 1), pos=pos_embed.to(device=x.device, dtype=x.dtype))
        return x.permute(0, 2, 1).view([-1, c, h, w]).contiguous()

    @staticmethod
    def build_2d_sincos_position_embedding(w, h, embed_dim=256, temperature=10000.0):
        """Builds 2D sine-cosine position embedding."""
        grid_w = torch.arange(int(w), dtype=torch.float32)
        grid_h = torch.arange(int(h), dtype=torch.float32)
        grid_w, grid_h = torch.meshgrid(grid_w, grid_h, indexing="ij")
        assert embed_dim % 4 == 0, "Embed dimension must be divisible by 4 for 2D sin-cos position embedding"
        pos_dim = embed_dim // 4
        omega = torch.arange(pos_dim, dtype=torch.float32) / pos_dim
        omega = 1.0 / (temperature**omega)

        out_w = grid_w.flatten()[..., None] @ omega[None]
        out_h = grid_h.flatten()[..., None] @ omega[None]

        return torch.cat([torch.sin(out_w), torch.cos(out_w), torch.sin(out_h), torch.cos(out_h)], 1)[None]

task与yaml配置

详见: https://blog.csdn.net/shangyanaf/article/details/140500654

相关文章
|
5月前
|
机器学习/深度学习 编解码 人工智能
ICLR 2024:泛化递归Transformer,降低超分辨率复杂度
【2月更文挑战第16天】ICLR 2024:泛化递归Transformer,降低超分辨率复杂度
218 1
ICLR 2024:泛化递归Transformer,降低超分辨率复杂度
|
5月前
|
机器学习/深度学习
YOLOv8改进 | 注意力篇 | ACmix自注意力与卷积混合模型(提高FPS+检测效率)
YOLOv8改进 | 注意力篇 | ACmix自注意力与卷积混合模型(提高FPS+检测效率)
329 0
|
3月前
|
机器学习/深度学习 计算机视觉 异构计算
【YOLOv8改进 - Backbone主干】FasterNet:基于PConv(部分卷积)的神经网络,提升精度与速度,降低参数量。
【YOLOv8改进 - Backbone主干】FasterNet:基于PConv(部分卷积)的神经网络,提升精度与速度,降低参数量。
|
3月前
|
计算机视觉 网络架构
【YOLOv8改进 - 卷积Conv】DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
YOLO目标检测专栏探讨了YOLO的创新改进,如多尺度特征提取的DWRSeg网络。该网络通过区域残差化和语义残差化提升效率,使用DWR和SIR模块优化高层和低层特征。DWRSeg在Cityscapes和CamVid数据集上表现优秀,速度与准确性兼备。论文和代码已公开。核心代码展示了一个包含DWR模块的卷积层。更多配置详情见相关链接。
|
3月前
|
机器学习/深度学习 自然语言处理 并行计算
【YOLOv8改进 -注意力机制】Mamba之MLLAttention :基于Mamba和线性注意力Transformer的模型
YOLOv8专栏探讨了该目标检测模型的创新改进,包括使用Mamba模型的线性注意力Transformer变体,称为MLLA。Mamba的成功关键在于遗忘门和块设计,MLLA结合了这些优点,提升了视觉任务的性能。文章提供全面分析,并提出MLLA模型,其在效率和准确性上超过多种视觉模型。论文和代码可在提供的链接中找到。MLLA Block的代码示例展示了如何整合关键组件以实现高效运算。更多配置详情见相关链接。
|
3月前
|
机器学习/深度学习 测试技术 网络架构
【YOLOv10改进-注意力机制】MSCAAttention多尺度卷积注意力
YOLOv10专栏介绍了一种新的卷积网络架构SegNeXt,它在语义分割任务中展现出优于Transformer模型的效率和效果。SegNeXt通过名为Multi-Scale Convolutional Attention (MSCA)的组件,结合局部信息聚合、多尺度上下文捕获和通道关系模拟,提升了性能。在多个数据集上,SegNeXt以较少参数实现了超过现有SOTA的性能,特别是在Pascal VOC 2012上,以1/10的参数量达到90.6%的mIoU。YOLOv10引入了MSCA模块,用于增强目标检测的上下文关注。相关代码和配置详情可在链接中找到。
|
4月前
|
计算机视觉
【YOLOv8改进 - 特征融合NECK】 HS-FPN :用于处理多尺度特征融合的网络结构,降低参数
MFDS-DETR是针对白细胞检测的创新方法,它通过HS-FPN和可变形自注意力解决规模差异和特征稀缺问题。HS-FPN利用通道注意力模块增强特征表达,改善多尺度挑战。代码和数据集可在给定链接获取。此方法在WBCDD、LISC和BCCD数据集上表现优越,证明了其有效性和通用性。YOLO系列文章提供了更多目标检测改进和实战案例。
|
5月前
|
网络架构
YOLOv5改进 | 2023主干篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv5(超级轻量化精度更高)
YOLOv5改进 | 2023主干篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv5(超级轻量化精度更高)
273 0
|
5月前
|
机器学习/深度学习 网络架构
YOLOv8改进 | 2023主干篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv8(超级轻量化精度更高)
YOLOv8改进 | 2023主干篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv8(超级轻量化精度更高)
416 1
|
5月前
|
机器学习/深度学习 存储 算法
模型部署系列 | 卷积Backbone量化技巧集锦
模型部署系列 | 卷积Backbone量化技巧集锦
87 0