AAS-DCL-FSS(ECCV)
code: https://github.com/cvszusparkle/AAS-DCL_FSS
网络框架
特点
-
采用小样本学习
-
提出双对比学习分割模型(原型和上下文两个角度),利用没有目标类的医学图像的解剖辅助信息来提高特征的可辨别性和数据的利用率
-
设计约束迭代预测模型来优化查询图像的分割
主要内容
对于无标签的图像的处理
大概过程:从所有的无标签的图像中随机抽取K个图像,对于挑选的每一个图像,从它们各自对应的超像素中选一个类别进行二值化作为它们的伪标签;同时,提取这K个图像的特征,最后将特征信息和伪标签一起送入到对比学习模块。
Encoder
输入:一个支持查询对,支持集是图像和标签,查询集是图像;
如上图所示,有五层卷积层(提取不同尺度的特征),其中前四层的具体模块如下:
最后一层相比于前四层,少了重复的一段
在查询分支,还增有sSE模块,首先,叠加支持特征中的各个特征图的重要信息,得到一个挤压过的特征图,再通过sigmoid激活,得到的权重矩阵与查询特征进行点乘,最后得到了校准过的查询特征,具体内容可以查看这篇博客:[【精选】小样本医学图像]‘Squeeze & Excite’ Guided Few-Shot Segmentation of Volumetric Images医学小样本三维分割XL_Dylan的博客-CSDN博客
双支路对比学习
双对比学习模块
b:语义对比学习
c:事先嵌入
d:原型对比学习
语义对比学习
对于无标签的切片特征图和支持集的切片特征图处理过程:首先通过ssE模块,使不同通道上的信息进行交互,再通过平均池化和重塑,最终得到无标签切片和支持集的向量。
而对于查询集,则比上面二者多了一步PE模块。最终得到的是查询集的特征向量,通过Info NCE loss,要使得查询向量与支持向量尽可能相似,与无标签的向量尽可能不相似。损失函数公式如下:
事先嵌入(PE)模块
M:将支持特征与查询特征中的前景特征通过余弦相似度算法得到二者之间的相似度再加上归一化操作生成的相似度矩阵(即计算查询特征与支持特征标记区域的相似度)
P^s:聚合支持特征图前景区域和背景区域的信息。
最后将M、扩展过的ps和查询特征fq进行连接再卷积,得到前景信息增强过的查询特征f^q`
原型对比学习
有两个部分,cpcl &ppcl
Class-level Prototypical Contrastive Learning
与PE模块中得到P^s的步骤相同,聚合支持集和无标签集各自的前后区域信息,然后查询集通过PE模块加强前景信息后,通过自适应平均池化调整好形状,再进行Info NCE loss 计算,其中支持集是正样本,无标签集是父样本。
Patch-level Prototypical Contrastive Learning
提出PPCL有两个原因:一是由于MAP获得的类级原型会过滤掉目标类周围的其他背景信息,这些背景信息可能被用作负样本来增强目标类周围语义的判别性,二因为对比学习在很大程度上需要大量的有效学习负样本,只考虑类级原型是不够的。
没读懂论文这一部分的具体实现。大概意思是通过设置阈值来划分支持集,将低于阈值的支持集的patch 聚合的特征向量作为负样本?
Decoder
Constrained Iterative Prediction
优化分割结果
大致过程:首先利用通用分类器的结果作为初始预测掩码,将其与解码器尾部的查询特征融合并发送到PE模块,在PE模块后通过一系列卷积运算获得新的分割结果。PE的应用是利用支持特征的引导信息来促进预测查询掩码的融合。新的查询预测将通过SCC中的以下约束来确定更新。
代码目前还没有公布训练和测试代码,只公布了模型代码