首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YOLOv8独家改进:轻量级原创自研 | 一种多尺度的GSConv卷积变体,轻量化的同时能够实现涨点 | 新颖的轻量级网络

YOLOv8独家改进:轻量级原创自研 | 一种多尺度的GSConv卷积变体,轻量化的同时能够实现涨点 | 新颖的轻量级网络

原创
作者头像
AI小怪兽
发布于 2024-02-09 06:44:55
发布于 2024-02-09 06:44:55
4.5K026
代码可运行
举报
文章被收录于专栏:YOLO大作战YOLO大作战
运行总次数:26
代码可运行

💡💡💡本文独家改进:1)基于GSConv提出了一种Multi-Scale Ghost Conv的卷积变体,保证轻量级的同时实现涨点,2)同时结合Bottleneck,设计了一种新颖的轻量级网络。

💡💡💡在多个数据集验证能够涨点,同时跟yolov8n、yolov8s进行参数量对比:

parameters、GFLOPs都有大幅度的降低

parameters

GFLOPs

yolov8s

11166560

28.8

yolov8s-MSGConv

10429727

27.3

yolov8s-lyolo

6625687

18.1

yolov8n

3011823

8.2

yolov8n-MSGConv

2838399

7.9

yolov8n-lyolo

2041436

6.3

1.原理介绍

摘要: 由于内存和计算资源的限制,在嵌入式设备商部署卷积神经网络CNN很困难。Deploying convolutional neural networks (CNNs)on embedded devices is difficulty due to the limited memory and computation resources. 特征图中的冗余是成功神经网络的重要特征,但在神经网络架构设计中很少研究,本文提出一种新的Ghost模块,从廉价的操作中生成更多的特征图。基于一组内在的特征图,以低成本应用一系列线性变换来生成许多ghost特征图,可以充分揭示内在特征的信息。所提出的Ghost模块可以作为即插即用的组件轻松升级现有的卷积神经网络,Ghost bottleneck被设计为堆叠Ghost模块 ,然后轻松建立轻量级GhostNet。

在主流的深度神经网络提取的特征图中,丰富甚至冗余的信息通常保证了对输入数据的全面理解。例如,图1展示了由ResNet-50生成的输入图像的一些特征图,并且存在许多相似的特征图对,就像彼此之间的幽灵一样

引入了一个新的 Ghost 模块,通过使用更少的参数来生成更多的特征。具体来说,深度神经网络中的一个普通卷积层会被分成两部分。第一部分涉及普通卷积,但它们的总数将受到严格控制。给定第一部分的内在特征图,然后应用一系列简单的线性操作来生成更多的特征图。在不改变输出特征图的大小的情况下,与普通卷积神经网络相比,这个 Ghost 模块所需的总体参数数量和计算复杂度有所降低。

基于 Ghost 模块,建立了一个高效的神经架构,即 GhostNet。首先替换基准神经架构中的原始卷积层以证明 Ghost 模块的有效性,然后验证 GhostNets 在几个基准视觉数据集上的优越性。

利用ghost模块的优势,介绍了专门为小模型设计Ghost bottlenck,如图3所示。Ghost bottleneck类似于ResNet中基本残差块,其中集成了几个卷积层和shortcuts。ghost bottleneck主要有堆叠的ghost module组成,第一个ghost模块充当增加通道数量的扩展层,将输出通道数和输入通道数之比成为扩展比。第二个ghost模块减少通道数量以匹配shortcuts,然后,shortcuts在这两个ghost模块的输入和输出之间。BN和ReLu在每一层之后应用,第二个ghost模块后不用ReLU。

1.1 多尺度GSConv

原始 GhostConv代码如下:

代码语言:python
代码运行次数:19
运行
AI代码解释
复制
class GhostConv(nn.Module):
    # Ghost Convolution https://github.com/huawei-noah/ghostnet
    def __init__(self, c1, c2, k=1, s=1, g=1, act=True):  # ch_in, ch_out, kernel, stride, groups
        super().__init__()
        c_ = c2 // 2  # hidden channels
        self.cv1 = Conv(c1, c_, k, s, None, g, act)
        self.cv2 = Conv(c_, c_, 5, 1, None, c_, act)

    def forward(self, x):
        y = self.cv1(x)
        return torch.cat([y, self.cv2(y)], 1)

2.如何将入到YOLOv8

核心代码:

代码语言:python
代码运行次数:7
运行
AI代码解释
复制
import torch
import torch.nn as nn
import math
from einops import rearrange


def autopad(k, p=None):  # kernel, padding
    # Pad to 'same'
    if p is None:
        p = k // 2 if isinstance(k, int) else [x // 2 for x in k]  # auto-pad
    return p


class Conv(nn.Module):
    # Standard convolution
    def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):  # ch_in, ch_out, kernel, stride, padding, groups
        super().__init__()
        self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False)
        self.bn = nn.BatchNorm2d(c2)
        self.act = nn.SiLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity())

    def forward(self, x):
        return self.act(self.bn(self.conv(x)))

    def forward_fuse(self, x):
        return self.act(self.conv(x))


class DWConv(Conv):
    # Depth-wise convolution class
    def __init__(self, c1, c2, k=1, s=1, act=True):  # ch_in, ch_out, kernel, stride, padding, groups
        super().__init__(c1, c2, k, s, g=math.gcd(c1, c2), act=act)

详见:

https://cv2023.blog.csdn.net/?type=lately

by CSDN AI小怪兽

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
YOLOv13改进:卷积魔改 | DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测
💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,完美和YOLOv13结合,助力涨点
AI小怪兽
2025/07/18
1150
Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2
引入到yolov8,Bottleneck与c2f结合,代替backbone中的所有c2f。
AI小怪兽
2023/10/30
3K0
Yolov8-pose关键点检测:模型轻量化设计 | 模型压缩率从6842降低到1018,GFLOPs从9.6降低至2.2
轻量化模型设计:模型压缩率从6842降低到1018,GFLOPs从9.6降低至2.2, mAP50从0.921变为0.92(几乎不变)
AI小怪兽
2023/12/08
1.8K1
YoloV8改进策略:轻量级Slim Neck打造极致的YoloV8
论文链接:https://arxiv.org/ftp/arxiv/papers/2206/2206.02424.pdf
AI浩
2024/10/22
3000
YoloV8改进策略:轻量级Slim Neck打造极致的YoloV8
【YOLOv8】YOLOv8改进系列(9)----替换主干网络之RepViT
论文介绍了一种新型的轻量级卷积神经网络(CNN)架构——RepViT,它通过从Vision Transformers(ViTs)的角度重新审视和改进传统的轻量级CNN设计,实现了在移动设备上的高性能和低延迟表现。RepViT在多个视觉任务中展现出优越的性能,特别是在ImageNet分类、目标检测、实例分割和语义分割任务中,均优于现有的轻量级ViTs和CNNs。
HABuo
2025/03/21
3730
【YOLOv8】YOLOv8改进系列(9)----替换主干网络之RepViT
一种基于YOLOv10的遥感小目标车辆检测算法(原创自研)
💡💡💡本文内容:提出了一种基于YOLOv10的遥感小目标车辆检测算法,包括1)SPPF_attention,重新设计加入注意力机制,提升小目标注意;2)SEAM提升小目标遮挡物性能提升;
AI小怪兽
2024/09/10
7570
YoloV8改进策略:Neck改进|Efficient-RepGFPN,实时目标检测的王者Neck
在实时目标检测领域,Yolo系列模型一直以其高效和准确而著称。近日,我们成功将Efficient-RepGFPN模块引入YoloV8中,实现了显著的涨点效果。这一改进不仅进一步提升了YoloV8的检测精度,还保留了其原有的高效性能,为实时目标检测领域带来了新的突破。
AI浩
2024/10/22
1.2K0
YoloV8改进策略:Neck改进|Efficient-RepGFPN,实时目标检测的王者Neck
YOLOv8改进:HIC-YOLOv8复现魔改HIC-YOLOv5,助力小目标检测(Small Object Detection)
💡💡💡本文独家改进:改进点:1)backbone加入CBAM;2)backbone、neck连接处加入involution注意力;3)添加一个针对小物体的额外预测头,提升小目标检测性能;
AI小怪兽
2023/11/06
5.3K0
YOLOv10涨点改进:上采样算子 | 轻量级上采样CARAFE算子
💡💡💡本文独家改进: 上采样操作CARAFE,具有感受野大、内容感知、轻量级、计算速度快等优点,引入yolov10二次创新;
AI小怪兽
2024/06/15
1.7K1
【目标检测】YOLOv5:修改自己的网络结构
YOLOv5就像一座金矿,里面有无数可以学习的东西。之前的博文一直将YOLOv5当作一个黑盒使用,只考虑模型的输入和输出,以此来对模型进行二次开发。 本篇博文将更近一层,深入到“金矿”内部,来尝试对模型结构进行替换。
zstar
2023/04/23
3.5K0
【目标检测】YOLOv5:修改自己的网络结构
RT-DETR改进:新的设计范式Slim Neck助力RT-DETR | Neck改进
本文独家改进: 采用 GSConv 方法的 Slim-Neck 可缓解 DSC 缺陷对模型的负面影响,并充分利用深度可分离卷积 DSC 的优势,引入RT-DETR二次创新;
AI小怪兽
2023/11/20
9940
YOLOv10涨点改进:KAN系列 | 「一夜干掉MLP」的KAN ,全新神经网络架构一夜爆火
💡💡💡创新点:来自 MIT 等机构的研究者提出了一种非常有潜力的替代方法 KAN。该方法在准确性和可解释性方面表现优于 MLP。而且,它能以非常少的参数量胜过以更大参数量运行的 MLP。
AI小怪兽
2024/06/13
2.9K0
YOLO系列介绍(二)
通过上图,我们可以看到V4比V3无论在准确率上还是检测速度上都有了一个很大的提升,在准确率上提升了10%,在速度上提升了12%。
算法之名
2022/05/06
1.4K0
YOLO系列介绍(二)
【YOLOv8】YOLOv8改进系列(7)----替换主干网络之LSKNet
文章提出了一种名为 Large Selective Kernel Network(LSKNet)的新型网络架构,专门用于遥感图像中的目标检测任务。LSKNet 通过动态调整其大空间感受野,能够更好地模拟遥感场景中不同目标所需的长程上下文信息,从而显著提高了遥感目标检测的性能。
HABuo
2025/03/17
3060
【YOLOv8】YOLOv8改进系列(7)----替换主干网络之LSKNet
【YOLOv8】YOLOv8改进系列(6)----替换主干网络之VanillaNet
VanillaNet,是一种强调简洁性和优雅设计的新型神经网络架构。VanillaNet 通过避免深度结构、跳过连接和复杂的操作(如自注意力机制),实现了在计算机视觉任务中与深度复杂网络相当的性能,同时具有更高的效率和可部署性。
HABuo
2025/03/13
2530
【YOLOv8】YOLOv8改进系列(6)----替换主干网络之VanillaNet
【YOLOv8改进- Backbone主干】BoTNet:基于Transformer,结合自注意力机制和卷积神经网络的骨干网络
我们提出了BoTNet,这是一种概念上简单但功能强大的骨干架构,结合了自注意力机制,用于图像分类、目标检测和实例分割等多个计算机视觉任务。通过仅在ResNet的最后三个瓶颈块中用全局自注意力替换空间卷积,并且没有其他更改,我们的方法显著提高了实例分割和目标检测的基线性能,同时减少了参数,且在延迟方面的开销极小。通过设计BoTNet,我们还指出带有自注意力的ResNet瓶颈块可以视为Transformer块。无需任何额外的技巧,BoTNet在使用Mask R-CNN框架时,在COCO实例分割基准上达到了44.4%的Mask AP和49.7%的Box AP,超过了之前ResNeSt 67在COCO验证集上发布的单模型和单尺度的最好结果。最后,我们提出了BoTNet设计在图像分类中的简单适应性,生成的模型在ImageNet基准上实现了84.7%的top-1准确率,同时在TPU-v3硬件上的“计算”时间比流行的EfficientNet模型快1.64倍。我们希望这种简单而有效的方法将作为未来自注意力模型研究的强大基线。
YOLO大师
2024/07/26
6050
传送带下料口堵塞识别检测算法
传送带下料口堵塞识别检测算法通过python基于yolov5网络深度学习框架模型,下料口堵塞识别检测算法能够准确判断下料口是否出现堵塞现象,一旦发现下料口堵塞,算法会立即抓拍发出告警信号。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。传送带下料口堵塞识别检测算法使程序员能够用更少的代码行表达思想,而不会降低可读性。
燧机科技
2023/09/23
3520
传送带下料口堵塞识别检测算法
YOLOv10真正实时端到端目标检测(原理介绍+代码详见+结构框图)
💡💡💡本文主要内容:真正实时端到端目标检测(原理介绍+代码详见+结构框图)| YOLOv10如何训练自己的数据集(NEU-DET为案列)
AI小怪兽
2024/06/08
16.7K0
了解 YOLOV5 中的 Focus 模块吗?
在 YOLOv5 中,Focus 模块是一个非常重要的组件,用于提高模型对小目标的检测能力。Focus 模块的主要作用是通过切片操作将输入图像的空间分辨率降低,同时增加通道数,从而保留更多的空间信息。
代码小李
2025/01/23
3020
YOLOv5-Face | 原理超精细讲解、训练步骤还原、C++边缘部署(就要这么学!!!)
在WiderFace数据集上的实验结果表明,YOLOv5Face在几乎所有的Easy、Medium和Hard子集上都能达到最先进的性能,超过了特定设计的人脸检测器。 Github地址:https://www.github.com/deepcam-cn/yolov5-face
集智书童公众号
2022/04/07
7.5K0
YOLOv5-Face | 原理超精细讲解、训练步骤还原、C++边缘部署(就要这么学!!!)
推荐阅读
YOLOv13改进:卷积魔改 | DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测
1150
Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2
3K0
Yolov8-pose关键点检测:模型轻量化设计 | 模型压缩率从6842降低到1018,GFLOPs从9.6降低至2.2
1.8K1
YoloV8改进策略:轻量级Slim Neck打造极致的YoloV8
3000
【YOLOv8】YOLOv8改进系列(9)----替换主干网络之RepViT
3730
一种基于YOLOv10的遥感小目标车辆检测算法(原创自研)
7570
YoloV8改进策略:Neck改进|Efficient-RepGFPN,实时目标检测的王者Neck
1.2K0
YOLOv8改进:HIC-YOLOv8复现魔改HIC-YOLOv5,助力小目标检测(Small Object Detection)
5.3K0
YOLOv10涨点改进:上采样算子 | 轻量级上采样CARAFE算子
1.7K1
【目标检测】YOLOv5:修改自己的网络结构
3.5K0
RT-DETR改进:新的设计范式Slim Neck助力RT-DETR | Neck改进
9940
YOLOv10涨点改进:KAN系列 | 「一夜干掉MLP」的KAN ,全新神经网络架构一夜爆火
2.9K0
YOLO系列介绍(二)
1.4K0
【YOLOv8】YOLOv8改进系列(7)----替换主干网络之LSKNet
3060
【YOLOv8】YOLOv8改进系列(6)----替换主干网络之VanillaNet
2530
【YOLOv8改进- Backbone主干】BoTNet:基于Transformer,结合自注意力机制和卷积神经网络的骨干网络
6050
传送带下料口堵塞识别检测算法
3520
YOLOv10真正实时端到端目标检测(原理介绍+代码详见+结构框图)
16.7K0
了解 YOLOV5 中的 Focus 模块吗?
3020
YOLOv5-Face | 原理超精细讲解、训练步骤还原、C++边缘部署(就要这么学!!!)
7.5K0
相关推荐
YOLOv13改进:卷积魔改 | DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档