目录
One-shot/Few-shot segmentation一般任务设置
paper 1:One-Shot Learning for Semantic Segmentation BMVC 2017
paper 2 : CONDITIONAL NETWORKS FOR FEW-SHOT SEMANTIC SEGMENTATION ICLR 2018
paper 3:SG-One: Similarity Guidance Network for One-Shot Semantic Segmentation
paper 4: PANet: Few-Shot Image Semantic Segmentation with Prototype Alignment ICCV2019
One-shot/Few-shot segmentation一般任务设置
- 在测试任务上:通过利用很少的具有分割标签的support set 来获得query set上目标的分割结果;所以说对于query set 和 support set 两者的要求就是类别是相同的;
- 训练任务的要求:训练任务的support set与query set都需要给出分割的mask, support set 的mask是用于提供指导信息;query set mask用于计算预测损失,用于反向传播更新网络参数;
- 训练任务与测试任务的要求:训练任务中的类别与测试任务中的类别需要是不同。
从问题设置角度来说,one-shot/few-shot segmentation 的终极目的是利用support 中的K个训练图像对来“学习”一个模型,使得该模型能对训练图像对中出现的类别的新样本能够实现分割。至于“学习”为什么加引号后面再说;首先乍一看,one-shot/few-shot 可真厉害,就用几个训练样本"学习"一下就可以对新样本进行分割;不过还是那句话 No free lunch ! 为了实现小样本的学习,前提是我们需要一个更大样本库;具体流程描述如下:
训练的时候,我们构建一系列训练任务,每个训练任务都包含K个图像对,每个图像对是指训练图像与其对应的mask,通过构建很多的训练任务来对模型进行训练;测试过程其实就是前面所说的one-shot/few-shot segmentation的终极目的。所以说,测试过程中support set 中图像的目的并不是为了学习,因为网络参数在训练过程结束的时候已经固定了,更准确来说它们应该是起到一种指导的作用;来指导网络利用已学得的知识进行"举一反三"。这就好比让你在做一种新类型的题目前先给你看一遍参考答案的解题过程;然后让你学会做这种类型的题目。这时候又突然想到这与迁移学习的区别,同样借这个比方来解释一下迁移学习,迁移学习就是在做题目前你已经刷题无数,但是恰好现在的题目没见过,咋办,重新找和现在已有题目相似的题目重刷一遍,更新知识库,再去做题。所以当前的深度学习大部分情况下只能从头开始训练。使用Fine-tune来学习新任务,而Meta Learning 就是研究如何让神经网络很好的利用以往的知识,使得能根据新任务的调整自己。
paper 1:One-Shot Learning for Semantic Segmentation BMVC 2017
问题设置:
网络结构
本文首次提出双分支的网络用于few-shot segmentation,使用conditioning branch直接预测segmentation branch的权重参数,