0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个具有泛化性的小样本语义分割(GFS-Seg)

工程师邓生 来源:GiantPandaCV 作者:李响 2022-09-13 08:56 次阅读

1 前言

之前已经有过关于小样本语义分割的论文解读,关于如何用 Transformer 思想的分类器进行小样本分割。本篇是发表在 CVPR 2022 上的 Generalized Few-shot Semantic Segmentation(后文简称 GFS-Seg),既一种泛化的小样本语义分割模型。在看论文的具体内容之前,我们先了解一些前置知识。

深度学习是 Data hunger 的方法, 需要大量的数据,标注或者未标注。少样本学习研究就是如何从少量样本中去学习。拿分类问题来说,每个类只有一张或者几张样本。少样本学习可以分为 Zero-shot Learning(即要识别训练集中没有出现过的类别样本)和 One-Shot Learning/Few shot Learning(即在训练集中,每一类都有一张或者几张样本)。以 Zero-shot Learning 来说,比如有一个中文 “放弃”,要你从 I, your、 she、them 和 abnegation 五个单词中选择出来对应的英文单词,尽管你不知道“放弃”的英文是什么,但是你会将“放弃”跟每个单词对比,而且在你之前的学习中,你已经知道了 I、 your、she 和 them 的中文意思,都不是“放弃”,所以你会选择 abnegation。还需要明确几个概念:

Support set:支撑集,每次训练的样本集合。

Query set:查询集,用于与训练样本比对的样本,一般来说 Query set 就是一个样本。

在 Support set 中,如果有 n 个种类,每个种类有 k 个样本,那么这个训练过程叫 n-way k-shot。如每个类别是有 5 个 examples 可供训练,因为训练中还要分 Support set 和 Query set,5-shots 场景至少需要 5+1 个样例,至少一个 Query example 去和 Support set 的样例做距离(分类)判断。

2 概述

训练语义分割模型需要大量精细注释的数据,这使得它很难快速适应不满足这一条件的新类,FS-Seg 在处理这个问题时有很多限制条件。在这篇文章中引入了一个新的方法,称为 GFS-Seg,能同时分割具有极少样本的新类别和具有足够样本的基础类别的能力。建立了一个 GFS-Seg baseline,在不对原模型进行结构性改变的情况下能取得不错的性能。此外,由于上下文信息对语义分割至关重要,文中提出了上下文感知原型学习架构(CAPL),利用 Support Set 样本共同的先验知识,根据每个 Query Set 图像的内容动态地丰富分类器的上下文信息,显著提高性能。

3 GFS-Seg 和 FS-Seg 的 Pipeline 区别

如下图所示,GFS-Seg 有三个阶段。分别是:基类的学习阶段;新类的注册阶段,其中包含新类的少数 Support set 样本;对基类和新类的评估阶段。也就是说,GFS-Seg 与 FS-Seg 的区别在于,在评估阶段,GFS-Seg 不需要转发测试(Query set)样本中包含相同目标类的 Support set 样本来进行预测,因为 GFS-Seg 在基类学习阶段和新类注册阶段应该已经分别获得了基类和新类的信息。GFS-Seg 在事先不知道查询图像中包含哪些类别的情况下,同时对新类进行预测时,可以在不牺牲基类准确性的情况下仍表现良好。

9e79c994-32fe-11ed-ba43-dac502259ad0.png

4 Towards GFS-Seg

在经典的 Few-Shot Segmentation 任务中,有两个关键标准:(1) 模型在训练期间没有看到测试类的样本。(2) 模型要求其 Support set 样本包含 Query set 中存在的目标类,以做出相应的预测。

通过下图,我们来看下 GFS-Seg 与经典人物有哪些不同。下图中用相同的 Query 图像说明了 FS-Seg 和 GFS-Seg 的一个 2-way K-shot 任务,其中牛和摩托车是新的类,人和车是基类。先来看下 (a),Prototype Network 通过 Embedding Generation 函数,将牛和摩托车的少量训练样本映射为 2 个向量,在检测分类时候,将待分割图像的特征也通过 Embedding Generation 映射为向量,最后计算待检测向量与 2 个向量的特征差异(假设是距离),认定距离最小的为预测类别。(a) 只限于预测 Support set 中包含的类的二进制分割掩码。右边的人和上面的车在预测中缺失,因为支持集没有提供这些类的信息,即使模型已经在这些基类上训练了足够的 epoch。此外,如果 (a) 的支持集提供了查询图像中没有的多余的新类(如飞机),这些类别可能会影响模型性能,因为 FS-Seg 有一个前提条件,即 Query 图像必须是 Support set 样本提供的类。

FS-Seg 模型只学习并预测给定的新类的前景掩码,所以在我们提出的 GFS-Seg 的通用化设置中,性能会大大降低,因为所有可能的基类和新类都需要预测。不同的是,(b) 也就是 GFS-Seg,在没有 Query 图像中包含的类的先验知识的情况下,同时识别基类和新类,额外的 Support set(如 (b) 左上角的飞机)应该不会对模型产生很大影响。在评估过程中,GFS-Seg 不需要事先了解 Query 图像中存在哪些目标类别,而是通过注册新的类别,对所有测试图像一次性形成一个新的分类器((b) 中的蓝色区域代表新的类别注册阶段)。

9f47b8e0-32fe-11ed-ba43-dac502259ad0.png


此外,还有更多关于 GFS-Seg 的 baseline 细节,这里就不详细展开了,读者们可以一遍看代码一边看论文中的解释,不难理解。

5 上下文感知原型学习(CAPL)

原型学习(PL)适用于小样本分类和 FS-Seg,但它对 GFS-Seg 的效果较差。在 FS-Seg 的设置中,查询样本的标签只来自于新的类别。因此,新类和基类之间没有必要的联系,可以利用它来进一步改进。然而,在 GFS-Seg 中,对每个测试图像中包含的类别没有这样的限制,需要对所有可能的基类和新颖类进行预测。

9fa216a0-32fe-11ed-ba43-dac502259ad0.png

如上图所示,我们不关注 SCE 和 DQCE 的计算过程。SCE 只发生在新的类注册阶段,它利用支持 Support set 样本来提供先验知识。然而,在评估阶段,新分类器由所有 Query 图像共享,因此引入的先验可能会偏向于有限的 Support set 样本的内容,导致对不同 Query 图像的泛化能力较差。为了缓解这个问题,进一步提出了动态查询上下文丰富计算(DQCE),它通过动态合并从单个查询样本中挖掘的基本语义信息,使新分类器适应不同的上下文。继续看上图,N‘n 个新类别(例如摩托车和奶牛)的权重直接由特征平均得出。此外,Support set 中出现的 N’b 个基类(例如人、汽车、羊和公共汽车)的权重由 SCE 用原始权重计算得出。此外,DQCE 通过从 Query set 样本中提取的临时上下文特征,动态丰富了分类器中 N'b 个基类的权重。综上,新的分类器结合了 SCE 和 DQCE 的优点。

GFS-Seg 使用 CAPL 的方式完成训练,具体性能表现在下面的实验部分列出。

6 实验

如下表所示,CANet、SCL、PFENet 和 PANet 与用 CAPL 实现的模型相比表现不佳。值得注意的是,下表中的 mIoU 的结果是在 GFS-Seg 配置下的,因此它们低于这些 FS-Seg 模型的论文中给出的结果,这种差异是由不同的全局设置造成的。在 GFS-Seg 中,模型需要在给定的测试图像中识别所有的类,包括基类和新类,而在 FS-Seg 中,模型只需要找到属于一个特殊的新类的像素,不会去分割基类,Support set 的样本提供了目标类是什么的先验知识。因此,在 GFS-Seg 中,存在基类干扰的情况下,识别新类要难得多,所以数值很低。

a093006a-32fe-11ed-ba43-dac502259ad0.png

FS-Seg 是 GFS-Seg 的一个极端情况。所以为了在 FS-Seg 的中验证提出的 CAPL,在下表中,我们将 CAPL 合并到 PANet 和 PFENet。可以看出, CAPL 对 baseline 实现了显着的改进。数据集是 Pascal-5i 和 COCO-20i ,只需要识别新类。

a0c715b2-32fe-11ed-ba43-dac502259ad0.png

下图对分割结果进行了可视化,其中 SCE 和 DQCE 的组合进一步完善了 baseline 的预测,还有一些消融实验的效果这里不一一列出了。

a15ad16c-32fe-11ed-ba43-dac502259ad0.png

7 结论

这篇阅读笔记仅为个人理解,文章提出了一个具有泛化性的小样本语义分割(GFS-Seg),并提出了一个新的解决方案:上下文感知原型学习(CAPL)。与经典的 FS-Seg 不同,GFS-Seg 旨在识别 FS-Seg 模型所不能识别的基础类和新类。提出的 CAPL 通过动态地丰富上下文信息的适应性特征,实现了性能的显著提高。CAPL 对基础模型没有结构上的限制,因此它可以很容易地应用于普通的语义分离框架,并且它可以很好地推广到 FS-Seg。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

原文标题:CVPR 2022:Generalized Few-shot Semantic Segmentation 解读

文章出处:【微信号:GiantPandaCV,微信公众号:GiantPandaCV】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手册上新 |迅为RK3568开发板NPU例程测试

    yolov5目标检测 6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov8目标检测 6.17 yolov8_seg
    发表于 10-23 14:06

    语义分割25种损失函数综述和展望

    本综述提供了对25种用于图像分割的损失函数的全面且统的回顾。我们提供了种新颖的分类法,并详细审查了这些损失函数如何在图像分割中被定制和利用,强调了它们的重要特征和应用,并进行了系统
    的头像 发表于 10-22 08:04 128次阅读
    <b class='flag-5'>语义</b><b class='flag-5'>分割</b>25种损失函数综述和展望

    画面分割器怎么调试

    画面分割器,通常指的是视频画面分割器,它是种可以将视频信号分割成多个小画面的设备。这种设备
    的头像 发表于 10-17 09:32 280次阅读

    手册上新 |迅为RK3568开发板NPU例程测试

    yolov5目标检测 6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov8目标检测 6.17 yolov8_seg
    发表于 08-12 11:03

    system_adc_read_fast为什么只能采集255样本

    system_adc_read_fast仅采集 255 样本样本数量增加时,函数冻结,看门狗复位芯片。 NONOS 2.0
    发表于 07-18 08:31

    图像语义分割的实用性是什么

    图像语义分割种重要的计算机视觉任务,它旨在将图像中的每个像素分配到相应的语义类别中。这项技术在许多领域都有广泛的应用,如自动驾驶、医学图像分析、机器人导航等。
    的头像 发表于 07-17 09:56 354次阅读

    图像分割语义分割的区别与联系

    图像分割语义分割是计算机视觉领域中两重要的概念,它们在图像处理和分析中发挥着关键作用。 1. 图像分割简介 图像
    的头像 发表于 07-17 09:55 687次阅读

    迅为RK3568手册上新 | RK3568开发板NPU例程测试

    6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov8目标检测 6.17 yolov8_seg
    发表于 07-12 14:44

    机器学习中的数据分割方法

    在机器学习中,数据分割项至关重要的任务,它直接影响到模型的训练效果、化能力以及最终的性能评估。本文将从多个方面详细探讨机器学习中数据分割的方法,包括常见的
    的头像 发表于 07-10 16:10 1299次阅读

    图像分割语义分割中的CNN模型综述

    图像分割语义分割是计算机视觉领域的重要任务,旨在将图像划分为多个具有特定语义含义的区域或对象。卷积神经网络(CNN)作为深度学习的
    的头像 发表于 07-09 11:51 673次阅读

    机器人视觉技术中常见的图像分割方法

    机器人视觉技术中的图像分割方法是广泛且深入的研究领域。图像分割是将图像划分为多个区域或对象的过程,这些区域或对象具有某种共同的特征,如颜
    的头像 发表于 07-09 09:31 482次阅读

    Bootloader.ld文件的iram_seg范围是多大呢?

    的bootloader.ld,调试iram和dram的org和len可以解决问题。因此,我有疑问。 iram_seg和dram_seg的范围分别是什么呢? 我尝试往前调整过org
    发表于 06-14 08:10

    在components下添加自定义组件,为什么my_seg组件就找不到my_seg.h头文件?

    这是我的项目结构,在components下,我自定义了三组件,分别为my_gpio,my_timer,my_seg,每个组件都添加了CMAKE,并且my_gpio和my_timer组件已经能成
    发表于 06-05 06:54

    三项SOTA!MasQCLIP:开放词汇通用图像分割新网络

    MasQCLIP在开放词汇实例分割语义分割和全景分割三项任务上均实现了SOTA,涨点非常明显。这里也推荐工坊推出的新课程《彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与
    的头像 发表于 12-12 11:23 749次阅读
    三项SOTA!MasQCLIP:开放词汇通用图像<b class='flag-5'>分割</b>新网络

    异构信号驱动下小样本跨域轴承故障诊断的GMAML算法

    论文提出了种通用的模型不可知元学习(GMAML)方法,用于在异质信号驱动的不同工况下,进行轴承的少样本故障诊断。
    的头像 发表于 12-06 15:07 1021次阅读
    异构信号驱动下<b class='flag-5'>小样本</b>跨域轴承故障诊断的GMAML算法