【论文翻译】One-Shot Learning for Semantic Segmentation

目录

Astract

1 Introduction

2  Related Work

Semantic Image Segmentation.(语义图像分割)

Weak Supervision.(弱监督)

Few-Shot Learning(few-shot学习)

3 Problem Setup

4 Proposed Method

4.1 Producing Parameters from Labeled Image

Masking.

Weight Hashing.

4.2 Dense Feature Extraction

4.3 Training Procedure

4.4 Extension to k-shot

5 Dataset and Metric

Dataset

Metric

6 Baselines

Base Classififiers

Fine-tuning 

Co-segmentation by Composition

Siamese Network for One-shot Dense Matching

7 Experiments

Dilated-FCN

Running Time

7.1 Pretraining Effect

8 Conclusion

Supplementary Materials

A Weight Hashing

B Siamese Network for Dense Matching

C Qualitative Results


Astract

图像分类的low-shot学习方法支持从稀少的数据中学习。我们扩展了这些技术来支持密集的语义图像分割。具体地说,我们训练一个网络,给定一组少量的带注释的图像,为一个全卷积网络(FCN)生成参数。我们使用这个FCN对新的语义类的测试图像进行密集的像素级预测。与对PASCAL VOC 2012数据集中未看到的类进行one-shot分割的最佳基线方法相比,我们的架构显示了25%的相对meanIoU的改进,并且至少快了3倍。该代码可在: https://github.com/lzzcd001/OSLSM上公开获得。

1 Introduction

深度神经网络在解决计算机视觉中的分类问题方面具有强大的作用。然而,使用这些模型学习分类器需要大量有标记的训练数据,而最近的方法一直难以以数据高效的方式适应新的类。人们对使用one-shot学习方法[21,37]从有限的数据中快速学习新的概念很感兴趣。One-shot图像分类是对每个类别[22,39]只给出一个训练示例的图像进行分类的问题。

我们建议进行One-Shot语义图像分割。我们的目标是预测一个语义类(如马、公交等)的像素级分割掩码,只给出一幅图像及其相应的像素级注释。我们在这里将新类的图像-标签对称为支持集,但更普遍地说,对于k-shot学习,支持集称为k个图像和标签。

执行one-shot语义图像分割的一个简单方法是对标记的图像上预先训练的分割网络进行微调[3]。由于更新了数百万个参数,这种方法容易发生过拟合。它也引入了优化器上的困难,其中,如步长、动量、迭代次数等参数可能很难确定。最近的one-shot图像分类方法[22,39]相比之下,元学习分类器[^1],当条件是一些训练例子时,可以在新类上表现良好。由于全卷积神经网络(FCNs)[26]将分割作为像素级分类,我们可以将这些one-shot方法直接扩展到像素级进行分类。然而,数千个密集的特征是从一幅图像中计算出来的,而one-shot的方法并不能很好地扩展到如此多的特征。我们在第6节中通过实现从[22]对Siamese网络的扩展作为基线来说明这个问题。 

[^1]元学习Meta Learning,含义为学会学习,即learn to learn,就是带着这种对人类这种“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务,如:
让Alphago迅速学会下象棋
让一个猫咪图片分类器,迅速具有分类其他物体的能力

我们从few-shot学习中获得灵感,提出了一种新的双分支的one-shot语义图像分割方法。第一个分支将被标记的图像作为输入,并产生一个参数的向量作为输出。第二个分支将这些参数以及一个新的图像作为输入,并为新的类生成一个图像的分割掩码作为输出。这一点如图1所示。与one-shot学习的微调方法不同,它可能需要多次SGD迭代来学习分割网络的参数,我们的网络的第一个分支在一次正向传递中计算参数。这有几个优点:单前向传递使我们的方法快速;我们的一次性学习方法是完全可微的,允许分支与我们网络的分割分支共同训练;最后,参数θ的数量与图像的大小无关,所以我们的方法在缩放方面没有问题。

为了衡量one-shot语义分割的性能,我们在PASCAL VOC 2012数据集[11]上定义了一个新的基准测试(第5节)。训练集包含来自PASCAL classes的一个子集的标记图像,而测试集有在训练中不存在的类的注释。如第7节所述,在这个基准测试上,在标准meanIoU(平均交并比)度量方面,我们显示了比基线有显著的改进。

我们扩展到k-shot学习,通过对每个k幅图像应用我们的one-shot方法独立地产生k个分割掩模。然后,我们通过在像素级执行 logical-OR操作来聚合这些掩码。这种方法除了易于实现和快速之外,还不需要再训练就可以泛化到支持集中的任何数量的图像。我们在第7节中展示了,每添加图像到支持集在增加平均IOU精度方面的有效性。

PASCAL VOC只包含20个类,与用于训练one-shot分类方法的标准数据集如 Omniglot(1623)[24]和ImageNet(1000)([10])相比,规模很小。在训练过程中模拟one-shot任务,即使类的数量如此有限,其表现也很好。这与通常认为的few-shot学习的训练模型需要大量的类别相反。我们假设,我们的算法能够很好地推广到看不见的类的部分能力来自于在ImageNet上执行的预训练,其中包含了针对大量类的弱图像级注释。我们在第7.1节中对预训练进行了实验

 本文的贡献如下:(1)我们提出了一种新的one-shot分割技术,该技术显著优于基线;(2)我们证明了我们的技术可以在没有新类的弱标签下实现;(3)我们证明了即使只有少数类具有强注释可用,也可以有效地执行元学习;(4)我们为PASCAL上具有挑战性的k-shot语义分割任务建立了一个基准。

2  Related Work

Semantic Image Segmentation.(语义图像分割)

语义图像分割是将图像中的每个像素分类为预定义的类别集的任务。基于卷积神经网络(CNN)的方法最近推动了该领域的成功。其中一些对超像素[13,15,27]进行分类,另一些直接对像素进行分类[6,16,26,28]。我们的方法基于全卷积网络(FCN)的语义分割[26],这显示了像素级分类的效率。然而,与上面的FCN和其他方法不同,我们没有假设测试类有大量带注释的训练数据。

Weak Supervision.(弱监督)

语义分割的弱方法和半监督方法减少了对昂贵的像素级注释的需求,从而引起了最近的兴趣。弱监督是指从边界框[9]或图像标签[30,31,33]等粗糙的注释中进行训练。一个值得注意的例子是共分割(co-segmentation),其目标是从同一语义类[12,35]的图像中找到并分割同时出现的对象。许多共分割算法[8,17,34]假设一批处理中的对象视觉外观是相似的,要么依赖于手工调整的低级特征,要么依赖于针对不同任务或对象[34]训练的高级CNN特征。相反,我们元学习一个网络,为给出一个单独标记的示例,生成一个新的语义类的高级表示。半监督方法[18,19,30]将弱标签与一小组的像素级注释结合起来。然而,它们为每个期望的对象假设有大量的弱标签。例如,Pathak等人[32]对PASCAL 2012训练集[11]中的所有类和图像都使用了图像级注释,而我们从PASCAL训练集中排除了测试类的所有注释。

Few-Shot Learning(few-shot学习)

few-shot学习算法寻求将通过训练过程中看到的类获得的知识推广到只有少数训练例子[25,36,39]的新类。将基分类器的参数(在训练类上学习的)适应于新的类[1,2,14,40]的判别方法与我们的工作密切相关。主要的挑战是,自适应的分类器容易过拟合新提出的训练例子。Wang和Herbert [40]通过学习预测仍然接近基分类器的分类器来解决这一挑战。Bertinetto[2]等人训练了一个有两个分支的网络,其中一个分支接收到一个例子,并预测了一组动态参数。第二个分支使用动态参数和一组学习到的静态参数来对查询图像进行分类。Noh等人在[29]中也使用了类似的方法来回答问题。我们从这些论文中提取一些想法,并将它们适应密集分类的任务来设计我们的模型。度量学习(Metric learning)是low-shot学习[22,39]的另一种方法。它的目的是学习一个嵌入空间,将来自相同类别的物体拉近,同时将来自不同类别的物体分开。Koch等人的[22]表明,为二值验证任务训练的暹罗(Siamese)架构可以在k-shot图像分类中击败几个分类基线。我们将他们的图像分割方法作为我们的基线之一。

3 Problem Setup

设支持集S=\left \{ \left ( I_{s}^{i} , Y_{s}^{i}\left ( l\right )\right ) \right \}_{i=1}^{k}是k个图像-二值mask对的一个小集合,Y_{s}^{i} \in L_{test}^{H\times W}是图像I_{s}^{i}的分割注释,Y_{s}^{i}\left ( l \right )是语义类l\in L_{test}的第i个图像的掩码。其目标是学习一个模型f\left ( I _{q} ,S\right ),当给定一个支持集S和查询图像I _{q}时,该模型为语义类l预测一个二进制掩码\hat{M} _{q}。图1说明了k = 1时的问题。

 

图1:概述。S是来自新语义类的带注释的图像。在我们的方法中,我们将S输入到一个函数g,该函数g输出一组参数θ。我们使用θ来参数化学习分割模型的一部分,它产生一个给定查询图像Iq的分割掩码。

训练过程中,该算法可以获得大量的图像-掩码对D=\left \{ \left ( I^{j},Y^{j} \right ) \right \}_{j=1}^{N},其中Y^{j} \in L_{train}^{H\times W}是训练图像I^{j}的语义分割掩码。在测试中,查询图像只对新的语义类进行了注释,即Ltrain∩Ltest=∅。这是与典型的训练和测试类相同的图像分割的关键区别。虽然这个问题类似于已被广泛于图像分类研究的k-shot学习,但将其应用于分割需要一些修改。

在这个问题中,与图像分类不同,Ltest中的例子可能会出现在训练图像中。当注释器不知道某些对象类,自然会处理将其标记为背景。Ltest对象的注释在训练集中被排除,而只要有一个来自Ltrain的对象存在,就会包含图像。最先进的图像分割算法[4,5]使用了在像[10]这样的大规模图像分类数据集上预先训练过的网络。虽然这些权重给了模型一个更好的起点,但它们仍然需要许多分割图像和数千次的权重更新来学习一个好的像素分类模型。即使对于直接重叠的类也是如此。我们通过在ImageNet [10]上使用预先训练的权重初始化VGG,允许类似地访问我们问题的弱注释。然而,在第7.1节中,我们表明,即使从预训练中排除所有重叠的类,也不会降低我们的方法的性能。

4 Proposed Method

图2:模型架构。条件分支接收一个图像-标签对,并为逻辑回归层c(·,w,b)生成一组参数{w,b}。分割分支是一个FCN,它接收查询图像作为convc -fc7的输入和输出约束特征。通过c(·,w,b)对像素级特征进行分类,生成预测的掩码,然后将其上采样到原始大小。

我们提出了一种方法,即第一个分支从支持集S接收一个有标记的图像作为输入,而第二个分支接收查询图像I _q。在第一个分支中,我们输入图像标签对S=\left ( I_{s} ,Y_{s}\left ( l \right )\right )来生成一组参数,

w,b=g_{\eta} \left ( S \right ).                                                          (1)

在另一个分支中,我们使用参数嵌入函数\phiI _q中提取一个密集的特征体。设F_{q}=\phi _{\zeta }\left ( I_{q} \right )为从 I _q 中提取的特征体,则F^{_{q}^{mn}}为空间位置(m,n)处的特征向量。然后使用第一层的参数对特征进行像素级逻辑回归,得到最终的mask,

\hat{M}_{q}^{mn}=\sigma \left ( w^{\top }F_{q}^{mn}+b \right ).                                                (2)

在这里,σ(.)是s型函数sigmoid,\hat{M}_{q}^{mn}是查询图像的预测掩码的(m,n)位置。这可以理解为一个带有参数{w,b}的卷积层,然后是一个s型激活函数,其中的参数在训练后不是固定的,并通过支持集中每个图像的第一个分支进行计算。然后使用标准双线性插值将预测的掩模上采样到原始图像大小。最后的二进制掩码是通过在\hat{M}_{q}上使用0.5的阈值而产生的。整个体系结构如图2所示。我们将在下面的小节中更详细地解释体系结构的每个部分。

4.1 Producing Parameters from Labeled Image

我们从[38]中修改了VGG-16体系结构,以建模函数g_{\eta }\left ( \cdot \right )

Masking.

我们选择用相应的标签掩码图像,使它只包含目标对象,而不是修改第一层以接收四个通道的图像-mask对作为输入。我们这样做是基于以下两个经验性的原因。(1)即使在掩模存在时,网络响应也倾向于偏向于图像中最大的对象,而这可能不是我们想要分割的对象。(2)在输入端中加入背景信息,增加了输出参数{w,b}的方差,从而阻止了网络的收敛。

Weight Hashing.

受Noh等人[29]的启发,我们使用了来自[7]的权值哈希层,将从VGG的最后一层输出的1000维向量输出映射到{w,b}的4097维。这种映射避免了由于全连接层在使用时会引入大量额外参数而导致的过拟合。我们将它有效地实现为一个具有固定权值的全连接层。这在补充材料中有更详细的解释。

4.2 Dense Feature Extraction

我们利用FCN-32s的完全卷积体系结构[26]对嵌入函数F_{q}=\phi _{\zeta }\left ( I_{q} \right )进行建模,并排除了最终的预测层。然后将conv-fc7处的4096通道特征体输入给上述的逻辑像素分类器。在第7节中,我们还评估了步长为8的高分辨率 dilated-FCN[41]的性能。

4.3 Training Procedure

在每次迭代中,我们通过从训练集D _{train}中采样支持集S、查询图像I _{q}及其相应的二值掩模M_{q}来模拟训练过程中的one-shot任务。首先,从D _{train}中均匀随机采样一个图像-标签对\left ( I_{q},Y_{q} \right ),然后从语义掩码中存在的类中均匀采样一个类l\in L_{train},并使用它生成二值掩码Y_{q}\left ( l \right )S是通过从具有类l存在的D _{train}\left \{ \left ( I_{q},Y_{q} \right ) \right \}中随机选择一个图像—掩模对而形成的。然后,我们可以通过正向通过我们的网络来预测掩模\hat{M}_{q}。我们最大化了ground-truth mask的log

这里η和ζ是网络参数,p_{\eta ,\zeta }是给定神经网络输出的掩模的概率,SI _{q}M_{q}采用上述采样策略进行采样。我们使用随机梯度下降,固定的学习率为10^{-10},动量为0.99,batch size为1。VGG网络比全卷积分支的过拟合更快;因此,我们将学习率乘数设置为0.1来学习参数η。我们在60k次迭代后停止训练。

4.4 Extension to k-shot

在k-shot分割的情况下,支持集包含k个标记图像,S=\left \{ I_{s}^{i} , Y_{s}^{i}\left ( l\right ) \right \}_{i=1}^{k}。我们使用这些图像来产生k个\left \{ w^{i},b^{i} \right \}_{i=1}^{k}参数集合。每一个集合都可以被理解为一个独立的分类器(an independent classififier of an ensemble)。我们注意到这些分类器精度高,但查全率低。我们认为这是因为每个图像都是由支持集的一个例子产生的,而一个图像只能包含对象可能外观的一个小子集。因此,如果一个像素被这些分类器中的任何一个认为是一个对象,我们就将这些分类器的决策结合在最终掩码中。这是实现为k个二进制掩码之间的logical OR操作。这种方法的好处是,它不需要任何再训练,并且可以推广到任何k值。它也比第7节中所示的基线要快得多。

5 Dataset and Metric

Dataset

我们创建了一个新的数据集, PASCAL-5i,针对使用来自PASCALVOC 2012[11]的图像和注释以及来自SDS[15]的扩展注释[^2]进行k-shot图像分割的问题。
[^2]为了创建训练集,我们只包括与PASCALVOC 2012验证集不重叠的图像

 从PASCALVOC 20个语义类的集合L中,我们抽样5个,并将它们视为测试标签集L_{test} = {4i+1,...,4i+5},其中i为the fold number,剩下的15个形成了训练标签集L_{train}

测试和训练类别名如表1所示。我们通过包含来自PASCALVOC和SDS训练集的所有图像-掩码对来形成训练集D_{train},这些图像-掩码对至少包含来自标签集L_{train}的语义掩码中的一个像素。对D_{train}中的掩码进行修改,以便将语义类为\neqL_{train}的任何像素设置为背景类l_{\phi }。我们遵循类似的过程来形成测试集D_{test},但这里的图像-标签对来自PASCALVOC验证集,对应的标签集是L_{test}。因此,除了一些排除外,这组图像类似于在图像分割论文,如FCN [26]中使用的图像。然而,注释是不同的。给定测试集D_{test},我们使用第4.3节中描述的相同过程对每个测试示例\left \{ S,\left ( I_{q},Y_{q}\left ( l \right ) \right ) \right \}进行采样。我们采样N个= 1000个示例,并将它作为测试下一节中描述的每个模型的基准。

Metric

给定一组预测的二值分割掩码\left \{ \hat{M} _{q}\right \}_{i=1}^{N}和the ground truth 注释掩码\left \{ M _{q}\right \}_{i=1}^{N},对于语义类l,我们定义每个类的IoU_{l}\frac{tp_{l}}{tp_{l}+fp_{l}+fn_{l}}。这里,tp_{l}是正确的正例的数量,fp_{l}是错误的正例的数量,fn_{l}是在掩模集合上的错误的反例数量。meanIoU只是它在类别集上的平均值,即\left ( \frac{1}{n_{l}} \right )\sum_{l}IoU_{l}。这是图像分割文献中定义的标准指标,适用于我们的二值分类问题。

6 Baselines

我们用不同的基线来评估我们的方法的性能。由于one-shot图像分割是一个新问题,我们将以前的密集像素预测工作作为基线进行比较。

Base Classififiers

CNNs学习图像的深度表示,因此这些模型是分类的直观起点。具体来说,我们首先对ILSVRC2014数据预训练的FCN-32s进行微调,以执行16-way(15个训练前景类+
1个背景类)在PASCAL-5i数据集上的像素预测。在测试过程中,我们从支持集和查询图像中提取密集的像素级特征。然后,我们训练分类器将密集的fc-7特征从支持集映射到它们相应的标签,并使用它来生成预测的掩码\hat{M_{q}}。我们尝试使用各种分类器,包括1-NN和逻辑回归。

Fine-tuning 

正如[3]所建议的,对于每个测试迭代,我们在支持集中的示例上微调训练好的分割网络,并在查询图像上测试。我们只对全连接层(fc6, fc7, fc8)进行微调,以避免过拟合并减少每个查询的推断时间。我们还发现,如果我们通过批处理归一化层对fc-7特征进行归一化,那么经过微调的网络收敛得更快。

Co-segmentation by Composition

为了与这些技术进行比较,我们包含了PASCAL-5i上公开可用的[12]实现3的结果。

Siamese Network for One-shot Dense Matching

Siamese Networks训练用于图像验证,即预测两个输入是否属于同一类,在一次图像分类[22]上表现出良好的性能。我们通过使用两个FCNs来提取密集特征,然后训练它进行像素验证。从查询图像中的每个像素到支持集中的每个像素的相似度度量也被学习,然后根据像素在支持集中的最近邻居进行标记。具体实施详见补充文件。

7 Experiments

我们进行了几个实验来评估我们的方法在k-shot图像分割任务中的性能,并将其与其他方法进行了比较。表1报告了我们的方法在1-shot和5-shot设置下的性能,并将它们与基线方法进行了比较。为了将5-shot的Siamese网络放入内存中,我们以0.3的速率从支持集中的特征中采样。然而,子采样大大降低了该方法的性能,5-shot的结果比1-shot的结果更差,因此我们排除了这些结果。

我们的方法对新类显示出更好的泛化性能。在1-shot学习中,这种差异非常明显,因为其他方法只对支持集中的图像进行过拟合。具体而言,我们的方法在1-shot图像分割中比1-NN和微调高出25%的相对meanIoU。文中图4还给出了一些定性结果。令人惊讶的是,1-NN的结果几乎与微调基线一样好,后者快速过拟合支持集中的数据。

 图4:1-shot方法的一些定性结果。在每个tile中,我们在顶部设置了支持,在底部设置了查询图像。支持用黄色的地面真相覆盖,查询用红色的预测掩码覆盖。

在表1中,我们还比较了使用Composition[35]进行5-shot分割的协同分割与我们的方法。正如预期的那样,使用强像素级注释使我们的方法比无监督的共分割方法高出16%。事实上,我们可以用一张强注释图像来胜过需要5张弱注释图像的共分割结果。

Dilated-FCN

除了我们的方法的低分辨率版本,我们还在PASCAL- 50上训练了更高分辨率的扩张fcn,并在1-shot和5-shot分别获得了37.0%和37.43%的meanIoU。我们注意到one-shot比低分辨率提高了3.4%,但是在该分辨率下,1-shot和5-shot之间的差距很小。我们相信这是由于我们的训练是专门针对1-shot问题。我们没有将扩展fcn架构用于其他方法,因为它们具有较高的计算成本或内存占用。

Running Time

在表2中,我们包括每种算法的运行时间。所有的实验都是在一台配有4GHz Intel Core-i7 CPU、32GB RAM和TitanX GPU的机器上执行的。在one-shot设置中,我们的方法比第二快的逻辑回归方法快大约3倍。对于5-shot,我们的方法比逻辑回归快大约10倍。

7.1 Pretraining Effect

上面比较的模型有两个信息源,一个是ImageNet[10]中经过预训练的类的图像级标签,另一个是L_{train}中类的像素级注释。尽管测试类L_{test}L_{train}没有重叠,但它们与一些ImageNet类有部分重叠。为了理解这种效果,我们使用一个数据集,它排除了ImageNet中与PASCAL类别重叠的所有类,称为PASCAL- removedimagenet,如[20]。这个数据集只包含771个类,而最初是1000个,因为PASCAL中的每个类通常与多个ImageNet类重叠。我们使用在ImageNet和pascal -remove ImageNet(来自Huh et al.[20])上训练的AlexNet[23],分别为1000和771。我们用AlexNet替换了我们方法的两个分支中的VGG和FCN,从而得到AlexNet-1000和AlexNet-771。我们也有一个以逻辑回归的形式在卷积AlexNet特征上执行的基线,这些特征在PASCAL上进行了微调,类似于第6节中描述的基分类器。我们称之为LogReg-1000和LogReg-771。图3包含了这些模型在第一次折叠(即PASCAL-50)上的结果。请注意,两个基线的结果是恒定的,因为我们只在网络收敛时评估它们。

在图3中,我们观察到AlexNet-1000在初始阶段更好,收敛速度更快。然而,收敛后AlexNet-771的性能与AlexNet-1000相当。最初的差距可以理解为,即使是Ltrain课程也没有在预培训期间出现。AlexNet是一个更简单的模型,表现比VGG差,表5中的iou为33.6%。然而,AlexNet-771甚至超过了我们最好的VGG基线,即PASCAL-50的28.1%的Siamese。这一结果表明,我们可以在没有薄弱监督的情况下推广到新的类别。相比之下,LogReg-1000的表现优于LogReg-771,这表明它无法在没有看到测试类别的弱标签的情况下学习良好的表示。这突出了元学习对这项任务的重要性。

8 Conclusion

深度学习方法在许多计算机视觉问题上都取得了优异的表现。然而,通过很少的例子来学习一个新概念仍然是一项非常具有挑战性的任务。在本文中,我们开发了一种新的体系结构来解决图像分割的这个问题。我们的体系结构学习了集成分类器,并使用它对查询图像中的像素进行分类。通过综合实验表明,该算法具有明显的优越性。所提出的方法比其他基线要快得多,并且占用的内存更少。

Supplementary Materials

A Weight Hashing

在本文的第5节中,我们使用了来自[7]的权重哈希技术,将VGG最后一层的1000维向量输出映射到{w,b}的4097维。这种映射(1)减少了{w,b}的方差,正如Huh等人在[29]中所指出的那样,并且(2)减少了过拟合,这是由于使用全连接层将引入大量额外参数而导致的。

 图S1:权重哈希的说明。在图中,通过在y的多个随机位置复制x的系数并随机翻转符号,x被映射到y。颜色有助于指示从哪里复制条目。

权重哈希在[7]中被解释为解压缩,执行如下。设x\in \mathbb{R}^{m}\theta \in \mathbb{R}^{d},通常为d > m,分别为该层的输入和输出。权重哈希的工作原理是在θ的多个位置复制x的每个系数,并随机翻转符号以减少复制系数的协方差。所示图S1。具体来说,θ的第i个系数是

\theta \left ( i \right )=x\left ( p \right )\zeta \left ( i \right )

p=\kappa \left ( i \right )

其中κ(i)→{1,…,m}和ζ (i)→{−1,+1}是随机确定的哈希函数。虽然[7]隐式地执行哈希以保持较小的内存占用,但我们将其实现为一个全连接层,因为我们可以在内存中同时保持哈希值和θ。权重设置为

W\left ( i,j \right )=\zeta \left ( i \right )\delta _{j}\left ( \kappa \left ( i \right ) \right )

其中δj(·)为离散狄拉克函数。权重是根据训练前的随机哈希函数设置的,并保持固定。这比原来的公式和[29]使用的公式更容易实现,计算效率也更高。内积层Wx的输出等于方程S1中的θ。

B Siamese Network for Dense Matching

在本文中,我们使用了由Koch等人提出的孪生神经网络的改编版本进行one-shot图像识别,使用[22]进行one-shot图像分割。这里我们解释实现细节。来自[22]的方法接收两个图像作为输入,每个图像都通过相同的卷积网络,并产生一个向量作为每个图像的输出。然后,使用学习到的L1相似性度量对这些向量进行比较,并根据该度量空间中最近邻的标签对图像进行分类。在我们的例子中,我们使用一个FCN,为查询和支持图像分别输出一个特征卷。然后,使用学习到的L1相似性度量将查询图像中每个像素的特征与支持中的每个像素进行比较。我们在Caffe的python层中实现了像素之间的交叉相似性度量。这里的二进制标签根据支持集中最近的像素标签分配给每个像素。整个结构如图S2所示。

在训练过程中,我们使用在ImageNet[10]上初始化的FCNs,在每次迭代中,我们从PASCAL-5i训练集中采样一对图像。其中一个图像被视为查询图像,另一个图像成为支持图像。梯度是根据相似度的sigmoid与真实二进制标签之间的交叉熵损失计算的。每个批包含一个查询像素的子集(50%)和一个支持图像。相似度度量和FCN特征提取同时作为同一神经网络的不同部分。

C Qualitative Results

我们在图S3中包含了我们的方法的一些更定性的结果。我们看到,所提出方法能够很好地分割各种类别,并且只要给定单个支持图像,就可以将场景中的物体与其他物体区分开。

我们在图S4中通过使用不同的支持集分割相同的查询图像来说明条件作用的效果。我们选择了一个未见过的查询图像,其中包含两个未见过的类,car和cow,并为每个类选择了样本支持图像-掩码对。图S5显示了增加支持集的大小如何帮助改进预测的掩码。请注意,在图S5S4中,黄色表示真实值和预测值之间的重叠。

 图S3: 1-shot的定性结果。在每个tile中,我们在顶部设置了支持,在底部设置了查询图像。支持用黄色的地面真相覆盖,查询用红色的预测掩码覆盖。

 图S4:调节效果说明。给定一个固定的查询图像,通过改变支持集来预测掩码的变化。地面真相面具显示为绿色。第一行:支持从牛类中采样的图像掩码对。第二行:支持从汽车类别中采样的图像-掩码对。第一列:只有改变支持掩码才会改变预测。

图S5:增加支撑集大小的影响。对同一张查询图像进行1-shot和5-shot学习的结果分别在第一行和第二行。地面真相的面具是绿色的,我们的预测是红色的。实际情况和预测之间的重叠部分显示为黄色。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值