【即插即用涨点模块】GSConv混合标准卷积与深度可分离卷积:轻量化同时确保精度与速度提升【附源码】

发布于:2025-05-13 ⋅ 阅读:(27) ⋅ 点赞:(0)

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称 项目名称
1.【人脸识别与管理系统开发 2.【车牌识别与自动收费管理系统开发
3.【手势识别系统开发 4.【人脸面部活体检测系统开发
5.【图片风格快速迁移软件开发 6.【人脸表表情识别系统
7.【YOLOv8多目标识别与自动标注软件开发 8.【基于深度学习的行人跌倒检测系统
9.【基于深度学习的PCB板缺陷检测系统 10.【基于深度学习的生活垃圾分类目标检测系统
11.【基于深度学习的安全帽目标检测系统 12.【基于深度学习的120种犬类检测与识别系统
13.【基于深度学习的路面坑洞检测系统 14.【基于深度学习的火焰烟雾检测系统
15.【基于深度学习的钢材表面缺陷检测系统 16.【基于深度学习的舰船目标分类检测系统
17.【基于深度学习的西红柿成熟度检测系统 18.【基于深度学习的血细胞检测与计数系统
19.【基于深度学习的吸烟/抽烟行为检测系统 20.【基于深度学习的水稻害虫检测与识别系统
21.【基于深度学习的高精度车辆行人检测与计数系统 22.【基于深度学习的路面标志线检测与识别系统
23.【基于深度学习的智能小麦害虫检测识别系统 24.【基于深度学习的智能玉米害虫检测识别系统
25.【基于深度学习的200种鸟类智能检测与识别系统 26.【基于深度学习的45种交通标志智能检测与识别系统
27.【基于深度学习的人脸面部表情识别系统 28.【基于深度学习的苹果叶片病害智能诊断系统
29.【基于深度学习的智能肺炎诊断系统 30.【基于深度学习的葡萄簇目标检测系统
31.【基于深度学习的100种中草药智能识别系统 32.【基于深度学习的102种花卉智能识别系统
33.【基于深度学习的100种蝴蝶智能识别系统 34.【基于深度学习的水稻叶片病害智能诊断系统
35.【基于与ByteTrack的车辆行人多目标检测与追踪系统 36.【基于深度学习的智能草莓病害检测与分割系统
37.【基于深度学习的复杂场景下船舶目标检测系统 38.【基于深度学习的农作物幼苗与杂草检测系统
39.【基于深度学习的智能道路裂缝检测与分析系统 40.【基于深度学习的葡萄病害智能诊断与防治系统
41.【基于深度学习的遥感地理空间物体检测系统 42.【基于深度学习的无人机视角地面物体检测系统
43.【基于深度学习的木薯病害智能诊断与防治系统 44.【基于深度学习的野外火焰烟雾检测系统
45.【基于深度学习的脑肿瘤智能检测系统 46.【基于深度学习的玉米叶片病害智能诊断与防治系统
47.【基于深度学习的橙子病害智能诊断与防治系统 48.【基于深度学习的车辆检测追踪与流量计数系统
49.【基于深度学习的行人检测追踪与双向流量计数系统 50.【基于深度学习的反光衣检测与预警系统
51.【基于深度学习的危险区域人员闯入检测与报警系统 52.【基于深度学习的高密度人脸智能检测与统计系统
53.【基于深度学习的CT扫描图像肾结石智能检测系统 54.【基于深度学习的水果智能检测系统
55.【基于深度学习的水果质量好坏智能检测系统 56.【基于深度学习的蔬菜目标检测与识别系统
57.【基于深度学习的非机动车驾驶员头盔检测系统 58.【太基于深度学习的阳能电池板检测与分析系统
59.【基于深度学习的工业螺栓螺母检测 60.【基于深度学习的金属焊缝缺陷检测系统
61.【基于深度学习的链条缺陷检测与识别系统 62.【基于深度学习的交通信号灯检测识别
63.【基于深度学习的草莓成熟度检测与识别系统 64.【基于深度学习的水下海生物检测识别系统
65.【基于深度学习的道路交通事故检测识别系统 66.【基于深度学习的安检X光危险品检测与识别系统
67.【基于深度学习的农作物类别检测与识别系统 68.【基于深度学习的危险驾驶行为检测识别系统
69.【基于深度学习的维修工具检测识别系统 70.【基于深度学习的维修工具检测识别系统
71.【基于深度学习的建筑墙面损伤检测系统 72.【基于深度学习的煤矿传送带异物检测系统
73.【基于深度学习的老鼠智能检测系统 74.【基于深度学习的水面垃圾智能检测识别系统
75.【基于深度学习的遥感视角船只智能检测系统 76.【基于深度学习的胃肠道息肉智能检测分割与诊断系统
77.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统 78.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统
79.【基于深度学习的果园苹果检测与计数系统 80.【基于深度学习的半导体芯片缺陷检测系统
81.【基于深度学习的糖尿病视网膜病变检测与诊断系统 82.【基于深度学习的运动鞋品牌检测与识别系统
83.【基于深度学习的苹果叶片病害检测识别系统 84.【基于深度学习的医学X光骨折检测与语音提示系统
85.【基于深度学习的遥感视角农田检测与分割系统 86.【基于深度学习的运动品牌LOGO检测与识别系统
87.【基于深度学习的电瓶车进电梯检测与语音提示系统 88.【基于深度学习的遥感视角地面房屋建筑检测分割与分析系统
89.【基于深度学习的医学CT图像肺结节智能检测与语音提示系统 90.【基于深度学习的舌苔舌象检测识别与诊断系统
91.【基于深度学习的蛀牙智能检测与语音提示系统 92.【基于深度学习的皮肤癌智能检测与语音提示系统

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~

《------正文------》

论文信息

在这里插入图片描述

论文地址:https://arxiv.org/abs/2206.02424
源码地址:https://github.com/alanli1997/slim-neck-by-gsconv

摘要

实时目标检测在工业和研究领域至关重要。传统轻量化模型依赖深度可分离卷积(DSC)但牺牲精度,而大模型难以满足边缘设备实时性需求。本文提出新型轻量卷积技术GSConv,通过混合标准卷积(SC)与DSC的特征输出,在保持精度的同时显著降低计算成本。基于GSConv进一步设计「瘦颈」(Slim-Neck, SNs)架构,通过20+组对比实验验证其优越性:在Tesla T4上以~100FPS实现SODA10M数据集70.9% AP50,达到SOTA性能。

方法

在这里插入图片描述

  1. GSConv混合策略​:主分支采用3x3 SC捕捉通道关联,辅助分支采用5x5 DSC提取空间特征,通过均匀混洗(shuffle)融合两类特征。
    在这里插入图片描述

  2. VoV-GSCSP模块​:基于GSConv设计跨阶段部分网络,三种结构中以VoV-GSCSP1性价比最高。
    在这里插入图片描述

  3. 瘦颈架构(SNs)​​:仅在颈部使用GSConv,主干保留SC,平衡精度与速度。

  4. 注意力机制优化​:在主干末端插入CA模块,头部入口嵌入SPPF。

  5. 损失函数与激活函数​:采用EIoU提升边框回归精度,Mish激活函数增强非线性。

对应图表​:

  • GSConv结构:
    在这里插入图片描述

  • 特征可视化对比:
    在这里插入图片描述

  • VoV-GSCSP设计:
    在这里插入图片描述

创新点

  1. GSConv技术​:首创SC与 DSC的特征混洗机制,以50%计算量实现接近SC的表示能力。
  2. 硬件友好设计​:支持线性运算混洗作为转置操作的替代方案,适配边缘设备。
  3. 颈部轻量化范式​:首次提出「仅瘦颈」设计,相比全模型轻量化提升6.3% AP50。
  4. 工程优化组合​:验证EIoU+Mish在轻量化模型中的最佳实践。

GSConv核心作用

  1. 特征融合​:通过混洗打破DSC的通道隔离,保留空间-通道关联。
  2. 计算优化​:FLOPs仅为SC的50%,参数量减少36%。
  3. 扩展性强​:支持大核(17x17)辅助分支扩展感受野。
  4. 精度保障​:在WiderPerson上使轻量化模型AP50提升14.3%。

对应图表​:

  • 不同卷积方法对比:
    在这里插入图片描述

总结

GSConv通过优雅的混合策略解决了轻量化卷积的表示瓶颈,SNs架构将其优势聚焦于检测器颈部。实验表明该方法在边缘设备上实现精度与速度的帕累托最优,为实时检测提供新范式。未来可扩展至低光检测、遥感图像等场景。

源码

class GSConv(nn.Module):
    def __init__(self, c1, c2, k=1, s=1, g=1, act=True):
        """
        初始化GSConv模块
        :param c1: 输入通道数
        :param c2: 输出通道数
        :param k: 卷积核大小
        :param s: 步长
        :param g: 分组卷积的组数
        :param act: 是否使用激活函数
        """
        super().__init__()
        # 将输出通道数分成两半
        c_ = c2 // 2

        # 第一个普通卷积层
        self.cv1 = Conv(c1, c_, k, s, None, g, act)

        # 第二个深度可分离卷积层,卷积核大小为5x5
        self.cv2 = Conv(c_, c_, 5, 1, None, c_, act)

    def forward(self, x):
        # 第一次卷积操作
        x1 = self.cv1(x)

        # 对第一次卷积的结果进行第二次卷积,并将两个结果在通道维度拼接
        x2 = torch.cat((x1, self.cv2(x1)), 1)

        # 获取张量形状:batch_size, channels, height, width
        b, n, h, w = x2.data.size()

        # 将batch和channel维度合并以便后续处理
        b_n = b * n // 2

        # 改变张量形状并进行维度置换
        y = x2.reshape(b_n, 2, h * w)
        y = y.permute(1, 0, 2)
        y = y.reshape(2, -1, n // 2, h, w)

        # 最终将两个分组在通道维度拼接,恢复通道顺序
        return torch.cat((y[0], y[1]), 1)


在这里插入图片描述

好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!