在很多工作中,融合不同尺度的特征是提高分割性能的一个重要手段。低层特征分辨率更高,包含更多位置、细节信息,但是由于经过的卷积更少,其语义性更低,噪声更多。高层特征具有更强的语义信息,但是分辨率很低,对细节的感知能力较差。如何将两者高效融合,取其长处,弃之糟泊,是改善分割模型的关键。
很多工作通过融合多层来提升检测和分割的性能,按照融合与预测的先后顺序,分类为早融合(Early fusion)和晚融合(Late fusion)。
早融合(Early fusion): 先融合多层的特征,然后在融合后的特征上训练预测器(只在完全融合之后,才统一进行检测)。这类方法也被称为skip connection,即采用concat、add操作。这一思路的代表是Inside-Outside Net(ION)和HyperNet。 两个经典的特征融合方法:
晚融合(Late fusion):通过结合不同层的检测结果改进检测性能(尚未完成最终的融合之前,在部分融合的层上就开始进行检测,会有多层的检测,最终将多个检测结果进行融合)。这一类研究思路的代表有两种:
语义分割可参考以下文献:
在本文中,我们介绍了多篇文章,但归纳起来共讨论了4类方法:
(1)早融合: 用经典的特征融合方法:在现有的网络(如VGG19)中,用concat或add融合 其中的某几层;
(2)晚融合:
(2.1)采用类似特征金字塔网络(FPN)的思想,对特征融合后进行预测。 (FPN一般用于目标检测,提高小目标检测能力) 三个变种:
(2.2)feature不融合,多尺度的feture分别进行预测,然后对预测结果进行综合,如Single Shot MultiBox Detector (SSD) , Multi-scale CNN(MS-CNN)
(3)用一个具有高低特征融合能力的网络替代普通的网络,如Densenet;
(4)不进行高低层特征融合,而是在高层特征预测的基础上,再用底层特征进行预测结果的 调整
内容来自:angry_snail_flying_论文阅读:Deep Feature Fusion for VHR Remote Sensing Scene Classification
特征融合的目的,是把从图像中提取的特征,合并成一个比输入特征更具有判别能力的特征。如何正确融合特征是一个难题。两个经典的特征融合方法:
(1)concat: 系列特征融合[35],直接将两个特征进行连接。两个输入特征 x x x和 y y y的维数若为 p p p和 q q q,输出特征 z z z的维数为 p + q p+q p+q;
(2)add: 并行策略[36],[37],将这两个特征向量组合成复向量,对于输入特征 x x x和 y y y, z = x + i y z = x + iy z=x+iy,其中 i i i是虚数单位。
孙等人[38]引入典型相关分析canonical correlation analysis (CCA) 来融合特征。基于CCA的融合方法使用两个输入特征间的相关关系,计算两种变换,变换后的特征比输入的两个特征集有更高的相关性 。
CCA的主要不足,在于忽略了数据集中类结构间的关系。我们想要最大化特征集之间的相关性,所以将每组特征中的类分开。
最近,[44]解决了CCA的弱点,引入了DCA。DCA最大化两个特征集中对应特征的相关关系,同时最大化不同类之间的差异。
我们的改进是使用DenseNet代替原始SSD结构中的VGG,以提高目标检测准确性。图4-9显示了以DenseNet为基础网络的SSD。
改进后的SSD网络对小物体比较敏感,能够对小物体产生很好的拟合。SSD中小物体检测的弱点可以通过所提出的模型来解决,并且对于具有独特上下文的类来说,性能更好。
内容来自:
特征金字塔是识别不同尺度的目标时常用的结构,但是特征金字塔需要较大的计算量和显存,所以最近研发的一些探测器都不再使用这种结构。
作者开发出的一种构建特征金字塔的新方法,可以减少额外的对计算量和显存的消耗。
使用FPN作为backbone,Faster RCNN的精度进一步提升(因为提取的特征更加丰富),速度为6fps on a GPU
最近在coco和imagenet上取得靠前名次的网络都采用了多尺度的方法。
内容来自:
秦皓楠Howard_XDU_YOLOv3——引入:FPN+多尺度检测 (目标检测)(one-stage)(深度学习)(CVPR 2018)
YOLOv2网络结构中有一个特殊的转换层(Passthrough Layer),假设最后提取的特征图的大小是1313,转换层的作用就是将前面的2626的特征图和本层的13*13的特征图进行堆积(扩充特征维数据量),而后进行融合,再用融合后的特征图进行检测。这么做是为了加强算法对小目标检测的精确度。为达更好效果,YOLOv3将这一思想进行了加强和改进。
YOLO v3采用(类似FPN)上采样(Upsample)和融合做法,融合了3个尺度(1313、2626和52*52),在多个尺度的融合特征图上分别独立做检测,最终对于小目标的检测效果提升明显。(有些算法采用多尺度特征融合的方式,但是一般是采用融合后的单一特征图做预测,比如YOLOv2,FPN不一样的地方在于其预测是在不同特征层进行的。)
内容来自:
本文是以SSD为基底进行“改造”的一篇文章。SSD是从网络的不同层中抽取不同scale的feature直接做predict,所以没有充分融合不同scale的feature。后续有提出DSSD,RSSD等改进方法,但是因为模型的complexity导致速度变慢很多。本文借鉴了FPN的思想,重构了一组pyramid feature map,使得算法的精度有了明显的提升,速度也没有太降。先看一张图直观感受一下FSSD对比其它算法的效果。
Approach
对比下图中几种结构:
(a)中棕色的block之间没有联系,所以是使用不同scale的图片来生成不同scale的feature map进行predict,这是最不高效的一种方法;
(b)代表faster rcnn之类的two-stage算法,利用某一个scale的feature map来生成多scale的anchors去检测multi-scale objects;
(b)是典型的Top-Down结构,FPN为代表网络。该结构在此不做赘述,有不清楚的移步这里。DSSD也是该网络结构的应用;
(d)是SSD的结构代表图,从网络不同层抽取不同scale的feature做预测,这种方式不会增加额外的计算量,但是各个scale之间没有联系;
(e)是FSSD的结构图,就是把网络中某些feature调整为同一szie再 contact,得到一个像素层,以此层为base layer来生成pyramid feature map,作者称之为Feature Fusion Module。
Feature Fusion Module
下面解释一下Feature Fusion Module。作者用一组公式表示整个过程:
对公式的字母含义进行说明:
(1) X i X_i Xi 是前置网络中希望融合的feature map,作者在文中说明了size小于10的feature map能合并的信息太少了,因此不做考虑,此外将conv6-2的stride设为1,这样conv7-2的size就是10了(给出FSSD的网络结构链接),所以选择 conv4-3 (38*38) ,fc7 , conv7-2输出的feature map来进行融合(为什么非用7-2,难道原始s=2的6-2用起来效果很差?作者没有说明)。至于为什么不用conv3-3的特征,可以对比Tab 2的2,3行看出;
(2) T i T_i Ti表示对feature map进行降采样或者上采样方法的选择,目的让其scale一致。FSSD中均采用billnear将fc7 , conv7-2的scale统一为38;
(3) ϕ f \phi_f ϕf 是选择对scale一致的feature map进行Contact还是Element-wise sum。目的是融合feature map生成一个scale的feature,FSSD应用了concact,可对比Tab 2的2,7两行看出;
(4) ϕ p \phi_p ϕp是如何利用得到的feature重构一组predict layer,也即Pyramid feature maps, 作者实验了Fig 3中的三种结构,其中棕色的block用来做predict,第一个结构使用fusion feature map作为第一层,第二个是fusion feature map接了个33卷积后作为第一层, 最后一个结构是对于每一个predict层都先用11卷积来降低计算量,也就是bottleneck layer。从Tab 1可以看出中间的效果最好。
内容来自:
高层特征用于度量语义相似度,低层特征用于度量细粒度相似度。给出一个简单易懂的例子,当查询图像是一个建筑物时,高层相似性捕捉到的图像包含一个建筑物,而低层相似性则捕获同一个从属同类实体的建筑物。显然,低层和高层特征的互补性可以提高查询图像与其他候选图像之间的相似性度量。一些现有的方法试图利用多尺度无序汇集来进行CNN激活。例如,CNN特征分别从不同层次提取和编码,然后将这些不同层次的聚合特征进行连接以测量图像。但直接拼接不能充分利用高层和低层特征的互补性。高层特征可以搜索具有相似语义的候选图像的集合作为查询图像,但是它不足以描述细粒度的细节。因此,高层相似性会削弱低层相似性的有效性,当最近邻居之间的细粒度差别被区分时,语义相似。
在本文中,我们建议以一种简单而有效的方式利用不同层次的CNN特征的更多互补优势。我们的方法试图突出低层相似性的有效性,当查询图像和最近的邻居之间的细粒度的相似性与相似的语义。换句话说,低层特征用于细化高层特征的排序结果,而不是直接连接多个层。如图2所示,高层特征不足以描述细节信息,而低层特征则来自背景混乱和语义歧义。以直接拼接的方式,由于高层相似度的影响,低层相似度在区分细粒度差异方面不起重要作用。使用映射函数,我们的方法利用低层特征来测量查询图像与具有相同语义的最近邻居之间的细粒度相似性。在实验中,我们证明了我们的方法比单层功能,多层连接以及其他基于手工特征的方法更好。
内容来自:
这篇文章着重研究语义分割网络中高低层特征融合的效率问题。本文发现,当前语义分割方法直接融合高、低特征并不奏效,继而提出新架构 ExFuse.
本文工作主要聚焦于 U-Net 分割架构的特征融合问题,并选择当前最优的 U-Net 架构之一——全局卷积网络(Global Convolutional Network/GCN)——作为主要的 backbone 分割架构.
这篇文章从两个大的方向上提出了改善思路,即
(1)增加低层特征的语义
(2)在高层特征中增加更多空间信息。
其中包括5个改善的细节,在下面一一介绍。
(1)Direction 1: Introducing More Semantic Information into Low-level Features
这篇文章中,作者为了增加低层特征的语义信息做了三点改进:
(2)Direction 2: Embedding More Spatial Resolution into High-level Features
高层特征空间信息的损失只要是由于其自身的低分辨率(尺寸小)。这篇文章尝试将更多的空间特征融入到通道(channel)中去,包括:
上述每一方法都带来了显著提升,组合使用涨点高达 4%。
以上内容来自: