这是一篇关于基于生成方式的零样本语义分割的论文。
算法模型
算法思路
Zero-shot learning解决了训练实例集并非包含所有类别的识别问题。通过使用类别的高级描述,可以使新类别(unseen classes)与可以使用训练实例的类别(seen classes)相关联来实现这一点,通常利用中间表示形式即有关类别信息的语义信息来完成学习。
将语义信息之间的语义相似性从一个合适的文本嵌入空间转移到视觉表示空间,即“斑马”和“驴”再表示空间中的距离应该要比“鸟”和“电视”这样非常不相同的类近很多。
通过现有的语义分割模型DeepLab v3+对可见数据进行训练,但是只能够识别可见类别。
为了使语义分割模型能同时识别可见和不可见类别,论文提出为不可见类别生成综合训练数据,方法是通过以目标类的语义表示为条件的生成模型产生,如流程图中的蓝色区域1。
训练了生成器之后,就可以为不可见类生成特征,与来自可见类的真实样本实例一起作为新的训练数据重新训练分割网络的分类器,如流程图中的橙色区域2,便可以预测可见和不可见的类。
算法流程
我们将所有类别的集合表示为 C = S ∪ U C=S \cup U C=S∪U ,其中 S S S 表示已看到的类别, U \quad U U 表示未看到的 类别,其中 S ∩ U = ∅ S \cap U=\emptyset S∩U=∅ 。每个类别 c ∈ C c \in C c∈C 可以通过词嵌入映射到维数为 d a d_{a} da 的向量表示 a [ c ] ∈ R d a a[c] \in R^{d_{a}} a[c]∈Rda 。在实验中,选择skip-gram语言模型,该模型是通过预测目标词典 中单词的上下文(邻近单词)而学习的。这种训练策略的结果是,根据这种语义表示可以得到不同的类之间的几何语义关系。
- 将带标注的可见类数据放入DeepLab v3+语义分割模型进行有监督的与训练,选择DeepLab v3+的最后一个 1 × 1 1\times1 1×1卷积分类层,并将其摄取的特征分别作为分类器 f f f和目标特征 x x x
训练集为 D s = { ( x i s , y i s , a i s ) } D_{s}=\left\{\left(x_{i}^{s}, \quad y_{i}^{s}, \quad a_{i}^{s}\right)\right\} Ds={ (xis,yis,ais)} 由三元组组成,其中 x i s ∈ R M × N × d x x_{i}^{s} \in R^{M \times N \times d_{x}} x