Loading

CoMFormer: Continual Learning in Semantic and Panoptic Segmentation论文阅读笔记

摘要

文章的贡献是借助MaskFormer设计了CoMFormer,从而完成对全景分割的连续学习,提出了基于mask的伪标签以对抗遗忘。

方法

截屏2023-02-06 12.28.18

基于MaskFormer,作者将分割视为对mask的分类。输出的形式等都与MaskFormer相同,模型结构也与MaskFormer基本一致。对于每一个step的模型,由backbone、transformer decoder以及pixel decoder构成。作者特别指出,在得到mask预测结果时使用 softmax比sigmoid效果更好,使用sigmoid可能会导致单个像素被分到不同的区域,如下图所示:

截屏2023-02-06 12.41.00

为了实现连续学习,作者还加了许多操作:

Adaptive Distillation Loss

这里针对的是输出类别概率进行蒸馏:

截屏2023-02-06 14.34.59

对于每个segment的概率,用KL散度衡量新模型和旧模型给出的概率分布的差异。\(K^{t-1}+1\)指的是要额外加上no object这个类别的概率。特别地,将当前step学习的类以及no object类的概率加起来作为新模型预测的no object类别的概率(unbiased probability distribution):

截屏2023-02-06 15.19.00

然而,作者指出较大的no object概率会导致降低其它类别的重要性。因此,作者提出了adaptive distillation loss:

截屏2023-02-06 15.33.10

其中\(w_i=(1-p_i^o(\empty))^2\)

Mask-based Pseudo-labeling Strategy

一种简单的伪标签策略是,对于旧模型的N个输出,将预测类别不是no object的作为伪标签。然而这些segment很有可能与gt重叠,或者mask包含噪声且置信度低。为此,作者提出了mask-based pseudo-labeling,同时考虑mask以及class的概率以避免噪声。对于第i个输出,其置信度为\(q_i=p_i^{max}·m_i\in [0, 1]^{H\times W}\),其中\(p_i^{max}=max_{k=1}^{K^{t-1}}p_i^o(k)\)\(m_i^o\)是旧模型预测得到的mask,pseudo-class为\(c_i^{ps}=argmax_{k=1}^{K^{t-1}}p_i^o(k)\)。生成伪标签时需要注意,pseudo-mask与gt segment不能重叠;包含进pseudo-mask的像素置信度在所有输出中应该最大。令\(m_i^{bin}=m_i>0.5\)(即mask中概率大于0.5的位置为1,其余为0,类似pytorch的张量操作),gt segment的并为\(m_{all}^{gt}=\Sigma_{i=1}^{N^{ps}}m_i^{gt}\)(这里不是特别理解为什么是\(N^{ps}\)而不是\(N^{gt}\)),则:

截屏2023-02-06 17.27.09

事实上,可能存在一个pseudo-mask包含许多0,因此最终的伪标签segment集合只包含相对于\(m_i^{bin}\)至少有一半像素且至少有一个活动像素的mask(这里也没太理解什么是相对于\(m_i^{bin}\) ..),最终的标签数为\(N^{gt}+N^{ps}\)

训练损失

通过匈牙利算法找到一组匹配,之后计算两个loss:\(L_{Seg}\)以及\(L_{AD}\)\(L_{AD}\)计算的是自适应蒸馏损失,\(L_{Seg}\)如下:

截屏2023-02-06 22.16.54

前半部分是focal loss,\(L_{mask}\)是dice与cross-entropy的和。

实验

截屏2023-02-06 22.52.07

截屏2023-02-06 22.54.45

posted @ 2023-02-06 22:57  脂环  阅读(159)  评论(0编辑  收藏  举报