Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RT-DETR优化改进:轻量级上采样CARAFE算子 | 注意力机制大作战

RT-DETR优化改进:轻量级上采样CARAFE算子 | 注意力机制大作战

原创
作者头像
AI小怪兽
修改于 2023-11-20 01:41:16
修改于 2023-11-20 01:41:16
1.2K00
代码可运行
举报
文章被收录于专栏:YOLO大作战YOLO大作战
运行总次数:0
代码可运行

本文独家改进: 上采样操作CARAFE,具有感受野大、内容感知、轻量级、计算速度快等优点,引入RT-DETR二次创新;

1)代替Upsample进行使用;

1.CARAFE介绍

论文:https://arxiv.org/abs/1905.02188

代码:GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark

本文尝试提出一个新的上采样操作CARAFE,它应该具有以下特点:

  • 感受野大。不同于以往只利用亚像素邻域的工作(如双线性插值),CARAFE可以在一个大的接收域中聚合上下文信息。
  • 内容感知。CARAFE不是为所有的样本使用一个固定的内核(例如反卷积),而是支持特定于实例的内容感知处理,它可以动态地生成自适应的内核。
  • 轻量级、计算速度快。CARAFE引入了很少的计算开销,可以很容易地集成到现有的网络架构中

在这项工作中,我们提出了内容感知特征重组(CARAFE)来上采样一个特征地图。在每个位置上,CARAFE可以利用底层的内容信息来预测重组内核,并在预定义的附近区域内重组特征。由于内容信息,CARAFE可以在不同的位置使用自适应和优化的重组核,实现比主流的上采样操作(如插值或反褶积)更好的性能。

为了验证CARAFE的有效性,包括目标检测、实例分割、语义分割、图像修复等,在MS COCO test-dev 2018上,CARAFE可以将Faster RCNN的检测性能提高1.2%,将Mask RCNN的实例分割性能提高1.3%。当对256通道的H × W特征图进行2倍的上采样时,CARAFE引入的计算开销只有H * W * 199k FLOPs,而反卷积的计算开销为H * W * 1180k FLOPs。因此,CARAFE是一个有效和高效的特征上采样算子。

2.CARAFE加入RT-DETR

2.1加入ultralytics/nn/attention/attention.py

核心代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class CARAFE(nn.Module):
    # CARAFE: Content-Aware ReAssembly of FEatures       https://arxiv.org/pdf/1905.02188.pdf
    def __init__(self, c1, c2, kernel_size=3, up_factor=2):
        super(CARAFE, self).__init__()
        self.kernel_size = kernel_size
        self.up_factor = up_factor
        self.down = nn.Conv2d(c1, c1 // 4, 1)
        self.encoder = nn.Conv2d(c1 // 4, self.up_factor ** 2 * self.kernel_size ** 2,
                                 self.kernel_size, 1, self.kernel_size // 2)
        self.out = nn.Conv2d(c1, c2, 1)

    def forward(self, x):
        N, C, H, W = x.size()
        # N,C,H,W -> N,C,delta*H,delta*W
        # kernel prediction module
        kernel_tensor = self.down(x)  # (N, Cm, H, W)
        kernel_tensor = self.encoder(kernel_tensor)  # (N, S^2 * Kup^2, H, W)
        kernel_tensor = F.pixel_shuffle(kernel_tensor, self.up_factor)  # (N, S^2 * Kup^2, H, W)->(N, Kup^2, S*H, S*W)
        kernel_tensor = F.softmax(kernel_tensor, dim=1)  # (N, Kup^2, S*H, S*W)
        kernel_tensor = kernel_tensor.unfold(2, self.up_factor, step=self.up_factor)  # (N, Kup^2, H, W*S, S)
        kernel_tensor = kernel_tensor.unfold(3, self.up_factor, step=self.up_factor)  # (N, Kup^2, H, W, S, S)
        kernel_tensor = kernel_tensor.reshape(N, self.kernel_size ** 2, H, W,
                                              self.up_factor ** 2)  # (N, Kup^2, H, W, S^2)
        kernel_tensor = kernel_tensor.permute(0, 2, 3, 1, 4)  # (N, H, W, Kup^2, S^2)

        # content-aware reassembly module
        # tensor.unfold: dim, size, step
        x = F.pad(x, pad=(self.kernel_size // 2, self.kernel_size // 2,
                          self.kernel_size // 2, self.kernel_size // 2),
                  mode='constant', value=0)  # (N, C, H+Kup//2+Kup//2, W+Kup//2+Kup//2)
        x = x.unfold(2, self.kernel_size, step=1)  # (N, C, H, W+Kup//2+Kup//2, Kup)
        x = x.unfold(3, self.kernel_size, step=1)  # (N, C, H, W, Kup, Kup)
        x = x.reshape(N, C, H, W, -1)  # (N, C, H, W, Kup^2)
        x = x.permute(0, 2, 3, 1, 4)  # (N, H, W, C, Kup^2)

        out_tensor = torch.matmul(x, kernel_tensor)  # (N, H, W, C, S^2)
        out_tensor = out_tensor.reshape(N, H, W, -1)
        out_tensor = out_tensor.permute(0, 3, 1, 2)
        out_tensor = F.pixel_shuffle(out_tensor, self.up_factor)
        out_tensor = self.out(out_tensor)
        # print("up shape:",out_tensor.shape)
        return out_tensor

详见:

https://blog.csdn.net/m0_63774211/article/details/134407373

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
YoloV8改进策略:上采样改进:CARAFE:轻量级上采样|即插即用|附改进方法+代码
https://arxiv.org/pdf/1905.02188 特征上采样是许多现代卷积网络架构(例如特征金字塔)中的关键操作。其设计对于诸如目标检测和语义/实例分割等密集预测任务至关重要。在本文中,我们提出了内容感知特征重组(CARAFE),这是一种通用、轻量级且高度有效的算子,以实现这一目标。CARAFE具有几个吸引人的特性:(1)大视野。与仅利用子像素邻域的前期工作(例如双线性插值)不同,CARAFE可以在大感受野内聚合上下文信息。(2)内容感知处理。与对所有样本使用固定核(例如反卷积)不同,CARAFE支持针对实例的内容感知处理,可以即时生成自适应核。(3)轻量级且计算速度快。CARAFE引入的计算开销很小,并且可以轻松集成到现代网络架构中。我们在目标检测、实例/语义分割和图像修复的标准基准上进行了综合评估。CARAFE在所有任务中都表现出一致且显著的增益(分别为、、、),且计算开销可忽略不计。它有望成为未来研究的强大构建块。代码和模型可在https://github.com/open-mmlab/mmdetection获取。
AI浩
2024/11/07
6770
YoloV8改进策略:上采样改进:CARAFE:轻量级上采样|即插即用|附改进方法+代码
Yolo11改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码
https://arxiv.org/pdf/1905.02188 特征上采样是许多现代卷积网络架构(例如特征金字塔)中的关键操作。其设计对于诸如目标检测和语义/实例分割等密集预测任务至关重要。在本文中,我们提出了内容感知特征重组(CARAFE),这是一种通用、轻量级且高度有效的算子,以实现这一目标。CARAFE具有几个吸引人的特性:(1)大视野。与仅利用子像素邻域的前期工作(例如双线性插值)不同,CARAFE可以在大感受野内聚合上下文信息。(2)内容感知处理。与对所有样本使用固定核(例如反卷积)不同,CARAFE支持针对实例的内容感知处理,可以即时生成自适应核。(3)轻量级且计算速度快。CARAFE引入的计算开销很小,并且可以轻松集成到现代网络架构中。我们在目标检测、实例/语义分割和图像修复的标准基准上进行了综合评估。CARAFE在所有任务中都表现出一致且显著的增益(分别为、、、),且计算开销可忽略不计。它有望成为未来研究的强大构建块。代码和模型可在https://github.com/open-mmlab/mmdetection获取。
AI浩
2024/11/11
9370
Yolo11改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码
RT-DETR改进:新的设计范式Slim Neck助力RT-DETR | Neck改进
本文独家改进: 采用 GSConv 方法的 Slim-Neck 可缓解 DSC 缺陷对模型的负面影响,并充分利用深度可分离卷积 DSC 的优势,引入RT-DETR二次创新;
AI小怪兽
2023/11/20
9520
RT-DETR改进策略:自研独家创新BSAM注意力 ,基于CBAM升级 | 注意力机制大作战
本文全网首发独家改进:提出新颖的注意力BSAM(BiLevel Spatial Attention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的 BiLevel Attention+Spartial Attention
AI小怪兽
2023/11/20
7940
YOLOv10涨点改进:注意力魔改 | 轻量级自注意力机制CoordAttention | CVPR2021
💡💡💡本文改进:替换YOLOv10中的PSA进行二次创新,1)CoordAttention注意力替换 PSA中的多头自注意力模块MHSA注意力;2) CoordAttention直接替换 PSA;
AI小怪兽
2024/06/12
3.8K0
YOLOv5改进---注意力机制:DoubleAttention注意力,SENet进阶版本
摘要:DoubleAttention注意力助力YOLOv5,即插即用,性能优于SENet
AI小怪兽
2023/11/30
7090
YOLOv8、v7、v5独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测
摘要:我们介绍DySample,一个超轻量和有效的动态上采样器。虽然最近基于内核的动态上采样器(如CARAFE、FADE和SAPA)的性能提升令人印象深刻,但它们带来了大量的工作负载,主要是由于耗时的动态卷积和用于生成动态内核的额外子网络。此外,对高特征指导的需求在某种程度上限制了它们的应用场景。为了解决这些问题,我们绕过动态卷积并从点采样的角度制定上采样,这更节省资源,并且可以很容易地使用PyTorch中的标准内置函数实现。我们首先展示了一个朴素的设计,然后演示了如何逐步加强其上采样行为,以实现我们的新上采样器DySample。与以前基于内核的动态上采样器相比,DySample不需要定制CUDA包,并且具有更少的参数、FLOPs、GPU内存和延迟。除了轻量级的特点,DySample在五个密集预测任务上优于其他上采样器,包括语义分割、目标检测、实例分割、全视分割和单目深度估计。
AI小怪兽
2024/02/01
4.9K0
YOLOv8改进:HIC-YOLOv8复现魔改HIC-YOLOv5,助力小目标检测(Small Object Detection)
💡💡💡本文独家改进:改进点:1)backbone加入CBAM;2)backbone、neck连接处加入involution注意力;3)添加一个针对小物体的额外预测头,提升小目标检测性能;
AI小怪兽
2023/11/06
5K0
Python实现替换照片人物背景,精细到头发丝(附代码)
其中,model文件夹放的是模型文件,模型文件的下载地址为:https://drive.google.com/drive/folders/1NmyTItr2jRac0nLoZMeixlcU1myMiYTs
用户8544541
2022/03/24
1.1K0
Python实现替换照片人物背景,精细到头发丝(附代码)
CARAFE:基于内容感知的特征(FEatures)重新组装
https://arxiv.org/pdf/1905.02188 特征上采样是许多现代卷积网络架构(例如特征金字塔)中的关键操作。其设计对于诸如目标检测和语义/实例分割等密集预测任务至关重要。在本文中,我们提出了内容感知特征重组(CARAFE),这是一种通用、轻量级且高度有效的算子,以实现这一目标。CARAFE具有几个吸引人的特性:(1)大视野。与仅利用子像素邻域的前期工作(例如双线性插值)不同,CARAFE可以在大感受野内聚合上下文信息。(2)内容感知处理。与对所有样本使用固定核(例如反卷积)不同,CARAFE支持针对实例的内容感知处理,可以即时生成自适应核。(3)轻量级且计算速度快。CARAFE引入的计算开销很小,并且可以轻松集成到现代网络架构中。我们在目标检测、实例/语义分割和图像修复的标准基准上进行了综合评估。CARAFE在所有任务中都表现出一致且显著的增益(分别为、、、),且计算开销可忽略不计。它有望成为未来研究的强大构建块。代码和模型可在https://github.com/open-mmlab/mmdetection获取。
AI浩
2024/11/04
2610
CARAFE:基于内容感知的特征(FEatures)重新组装
YOLOv5改进: RT-DETR引入YOLOv5,neck和检测头助力检测
本文独家改进: 1) RT-DETR neck代替YOLOv5 neck部分; 2)引入RTDETRDecoder
AI小怪兽
2023/12/17
1.7K1
YOLOv8改进:全网原创首发 | 多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9
本文全网首发独家改进:多尺度空洞注意力(MSDA)采用多头的设计,在不同的头部使用不同的空洞率执行滑动窗口膨胀注意力(SWDA),全网独家首发,创新力度十足,适合科研
AI小怪兽
2023/10/20
2.2K0
视觉注意力机制 | Non-local模块与Self-attention的之间的关系与区别?
计算机视觉(computer vision)中的注意力机制(attention)的基本思想就是想让系统学会注意力——能够忽略无关信息而关注重点信息。
BBuf
2020/03/05
5.2K0
【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2
这篇论文介绍了一种名为 EfficientFormerV2 的新型高效视觉模型,旨在解决如何在移动设备上实现与 MobileNet 相当的模型大小和推理速度的同时,达到与 Vision Transformers (ViTs) 相似的高性能。
HABuo
2025/03/11
3000
【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2
注意力机制---Yolov5/Yolov7引入CBAM、GAM、Resnet_CBAM
论文题目:《CBAM: Convolutional Block Attention Module》 论文地址: https://arxiv.org/pdf/1807.06521.pdf
AI小怪兽
2023/11/30
2.3K0
注意力机制---Yolov5/Yolov7引入BoTNet Transformer、MHSA
摘要:BoTNet同时使用卷积和自注意力机制,即在ResNet的最后3个bottleneck blocks中使用全局多头自注意力(MHSA)替换3 × 3空间卷积;MHSA作为注意力机制加入yolov5/yolov7也取得了涨点
AI小怪兽
2023/11/30
1.3K0
YoloV8改进策略:注意力改进|VOLO,视觉识别中的视觉展望器|即插即用|附代码+改进方法
本文参考的是《VOLO:视觉识别中的视觉展望器》一文,该论文主要讨论了视觉识别领域中卷积神经网络(CNNs)与视觉转换器(ViTs)的性能对比,并提出了一个新的模型架构——Vision Outlooker(VOLO)。VOLO通过引入一种新颖的前景注意力机制(Outlook Attention),在ImageNet分类任务上实现了卓越的性能,且能够很好地迁移到下游任务,如语义分割。
AI浩
2024/11/13
1.4K0
YoloV8改进策略:注意力改进|VOLO,视觉识别中的视觉展望器|即插即用|附代码+改进方法
Yolov5/Yolov7改进Involution(内卷),可构建用于视觉识别的新一代神经网络!涨点显著!
摘要:​涨点神器!利用Involution(内卷),可构建用于视觉识别的新一代神经网络!在分类、检测和分割任务上涨点显著!
AI小怪兽
2023/11/30
3840
网络架构设计:CNN based和Transformer based
从DETR到ViT等工作都验证了Transformer在计算机视觉领域的潜力,那么很自然的就需要考虑一个新的问题,图像的特征提取,究竟是CNN好还是Transformer好?
磐创AI
2021/02/23
9430
网络架构设计:CNN based和Transformer based
计算机视觉中常用的注意力机制
注意力机制起初是作为自然语言处理中的工作Attention Is All You Need被大家所熟知,从而也引发了一系列的XX is All You Need的论文命题,SENET-Squeeze-and-Excitation Networks是注意力机制在计算机视觉中应用的早期工作之一,并获得了2017年imagenet, 同时也是最后一届Imagenet比赛的冠军,后面就又出现了各种各样的注意力机制,应用在计算机视觉的任务中。
为为为什么
2022/08/09
8710
计算机视觉中常用的注意力机制
推荐阅读
YoloV8改进策略:上采样改进:CARAFE:轻量级上采样|即插即用|附改进方法+代码
6770
Yolo11改进策略:上采样改进|CARAFE,轻量级上采样|即插即用|附改进方法+代码
9370
RT-DETR改进:新的设计范式Slim Neck助力RT-DETR | Neck改进
9520
RT-DETR改进策略:自研独家创新BSAM注意力 ,基于CBAM升级 | 注意力机制大作战
7940
YOLOv10涨点改进:注意力魔改 | 轻量级自注意力机制CoordAttention | CVPR2021
3.8K0
YOLOv5改进---注意力机制:DoubleAttention注意力,SENet进阶版本
7090
YOLOv8、v7、v5独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测
4.9K0
YOLOv8改进:HIC-YOLOv8复现魔改HIC-YOLOv5,助力小目标检测(Small Object Detection)
5K0
Python实现替换照片人物背景,精细到头发丝(附代码)
1.1K0
CARAFE:基于内容感知的特征(FEatures)重新组装
2610
YOLOv5改进: RT-DETR引入YOLOv5,neck和检测头助力检测
1.7K1
YOLOv8改进:全网原创首发 | 多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9
2.2K0
视觉注意力机制 | Non-local模块与Self-attention的之间的关系与区别?
5.2K0
【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2
3000
注意力机制---Yolov5/Yolov7引入CBAM、GAM、Resnet_CBAM
2.3K0
注意力机制---Yolov5/Yolov7引入BoTNet Transformer、MHSA
1.3K0
YoloV8改进策略:注意力改进|VOLO,视觉识别中的视觉展望器|即插即用|附代码+改进方法
1.4K0
Yolov5/Yolov7改进Involution(内卷),可构建用于视觉识别的新一代神经网络!涨点显著!
3840
网络架构设计:CNN based和Transformer based
9430
计算机视觉中常用的注意力机制
8710
相关推荐
YoloV8改进策略:上采样改进:CARAFE:轻量级上采样|即插即用|附改进方法+代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验