【论文笔记】Slim-neck by GSConv

前言

在这里插入图片描述
作者提出了一种新方法GSConv来减轻模型复杂度,保持准确性。GSConv可以更好地平衡模型的准确性和速度。并且,提供了一种设计范式Slim-Neck,以实现检测器更高的计算成本效益。实验过程中,与原始网络相比,改进方法获得了最优秀的检测结果。

论文地址:https://arxiv.org/abs/2206.02424

Github:https://github.com/AlanLi1997/Slim-neck-by-GSConv


1. 简介

目标检测是计算机视觉中一项艰巨的下游任务。对于车载边缘计算平台,大模型很难达到实时检测的要求。而且,由大量深度可分离卷积层构建的轻量级模型无法达到足够的准确性。因此本文引入了一种新方法 GSConv 来减轻模型的复杂度并保持准确性。GSConv 可以更好地平衡模型的准确性和速度。并且,提供了一种设计范式,Slim-Neck,以实现检测器更高的计算成本效益。在实验中,与原始网络相比,本文方法获得了最先进的结果(例如,SODA10M 在 Tesla T4 上以 ~100FPS 的速度获得了 70.9% mAP0.5)

MobileNet、ShuffleNets这些轻量级模型都采用了DSC操作来提升检测器的速度。但是当这些模型应用于自动驾驶汽车的时候,准确性就不够了。

但是,DSC 的缺点也很明显:输入图像的通道信息在计算过程中是分离的。
在这里插入图片描述
对于自动驾驶,速度和准确性同样重要。通过 GSConv 引入了 Slim-Neck 方法,以减轻模型的复杂度同时可以保持精度。GSConv 更好地平衡了模型的准确性和速度。

如上图所示,作者在SODA10M无人驾驶数据集上比较了最先进了Slim Neck 检测器和原始检测器的速度和准确度,并证实了该方法的有效性。

2. GSConv

在这里插入图片描述
通过上图可以知道,GSConv首先输入进行一个普通卷积的下采样,然后使用DWConv深度卷积,并将两个conv的结果拼接起来(一个SC一个DSC);最后进行shuffle操作 ,让之前两个卷积的对应通道数挨在一起,通过上方图片也可以看出来。(表述的可能不太清楚,看图片我觉得要清晰一点哈哈哈)

搭配代码食用或许能更好理解一点:

class GSConv(nn.Module):
    def __init__(self, c1, c2, k=1, s=1, g=1, act=True):
        super().__init__()
        c_ = c2 // 2
        self.cv1 = Conv(c1, c_, k, s, None, g, act)	# g:gract:分组卷积
        self.cv2 = Conv(c_, c_, 5, 
评论 26
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值