
💡💡💡本文全网首发独家改进:一种新颖的可扩张残差(DWR)注意力模块,加强不同尺度特征提取能力,创新十足,独家首发适合科研
1)结合C2f进行使用;
推荐指数:五星
DWR| 亲测在多个数据集能够实现涨点,多尺度特性在小目标检测表现也十分出色。
1.DWR介绍

论文: https://arxiv.org/pdf/2212.01173.pdf
摘要:当前的许多工作直接采用多速率深度扩张卷积从一个输入特征图中同时捕获多尺度上下文信息,从而提高实时语义分割的特征提取效率。 然而,这种设计可能会因为结构和超参数的不合理而导致多尺度上下文信息的访问困难。 为了降低绘制多尺度上下文信息的难度,我们提出了一种高效的多尺度特征提取方法,该方法分解了原始的单步特征提取方法方法分为两个步骤,区域残差-语义残差。 在该方法中,多速率深度扩张卷积在特征提取中发挥更简单的作用:根据第一步提供的每个简明区域形式特征图,在第二步中使用一个所需的感受野执行简单的基于语义的形态过滤 一步,提高他们的效率。 此外,扩张率和扩张卷积的容量每个网络阶段都经过精心设计,以充分利用所有可以实现的区域形式的特征图。 因此,我们分别为高层和低层网络设计了一种新颖的扩张式残差(DWR)模块和简单倒置残差(SIR)模块,并形成了强大的DWR分段(DWRSeg)网络。 对 Cityscapes 和 CamVid 数据集的大量实验表明除了重量更轻之外,我们的方法还通过在准确性和推理速度之间实现最先进的权衡来提高其有效性。 在不进行预训练或采用任何训练技巧的情况下,我们在 Cityscapes 测试集上以 319.5 FPS 的速度在一张 NVIDIA GeForce GTX 1080 Ti 卡上实现了 72.7% 的 mIoU,超过了最新方法的 69.5 FPS 和 0.8% mIOU。
本文贡献:


核心代码:
class DWR(nn.Module):
def __init__(self, dim) -> None:
super().__init__()
self.conv_3x3 = Conv(dim, dim // 2, 3)
self.conv_3x3_d1 = Conv(dim // 2, dim, 3, d=1)
self.conv_3x3_d3 = Conv(dim // 2, dim // 2, 3, d=3)
self.conv_3x3_d5 = Conv(dim // 2, dim // 2, 3, d=5)
self.conv_1x1 = Conv(dim * 2, dim, k=1)
def forward(self, x):
conv_3x3 = self.conv_3x3(x)
x1, x2, x3 = self.conv_3x3_d1(conv_3x3), self.conv_3x3_d3(conv_3x3), self.conv_3x3_d5(conv_3x3)
x_out = torch.cat([x1, x2, x3], dim=1)
x_out = self.conv_1x1(x_out) + x
return x_out获取代码关注私信
详见:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。