Learning Spatial Fusion for Single-Shot Object Detection--Songtao Liu

2023-10-08 05:59

本文主要是介绍Learning Spatial Fusion for Single-Shot Object Detection--Songtao Liu,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[1] Liu S , Huang D , Wang Y . Learning Spatial Fusion for Single-Shot Object Detection[J]. 2019.

  • 1、介绍
  • 2、ASFF的结构
    • 2.1、特征同尺寸变换
    • 2.2、自适应混合
    • 2.3、相容性质
  • 3、效果

多尺度特征特别是特征金字塔FPN是解决目标检测中跨尺度目标的最常用有效的解决方法,但是不同特征尺度中存在的不一致性限制了(基于特征金字塔的)single-shot检测器的性能。本文提出一种特征金字塔融合方法ASFF,它自动学习去抑制不同尺度特征在融合时空间上可能存在的冲突信息(即不一致性)。它提高了特征的尺度变性,同时几乎没有增加推理开销。作者在YOLOv3和MS COCO数据集上训练,实现了38.1%的AP(60FPS)、42.4%的AP(45FPS)和43.9%的AP(29FPS)。代码开源在:GOATmessi7/ASFF

Q1:ASFF要解决什么问题?
多尺度特征融合是解决多尺度目标检测的有效方法,像FPN这种多尺度特征牛逼,但是融合时本身存在不同层级的特征之间的冲突信息(即不一致性),导致它们仍有改进的空间。ASFF就是设计来帮助FPN融合时,抑制这种冲突信息(即不一致性),提高FPN的融合效果,进而提高目标检测的效果。

Q2:原理是什么?
看起来就是FPN+空间注意力。首先获取不同层的特征图;然后进行上采样调整为相同shape;根据文中操作生成空间权重(感觉就是空间注意力,只不过这里是注意哪些位置有冲突,然后抑制这个位置),和特征图相乘;最后将多个特征图相加,得到最终的融合效果。
在这里插入图片描述
Q3:空间权重是如何计算的?
就是该层特征图经过1*1卷积得到一个通道的特征图,然后再经过归一化后,就是该层的空间权重。

Q4:当我尝试加载分类任务网络中时,效果变差了?
通过分析,我认为ASFF主要是针对小目标检测的效果,所以在目标检测中的效果提升应当是针对小目标检测的效果提升,也就是加了ASFF的提升效果主要来自于小目标检测效果,通过论文中的比较表看出:在这里插入图片描述
baseline和baseline+ASFF相比:
1)+ASFF在小目标和中目标的效果有提示
2)+ASFF在大目标的效果上下降了

由1)证明了上述的分析,那么2)为什么下降了,个人认为baseline中大目标检测是经过卷积后的高级特征,而+ASFF后,高级特征中含有部分低级特征,相当于baseline中的高级特征占比100%,现在只占比60%,包含了40%的低级特征,这样就损失了对大目标检测的效果。

所以ASFF对小目标和中目标效果友好,但是会随时大目标效果,但是总体效果高。所以如果你的任务不是检测小目标任务的话,建议不要使用ASFF,因为反而负优化。

1、介绍

首先说明了跨尺度的物体对象检测仍然是一个挑战,然后图中大尺度对象和小尺度对象确实不好同时处理,但是特征金字塔是缓解这个挑战的使用方法,很多SOTA都在多级特征塔中使用了特征金字塔。

  • SSD

SSD是最先尝试卷积金字塔特征的一批方法。它重用来自不同卷积层的多尺度特征图来预测不同尺寸的物体。但是这种自底向上的方法存在问题:检测小物体的精确性很低。

如图小物体很多信息在左侧底层卷积的特征图,但是底层的卷积特征图还是不够充分的语义信息(还不够抽象),而具有充分语句信息是在高层卷积(右侧),右侧的卷积特征更多是大物体的信息。所以SSD中小目标信息来源是底层特征,这样虽然对检测小目标检测有帮助,但是不够大。

如果想要从底层特征再次卷积提取抽象充分的语义信息,那岂不是和主干网络一样,卷积到右侧又只剩下大物体的信息了。
在这里插入图片描述

  • FPN
    【预习FPN:特征金字塔:FPN(Feature Pyramid Networks)】

为了解决SSD的缺点,特征金字塔(Feature Pyramid Network ,FPN)被提出来了。FPN自顶向下按顺序融合相邻两个被抽取的特征图(左侧)
在这里插入图片描述
【随着卷积运算,特征图的语义信息更强,但是尺寸更小,分辨率更低】

低分辨率的特征图有着很强的语义信息,在融合时会上采样改变shape,然后和比它分辨率高但语义信息稍弱的邻层融合。因为将强语义信息层不断融合,这样在所有层都可以共享到强语义信息。

FPN和其他相似的自顶向下的结构都同样简单高效,到那时他们仍还有提升的空间。

(然后文中介绍了一些其他人解决不一致性的工作)

相比较于图像金字塔,FPN的主要缺点就是在跨不同尺度特征存在的不一致性(特征金字塔中,不同尺度的特征差异较大),尤其是在single-shot检测器。

具体来讲,当使用特征金字塔检测物体时,会采用启发式引导的特征选择:大物体会和上面的特征图(高层特征)关联,小物体回合底层特征图关联。当一个物体在某个特征图中位置被确认为positive时,在其他特征图中该位置可能会被认为是背景。因此一副图像包含了大小物体时,在不同特征图的冲突(一会儿是positive一会儿是背景)往往会占据特征金字塔的主要部分(FPN融合包含的信息应当共同为网络性能出力,但是现在大量冲突信息充斥其中,造成FPN的性能瓶颈)。这种不一致性会干涉梯度计算,降低FPN的效率。

在这篇paper中,我们提出了adaptively spatial feature fusion (ASFF),用以解决这种不一致性。ASFF会学习一个空间滤波权重(空间注意力矩阵),在融合时仅仅保留有用位置的信息,抑制冲突位置的信息。

ASFF的优势:1)在反向传播中很方便学习;2)这个ASFF对于主干网络是不可知的,即不影响主干网络(方便即插即用?);3)它应用起来方便,增加的计算成本是微不足道的。

2、ASFF的结构

不同于其他通过采样后element-wise sum或者concat直接融合,ASFF的关键点是去自适应为特征图的每个尺度学习一个空间权重。如下图所示,它包含了两步:同尺寸变换和自适应融合。
在这里插入图片描述

2.1、特征同尺寸变换

不同层的特征图shape不一样,所以无论什么融合方式都需要resize到相同的尺寸。如图要你选择在level 1融合,则level 2和level 3要变换尺寸和level 1的尺寸一样,当然你还可以选择在level 2或level 3融合。在这里有两种情况:情况一是小尺寸变大尺寸,情况二是大尺寸变小尺寸。

首先你需要清楚:小尺寸代表高层特征,通道数多,大尺寸代表底层特征,通道数少。

小尺寸变大尺寸(上采样):首先使用1*1卷积去压缩通道数,然后通过插值法将尺寸变换到目标层的尺寸,这样通道数和尺寸都和目标层一样了。

大尺寸变小尺寸(下采样)

  • 1/2倍:通过stride=2的3*3卷积操作,同时改变了通道数和1/2的尺寸下采样
  • 1/4倍:通过stride=2的max pooling+stride=2的3*3卷积操作,同时改变了通道数和1/4的尺寸下采样

2.2、自适应混合

这个其实没什么好讲的,大致就是如下图
在这里插入图片描述
公式如下图,
在这里插入图片描述
α,β,γ:权重值
X i j i → l X^{i→l}_{ij} Xijil:表示resize到相同大小后的特征图了,三个x的[channels,w,h]一样

公示的意思就是不同特征图的位置和各自位置上的权重相乘,然后3个结果相加,就得到融合后该位置的值。

现在重点讲讲空间位置权重是怎么计算的

这个权重是训练时学习到的,计算方式是对三个 X i j i → l X^{i→l}_{ij} Xijil进行1*1的卷积,就产生3个单通道的特征图,这就是3个初始空间权重信息矩阵,记为三个λ。

在位置 i j ij ij上的权重还要经过如下公式处理,即三个权重图相同位置的权重之和=1,且都∈[0,1]

在这里插入图片描述

最终权重图变成下面公式的样子:在这里插入图片描述

α,β,γ就是真正的权重值。

2.3、相容性质

数学证明,详见论文。

3、效果

在这里插入图片描述
上图展示在不同level层融合时,三个层级的空间权重(右侧是融合后效果)。

在这里插入图片描述
更详细的评价见论文

这篇关于Learning Spatial Fusion for Single-Shot Object Detection--Songtao Liu的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/163186

相关文章

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

VMware Fusion Pro 13 Mac版虚拟机 安装Win11系统教程

Mac分享吧 文章目录 Win11安装完成,软件打开效果一、VMware安装Windows11虚拟机1️⃣:准备镜像2️⃣:创建虚拟机3️⃣:虚拟机设置4️⃣:安装虚拟机5️⃣:解决连不上网问题 安装完成!!! Win11安装完成,软件打开效果 一、VMware安装Windows11虚拟机 首先确保自己的mac开启了网络共享。不然虚拟机连不上👀的 1️⃣:准备镜像

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

VMware Fusion Pro 13 for Mac虚拟机软件

Mac分享吧 文章目录 效果一、下载软件二、开始安装安装完成!!! 效果 一、下载软件 下载软件 地址:www.macfxb.cn 二、开始安装 安装完成!!!