首页 > 其他分享 >[机器视觉][轻量化网络]GhostFormer: Efficiently amalgamated CNNtransformer architecture for object detection

[机器视觉][轻量化网络]GhostFormer: Efficiently amalgamated CNNtransformer architecture for object detection

时间:2024-09-28 10:19:15浏览次数:11  
标签:amalgamated PW LTB 卷积 GhostFormer object times 特征 通道

目的与成果:

         本文旨在提出一个轻量化的模型,在减少模型参数量的同时,保持一定的精度,  实验表明,该模型在Pascal VOC数据集上的计算成本不到YOLOv7的一半,仅损失约3% [email protected],在MS COCO数据集上的损失为9.7% [email protected],与GhostNet相比提高了0.95。

本文的主要思想:

        结合卷积层能有效提取局部特征,transformer可以感知全局特征二者的特性,将他们连接在一个网络中,并分别对两个部件进行轻量化处理,分别提出了LCB(轻量化卷积块),LTB(轻量化transformer块)。

模型架构:

        模型首先对输入的图片进行一次浅层卷积提取特征,后续深层网络则交替使用LCB和LTB模块。在这里,LCB用于进一步提取局部特征,而LTB通过自注意力机制来捕捉长距离的全局特征。这样,深层网络能够结合局部和全局特征,为目标检测提供更丰富的信息.  

轻量级卷积块(LCB)

公式:深度卷积的计算复杂度为: O(H×W×Din×k2)O( H \times W \times D_{in} \times k^2 )O(H×W×Din​×k2) 这里计算复杂度显著降低,因为没有 DoutD_{out}Dout​ 和 DinD_{in}Din​ 之间的交互。

   点卷积(Pointwise Convolution)

点卷积,又称为1x1卷积,是对每个像素点进行跨通道的线性组合,目的是将不同通道的信息融合在一起。它的卷积核大小为 1×11 \times 11×1,这意味着每次卷积只影响一个像素的位置,但会跨多个通道。

点卷积的特点:

公式:点卷积的计算复杂度为: O(H×W×Din×Dout)O( H \times W \times D_{in} \times D_{out} )O(H×W×Din​×Dout​) 虽然它涉及跨通道的计算,但由于卷积核的大小是 1×11 \times 11×1,计算量仍然较小。

  • LCB基于GhostNet的思想,将输入特征图分为两部分,一部分使用深度卷积(Depth-Wise Convolution, DW),另一部分使用点卷积(Point-Wise Convolution, PW)
  • 深度卷积(Depthwise Convolution)
  • 深度卷积是一种简化的卷积操作,它只对每个输入通道单独进行卷积,而不跨通道卷积。因此,它极大地减少了计算量。这种卷积操作的主要作用是提取每个通道内部的特征,而不会融合来自其他通道的信息。
  • 深度卷积的特点:
  • 每个通道单独进行卷积:输入的每个通道与单个卷积核进行卷积,生成同样数量的输出通道。
  • 没有跨通道信息融合:深度卷积并不融合来自其他通道的信息,这与标准卷积的计算方式不同。
  • 跨通道卷积:点卷积的主要作用是将每个像素点的多通道特征进行组合,从而实现不同通道之间的特征融合。
  • 1x1卷积核:卷积核大小为 1×11 \times 11×1,因此它不会影响空间分辨率,只会影响通道维度。
  • 通过这种设计,LCB能够高效生成特征图,减少计算开销。并对LCB生成的图片采取了路径融合处理,GhostFormer中的特征融合网络从特征提取网络的最后三个阶段提取特征图,然后进行融合。论文提到,GhostFormer的双路径融合方法结合了自上而下(top-down)和自下而上(bottom-up)的融合策略,这些特征图经过多尺度处理,能够保留低层特征中的局部细节,同时结合高层特征中的全局语义信息。
  • 自上而下(Top-Down):将高层次的特征图上采样,将较小的特征图恢复到更高的分辨率,以便与低层次特征图进行融合。
  • 自下而上(Bottom-Up):通过对低层次特征图进行下采样(通常通过池化操作),将高分辨率的细节信息逐渐简化,并向高层次特征图进行传递,生成具有全局语义信息的特征。
 轻量级Transformer块(LTB)
  • LTB通过自注意力机制(Self-Attention Mechanism)来处理全局特征。在LTB中,引入了池化层(Pooling Layer),通过对注意力机制中的键(key)和值(value)进行下采样,减少了计算复杂度。此外,LTB还使用了**深度可分离卷积(Depth-Wise Separable Convolution)**来进一步优化计算。
  • 1,引入池化层(Pooling Layer)降低计算复杂度
  • 为了降低自注意力机制的计算复杂度,LTB设计引入了池化层。通过对自注意力机制中的键(key)和值(value)进行下采样,LTB有效减少了注意力计算的复杂度。这样,即使在高分辨率的特征图上,自注意力计算的复杂度也能够得到控制。
  • 2. 深度可分离卷积(Depthwise Separable Convolution)与Transformer结合

  • LTB中使用了深度可分离卷积,该卷积操作将标准卷积分为深度卷积和点卷积两部分,极大地减少了计算量。这种卷积操作与自注意力机制结合,可以在局部特征提取的同时,保留全局信息。
  • 这种设计被称为卷积-Transformer单元(Convolution-Transformer Unit, CTU),其公式表达如下: CTU(X)=DW(Ω(γ⋅PW(X)))⊕(PW(X)−Ω(γ⋅PW(X)))CTU(X) = DW(\Omega(\gamma \cdot PW(X))) \oplus (PW(X) - \Omega(\gamma \cdot PW(X)))CTU(X)=DW(Ω(γ⋅PW(X)))⊕(PW(X)−Ω(γ⋅PW(X))) 其中,XXX是输入特征图,DWDWDW表示深度卷积,PWPWPW表示点卷积,Ω\OmegaΩ表示特征图分配函数,γ\gammaγ是分布因子。

  conclusion

        纵观论文,其融合了很多前人的优化方法以提升了CNN-transformer联合网络的性能,比如其中点卷积与深度卷积的概念,从mobilenet便已提出,LTB的卷积优化方法亦是可以往前追溯多年。本文可谓裁缝圣手,但是想缝好一篇论文,绝非易事,还是需要扎实的科研基础,一篇论文要将各种方法融合的好,缝出新意,缝出高度,便是一篇优秀论文,便是一篇sci。

标签:amalgamated,PW,LTB,卷积,GhostFormer,object,times,特征,通道
From: https://blog.csdn.net/wwwwwsssllll/article/details/142611230

相关文章

  • COMP 218 Fundamentals of Object-Oriented Programming
    ©Maynotbecopiedorduplicatedwithoutthepermissionoftheowner.COMP218FundamentalsofObject-OrientedProgrammingAssignment1Pleasenote:youareNOTallowedtoposttheassignment/solutionanywhereontheInternet.IntellectualPropertyrightsa......
  • Java中常用类之Object类
    Object类中的常用方法:1.hashCode方法,是对象地址值的另一种表现形式classStudent{Stringname;intage;publicStudent(){}publicStudent(Stringname,intage){this.name=name;this.age=age;}}测试类中是这样进......
  • Qt - QObject设置对象名称和属性
    作用用来作为id选择器和属性选择器,来设置样式setObjectName方法用来设置对象的名字,不同对象可以重复label=QLabel()label.setObjectName("label")objectName方法获取对象的名字QStringstrobj=this->objectName();qDebug()<<"strobj="<<strobj;setProperty方法......
  • 学习011-03-03 Relationships Between Persistent Objects in Code and UI(代码和用户
    RelationshipsBetweenPersistentObjectsinCodeandUI(代码和用户界面中持久对象之间的关系)Whendesigningabusinessmodel,itcanbenecessarytosetspecificrelationshipsbetweenbusinessobjects.Thistopicdescribeshowtosettheserelationshipsbe......
  • AttributeError: ‘ImageDraw‘ object has no attribute ‘textsize‘
    在进行画框的时候发现代码报错了,查询原因后发现我的pillow版本删除了该方法有两种处理办法:1、就是降低版本2、就是根据新版本修改代码,我这里主要来介绍一下新版本如何修改代码,把textsize改为textbbox首先先了解一下原先这个textsize方法的作用查看官方文档给的示例 from......
  • Objective-C (OC) 中 不推荐 使用 true 和 false 分析
    前言:虽然true和YES实际上等效为1,但为了代码的一致性和可读性,最好在Objective-C中用YES和NO 1.类型不同  YES和NO是Objective-C的BOOL类型,它本质上是一个signedchar,YES等于1,NO等于0。 true和false是C语言C99标准中的布尔值类型,来自stdbool.h......
  • SBB Activity Context Interface (ACI) object 和 Generic Activity Context Interfac
    在JAINSLEE中,SBBActivityContextInterface(ACI)object和GenericActivityContextInterfaceobject的使用主要取决于应用场景的需求、活动的复杂性以及是否需要对特定活动类型进行精确控制。为了更好地理解它们的使用场景、选择依据以及如何在项目中使用,我将详......
  • 查询YOLO标签共有几类。针对文件夹中所有的xml文件,查询一下xml文件中object下的name共
    importosimportxml.etree.ElementTreeasETdefcount_object_names(folder_path):#存放不同name的集合names_set=set()#遍历文件夹中的所有文件forfilenameinos.listdir(folder_path):iffilename.endswith('.xml'):#确保处理......
  • [Paper Reading] CAPE: Camera View Position Embedding for Multi-View 3D Object De
    目录名称TL;DRMethodKeyPositionEmbeddingConstructionQueryPositionEmbeddingConstructionKey/QueryPositionEmbedding两者结合关系参考下图temporalmodelingExperiment总结与发散相关链接资料查询名称link时间:23.03机构:Baidu/华科TL;DR提出CAPE(CAmeraviewPosi......
  • DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) 方法——控件拖动
    参数dragSourceDependencyObject对依赖项对象的引用(该对象是被拖动数据的源)。dataObject包含被拖动数据的数据对象。allowedEffectsDragDropEffectsDragDropEffects 值中的一个,指定拖放操作的允许效果。返回DragDropEffectsDragDropEffects 值中的一个,指定在拖......