深度特征融合---高低层(多尺度)特征融合

2023-11-19

概述

基本概念

在很多工作中,融合不同尺度的特征是提高分割性能的一个重要手段。低层特征分辨率更高,包含更多位置、细节信息,但是由于经过的卷积更少,其语义性更低,噪声更多。高层特征具有更强的语义信息,但是分辨率很低,对细节的感知能力较差。如何将两者高效融合,取其长处,弃之糟泊,是改善分割模型的关键。
很多工作通过融合多层来提升检测和分割的性能,按照融合与预测的先后顺序,分类为早融合(Early fusion)和晚融合(Late fusion)。

早融合(Early fusion): 先融合多层的特征,然后在融合后的特征上训练预测器(只在完全融合之后,才统一进行检测)。这类方法也被称为skip connection,即采用concat、add操作。这一思路的代表是Inside-Outside Net(ION)和HyperNet。 两个经典的特征融合方法:
(1)concat:系列特征融合,直接将两个特征进行连接。两个输入特征x和y的维数若为p和q,输出特征z的维数为p+q;
(2)add:并行策略[36],将这两个特征向量组合成复向量,对于输入特征x和y,z = x + iy,其中i是虚数单位。

晚融合(Late fusion):通过结合不同层的检测结果改进检测性能(尚未完成最终的融合之前,在部分融合的层上就开始进行检测,会有多层的检测,最终将多个检测结果进行融合)。这一类研究思路的代表有两种:
(1)feature不融合,多尺度的feture分别进行预测,然后对预测结果进行综合,如Single Shot MultiBox Detector (SSD) , Multi-scale CNN(MS-CNN)
(2)feature进行金字塔融合,融合后进行预测,如Feature Pyramid Network(FPN)等。

DenseASPP for Semantic Segmentation in Street Scenes
语义分割–(DenseASPP )DenseASPP for Semantic Segmentation in Street Scenes

典型方法概述

在本文中,我们介绍了多篇文章,但归纳起来共讨论了4类方法:
(1)早融合:用经典的特征融合方法:在现有的网络(如VGG19)中,用concat或add融合 其中的某几层;

  • FCN、Hypercolumns—>add
  • Inside-Outside Net(ION)、 ParseNet 、HyperNet—>concat
  • 变种:用DCA特征融合方法代替concat和add操作;

(2)晚融合:
(2.1)采用类似特征金字塔网络(FPN)的思想,对特征融合后进行预测。 (FPN一般用于目标检测,提高小目标检测能力) 三个变种:

  • YOLO2的方法,只在金字塔的top-down路径的最后一层进行预测,此外还有 U-Net [31] and SharpMask for segmentation, Recombinator networks for face detection, and Stacked Hourglass networks for keypoint estimation.
  • YOLO3的方法,在金字塔的每一层都进行预测
  • FSSD的方法,对 FPN进行细微改造

(2.2)feature不融合,多尺度的feture分别进行预测,然后对预测结果进行综合,如Single Shot MultiBox Detector (SSD) , Multi-scale CNN(MS-CNN)

(3)用一个具有高低特征融合能力的网络替代普通的网络,如Densenet;
(4)不进行高低层特征融合,而是在高层特征预测的基础上,再用底层特征进行预测结果的 调整

相关工作:多尺度模型设计

【AI不惑境】深度学习中的多尺度模型设计

===========================================================================================

Deep Feature Fusion for VHR(高分辨率图像) Remote Sensing Scene Classification(DCA特征融合方法)

https://blog.csdn.net/snail_crawling/article/details/84568071
特征融合的目的,是把从图像中提取的特征,合并成一个比输入特征更具有判别能力的特征。如何正确融合特征是一个难题。两个经典的特征融合方法

(1)concat:系列特征融合[35],直接将两个特征进行连接。两个输入特征x和y的维数若为p和q,输出特征z的维数为p+q;
(2)add:并行策略[36],[37],将这两个特征向量组合成复向量,对于输入特征x和y,z = x + iy,其中i是虚数单位。

孙等人[38]引入典型相关分析canonical correlation analysis (CCA) 来融合特征。基于CCA的融合方法使用两个输入特征间的相关关系,计算两种变换,变换后的特征比输入的两个特征集有更高的相关性 。
CCA的主要不足,在于忽略了数据集中类结构间的关系。我们想要最大化特征集之间的相关性,所以将每组特征中的类分开。
最近,[44]解决了CCA的弱点,引入了DCA。DCA最大化两个特征集中对应特征的相关关系,同时最大化不同类之间的差异
在这里插入图片描述

基于神经网络的目标检测论文之目标检测方法:改进的SSD目标检测算法(DensNet)

我们的改进是使用DenseNet代替原始SSD结构中的VGG,以提高目标检测准确性。图4-9显示了以DenseNet为基础网络的SSD。
改进后的SSD网络对小物体比较敏感,能够对小物体产生很好的拟合。SSD中小物体检测的弱点可以通过所提出的模型来解决,并且对于具有独特上下文的类来说,性能更好。
在这里插入图片描述
在这里插入图片描述

FPN(feature pyramid networks)

https://blog.csdn.net/wangdongwei0/article/details/83140839
https://blog.csdn.net/WZZ18191171661/article/details/79494534

特征金字塔是识别不同尺度的目标时常用的结构,但是特征金字塔需要较大的计算量和显存,所以最近研发的一些探测器都不再使用这种结构。
作者开发出的一种构建特征金字塔的新方法,可以减少额外的对计算量和显存的消耗
使用FPN作为backbone,Faster RCNN的精度进一步提升(因为提取的特征更加丰富),速度为6fps on a GPU
最近在coco和imagenet上取得靠前名次的网络都采用了多尺度的方法。

在这里插入图片描述
在这里插入图片描述

YOLOv3——引入:FPN+多尺度检测 (目标检测)(one-stage)(深度学习)(CVPR 2018)

https://blog.csdn.net/Gentleman_Qin/article/details/84350496
在这里插入图片描述
YOLOv2网络结构中有一个特殊的转换层(Passthrough Layer),假设最后提取的特征图的大小是1313,转换层的作用就是将前面的2626的特征图和本层的1313的特征图进行堆积(扩充特征维数据量),而后进行融合,再用融合后的特征图进行检测。这么做是为了加强算法对小目标检测的精确度。为达更好效果,YOLOv3将这一思想进行了加强和改进。
**YOLO v3采用(类似FPN)上采样(Upsample)和融合做法,融合了3个尺度(13
13、2626和5252),在多个尺度的融合特征图上分别独立做检测**,最终对于小目标的检测效果提升明显。(有些算法采用多尺度特征融合的方式,但是一般是采用融合后的单一特征图做预测,比如YOLOv2,FPN不一样的地方在于其预测是在不同特征层进行的。)
在这里插入图片描述

融合特征的SSD:对小目标的快速检测

FSSD: Feature Fusion Single Shot Multibox Detector
https://blog.csdn.net/wangxujin666/article/details/83065261
https://blog.csdn.net/Dlyldxwl/article/details/79324944
本文是以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;
©是典型的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)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)Ti 表示对feature map进行降采样或者上采样方法的选择,目的让其scale一致。FSSD中均采用billnear将fc7 , conv7-2的scale统一为38;
(3)φf 是选择对scale一致的feature map进行Contact还是Element-wise sum。目的是融合feature map生成一个scale的feature,FSSD应用了concact,可对比Tab 2的2,7两行看出;
(4)**φ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)特征的互补优势 进行图像检索

https://blog.csdn.net/qq_40716944/article/details/78506086
高层特征用于度量语义相似度,低层特征用于度量细粒度相似度。给出一个简单易懂的例子,当查询图像是一个建筑物时,高层相似性捕捉到的图像包含一个建筑物,而低层相似性则捕获同一个从属同类实体的建筑物。显然,低层和高层特征的互补性可以提高查询图像与其他候选图像之间的相似性度量。一些现有的方法试图利用多尺度无序汇集来进行CNN激活。例如,CNN特征分别从不同层次提取和编码,然后将这些不同层次的聚合特征进行连接以测量图像。但直接拼接不能充分利用高层和低层特征的互补性。高层特征可以搜索具有相似语义的候选图像的集合作为查询图像,但是它不足以描述细粒度的细节。因此,高层相似性会削弱低层相似性的有效性,当最近邻居之间的细粒度差别被区分时,语义相似。
在本文中,我们建议以一种简单而有效的方式利用不同层次的CNN特征的更多互补优势。我们的方法试图突出低层相似性的有效性,当查询图像和最近的邻居之间的细粒度的相似性与相似的语义。换句话说,低层特征用于细化高层特征的排序结果,而不是直接连接多个层。如图2所示,高层特征不足以描述细节信息,而低层特征则来自背景混乱和语义歧义。以直接拼接的方式,由于高层相似度的影响,低层相似度在区分细粒度差异方面不起重要作用。使用映射函数,我们的方法利用低层特征来测量查询图像与具有相同语义的最近邻居之间的细粒度相似性。在实验中,我们证明了我们的方法比单层功能,多层连接以及其他基于手工特征的方法更好。

五种方法提升特征融合的效率

参考文章:
ExFuse: Enhancing Feature Fusion for Semantic Segmentation
https://arxiv.org/abs/1804.03821
https://blog.csdn.net/u010158659/article/details/80413719
https://blog.csdn.net/weixin_41876817/article/details/83058437
这篇文章着重研究语义分割网络中高低层特征融合的效率问题。本文发现,当前语义分割方法直接融合高、低特征并不奏效,继而提出新架构 ExFuse.

本文工作主要聚焦于 U-Net 分割架构的特征融合问题,并选择当前最优的 U-Net 架构之一——全局卷积网络(Global Convolutional Network/GCN)——作为主要的 backbone 分割架构.

这篇文章从两个大的方向上提出了改善思路,即
(1).增加低层特征的语义
(2).在高层特征中增加更多空间信息。

其中包括5个改善的细节,在下面一一介绍。

(1)Direction 1: Introducing More Semantic Information into Low-level Features
这篇文章中,作者为了增加低层特征的语义信息做了三点改进:

  • 网络结构重排(layer rearrengement),构建更适合于分割的预训练模型;
  • 深度语义监督(semantic supervision);
  • 语义嵌入支路(semantic embedding branch),将高层特征融入低层特征。

(2)Direction 2: Embedding More Spatial Resolution into High-level Features
高层特征空间信息的损失只要是由于其自身的低分辨率(尺寸小)。这篇文章尝试将更多的空间特征融入到通道(channel)中去,包括:

  • 通道分辨率嵌入(explicit channel resolution embedding);
  • 稠密邻域预测(densely adjacent prediction)。

上述每一方法都带来了显著提升,组合使用涨点高达 4%。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度特征融合---高低层(多尺度)特征融合 的相关文章

  • android studio3.1调试

    快捷键 ctrl alt left或者ctrl alt right 回退 前进 双击快捷键 shift 全局搜索 快捷键 shift F9 开始调试 快捷键 F6 单步执行程序 快捷键 F5 单步执行程序 遇到方法时进入 快捷键 F8 调到
  • 机器学习算法——Kmeans

    1 k mean算法的原理 1 选取K个点做为初始聚集的簇心 2 分别计算每个样本点到K个簇核心的距离 这里的距离一般取欧氏距离或余弦距离 找到离该点最近的簇核心 将它归属到对应的簇 3 所有点都归属到簇之后 M个点就分为了K个簇 之后重新
  • element 时间日期选择器限制选择范围为7天

    template 部分
  • 编写递归算法,计算二叉树叶子结点的数目。

    编写递归算法 计算二叉树叶子结点的数目 编写递归算法 计算二叉树叶子结点的数目 include stdio h 包含 getchar scanf printf include malloc h malloc 动态申请空间 函数 二叉树 结点

随机推荐

  • 服务器的地址信息,服务器地址信息

    服务器地址信息 内容精选 换一换 可以一次添加一台服务器 也可以一次添加同一网段连续IP的多台服务器 进入任务中心可以查看状态信息 如果状态为成功 说明服务器已添加成功 如果要自定义裸金属服务器的DNS服务器信息 需要将裸金属服务器网络设置
  • 《算法导论》笔记(15) 最小生成树 部分习题

    习题23 1 11 给定图G和一棵最小生成树T 假设减少了位于T之外的某条边的权重 因为T内的边 是连接所有结点的权重最小的 那么首先将T外的减少权重的边 u v 加入T 然后在u v中寻找所有的路径 去掉路径中权重最大的边 习题23 2
  • 5、H3C交换机ACL配置

    创建 IPv4 高级 ACL 并进入 IPv4 高级 ACL 视图 switch acl number acl number name acl name 注 IPv4 高级 ACL 的编号范围为3000 3999 创建规则 switch a
  • 无法打开计算机开始菜单,开始菜单,教您开始菜单无法打开

    win10系统开始菜单不能使用该如何是好呢 最近有位用户反映在使用win10系统的过程当中 发现开始菜单没莫名其妙的就出现了打不开的情况 这该怎么办呢 不要着急 小编这就来将处理开始菜单打不开这个问题的办法来分享给你们 我们在使用电脑的过程
  • 使用Docker Compose搭建Redis主从集群

    一 本次环境使用到了docker docker compose redis 二 我们搭建的主从集群结构如图 共包含三个节点 一个主节点 两个从节点 这里我们会在同一台虚拟机中开启3个redis实例 模拟主从集群 信息如下 IP PORT 角
  • 超越nnFormer!UNETR++:高效准确的3D医学图像分割

    UNETR Delving into Efficient and Accurate 3D Medical Image Segmentation 论文链接 https arxiv org abs 2212 04497 代码链接 https g
  • Spring Boot 配置文件这样加密,才足够安全!

    1 前景 在使用Springboot时 通常很多信息都是在application yml中直接明文配置的 比如数据库链接信息 redis链接信息等等 但是这样是不安全的 所以需要对敏感数据进行加密 这样防止密码泄露 Jasypt这个库为我们
  • Go开发命令行程序指南

    近期在Twitter上看到一个名为 Command Line Interface Guidelines 的站点 1 这个站点汇聚了帮助大家编写出更好命令行程序的哲学与指南 这份指南基于传统的Unix编程原则 2 又结合现代的情况进行了 与时
  • 封装的几种形式

    你说的时cpu的封装吗 供你参考 集成电路芯片的封装形式 自从美国Intel公司1971年设计制造出4位微处a理器芯片以来 在20多年时间内 CPU从Intel4004 80286 80386 80486发展到Pentium和Pentium
  • 基于Jenkins实现Docker应用的持续集成与部署

    先决条件 1 服务器部署安装有docker 在docker应用开发中最常见的就是开发Dockerfile文件 可以使用代码仓库来管理它 而在企业私有开发环境中是无法访问公有代码仓库 如Github 的 这时可以搭建私有代码仓库 部署安装sv
  • 堆排序专题-把一个数组变成大根堆的两种方式和根据大根堆来实现对数组的排序,

    什么是堆排序 堆排序 Heap Sort 是一种基于二叉堆数据结构的排序算法 它的基本思想是将待排序的数组构建成一个大根堆或小根堆 然后依次将堆顶元素与堆尾元素交换 并重新调整堆 直到整个数组有序 堆排序的时间复杂度为O nlogn 是一种
  • python无人机路径规划算法_RRT算法在Python中的实现,快速,拓展,随机,树

    基于智能优化与RRT算法的无人机任务规划方法研究 博士论文 基于改进人工势场法的路径规划算法研究 硕士论文 import matplotlib pyplot as plt import random import math import c
  • STM32基于GPRS模组使用HTTP协议单片机固件在线升级(IAP)

    一 前言 最近有朋友让我帮忙开发基于GPRS模组的单片机固件在线升级 这样的远程升级就两种方式 1 自己定义协议 服务器端进行bin文件拆包 一包包下发 优点 可以每包一校验还可以断点续传 不需要考虑Flash学入占用的时间 缺点 需要服务
  • https网络编程——如何利用中继证书(凭证)建立客户端证书

    参考 如何利用中继证书 凭证 建立客户端证书 地址 https qingmu blog csdn net article details 108226592 spm 1001 2014 3001 5502 目录 建立客户端证书的前提是要建立
  • UE4命令行使用,解释

    命令行在外部 从命令行运行编辑项目 1 导航到您的 LauncherInstall VersionNumber Engine Binaries Win64 目录中 2 右键单击上 UE4Editor exe 的可执行文件 并选择创建快捷方式
  • vscode 中使用鼠标Ctrl+滚轮放大缩小

    1 使用鼠标Ctrl 滚轮放大缩小 打开 文件 gt 首选项 gt 设置 gt 用户 gt 下面的JSON 2 3 点击在settings json中编辑 4 添加下面一行 editor mouseWheelZoom true 5 最后保存
  • MachineLearningWu_15/P70-P71_AdamAndConv

    x 1 算法参数更新 我们使用梯度下降算法来自动更新参数 但是由于学习率的不好选择性 我们有时候会下降地很快 有时候下降地很慢 我们期望有一种方式能够自动调整学习率的变化 这里引入Adaptive Moment Estimation Ada
  • eclipse汉化方式(下载,安装,中英切换)

    按照下面的步骤完成Eclipse的汉化 对初学java的小伙伴们很有帮助哦 愿大家能够学习进步 eclipse汉化的两种方式 第一种方式 第二种方式 第一种方式 一 第一步准备工作 打开eclipse点击Help About eclipse
  • Unity 3D input.GetAxis用法

    input GetAxis 用法 GetAxis Mouse X GetAxis Mouse Y GetAxis Mouse ScrollWheel GetAxis Vertical GetAxis Horizontal GetAxis 是
  • 深度特征融合---高低层(多尺度)特征融合

    目录 概述 基本概念 典型方法概述 相关工作 多尺度模型设计 Deep Feature Fusion for VHR 高分辨率图像 Remote Sensing Scene Classification DCA特征融合方法 基于神经网络的目