YOLOv10全网最新创新点改进系列:融合轻量级网络Ghostnet(幽灵卷积or幻影卷积),实测参数量降低!轻量化水文小神器!

YOLOv10全网最新创新点改进系列:融合轻量级网络Ghostnet(幽灵卷积),实测参数量降低!轻量化水文小神器!

所有改进代码均经过实验测试跑通! 此项目不低于30种改进!自己排列组合2-4种后,考虑位置不同后可排列组合上千万种!改进不重样!!专注AI学术,关注B站博主:Ai学术叫叫兽er!

购买相关资料后畅享一对一答疑

# YOLOv10全网最新创新点改进系列:融合轻量级网络Ghostnet(幽灵卷积),实测参数量降低!轻量化水文小神器!


详细的改进戳这里!!!本文仅略读使用论文地址GhostNet: More Features from Cheap Operations

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

摘要

该论文提供了一个全新的Ghost模块,旨在通过廉价操作生成更多的特征图。基于一组原始的特征图,作者应用一系列线性变换,以很小的代价生成许多能从原始特征发掘所需信息的“Ghost”特征图(Ghost feature maps)。该Ghost模块即插即用,通过堆叠Ghost模块得出Ghost bottleneck,进而搭建轻量级神经网络——GhostNet。
幻影卷积步骤:
先进行1 x 1卷积聚合通道间的信息特征,然后再使用分组卷积,生成新的特征图。
为了减少网络计算量,作者将传统的卷积分成两步进行,首先通过传统的卷积生成channel较小的特征图以较少的计算量,然后在得到的特征图的基础上,通过cheap operation(depthwise conv,廉价操作)再进一步减少计算量,生成新的特征图,最后将两组特征图拼接到一起,得到最终的output。
卷积操作是卷积-批归一化BN-非线性激活全套组合,而所谓的线性变换或者廉价操作(cheap operation)均指普通卷积,不含批归一化和非线性激活。

1 简介

在效果较好的CNN模型中,特征图存在冗余是非常重要的,但是很少有人在模型结构设计上考虑特征图冗余问题;
从特征图冗余问题出发,提出一个仅通过少量计算(cheap operations)就能生成大量特征图的结构——Ghost Module;
Ghost Module通过一系列线性操作(a series of linear transformations)生成特征图,其中经过线性操作生成的特征图称为ghost feature maps,而被操作的特征图称为intrinsic feature maps;
Ghost Module的优点:
即插即用:Ghost Module是一个即插即用模块,可以无缝衔接现有的CNN中;
使用Ghost Module组成的Ghost bottlenecks,设计出GhostNet,在ILSVRC-2012上top-1超过Mobilenet-V3,并且参数(params)更少。
本文作者在观察ResNet50第一个残差块输出的特征图时,发现有许多输出特征很相似,图一中的红、绿、蓝框的特征图,作者认为很相似,基本只要进行简单的线性变换就能得到,而不需要进行复杂的非线性变换得到;作者该对其中的一个特征图可以通过廉价操作(图中用扳手表示)将另一特征图变换而获得,可以认为其中一个特征图是另一个的“Ghost”。因为,本文提出并非所有特征图都要用卷积操作来得到,“Ghost”特征图可以用更廉价的操作来生成。

2 方法

Ghost Bottlenecks

利用Ghost模块的优势,作者介绍了专门为小型CNN设计的Ghost bottleneck(G-bneck)。

如图所示,Ghost bottleneck似乎类似于ResNet中的基本残差块(Basic Residual Block),其中集成了多个卷积层和shortcut。

Ghost bottleneck主要由两个堆叠的Ghost模块组成:

第一个Ghost模块用作扩展层,增加了通道数,这里将输出通道数与输入通道数之比称为expansion ratio;

第二个Ghost模块减少通道数,以与shortcut路径匹配,然后,使用shortcut连接这两个Ghost模块的输入和输出。

这里借鉴了MobileNetV2,第二个Ghost模块之后不使用ReLU,因为深度卷积后再加ReLU效果会变差,可能是深度卷积输出太浅了, 应用 ReLU会带来信息丢失,其他层在每层之后都应用了批量归一化(BN)和ReLU非线性激活。

上述Ghost bottleneck适用于stride= 1,

对于stride = 2的情况,shortcut路径由下采样层和stride = 2的深度卷积(Depthwise Convolution)来实现。

出于效率考虑,Ghost模块中的初始卷积是逐点卷积(Pointwise Convolution)。

基于Ghost bottleneck,作者提出GhostNet,如下所示:
1.作者遵循MobileNetV3的基本体系结构的优势,然后使用Ghost bottleneck替换MobileNetV3中的bottleneck;
2.GhostNet主要由一堆Ghost bottleneck组成,其中Ghost bottleneck以Ghost模块为构建基础;
第一层是具有16个卷积核的标准卷积层,然后是一系列Ghost bottleneck,通道逐渐增加。这些Ghost bottleneck根据其输入特征图的大小分为不同的阶段;
除了每个阶段的最后一个Ghost bottleneck是stride = 2,其他所有Ghost bottleneck都以stride = 1进行应用;
3.最后,利用全局平均池和卷积层将特征图转换为1280维特征向量以进行最终分类。SE模块也用在了某些Ghost bottleneck中的残留层;
4.与MobileNetV3相比,这里用ReLU换掉了Hard-swish激活函数。尽管进一步的超参数调整或基于自动架构搜索的Ghost模块将进一步提高性能,但下表所提供的架构提供了一个基本设计参考。

8 结论

1.Ghost模块消融实验:当s=2、d=3的时候,Ghost模块的性能优于更小或更大的Ghost模块。这是因为大小为1的内核无法在特征图上引入空间信息,而较大的内核(例如d=5或d=7)会导致过拟合和更多计算。

2.特征图可视化:生成的特征足够灵活,可以满足特定任务的需求。

3.ImageNet分类数据集:通常较大的FLOPs会在这些小型网络中带来更高的准确性,这表明了它们的有效性。而GhostNet在各种计算复杂度级别上始终优于其他竞争对手,主要是因为GhostNet在利用计算资源生成特征图方面效率更高。

4.硬件推理速度:作者的模型总体上胜过其他最新模型,例如谷歌MobileNet系列,ProxylessNAS,FBNet和MnasNet。

5.COCO目标检测数据集:GhostNet可以在单阶段的RetinaNet和两阶段的Faster R-CNN框架上达到和MobileNetV2和MobileNetV3类似的mAP。

9 修改步骤!

9.1 修改YAML文件

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

9.2 新建.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

9.3 修改tasks.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

三、验证是否成功即可

执行命令

python train.py

改完收工!
关注B站:Ai学术叫叫兽er
从此走上科研快速路
遥遥领先同行!!!!

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值