热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

bp算法用于图像分割_图像分割|基于深度卷积神经网络的小样本分割算法综述...

点击上方“AI算法修炼营”,选择“星标”公众号精选作品,第一时间送达整理:公众号计算机信息观察家本文仅作学术交流,如有侵权&

点击上方“AI算法修炼营”,选择“星标”公众号

精选作品,第一时间送达

整理:公众号 计算机信息观察家本文仅作学术交流,如有侵权,请联系删文

f7310c262923dc817e3e009e2e1780f4.png

介绍

深度卷积神经网络在图像分类、目标检测、语义分割等许多视觉理解任务上都取得了重大突破。一个关键的原因是大规模数据集的可用性,比如 ImageNet,这些数据集支持对深度模型的培训。然而,数据标记是昂贵的,特别是对于密集的预测任务,如语义分割和实例分割。此外,在对模型进行训练之后,很难将模型应用于新类的预测。与机器学习算法不同的是,人类只看到几个例子就能很容易地从图像中分割出一个新概念。人类和机器学习算法之间的差距激发了对小样本学习的研究,其目的是学习一个模型,可以很好地推广到具有稀缺标记的训练数据的新类别。小样本分割的终极目的是利用支持集中的 K 个训练图像对来“学习”一个模型,使得该模型能对训练图像对中出现的类别的新样本能够实现分割。

bbb4e0f6522543548776256271be1df6.png

相关工作2.1 元学习元学习解决的是学习如何学习的问题。元学习的思想是学习「学习(训练)」过程。主要有基于记忆 Memory 的方法、基于预测梯度的方法、利用 Attention 注意力机制的方法、借鉴 LSTM 的方法、面向 RL 的 Meta Learning 方法、利用 WaveNet 的方法、预测 Loss 的方法等等等。2.2 小样本学习小样本学习是元学习在监督学习领域的应用,Few-shot Learning模型大致可分为三类:Mode Based,Metric Based 和 Optimization Based。

其中 Model Based 方法旨在通过模型结构的设计快速在少量样本上更新参数,直接建立输入 x 和预测值 P 的映射函数;Metric Based 方法通过度量 batch 集中的样本和 support 集中样本的距离,借助最近邻的思想完成分类。

Optimization Based 方法认为普通的梯度下降方法难以在 few-shot 场景下拟合,因此通过调整优化方法来完成小样本分类的任务。
cea6b4214d6b08087345403eccd55631.png
2.3 语义分割语义分割就是按照“语义”给图像上目标类别中的每一点打一个标签,使得不同种类的东西在图像上被区分开来。可以理解成像素级别的分类任务。输入:(H*W*3)正常的图片;输出:(H*W*class)可以看为图片上每个点的 one-hot 表示,每一个 channel 对应一个 class,对每一个 pixel 位置,都有 class 数目个 channel,每个 channel 的值对应那个像素属于该 class 的预测概率。FCN是语义分割的开山之作,主要特色有两点:全连接层换成卷积层,不同尺度的信息融合 FCN-8S,16s,32s。U-net用于解决小样本的简单问题分割,比如医疗影片的分割。它遵循的基本原理与 FCN 一样:1. Encoder-Decoder 结构:前半部分为多层卷积池化,不断扩大感受野,用于提取特征。后半部分上采样回复图片尺寸。2. 更丰富的信息融合:如灰色剪头,更多的前后层之间的信息融合。这里是把前面层的输出和后面层 concat (串联)到一起,区别于 FCN 的逐元素加和。不同 Feature map 串联到一起后,后面接卷积层,可以让卷积核在 channel 上自己做出选择。注意的是,在串联之前,需要把前层的 feature map crop 到和后层一样的大小。SegNet和 U-net 在结构上其实大同小异,都是编码-解码结果。区别在于,SegNet 没有直接融合不同尺度的层的信息,为了解决为止信息丢失的问题,SegNet 使用了带有坐标(index)的池化。在 Max pooling 时,选择最大像素的同时,记录下该像素在 Feature map 的位置(左图)。在反池化的时候,根据记录的坐标,把最大值复原到原来对应的位置,其他的位置补零(右图)。后面的卷积可以把 0 的元素给填上。这样一来,就解决了由于多次池化造成的位置信息的丢失。Deeplab V1不同于之前的思路,他的特色有两点:1.由于 Pooling-Upsample 会丢失位置信息而且多层上下采样开销较大,把控制感受野大小的方法化成:带孔卷积(Atrous conv)。2. 加入 CRF(条件随机场),利用像素之间的关连信息:相邻的像素,或者颜色相近的像素有更大的可能属于同一个 class。PSPnet:前面的不同 level 的信息融合都是融合浅层和后层的 Feature Map,因为后层的感受野大,语义特征强,浅层的感受野小,局部特征明显且位置信息丰富。PSPnet 则使用了空间金字塔池化,得到一组感受野大小不同的 feature map,将这些感受野不同的 map concat 到一起,完成多层次的语义特征融合。Deeplab V2在 v1 的基础上做出了改进,引入了 ASPP(Atrous Spatial Pyramid Pooling)的结构,如上图所示。我们注意到,Deeplab v1使用带孔卷积扩大感受野之后,没有融合不同层之间的信息。ASPP 层就是为了融合不同级别的语义信息:选择不同扩张率的带孔卷积去处理 Feature Map,由于感受野不同,得到的信息的 Level 也就不同,ASPP 层把这些不同层级的 feature map concat 到一起,进行信息融合。Deeplab v3在原有基础上的改动是:1. 改进了 ASPP 模块。2.引入 Resnet Block。3. 丢弃 CRF。新的 ASPP 模块:1. 加入了 Batch Norm。2. 加入特征的全局平均池化(在扩张率很大的情况下,有效权重会变小)。全局平均池化的加入是对全局特征的强调、加强。在旧的 ASPP 模块中:我们以为在扩张率足够大的时候,感受野足够大,所以获得的特征倾向于全局特征。但实际上,扩张率过大的情况下,Atrous conv 出现了“权值退化”的问题,感受野过大,都已近扩展到了图像外面,大多数的权重都和图像外围的 zero padding 进行了点乘,这样并没有获取图像中的信息。有效的权值个数很少,往往就是 1。于是我们加了全局平均池化,强行利用全局信息。Deeplab v3+可以看成是把 Deeplab v3 作为编码器(上半部分)。后面再进行解码,并且在解码的过程中在此运用了不同层级特征的融合。此外,在 encoder 部分加入了 Xception 的结构减少了参数量,提高运行速递。

0144106a8100298fe6578122e84aa021.png

方法总结分类

3.1 OSLSM

motivition 就是学习一个 one-shot 的分割模型,首次提出双分支的网络用于 few-shot segmentation,条件分支用 VGG 提取特征,生成权重(w,b),分割分支用 FCN-32s 结构对 query image 进行特征提取,将其与条件分支所得参数进行点乘再通过 σ 函数得到分割结果。得到一个分割图,上采样到图像大小,利用某个阈值产生分割的二值图。输出的时候,为了是参数量与分割分支的特征图的通道数相对应,采用 weight hashing 的策略,将输出的 1000 维向量映射为 4097 维(w:4096, b:1),这种映射机制是建模成固定权重参数的全连接层来实现的。
46b89d5b7848c25cabd2388f5b9036aa.png

3.2 co-FCN

文章的主要比较惊奇的一点是仅对原始图像做一些稀疏的标注(目标位置上点几个关键点,背景位置上点几个关键点)就却能够实现对目标的像素级的分割。网络结构和 BMVC 那篇 paper 设置类似,也是采用双分支结构,将标注信息与原始图像 concate 后输入 conditioning branch 得到输入图像的 embedding。利用 segmentation branch 对 qurey image 进行特征提取,并将结果与 conditioning branch 得到的 embedding 进行 concate,再进行像素级分割。
9ba62da53b83e18450574d1018778880.png
3.3 AMP-2motivation:如何得到一个更好的原型。方法:在 task 流中,不断地更新每个类别地原型。
766fc7710cc440048e66d992bd7dc605.png
3.4 SG-One训练任务的流程:
b81cb5dbe6943c43ae17d45ed2f168a4.png
网络包含一个主干网络 Stem(代表的是 VGG-16 的前 3 个 Block)和两个分支:Guidance Branch 和 Segmentation Branch,需要注意的是两个分支共用了三个卷积块 ,个人的理解是,如果两个分支完全独立,那么 Guidance Branch 产生的指导就会一成不变;这就失去了意义,作者在论文最后的消融实验中做了相关的分析与实验;与 Segmentation Branch 产生交互后就可以在优化分割损失的同时对引导的特征图进行优化,使之匹配相应的真实 mask。网络在训练的时候加载了在 ILSVRC 数据集上预训练的权重。测试任务的流程:
e40ac3a5329bc264fb42ad042026bd29.png
主要的创新点:a. 提出使用 masked average pooling 来提取 support set 的中目标的表征向量;b. 采用余弦相似度来度量 query set 的表征向量与 support set 的表征向量之间距离,用于指导 query set 的分割;为什么 masked average pooling 会有用?解释如下:全卷积网络(FCN)能够保留输入图像的中每个像素相对位置;所以通过将二值 mask 与提取到的特征图相乘就可以完全保留目标的特征信息,排除掉背景等无关类别的特征。

3.5 PANet

创新点:利用了 prototypes 上的度量学习,无参数提出 prototypes 对齐正则化,充分利用 support 的知识对于带有弱注释的少样本直接使用
4b1eb7fceb9928556ee82fd6a4ea8eab.png
用同一个 backbone 来提取 support 和 query 的深度特征,然后使用 masked average pooling 从 support 的特征将不同的前景物体和背景嵌入不同的 prototypes 中,每个 prototype 表示对应的类别,这样 query 图像的每个的像素通过参考离它的嵌入表达最近的特定类的 prototype 来标记,得到 query 的预测 mask 后。训练的时候,得到mask后,再将刚才提取的 query feature 和 mask 作为新的“support set”,将之前的 support set 作为新的“query set”,再用“support set”对“query set”做一波预测,然后再算一个 lossprototype 紧凑且鲁棒的对每个语义类别进行表达;mask 标记那块就是无参度量学习,通过和嵌入空间的逐像素匹配来执行分割
fd6cca9dc0045d4205d5d50273f08420.png
执行一个 prototype 对齐正则化,用 query 和他的 mask 建立新的 support,然后用这个来预测原始的 support set 的分割,实验证明能鼓励 query 的 prototype 对齐他们的 support 的 prototype,只有训练的时候这么做(反向再推一次,看看是否真的相似)

3.6 CANet

主要贡献:开发了一种新颖的双分支密集比较模块,该模块有效地利用来自CNN的多级特征表示来进行密集的特征比较。提出迭代优化模块,以迭代方式改进预测结果。迭代细化的能力可以推广到具有少量镜头学习的看不见的类,以生成细粒度图。采用注意机制有效地融合来自 k-shot 设置中的多个支持示例的信息,其优于单次结果的不可学习的融合方法。证明给定的支持集具有弱注释,即边界框,我们的模型仍然可以获得与昂贵的像素级注释支持集的结果相当的性能,这进一步减少了新类别对于少数镜头分割的标记工作量。
ee7187511f7f2001283d210e6f75dec0.png

3.7 PGNet

在 CANet 基础上加了一个图注意力机制
fb40961ad748d1b713e8c9b7bc39d16f.png

3.8 FWB

a1a8e40107e8b1385df579991b977aca.png
两个主要创新点:Feature Weighting支持集前后景差异标准化向量:
fbe63d1bfb727a23ccbeaee6ae61c8a2.png
最大化特征差异:
cc4001783d445d83fc08924d648ef085.png
最终得到的关联向量:
e76dc4c914a60fb6ac673d273ef69348.png
标准化处理后的余弦相似性:
becde881ae720cdf15342062ff35c6a2.png
269ecadb8cb0db76e1f75c584d7d77ab.png
Feature Boosting 
98e909980c52c56286ea949c9d0cc850.png
f1c14c6541bef08e57cdf2a43fab8a1d.png
4f27eb5cae9f89a60f988269563631cd.png
a0ba3b8c63507048b0c46ca2baec5dc6.png

b9fd3c8be898a7faa17718544596bd3f.png

数据集介绍

PASCAL-5i
3c660318ea1138a2ad71eedc65972754.png
MS COCO-20i
dfb06dd0155845cf546e2f04c73197e3.png
FSS-100

0af6f5889c1141cfc2696e0bb76ca2d7.png

评测指标介绍Mean-IoU:
8c2c7170d1fe8a7807eb753bc0b9cd83.png
IoU 就是每一个类别的交集与并集之比,而 mIoU 则是所有类别的平均 IoU。
f4bd607b97bd718101199682f78cfd37.png
1bd8c6ae3363a63772f6f29361c1ee31.png
c6aa6472728b7dcfcce5edd91759e8cb.png
FB-IoU:前景和背景一起的准确率
a4c8b7d2eb077c690eed8264deac1ee1.png

0c69ef37410a4e606c27125ba9ee8cf0.png

结果陈列

7816c768f9dd2c9d80f11c644fecc02d.png
78712f1fe8445b5a4df84a15fc19187d.png

135ab03c6d4de9e60fac6d611903ccd4.png

40ec7b769e0090bb9bc14fa2ed646c0c.png

扫描上方微信号,进入学习群。

目标检测、图像分割、自动驾驶、机器人、面试经验。

福利满满,名额已不多…

1f9be26110ed8268b637869dbd99bef8.gif




推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 计算成像的原理与应用研究
    本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。 ... [详细]
  • jmeter实践:从csv中获取带引号的数据详情的技巧和运行全部数据的方法
    本文分享了jmeter实践中从csv中获取带引号的数据的解决办法,包括设置CSV Data Set Config和运行脚本获取数据的方法。另外还介绍了循环运行csv中全部数据的解决方法,避免每次修改csv用例都需要修改脚本的麻烦。通过了解和掌握工具的细节点,可以更好地解决问题和提高技术水平。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
author-avatar
mobiledu2502919283
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有