当前位置:网站首页>ECCV 2022 | SSP: 自支持匹配的小样本任务新思想
ECCV 2022 | SSP: 自支持匹配的小样本任务新思想
2022-07-29 10:53:00 【PaperWeekly】

作者 | 范琦
单位 | 香港科技大学
研究方向 | 小样本学习/模型泛化
这是我们在 ECCV 2022 上的新工作,第一次(to my best knowledge)在小样本任务中提出了自支持匹配(self-support matching)的思想,并将其用在小样本分割(Few-shot semantic segmentation, FSS)任务中,用很新颖的想法和很简单的方法取得了很好的效果,没有额外参数,模型很小,训练和测试都很快。同时也希望可以把我们的自支持匹配想法应用到其他相关任务中。代码已经开源。

论文标题:
Self-Support Few-Shot Semantic Segmentation
论文链接:
https://arxiv.org/abs/2207.11549
代码链接:
https://github.com/fanq15/SSP

▲ 图1

Annotation
:支持图片(support image)
:支持图片特征(support feature)
:支持特征原型(support prototype)
:查询图片(query image)
:查询图片特征(query feature)
:查询特征原型(query prototype),自支持原型(self-support prototype)

FSS Task
对于一个感兴趣的目标新类别,小样本分割算法通过给定的支持图片 对查询图片 中的目标新类别进行分割。其中,对每个目标新类别来说,在训练集中没有出现或者没有标注,且在测试时对应的样本数量只有少数几张图片(一般低于 10 张)。
经典的小样本分割算法是分别在支持图片 对查询图片 上提取特征,并利用 Masked Average Pooling 操作和 support GT mask 在支持图片特征 上生成支持特征原型 。最后计算支持特征原型 和查询图片特征 每个空间位置特征之间的余弦相似度(cosine similarity),并将这个 cosine similarity map 作为预测的分割结果。具体流程如图 0 左图所示。

▲ 图0

FSS Problem
小样本分割任务存在一个非常重要的问题,就是 support 和 query 间的 appearance gap。在 support 和 query 中的同类别物体可能存在非常大的外观差异性。比如同样是猫这个类别,但是不同的猫的品种、姿态和拍照的光照条件等可能完全不一样,如图 0 右图所示。这一问题源自于小样本任务的特性,即数据稀少性和数据多样性。
其中数据稀少性是指 support 数据很少,通常每个新类别只有不到 10 个样本,而数据多样性是指 query 的数量是无穷无尽的。所以 support 中的物体根本无法涵盖所有 query 中的同类别物体。如图 0 左图所示,support 是加菲猫的猫头,query 是一整只黑猫,传统的匹配算法只能将黑猫的猫头分割出来,因为两者具有语义相似性,但是加菲猫猫头与黑猫的身体具有较大的差异性,因此无法得到令人满意的分割结果。

Other Solutions
之前的方法也注意到了这个关键问题并试图解决它。有的方法试图学习更好的支持特征原型:利用未标注图片得到更好的支持特征原型 [1,2],或者提出复杂的支持特征原型生成模块,如利用注意力机制 [3,4] 和自适应学习 [5,6,7] 等。也有些方法提出更好的训练方式 [8,9] 来提升匹配效果。但是这些方法都无法从根本上解决 support 和 query 之间的 appearance gap 问题。因为它们还都局限在利用非常少数的 support 去分割无穷的 query。

Our Idea
我们提出了一种全新的自支持小样本分割算法。其思想是利用查询特征原型 去匹配查询图片特征 。其中查询特征原型 是利用高置信度的 query prediction mask 提取对应的查询图片特征 得到的,而 query prediction mask 则是由传统 support-query 匹配算法生成的。因为这种 query 特征的自匹配性质,我们将方法命名为自支持(self-support)算法。

Our Motivation
自支持匹配想法源自于格式塔理论(Gestalt principle),即物体的整体性:相对于不同物体上的不同部分,同一个物体上的不同部分会更像。为了验证这一想法,我们统计了 Pascal VOC 数据集中的图片不同像素之间的相似度,其特征是用 ImageNet 上预训练的 ResNet-50 提取的。
如表 1 所示,对于前景像素来说,相同物体上的前景像素之间的相似度远大于不同物体上的前景像素之间的相似度。我们在背景像素上也观察到相同的现象。但是这里验证的是像素之间的关系,而我们的目的是进行特征原型 support prototype 和查询图片特征 query feature 之间的匹配。所以我们利用另一个实验进一步验证我们的自支持想法。
如表 2 所示,我们使用传统的支持特征原型 (从 support 图片中提取的 support prototype)和自支持特征原型 (从 query 图片中提取的 self-support prototype,因为我们知道 query GT mask),分别与查询图片特征 进行匹配。自支持特征原型 的匹配结果可以达到 83.0 mIoU,比支持特征原型 的匹配结果高近 25 个点。
但是在实际使用中,我们不可能知道 query GT mask,所以我们人为地设置不同大小的 query GT mask 并引入噪声来模拟预测得到的 query mask。在这种情况下,自支持特征原型 的匹配结果仍然高于74 mIoU。这两个实验很好地支持了自支持匹配的想法。

▲ 表1

▲ 表2

Method
方法部分很简单,如图 2 所示,我们通过传统的 support prototype based matching 生成初始的 query mask,并利用 query mask 在查询图片特征 上提取自支持特征原型 。最后将自支持特征原型 和支持特征原型 融合并与查询图片特征 进行匹配。同时我们可以进行多次的自支持匹配对自支持特征原型 进行优化。

▲ 图2

Another Problem and Solution
可以注意到,我们的算法分别对 foreground 和 background 的 prototype 进行建模,但是 foreground 和 background 的性质完全不一样。对于 foreground 来说,同一个物体的不同部分之间一般是相似的,具有全局的相似性,所以可以使用 masked average pooling 将所有的 foreground 像素聚合为一个 prototype 向量来表示 foreground。
但是对于 background 来说,背景一般比较杂乱,没有全局的相似性,只有局部的相似性,所以用一个 prototype 向量来表示 background 是有问题的。因此基于 background 的局部相似性这一特点,我们提出了 adaptive self-support background prototype(ASBP),即根据当前 background 像素与其他 background 像素之间的相似度,加权地融合 background 特征。其模型框架如图 3 所示。

▲ 图3

Experiments
我们在 Pascal VOC,MS COCO 和 FSS-1000 三个数据集上进行了实验。如表 3 和表 4 所示,在使用 ResNet-101 backbone 和 5-shot support 的设置下,我们的方法取得了最好的性能,同时在其他设置下我们的方法也很有竞争力。我们发现 HSNet 的 evaluation protocol 更容易在 MS COCO 数据集上得到更好的结果,因此我们也使用 HSNet 的 evaluation protocol 来测评我们的算法。

▲ 表3

▲ 表4

Analysis
1. 图 4 可视化了自支持匹配的工作流程和效果,可以看到 support 和 query 中的物体具有很大的 appearance gap,但是我们的自支持匹配可以很好地利用 self-support prototype 得到准确的分割结果。这里我们取 0.8 作为初始 query mask 的阈值,以展示用于生成 self-support prototype 的 query feature。
2. 表 5 的消融实验证明了我们各个模块的有效性。
3. 图 5 分别对 mask threshold 的取值进行分析和对 ASBP 的工作原理进行了可视化。
4. 表 6 验证了不同 prototype 的效果。
5. 表 7 讨论了自支持算法与自注意力方法的区别。

▲ 图4

▲ 表5

▲ 图5

▲ 表6

▲ 表7

Advantages
我们的自支持算法有很多优点。
第一个优点是自支持算法会更加受益于更好的 backbone 和 support 数量,因为它们可以带来更准确的初始 query mask 预测结果,可以提取更准确的 self-support prototype,进而得到更好的分割结果。这是一种马太效应,因此我们的方法在 ResNet-101 backbone 和 5-shot support 的设置下会大大优于其他的算法。同时表 8 也展示了自支持算法在不同条件下的性能提升幅度。
第二个优点是更高置信度的预测结果。分割算法会使用阈值将预测结果中的连续 [0,1] 值变为 0-1 值,但是初始的预测结果质量也很重要,尤其是对于困难样本。如果预测值在 0.5 附近,这个点上的预测就很容易失败。我们希望得到更加鲁棒和高置信度的预测结果。因此,我们使用 MAE 对预测结果的连续 [0,1] 值进行评估。如图9所示,我们的算法可以得到更低的 MAE,这意味着我们的预测结果具有更高的置信度。表 9 和表 10 显示我们的算法对其他形式的 support 标注也很鲁棒。
第三个优点是自支持算法非常通用,没有额外的参数量,且额外的计算量也很小,模型很小,训练和测试都很快,并可以直接应用在其他的小样本分割算法上。如表 11 所示,我们将自支持算法用在 PANet 和 PPNet 上,都得到了性能的提升。

▲ 表8

▲ 表9,表10,表11

Story
自支持匹配这个想法是我在 DDL 前想到的,立即着手去做,但是当时做的并没有效果,于是搁置了几天。但是我觉得这个想法一定可行,所以我又回过头来重新思考了整个方法,发现是我在利用 query mask 选取 query feature 的时候存在问题。我最开始是使用 0.5 作为阈值选取 query feature 的,但是会引入比较多的噪声。后面我就尝试提升阈值到 0.7,方法就立刻有效了。
所以自支持的关键点就是选取尽可能多的高置信度的 query feature 去生成高质量的 self-support prototype。整个项目从开始到结束总共花了 6 周的时间,方法很简单,但是想法很新颖,希望对 few-shot 领域有所启发。自支持匹配这个想法在 few-shot 领域是很少或者没有被探索过的。可以把自支持的想法推广到其他的 few-shot 任务中。因为 support 和 query 之间的 appearance gap 是 few-shot 中普遍存在的重要问题。

Acknowledgment
感谢三位老师的指导,感谢 Lihe Yang @LeolhYang 的很好的工作 MLC [1] 和提供的很强的 baseline,感谢女票的支持,感谢我家小加菲猫菲菲出演 teaser 图片中 support。最后祝大家找工作都能拿到 SSP。

参考文献

[1] Mining latent classes for few-shot segmentation (ICCV 2021)
[2] Part-aware prototype network for few-shot semantic segmentation (ECCV 2020)
[3] Simpropnet: Improved similarity propagation for few-shot image segmentation (IJCAI 2020)
[4] Canet: Class-agnostic segmentation networks with iterative refinement and attentive few-shot learning (CVPR 2019)
[5] Adaptive prototype learning and allocation for few-shot segmentation (CVPR 2021)
[6] Self-supervision with superpixels: Training few-shot medical image segmentation without annotation (ECCV 2020)
[7] Amp: Adaptive masked proxies for few-shot segmentation (ICCV 2019)
[8] Crnet: Cross-reference networks for few-shot segmentation (CVPR 2020)
[9] Panet: Few-shot image semantic segmentation with prototype alignment (ICCV 2019)
更多阅读

#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

△长按添加PaperWeekly小编
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·

边栏推荐
- [unity, C #] character keyboard input steering and rotation
- Analysis of QT basic engineering
- ggdag 绘制DAG和因果图
- 【图像处理】基于中轴变换实现图像骨架提取附matlab代码
- 一键搭建博客:如何使用WordPress插件搭建专属博客
- 开源峰会抢先看 | 7 月 29 日分论坛 & 活动议程速览
- 周鸿祎:360是世界上最大的安全大数据公司
- 带你浅聊一下PHP搭建的电商商城系统
- Understand what a binary tree is (types, traversal methods, definitions of binary trees)
- 站点数据收集-Scrapy使用笔记
猜你喜欢

Drawing box and ellipse of WPF screenshot control (IV) "imitating wechat"

学习R语言这几本电子书就够了!

会议OA项目(五)---- 会议通知、反馈详情

R 语言 用黎曼和求近似 积分

Watch the open source summit first | quick view of the sub Forum & Activity agenda on July 29

牛客网刷题

A tour of grp:04 - GRP unary call unary call

How to realize the function of adding watermark

Kunlunbase instruction manual (IV) real time synchronization of data from Oracle to kunlunbase

【图像检测】基于灰度图像的积累加权边缘检测方法研究附matlab代码
随机推荐
Hugo NexT V4 介绍
Discussion on the application of arcing smart electricity in elderly care institutions
使用 RTCGA 临床数据进行生存分析
PyQt5快速开发与实战 6.6 QFormLayout(表单布局) && 6.7 嵌套布局 && 6.8 QSplitter
Matplotlib Chinese question
Leetcode bit operation
Ggdag draw DAG and cause and effect diagram
Kunlunbase instruction manual (II) best practices for peer-to-peer deployment
Sunwenlong, Secretary General of the open atom open source foundation, worked together to expand open source
深度强化学习应用实践技巧
LeetCode_ 416_ Divide equal sum subsets
Add: create Ou structure using PowerShell
如何使用“COPY –link”加速 Docker 构建和优化缓存
Luogu p1816 loyalty solution
factoextra:多元统计的可视化
The heavy | open atomic school source activity was officially launched
Leetcode binary tree series -- 144. Preorder traversal of binary trees
开放原子开源基金会秘书长孙文龙 | 凝心聚力,共拓开源
LeetCode_416_分割等和子集
Svn revision keyword


