当前位置 博文首页 > 文章内容

    分割算法——可以分割一切目标(各种分割总结):gzq0723的博客

    作者:shunshunshun18 栏目:未分类 时间:2021-10-27 20:38:22

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    推荐 IIS7批量FTP管理工具 IIS7批量FTP管理
    IIS7批量FTP管理功能说明:
    1、可批量导入,导出FTP信息
    2、其他ftp工具有的功能,我们也有
    3、特色功能:可以定时上传下载
    4、数据信息列表化、一眼就能知道那个是那个
    5、批量连接 标签页式切换 方便快捷
    6、7大连接模式 更多好的兼容
    7、内嵌编辑器 有效解决普通txt记事本乱码
    8、锁屏功能 当程序有规定时间内没人操作,则自动锁程序。输入密码才可以正常操作

    本产品适用于:懒得记录FTP信息和有批量定时备份,上传下载的运维或站长。

    图:


    IIS7批量FTP管理

    周末应该是一个好好休息的时间,但是一定会有在默默努力科研的你,由于最近是开学季,很多关注的朋友一直会问“计算机视觉战队平台有基础性的内容吗?”,今天我和大家说一次,我们平台之前有推送很多基础的知识,有兴趣的或者是刚刚接触CV&DL的你,可以去历史消息阅读,在这也感谢所有一直关注和支持我们的您!

    今天其实是一个重要的日子!不告诉大家什么事情,但是我会把自己喜悦的心情与大家分享,接下来就和大家说说目标分割的事吧~

    640?wx_fmt=png

    分割其实在很多领域是非常重要的研究对象,现在也有很多研究者在该领域大展身手,比如何大神,一直在该方面的做的最优秀之一,今天就基于他CVPR 2018的一篇优秀Paper说起。

    01 概述

    大多数目标实例分割的方法都要求所有的训练样本带有segmentation masks。这种要求就使得注释新类别的开销很大,并且将实例分段模型限制为∼100注释良好的类。

    本次技术目的是提出一种新的部分监督的训练模式,该模式具有一种新的权重传递函数,结合一种新的权重传递函数,可以在一大组类别上进行训练实例分割模型,所有这些类别都有框注释,但只有一小部分有mask注释。这些设计允许我们训练MASK R-CNN,使用VisualGenome数据集的框注释和COCO数据集中80个类的mask注释来检测和分割3000种视觉概念。

    最终,在COCO数据集的对照研究中评估了提出的方法。这项工作是迈向对视觉世界有广泛理解的实例分割模型的第一步。


    在正式细说本次分割技术之前,还是简单说下分割的事,有一个简单的引言和大家分享下,没有兴趣的您可以直接跳过,阅读关键技术部分,谢谢!

    目标检测器已经变得更加精确,并获得了重要的新功能。最令人兴奋的是能够预测每个检测到的目标前景分割mask,这是一个称为instance segmentation的任务。在实践中,典型的instance segmentation系统仅限于仅包含大约100个目标类别的广阔视觉世界的一小部分。

    • 会有很多人问:什么是语义分割?

    语义分割其实就是对图片的每个像素都做分类。其中,较为重要的语义分割数据集有:VOC2012 以及 MSCOCO 。

    • 比较流行经典的几种方法

    传统机器学习方法:如像素级的决策树分类,参考TextonForest以及Random Forest based classifiers。再有就是深度学习方法。

    深度学习最初流行的分割方法是,打补丁式的分类方法 (patch classification) 。逐像素地抽取周围像素对中心像素进行分类。由于当时的卷积网络末端都使用全连接层 (full connected layers) ,所以只能使用这种逐像素的分割方法。

    但是到了2014年,来自伯克利的Fully Convolutional Networks(FCN)【点击蓝色,有链接直接可以阅读全卷积网络相关资料】卷积网络,去掉了末端的全连接层。随后的语义分割模型基本上都采用了这种结构。除了全连接层,语义分割另一个重要的问题是池化层。池化层能进一步提取抽象特征增加感受域,但是丢弃了像素的位置信息。但是语义分割需要类别标签和原图像对齐,因此需要从新引入像素的位置信息。有两种不同的架构可以解决此像素定位问题。

    • 第一种是编码-译码架构。编码过程通过池化层逐渐减少位置信息、抽取抽象特征;译码过程逐渐恢复位置信息。一般译码与编码间有直接的连接。该类架构中U-net 是最流行的。

    • 第二种是膨胀卷积 (dilated convolutions) 【这个核心技术值得去阅读学习】,抛弃了池化层。使用的卷积核如下图所示:

    640?wx_fmt=png

    居然都说到这里,那我继续来简单说一些相关的文献吧。

    按时间顺序总结,大概我能总结9篇paper,看语义分割的结构是如何演变的。分别有FCN 、SegNet U-NetDilated Convolutions 、DeepLab (v1 & v2) 、RefineNet PSPNet 、Large Kernel Matters 、DeepLab v3 。

    参考文章:(“计算机视觉战队”微信公众平台推送)

    • DeepLab V3

    • Deeplab v2 安装及调试全过程

    • 谷歌——DeepLab v1

    1)FCN 2014年

    640?wx_fmt=png

    主要的贡献:

    • 为语义分割引入了 端到端 的卷积网络,并流行开来

    • 重新利用 ImageNet 的预训练网络用于语义分割

    • 使用 反卷积层 进行上采样

    • 引入跳跃连接来改善上采样粗糙的像素定位

    比较重要的发现是,分类网络中的全连接层可以看作对输入的全域卷积操作,这种转换能使计算更为高效,并且能重新利用ImageNet的预训练网络。经过多层卷积及池化操作后,需要进行上采样,FCN使用反卷积(可学习)取代简单的线性插值算法进行上采样。

    2)SegNet 2015年

    640?wx_fmt=png

    编码-译码架构

    主要贡献:将池化层结果应用到译码过程。引入了更多的编码信息。使用的是pooling indices而不是直接复制特征,只是将编码过程中 pool 的位置记下来,在 uppooling 是使用该信息进行 pooling 。

    3)U-Net 2015 

    U-Net有更规整的网络结构,通过将编码器的每层结果拼接到译码器中得到更好的结果。

    640?wx_fmt=jpeg

    4)Dilated Convolutions 2015年

    通过膨胀卷积操作聚合多尺度的信息

    640?wx_fmt=gif

    主要贡献:

    • 使用膨胀卷积

    • 提出 ’context module‘ ,用来聚合多尺度的信息

    池化在分类网络中能够扩大感知域,同样降低了分辨率,所以提出了膨胀卷积层。

    640?wx_fmt=png

    5)DeepLab (v1 & v2) 2014 & 2016

    “计算机视觉战队”微信公众平台推送过,可以查阅。

    6)RefineNet 2016年

    640?wx_fmt=png

    640?wx_fmt=png

    主要贡献:

    • 精心设计的译码模块

    • 所有模块遵循残余连接设计

    膨胀卷积有几个缺点,如计算量大、需要大量内存。这篇文章采用编码-译码架构。编码部分是ResNet-101模块。译码采用RefineNet模块,该模块融合了编码模块的高分辨率特征和前一个RefineNet模块的抽象特征。每个RefineNet模块接收多个不同分辨率特征,并融合。

    7)PSPNet 2016年

    Pyramid Scene Parsing Network 金字塔场景解析网络

    640?wx_fmt=png

    主要贡献:

    • 提出了金字塔池化模块来聚合图片信息

    • 使用附加的损失函数

    金字塔池化模块通过应用大核心池化层来提高感知域。使用膨胀卷积来修改ResNet网,并增加了金字塔池化模块。金字塔池化模块对ResNet输出的特征进行不同规模的池化操作,并作上采样后,拼接起来,最后得到结果。

    本文提出的网络结构简单来说就是将DeepLab(不完全一样)aspp之前的feature map pooling了四种尺度之后将5种feature map concat到一起经过卷积最后进行prediction的过程。 

    8)Large Kernel Matters 2017

    640?wx_fmt=png

    主要贡献:

    • 提出了使用大卷积核的编码-译码架构

    理论上更深的ResNet能有很大的感知域,但研究表明实际上提取的信息来自很小的范围,因此使用大核来扩大感知域。但是核越大,计算量越大,因此将k x k的卷积近似转换为1 x k + k x 1和k x 1 + 1 x k卷积的和,称为GCN

    本文的架构是:使用ResNet作为编译器,而GCN和反卷积作为译码器。还使用了名为Boundary Refinement的残余模块。

    9)DeepLab v3 2017

    640?wx_fmt=png

    主要贡献:

    • 改进 ASPP

    • 串行部署 ASPP 的模块

    和DeepLab v2一样,将膨胀卷积应用于ResNet中。改进的ASPP指的是将不同膨胀率的膨胀卷积结果拼接起来,并使用了BN 。与Dilated convolutions (2015) 不一样的是,v3直接对中间的特征图进行膨胀卷积,而不是在最后做。

    小总结:

    640?wx_fmt=png

    现在把之前较为典型的简单介绍了一遍,现在接下来我们继续说今天这个分割技术。



    02 学习分割Every Thing

    —————————


    C是一组目标类别,希望为其训练一个instance segmentation模型。大多数现有方法假设C中的所有训练样本都带有instance mask

    于是,本次放宽了这一要求,而是假设C=A∪B,其中来自A中类别的样本有mask,而B中的只有边界框。由于B类的样本是弱标记的w.r.t.目标任务(instance segmentation),将强标签和弱标签组合的训练作为一个部分监督的学习问题。注意到可以很容易地将instance mask转换为边界框,假设边界框注释也适用于A中的类。

    给出了一个包含边界框检测组件和mask预测组件的MASK R-CNN instance segmentation模型,提出了MaskX R-CNN方法,该方法将特定类别的信息从模型的边界框检测器转移到其instance mask预测器。

    • 权重传递来Mask预测

    本方法是建立在Mask R-CNN,因为它是一个简单的instance segmentation模型,也取得了最先进的结果。简单地说,MASK R-CNN可以被看作是一个更快的R-CNN边界框检测模型,它有一个附加的mask分支,即一个小的全卷积网络(FCN)。

    在推理时,将mask分支应用于每个检测到的对象,以预测instance-level的前景分割mask。在训练过程中,mask分支与Faster R-CNN中的标准边界框head并行训练。在Mask R-CNN中,边界框分支中的最后一层和mask分支中的最后一层都包含特定类别的参数,这些参数分别用于对每个类别执行边界框分类和instance mask预测。与独立学习类别特定的包围框参数和mask参数不同,我们建议使用一个通用的、与类别无关的权重传递函数来预测一个类别的mask参数,该函数可以作为整个模型的一部分进行联合训练。

    具体如下如所示:

    640?wx_fmt=png

    • Training

    在训练期间,假设对于A和B两组类,instance mask注释仅适用于A中的类,而不适用于B中的类,而A和B中的所有类都有可用的边界框注释。如上图所示,我们使用A∪B中所有类的标准框检测损失来训练边界框head,但只训练mask head和权重传递函数T(·),在A类中使用mask loss,考虑到这些损失,我们探索了两种不同的训练过程:分阶段训练端到端训练

    分阶段训练

    由于Mask R-CNN可以被看作是用mask head增强Faster R-CNN,一种可能的训练策略是将训练过程分为检测训练(第一阶段)和分割训练(第二阶段)。

    在第一阶段,只使用A∪B中类的边界框注释来训练一个Faster R-cnn,然后在第二阶段训练附加的mask head,同时保持卷积特征和边界框head的固定。这样,每个c类的类特定检测权重wc可以被看作是在训练第二阶段时不需要更新的固定类emdet层叠向量。

    该方法具有很好的实用价值,使我们可以对边界框检测模型进行一次训练,然后对权重传递函数的设计方案进行快速评估。它也有缺点,这是我们接下来要讨论的。

    端到端联合训练

    结果表明,对于MASK R-CNN来说,多任务训练比单独训练更能提高训练效果。上述分阶段训练机制将检测训练和分割训练分开,可能导致性能低下。

    因此,我们也希望以一种端到端的方式,联合训练边界框head和mask head。原则上,可以直接使用A∪B中类的box损失和A中类的mask loss来进行反向传播训练,但是,这可能导致A组和B组之间的类特定检测权重Wc的差异,因为只有c∈A的Wc会通过权重传递函数T(·)从mask loss得到梯度。

    我们希望Wc在A和B之间是均匀的,这样在A上训练的预测Wc=T(Wc;θ)可以更好地推广到B。

    03 实验

    ——

    表1 Ablation on input to T

    640?wx_fmt=png

    表2 Ablation on the structure of T

    640?wx_fmt=png

    表3 Impact of the MLP mask branch

    640?wx_fmt=png

    表4 Ablation on the training strategy

    640?wx_fmt=png

    640?wx_fmt=png

    Each point corresponds to our method on a random A/Bsplit of COCO classes.

    效果图


    640?wx_fmt=jpeg

    Mask predictions from the class-agnostic baseline (top row) vs. our MaskX R-CNN approach (bottom row). Green boxes are classes in set A while the red boxes are classes in set B. The left 2 columns are A = {voc} and the right 2 columns are A = {non-voc}.

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    Example mask predictions from our MaskX R-CNN on 3000 classes in Visual Genome. The green boxes are the 80 classes that overlap with COCO (set A with mask training data) while the red boxes are the remaining 2920 classes not in COCO (set B without mask training data). It can be seen that our model generates reasonable mask predictions on many classes in set B. See §5 for details.

    如果想加入我们“计算机视觉战队”,请扫二维码加入学习群,我们一起学习进步,探索领域中更深奥更有趣的知识!

    640?wx_fmt=jpeg

    cs