核心思想

  本文提出一种解决小样本语义分割问题的方法。整个网络分成两个分支:条件分支(Conditioning Branch)和分割分支(Segmentation Branch),网络的结构如下图所示。
论文阅读笔记《One-Shot Learning for Semantic Segmentation》
  条件分支对应的是支持集图像,该图像包含一张目标物体的二元掩码图(一个通道)和一张原图(RGB三个通道),首先经过掩码操作,将原图中目标物体所在区域提取出来。然后经过VGG网络进行特征提取,再利用全连接层将其转化为长度为1000的特征向量。最后经过一个“权重哈希(Wight Hashing)”操作将其转化为长度是4097的一维向量(图中画了4个长条我并不太理解是什么含义)。所谓的权重哈希操作是利用一个固定权重的全连接层来实现的,权重计算方法如下式
论文阅读笔记《One-Shot Learning for Semantic Segmentation》
式中ζ(i){1,+1}\zeta(i)\rightarrow \left \{-1,+1\right \}κ(i){1,...,m}\kappa(i)\rightarrow \left \{1,...,m\right \}是随机选择的,mm是输入向量的维度,本文取m=1000m=1000δj\delta_j表示离散狄拉克函数。该权重不随着训练过程更新。
  分割分支对应查询集图片,首先经过一个FCN-32s网络进行特征提取得到通道数为4096的特征图FqmnF^{mn}_q,表示在坐标(m,n)(m,n)处的特征向量(长度为4096),然后利用条件分支得到的一维向量作为权重和偏置来对FqmnF^{mn}_q做逻辑回归操作,公式如下
论文阅读笔记《One-Shot Learning for Semantic Segmentation》
式中ww(长度为4096)和bb(长度为1)均来自条件分支输出的一维向量,σ\sigma表示Sigmoid函数,M^qmn\hat{M}^{mn}_q表示在坐标(m,n)(m,n)处的预测掩码值。最后将预测掩码图M^\hat{M}通过双边线性插值的方式进行上采样,恢复到原图尺寸,然后以0.5为阈值对查询图片进行掩码操作得到分割图像。
  对于支持集中一个类别包含多个图像的情况(few-shot),分别利用多张图片计算对应的分割图像,然后对多个分割结果采用“逻辑或”操作来解决预测准确率高但召回率低的问题,并得到最终的预测结果。

实现过程

网络结构

  条件分支采用VGG,分割分支采用FCN-32s网络。

损失函数

  本文的目标函数是最大化预测的对数似然
论文阅读笔记《One-Shot Learning for Semantic Segmentation》
式中η,ζ\eta,\zeta分别表示分割分支和条件分支网络的参数。

训练策略

  首先从训练集中采样得到查询集图像IqI_q和对应的语义分割图YqY_q,从中选择需要分割的目标类别ll,并得到对应的二元掩码图Mq=Yq(l)M_q=Y_q(l)YqY_q中包含图中所有物体的分割结果(如汽车,公路,建筑等),但MqM_q中只包含目标类别的分割结果(如汽车)对应位置的像素点值为1,其他位置均为0。然后从训练集中包含目标类别ll的图片中,除去IqI_q剩下的部分里,采样得到支持集SS

创新点

  • 设计了一种双分支结构,实现了小样本语义分割任务
  • 采用了权重哈希操作实现特征向量维度变换,并采用逻辑或操作解决预测结果召回率低的问题

算法评价

  本文是较早地研究小样本语义分割任务的文章,采用的方式看起来也比较粗糙,每次只能分割一类物体(类似于显著性检测),只能得到二元的预测结果(是或不是),而且在预测时必须提供包含同类物体的支持集图像,以及对应的二元掩码图,这样就限制了实际应用效果。但作为一个早期的探索,本文还是向小样本语义分割任务这一难题迈出了坚实的一步,打下了一个良好的研究基础。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《One-Shot Learning for Semantic Segmentation》

相关文章: