P A S C A L − 5 i PASCAL-5^i PASCAL−5i出自OSLSM
P A S C A L − 5 i PASCAL-5^i PASCAL−5i
P A S C A L − 5 i PASCAL-5^i PASCAL−5i,针对使用PASCAL VOC 2012的图像和标注以及SDS的扩展标注进行 k k k-shot图像分割。
从PASCAL VOC的20个语义类集合
L
L
L中抽取5个作为测试标签集
L
t
e
s
t
=
{
4
i
+
1
,
.
.
.
,
4
i
+
5
}
L_{test}=\left\{ 4i+1,...,4i+5 \right\}
Ltest={4i+1,...,4i+5},
i
i
i指fold号,剩下的15个语义类则是作为训练标签集
L
t
r
a
i
n
L_{train}
Ltrain
例如:
通过包含PASCALVOC和SDS的所有image-mask pairs来形成训练数据
D
t
r
a
i
n
D_{train}
Dtrain,这些image-mask pairs至少包含来自训练标签集
L
t
r
a
i
n
L_{train}
Ltrain的语义mask中的一个像素(也就是说至少包含了一个
L
t
r
a
i
n
L_{train}
Ltrain的语义类)。同时
D
t
r
a
i
n
D_{train}
Dtrain中的masks进行了一定的修改,任何不属于
L
t
r
a
i
n
L_{train}
Ltrain中语义类的像素均被设置为背景类。
D t e s t D_{test} Dtest的处理流程和 D t r a i n D_{train} Dtrain类似,只不过这里的image-label pairs是从PASCAL VOC validation set中提取的,对应的标签集为 L t e s t L_{test} Ltest
在小样本分割中,需要注意的一点是 D t r a i n D_{train} Dtrain和 D t e s t D_{test} Dtest中的类是不重复的,也就是 L t r a i n ∩ L t e s t = ⊘ L_{train}\cap L_{test}=\oslash Ltrain∩Ltest=⊘。很多人在刚学习小样本是可能觉的真的只需要少量样本就可以完成全部的学习过程,这不完全正确,实际上在训练的过程中我们仍然需要大量的样本,只不过来说我们在测试的时候,我们可以对未曾在训练集中出现过的测试图像类只用几张甚至一张支持图像(或者理解为在推理过程中用到的训练图像)来达到对所谓的unseen类的分割。
而传统的图像分割网络是需要在训练集中也包含了测试集的类才能对测试图像进行分割,比如我想从一张有狗的测试图像里分割出狗,那么在训练集中也需要有分割狗的任务才行,小样本却不需要。
这里贴出一下数据下载地址:
PASCAL VOC
SBD
上面的数据集提供的标注并不是二值标注,而一般论文都使用的是二值标注,PASCAL VOC并未提供二值标注,需要去别的地方下载,名字是叫SegmentationClassAug:
https://www.dropbox.com/s/oeu149j8qtbs1x0/SegmentationClassAug.zip?dl=0
上面的这个二值标注并未分类,CANet的开源代码还提供了分类后的二值标注和对应图像编号,直接用这个数据集的话省去了不少读取数据的麻烦,非常不错,名字叫Binary_map_aug:
https://github.com/icoz69/CaNet