语义分割[1]作为计算机视觉的基本任务之一, 有着广泛的应用场景[2,3], 然而全监督语义分割模型的训练依赖于带有人工标注的大规模数据集, 这些数据集的像素级标注获取成本高昂, 且训练出的模型的分割能力难以拓展到从未见过的新类, 这些缺陷严重制约了语义分割模型的实际应用. 为了应对这一挑战, 小样本语义分割应运而生. 小样本语义分割的目标是在仅有少量带注释的支持图像可用的条件下, 通过分割已知类别的对象来学习可迁移的知识, 从而将分割能力推广到未见过的新类别. Shaban等人[4]首先将小样本学习引入语义分割领域, 在仅有一张带有像素级注释的参考图像可用的条件下, 实现了对未知图像的分割, 提出的模型包括支持分支和查询分支, 分别用于处理带有像素级注释的参考图像和查询图像, 这种双分支结构也成为了后续小样本分割模型的主流架构. Dong等人[5]基于这种双分支架构在模型中引入了原型学习的思想, 利用支持图像生成图像类别的原型表示, 然后通过最近邻度量的方式对查询图像的每个像素执行分类, 最终得到分割结果. 为了更充分地利用支持图像中的语义信息, Wang等人[6]在原型学习的基础上提出了原型对齐正则化, 通过引入额外的监督信息提高模型的分割能力.
上述模型都采用了全局池化的方式从支持图像中提取类别原型表示, 这种方法简单易用, 且易于拓展到多个支持样本对的情形, 但是由于现实场景下物体的外观多变, 因此提取到的原型往往并不准确, 难以生成完整的类别表示. 为了解决这一问题, 本文提出一种基于语义对齐的小样本语义分割模型, 利用超像素在保留空间结构信息的前提下生成多个子原型, 随后使用图神经网络对生成的多个原型执行语义校正, 从而消除外观相似导致的语义混淆. 为了进一步利用查询图像和支持图像上的语义信息, 引入了基于Transformer的语义对齐模块, 对任意支持原型和查询原型之间的关系进行建模, 利用上下文信息对原型进行迭代优化, 从而生成更完整、精确的类的语义表示. 为了将得到的类别原型传播到查询特征中, 本文设计了一种基于相似度度量的原型分配模块, 以一种类别无关的方式执行原型分配. 此外, 还提出了一种基于注意力的多尺度特征融合模块, 引导模型关注重点特征, 提高对不同尺度物体的适应能力.
1 问题定义小样本语义分割模型普遍将数据集分解为若干个子任务, 每个子任务即为一个场景, 以场景为单位进行训练和测试. 数据集被切分为两个图像集合
本文提出的基于语义对齐的小样本语义分割模型框架如图1所示, 框架由以下模块构成: 原型生成模块、语义对齐模块、原型分配模块和解码器模块. 首先模型的骨干网络将输入的支持图像
原型生成模块的作用是生成对象的多个原型, 不同的原型分别表示对象不同的语义区域. 例如输入犬类图像特征, 则生成的多个原型分别描述犬类的头部、四肢、尾巴和身体. 此外由于本文使用了Transformer进行原型迭代优化, 之前的视觉Transformer模型中往往将图像切分为多个大小相同的图像块, 这种切分方式并没有考虑到图像中的结构关系, 而原型生成模块可以按照图像的语义关系生成多个Token输入到Transformer中, 每个Token专注于描述类别的一个子语义区域, 从而避免语义混淆的问题. 原型生成模块的结构如图2所示. 超像素可以基于图像中像素的相似性和空间邻近性将图像分割为多个区域. 基于对泛化能力和性能的考虑, 原型生成模块中使用无可学习参数的高效且无监督的线性迭代聚类(simple linear iterative clustering, SLIC)[7]算法对图像执行超像素分割.
对于支持图像
$ p_{k}^{s}=\dfrac{\displaystyle\sum\nolimits_{i=1}^{H_{f}} \displaystyle\sum\nolimits_{j=1}^{W_{f}} f_{i, j}^{{s}} \cdot g_{k}^{{s}}(i, j)}{\displaystyle\sum\nolimits_{i=1}^{H_{f}} \displaystyle\sum\nolimits_{j=1}^{W_{f}} g_{k}^{{s}}(i, j)}$ | (1) |
其中,
对于查询图像
超像素生成的分割结果并不总是与物体的语义结构完全对应, 因此模块中使用图神经网络利用上下文信息对生成的初始原型执行校正. 对于
$ \tilde{p}_{i}=p_{i}+{Re} L U\left(\dfrac{1}{Z_{i}} \sum_{j=1 \wedge j \neq i}^{n} d\left(p_{i}, p_{j}\right) {W} p_{j}\right) $ | (2) |
其中,
$ d\left(p_{i}, p_{j}\right)=\dfrac{p_{i}^{{\rm{T}}} p_{j}}{\left\|p_{i}\right\|\left\|p_{j}\right\|}$ | (3) |
支持图像和查询图像都包含了同一类别的物体, 因此可以借助查询图像中的特征对提取出的原型进行完善. 此外, 之前的模型选择直接将查询图像中的背景特征抛弃, 但是前景和背景物体间往往存在语义关联, 例如船总是在水上. 为了充分挖掘查询特征和支持背景特征中蕴含的语义信息, 本文设计了一种基于Transformer的原型丰富模块, 通过多头自注意力机制对原型和特征之间的关系进行建模, 利用Transformer从特征中抽取局部信息和远程上下文信息对原型进行迭代优化, 以生成更准确的类别描述, Transformer层结构如图3所示.
Transformer层由两个串联的Transformer块组成, 分别是交叉对齐模块(cross alignment module, CAM)和自对齐模块(self alignment module, SAM). 在CAM中, 支持前景原型
$ \left\{ { \begin{split} &K=p^{{q}} W_{k}, \quad V=p^{{q}} W_{v}, \quad Q=p^{{s+}} W_{q} \\ &{Att}\left(\textit{z}^{l-1}\right)=\textit{z}^{l-1}+{{\textit{Softmax}}}\left(\dfrac{Q K^{{\rm{T}}}}{\sqrt{c}}\right) V \end{split}} \right.$ | (4) |
其中,
模块中使用由多个自注意力组成的多头注意力, 多个自注意力的输出结果在通道方向上进行拼接, 即:
$ \left\{ { \begin{split} &{Mha}\left(\textit{z}^{l-1}\right)=\left\{{Att}\left(\textit{z}_{1}^{l-1}\right) \oplus \cdots \oplus {Att}\left(\textit{z}_{n}^{l-1}\right)\right\} \\ &\textit{z}^{l}={Mha}\left(\textit{z}^{l-1}\right)+{MLP}\left({Att}\left(\textit{z}^{l-1}\right)\right) \end{split} } \right.$ | (5) |
其中,
Zhang等人[8]指出, 深层特征具有更强的类特异性, 因此使用深层特征会对模型的泛化性能造成损害, 然而深层特征中具有更加丰富的语义信息, 这些语义信息对于指导分割过程有很大帮助, 为了同时利用中层特征和深层特征, Tian等人[9]使用中层特征作为主干特征, 使用深层特征进行相似度度量生成先验相似度图, 从而向模型提供先验知识, 但是由于模型中采用全局平均池化生成的单一原型进行相似度度量, 依旧存在语义模糊的问题, 由此生成的先验相似度图可能会对模型产生误导. 为了解决这一问题, 本文设计了原型分配模块, 利用多个原型分别与查询特征进行相似度图的计算, 结合多个相似度图的结果生成更加准确的先验相似度图, 将原型特征以一种类别无关的方式传播到查询特征中, 提高模型对新类的适应能力.
模块中首先利用生成的多个原型
$ c_i^{x, y} = d\left(\tilde p_i^{{{s{\text{-fore}}}}}, f_{x, y}^{{q}}\right) $ | (6) |
为了综合多个相似度图的结果, 将所有的相似度图相加后得到
$ \left\{ { \begin{split} & m_{x, y}^{{\text{pre}}} = \sum\limits_{i = 1}^n {c_i^{x, y}} \\ &{{\tilde m}^{{\text{pre}}}}{\text{ = }}\dfrac{{{m^{{\text{pre}}}} - \min \left({m^{{\text{pre}}}}\right)}}{{\max \left({m^{{\text{pre}}}}\right) - \min \left({m^{{\text{pre}}}}\right) + \eta }} \end{split}} \right.$ | (7) |
对每个像素位置, 按照
$ \left\{ { \begin{split} &m^{c}=\left\{\begin{array}{l} \underset{i \in\{1, \cdots, n\}}{\arg \max } c_{i}^{x, y}, \; \displaystyle\sum\limits_{i=1}^{n} c_{i}^{x, y}>\theta \\ 0, \; \displaystyle\sum\limits_{i=1}^{n} c_{i}^{x, y}<\theta \end{array}\right. \\ &\forall x \in\left\{1,2, \cdots, W_{f}\right\}, y \in\left\{1,2, \cdots, H_{f}\right\} \end{split}} \right. $ | (8) |
其中,
$\left\{ {\begin{split} &f^{m}=\left\{\begin{array}{l} \tilde{p}_{m_{x, y}^{c}}^{\mathrm{s}}, \; m_{x, y}^{c} \neq 0 \\ 0, \; m_{x, y}^{c}=0 \end{array}\right. \\ &\forall x \in\left\{1,2, \cdots, W_{f}\right\}, y \in\left\{1,2, \cdots, H_{f}\right\} \end{split}} \right. $ | (9) |
同一物体可能在不同的背景下出现, 作为分割目标的查询图像中包含背景部分, 背景的变化会对模型的分割过程造成干扰. 同时出现在查询图像和支持图像上的物体更有可能是分割目标, 基于这种朴素的假设, 本文设计了一种基于通道注意力和空间注意力的特征融合模块(feature merge module, FMM), 以引导模型关注原型特征和查询特征中具有较高相似度的特征, 以捕获具有不变性的物体特征, 减少背景杂波对于分割的影响.
FMM的结构如图5右侧所示, 对于输入的原型特征
由于拍摄距离的变化, 即使是同一类别的物体, 在图像中的大小往往也有较大不同, 为了适应物体尺度的变化, 本文设计了一种多尺度模块, 可以融合多个尺度的特征从而生成更鲁棒的物体特征表示, 从而优化分割结果. 原始特征
$ {\mathcal{L}_{{\text{seg}}}} = - \dfrac{1}{{hw}}\sum\limits_{x = 1}^w {\sum\limits_{y = 1}^h {m_{x, y}^q\log \left(\tilde m_{x, y}^q\right)} } $ | (10) |
为了充分利用数据集, 同样也对支持图像进行预测, 使用支持图像的预测结果ms作为监督信息, 计算交叉熵损失:
$ {\mathcal{L}_{{\text{aux}}}} = - \dfrac{1}{{hw}}\sum\limits_{x = 1}^w {\sum\limits_{y = 1}^h {m_{x, y}^s\log \left(\tilde m_{x, y}^s\right)} } $ | (11) |
最终模型训练时的总体损失为:
$ {\mathcal{L}_{{\text{total}}}} = {\mathcal{L}_{{\text{seg}}}} + {\mathcal{L}_{{\text{aux}}}} $ | (12) |
为验证模型及各个模块的有效性, 本文在小样本语义分割两大公开数据集PASCAL-5i[10]和COCO[11]进行实验, 采用平均交并比(mIoU)作为性能评估指标. PASCAL-5i数据集中包含20个图像类别, 这些类别被平均分为4个部分, 每个部分包含5个类别. 每次训练时取其中3个部分作为训练集, 剩下的1个部分用作测试集, 一共有4种分配方案和对应的4种测试结果, 取这4种分配方案的平均精度作为评估结果. 为了在公平的条件下与之前的模型进行性能对比, 测试条件的设置与之前的工作[12]保持一致, 在测试时随机从测试集中抽取5000个样本对进行测试, 对每个样本对上的测试结果取平均.
3.2 实验环境模型基于PyTorch 1.4实现, 分别使用VGG-16[13]、ResNet-50[14]和ResNet-101[14]作为骨干网络在ImageNet[15]数据集上进行预训练, 其他参数使用默认的PyTorch设置进行初始化. 实验在Linux环境下进行, 模型在NVIDIA GeForce RTX 2080Ti GPU上训练150个轮回数(epoch). 超像素生成的支持图像的原型数量为10, 查询图像的原型数量为25, 原型分配的阈值
实验在两种不同的骨干网络上分别对比了本文提出的模型与近年来其他先进的小样本语义分割模型的性能, 如表1所示, 本文提出的模型在1-shot和5-shot设置上都具有性能上的优势. 具体而言, 在使用ResNet-50作为骨干网络时, 本文提出的模型在1-shot和5-shot实验设置下分别超过目前先进模型0.6%和1%. 在5-shot设置下, 由于有5对样本作为参照, 模型可以提取到更接近真实特征分布的多个原型 , 对查询图像的分割结果也更准确, 进一步放大了模型的优势.
3.4 消融实验
为了进一步评估模型中各个模块的有效性, 本文在PASCAL-5i数据集上以ResNet-50作为骨干网络进行了消融实验, 实验结果如表2所示. 不添加任何模块的基线模型在1-shot和5-shot设置下的性能分别是55.2%和57.1%, 在使用原型生成模块生成多原型之后, 性能提升了0.6%和1.3%, 这表明了多原型能针对图像类别生成多个语义区域的原型表示, 从而激活查询图像上更大的区域. 进一步引入Transformer对原型进行迭代优化后, 性能分别提升了1.9%和2.2%, 这说明Transformer可以挖掘支持特征和查询特征, 利用上下文信息进一步优化原型表示. 加入FMM模块后模型的性能显著提升, 分别是1.4%和1.6%, 这说明了FMM通过注意力机制可以引导模型关注高相似特征. MFM模块可以生成不同尺度的特征表示, 提高模型对于物体尺度变化的适应能力, 加入后模型的性能分别提升了2.1%和1.8%.
为了寻找合适的超参数设置, 本文在PASCAL-5i数据集上以ResNet-50作为骨干网络进行了实验. 对于支持图像的前景超像素个数
本文对查询图像的超像素个数
本文对于Transformer层的数量
4 结论与展望
本文提出了一种基于语义匹配的小样本语义分割模型, 利用超像素在保留空间结构的前提下提取多个原型, 利用图神经网络对原型执行校正, 从而提高模型对类别的表达能力. 模型通过Transformer进一步利用来自查询图像和支持图像上的语义信息和上下文对原型进行迭代优化, 从而得到完整准确的原型特征, 随后利用原型分配模块将得到的原型嵌入到特征中, 以细粒度的方式传播相似性. 实验结果表明了本文提出的模型能够生成精确完整的类的原型表示, 并且能够利用原型对查询图像执行分割, 通过解码器得出更好的分割结果. 下一步将继续对原型生成和优化过程进行研究, 在不损害泛化能力的前提下提高模型对类别的描述能力和分割能力, 从而达到更好的分割效果.
[1] |
Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation. 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015. 3431–3440.
|
[2] |
丁才富, 杨晨, 纪秋浪, 等. MCA-Net: 多尺度综合注意力CNN在医学图像分割中的应用. 微电子学与计算机, 2022, 39(3): 71-77. |
[3] |
张勋晖, 周勇, 赵佳琦, 等. 基于熵增强的无监督域适应遥感图像语义分割. 计算机应用研究, 2021, 38(9): 2852-2856. DOI:10.19734/j.issn.1001-3695.2020.11.0431 |
[4] |
Shaban A, Bansal S, Liu Z, et al. One-shot learning for semantic segmentation. British Machine Vision Conference. London: BMVA, 2017. 4–7.
|
[5] |
Dong NQ, Xing EP. Few-shot semantic segmentation with prototype learning. British Machine Vision Conference. Newcastle: BMVA, 2018. 3–6.
|
[6] |
Wang KX, Liew JH, Zou YT, et al. PANet: Few-shot image semantic segmentation with prototype alignment. 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 9196–9205.
|
[7] |
Achanta R, Shaji A, Smith K, et al. SLIC superpixels compared to state-of-the-art superpixel methods. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(11): 2274-2282. DOI:10.1109/TPAMI.2012.120 |
[8] |
Zhang C, Lin GS, Liu FY, et al. CANet: Class-agnostic segmentation networks with iterative refinement and attentive few-shot learning. 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019. 5217–5226.
|
[9] |
Tian ZT, Zhao HS, Shu M, et al. Prior guided feature enrichment network for few-shot segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, 44(2): 1050-1065. DOI:10.1109/TPAMI.2020.3013717 |
[10] |
Everingham M, van Gool L, Williams CKI, et al. The PASCAL visual object classes (VOC) challenge. International Journal of Computer Vision, 2010, 88(2): 303-338. DOI:10.1007/s11263-009-0275-4 |
[11] |
Lin TY, Maire M, Belongie S, et al. Microsoft COCO: Common objects in context. 2014 13th European Conference on Computer Vision. Zurich: Springer, 2014. 740–755.
|
[12] |
Siam M, Oreshkin B, Jagersand M. AMP: Adaptive masked proxies for few-shot segmentation. 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 5248–5257.
|
[13] |
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. 3rd International Conference on Learning Representations. San Diego: IEEE, 2015. 7–9.
|
[14] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 770–778.
|
[15] |
Deng J, Dong W, Socher R, et al. ImageNet: A large-scale hierarchical image database. 2009 IEEE Conference on Computer Vision and Pattern Recognition. Miami: IEEE, 2009. 248–255.
|
[16] |
Zhang C, Lin GS, Liu FY, et al. Pyramid graph networks with connection attentions for region-based one-shot semantic segmentation. 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 9586–9596.
|
[17] |
Yang BY, Liu C, Li BH, et al. Prototype mixture models for few-shot semantic segmentation. 2020 16th European Conference on Computer Vision. Glasgow: Springer, 2020. 763–778.
|
[18] |
Liu YF, Zhang XY, Zhang SY, et al. Part-aware prototype network for few-shot semantic segmentation. 2020 16th European Conference on Computer Vision. Glasgow: Springer, 2020. 142–158.
|
[19] |
Liu BH, Ding Y, Jiao JB, et al. Anti-aliasing semantic reconstruction for few-shot semantic segmentation. 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021. 9747–9756.
|
[20] |
Wang HC, Zhang XD, Hu YT, et al. Few-shot semantic segmentation with democratic attention networks. 2020 European Conference on Computer Vision. Glasgow: Springer, 2020. 730–746.
|