"); //-->
5)DeepLab (v1 & v2) 2014 & 2016
“计算机视觉战队”微信公众平台推送过,可以查阅:
谷歌经典的语义分割框架系列1——DeepLab v1
DeepLab v2及调试过程
Deeplab v2 安装及调试全过程
6)RefineNet 2016年
主要贡献:
精心设计的译码模块
所有模块遵循残余连接设计
膨胀卷积有几个缺点,如计算量大、需要大量内存。这篇文章采用编码-译码架构。编码部分是ResNet-101模块。译码采用RefineNet模块,该模块融合了编码模块的高分辨率特征和前一个RefineNet模块的抽象特征。每个RefineNet模块接收多个不同分辨率特征,并融合。
7)PSPNet 2016年
Pyramid Scene Parsing Network 金字塔场景解析网络
主要贡献:
提出了金字塔池化模块来聚合图片信息
使用附加的损失函数
金字塔池化模块通过应用大核心池化层来提高感知域。使用膨胀卷积来修改ResNet网,并增加了金字塔池化模块。金字塔池化模块对ResNet输出的特征进行不同规模的池化操作,并作上采样后,拼接起来,最后得到结果。
本文提出的网络结构简单来说就是将DeepLab(不完全一样)aspp之前的feature map pooling了四种尺度之后将5种feature map concat到一起经过卷积最后进行prediction的过程。
8)Large Kernel Matters 2017
主要贡献:
提出了使用大卷积核的编码-译码架构
理论上更深的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(这个我们即将给大家接着上次系列继续分享)
主要贡献:
改进 ASPP
串行部署 ASPP 的模块
和DeepLab v2一样,将膨胀卷积应用于ResNet中。改进的ASPP指的是将不同膨胀率的膨胀卷积结果拼接起来,并使用了BN 。与Dilated convolutions (2015) 不一样的是,v3直接对中间的特征图进行膨胀卷积,而不是在最后做。
小总结:
现在把之前较为典型的简单介绍了一遍,现在接下来我们继续说今天这个分割技术。
学习分割Everything
让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参数,该函数可以作为整个模型的一部分进行联合训练。
具体如下如所示:
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。
实验
表1 Ablation on input to T
表2 Ablation on the structure of T
表3 Impact of the MLP mask branch
表4 Ablation on the training strategy
Each point corresponds to our method on a random A/Bsplit of COCO classes.
效果图
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}.
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.
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。