sylph|一种用于增量小样本目标检测的超网络框架(代码片段)

极智视界 极智视界     2022-12-03     689

关键词:

欢迎关注我的公众号 [极智视界],获取我的更多笔记分享

  大家好,我是极智视界,本文解读一下 一种用于小样本目标检测的超网络框架 Sylph

  作者研究了具有挑战性的增量小样本目标检测任务 (iFSD)。近年来,基于超网络的方法在连续的、无微调的 iFSD 背景下进行了研究,但取得成功的有限。作者仔细研究了这些方法的重要设计选择,提炼出了几项关键改进,并产生了一个更加准确、更加灵活的框架,称为 Sylph。特别地,通过在大规模数据集上预训练定位类别无关的基本检测器,证明了目标分类与定位解耦的有效性。与以前的研究结果相反,作者表明,通过精心设计的类条件超网络,无需微调的 iFSD 也可以非常有效,尤其是当有大量具有丰富数据的基类可用于元训练时,性能几乎接近 test-time-training 的替代方案。考虑到它的许多实际优点,这个结果甚至更加有意义:(1) 按顺序递增地学习新类,而不需要额外的训练;(2) 在一次 pass 中同时检测新类和见过的类;(3) 不会忘记以前见过的类。作者在 COCO 和 LVIS 上对模型进行了 benchmark 测试,在 LVIS 上的长尾稀有类上达到了 17% 的 AP,表明了基于超网络的 iFSD 的应用前景。

  论文地址:https://arxiv.org/abs/2203.13903

文章目录

1. 简介

  虽然深度学习的进步促进了计算机视觉的重大发展,但这种成功在很大程度上依赖于大规模的数据收集和标注。这是一个既费力又费时的过程,而且不能很好地适应类别的数量。对于目标检测尤其突出,尤其是对于数据可能更加稀缺的目标类别的长尾。因此,小样本学习目标检测器 (FSD) 成为了最近的研究热点。虽然仅从几个样本中学习新类是一个具有挑战性的问题,但通过利用具有丰富数据的已知类 (通常称为基类) 可以使任务变得更加简单,其结构可以用作知识转移的先验。之前为数不多的 FSD 工作主要通过两种方式来解决这个问题,第一个是微调,模型首先在基类上进行预训练,然后在来自基类和新类的一个小的平衡数据集上进行微调,这是一种 test-time 训练的形式。尽管它比较简单,但由于它的计算和内存需求,将很难扩展到许多现实世界的应用。另一种策略是采用元学习方法,元学习方法将这个问题定义为 “学会学习”,间歇性地训练模型以诱导对新类别的快速适应。

  然而,许多 FSD 方法专注于仅检测新类别的有限设置,这些方法通常无法在基类上保持原始检测器的性能,或者会忘记最初训练的检测器性能。鉴于现实世界不断变化的性质,机器学习系统的一个理想特性是能够逐步学习新概念而无需重新访问以前的概念,并且不会忘记它们。人类可以实现这样的壮举,学习新概念不仅不会忘记,而且还会重复使用这些知识。传统的监督学习与增量数据作斗争,往往会遇到灾难性的遗忘。另一种方法是在每次新概念出现时研究所有可用的数据,通常称为 “联合训练”,但这种范式会导致开发周期缓慢,需要为新概念付出大量数据收集工作,并且需要进行昂贵的大规模训练 (和再训练)。

  取而代之的是,作者寻求一种目标检测模型,该模型能够以快速、可扩展的方式从小样本中学习新类别,又不会忘记以前见过的类别,这种设置通常称为增量小样本检测 (iFSD)。ONCE 是 FSD 的一种元学习方法,由于其基于超网络的类条件设计而特别令人感兴趣。ONCE 能够在不影响其记忆基类的能力的情况下注册新类别。作者使用了与 ONCE 相似的基本检测器和超网络结构,但有几个关键的设计差异:(1) ONCE 和其他几个最近的工作一样,试图直接产生 (通过训练或超网络) 定位回归模型的参数,该模型将查询样本 feature maps 转换为输出 bounding boxes,所有这些都来自少数可用的训练样本。作者发现这是不必要的并且可能是有害的,因为可以通过将定位和分类解耦来显著简化任务。为了实现这一目标,作者利用了一个基础检测器,该检测器具有在丰富的基类数据上预训练的与类别无关的定位能力。(2) 研究了类条件超网络的行为,对类条件超网络的结构进行了一些关键的修改,并对预测参数进行了归一化处理,提高了预测精度。这样形成了一个可以从小样本中快速适应类别长尾问题的架构,作者将这个框架命名为 Sylph,架构如图1。对此,作者进行了广泛的评估,从经验上证明了这样设计的好处,表明了 Sylph 在所有报告的数据集和评估机制中都要比 ONCE (本文的主要基线) 更加有效。特别是在具有挑战性的 LVIS 小样本学习基准上,展示了比基线表现高出 8%。


2. 方法

  作者寻求一种可以在增量小样本检测 (iFSD) 设置中运行的模型:一种可以灵活地适应仅从几个示例中按顺序引入新类的检测器,又不会忘记任何以前见过的类别。这里将这种 连续iFSD 与 批量iFSD 区分开来,其中新类是批量添加的。

2.1 Sylph

  为了实现 iFSD 的既定目标,作者引入了 Sylph,这是一个可以快速增加新类检测能力的框架。而不需要对模型参数进行任何额外的优化。Sylph 由两个主要的组件组成 (如图1):(1) 一个基础目标检测器,对具有高召回率的图像中的表面显著目标进行类别不可知的定位;(2) 一个小样本超网络,为每个二值分类器提供类特定参数。

2.1.1 目标检测器

  现代目标检测器通常由一个卷积backbone 和 一个检测头组成。给定一个图像,前者产生高级 feature maps,然后检测头可以使用它来预测类别和位置,由 bounding box 来指定。许多检测模型并行执行这两个任务,根据相同的特征预测类别和 bounding box 坐标。最终的回归和分类层是基于区域的检测中的全连接层或密集预测中的卷积层。对于 N 路分类问题,分类器的参数通常为 softmax 生成 N+1 个 logits,对应于 N 个类别和背景。同时,bounding box 回归器的参数包含 N 个堆叠权重,每个类别一个;具有最高预测分数的决定了选择哪个回归器的预测。 为了使目标检测器支持具有挑战性的 iFSD 设置,做出了几个关键的设计选择,这些选择影响到了检测器的两个主要输出:分类和定位。

Incremental Classification Without Forgetting 造成灾难性遗忘的一个主要的因素是高度非独立同分布。具有共享分类头的顺序训练,优化 softmax 会导致破坏性梯度,从而覆盖先验知识。因此,作者用许多基于二元 sigmoid 的分类器替换了单个基于 softmax 的分类器,每个类都由其自己的参数集单独处理。当使用 focal loss,sigmoid 分类器已被证明与单个 softmax 分类器一样有效。因此,当添加新的类别时,可以训练或生成一组新的分类器参数。结合之前的参数预测所有可用的类时,每个类的预测分数之间的干扰为零。

Class-agnostic Bounding Box Regressor 以前的小样本目标检测方法倾向于学习每个类别的框回归器和分类器。但是,当只有几个示例可用于学习时,该模型几乎没有机会为每个新类学习自定义位置回归器。取而代之的是,使用单个类别不可知的框回归器对所有类别的基础目标检测器进行预训练。如果在大规模数据集上进行预训练,这种方法已经被证明可以很好的应用于 zero-shot 目标检测,并且还可以利用开放世界检测文献中的技术。通过减少以少量或连续方式学习定位的需要,咱们可以将问题视为小样本分类任务,并只专注于生成额外的分类器参数。咱们可以使用 FCOS 来满足上述两个目标,这是一种简单的单级 anchor-free 目标检测器。通过这些设计选择,咱们将小样本新类检测问题解耦为定位和小样本分类的连续任务,大大简化了它。

2.1.2 小样本超网络

  通过与类别无关的目标检测器来处理定位问题,将问题简化为小样本分类问题。超网络被模块化为三个组件:支持集合特征提取、代码预测 以及 代码聚合和归一化。

Support Set Feature Extraction 第一阶段支持从 episode 支持集中提取特征。基础检测器共享相同的卷积主干,以获得每个支持集图像的特征,因为它可以在正常批量训练中使用基础检测器进行预训练。然后使用 ROIAlignV2 提取与每个类的每个实例的位置相对应的特征。选择在特征级别而不是图像级别进行裁剪,因为特征具有更大的感受野,从而允许增加全局上下文。ROIAlignV2 为每个目标实例生成一个固定大小的特征。

Code Predictor Head (CPH) 代码预测器头 (图2) 有一个共享的子网络组成,该网络由 3x3 卷积层组成,这些卷积层和组归一化和 ReLU激活函数交错,后面再接一个用于预测权重和偏差的层。权重和偏差预测层之后的全局平均池化用于将预测权重降低到最终维度。虽然超网络能够预测任意大小的权重,但咱们选择 k=1 的 kernel size,以便于生成的权重可以用作 卷积层或线性层权重,从而与基于区域的检测和密集检测相兼容。

Code Process Module (CPM) 在 CPM 中,将来自 CPH 的一个类的所有样本的预测参数聚合到一组权重和偏差中,作者发现权重和样本偏差的简单平均值是有效的。但是,直接采用这种形式的类代码会导致梯度爆炸,尤其是在输入特征和最终预测器头之间堆叠多个卷积层时。如图4所示,梯度裁剪可以提供帮助,但有时模型仍然不能够很好的收敛,导致模型精度的高方差。

  咱们的权重在这个阶段从输入的支持集特征生成,这比分类器权重更接近于特征图。为此,咱们要避免将权重直接传递给条件分类器。受 L2 归一化特征嵌入在 zero-shot 目标检测参数化分类器中的成功启发,作者探索了将权重进行 L2归一化,沿通道轴进行归一化 (与批归一化相反),以确保不同类别的权重不会相互作用。通过标准化,将支持集特征映射到单位球面上,简化了学习并且稳定了训练。

2.2 训练和评估细节

  为了训练基础检测器和超网络,Sylph 框架需要两个训练阶段:预训练基础检测器 和 学习超网络。

Base Object Detector Pretraining 首先在基类上使用批量随机梯度下降预训练基础检测器,优化分类和 bounding box 回归损失,并选择 FCOS 作为基础检测器。在预训练过程中产生训练参数 θ 和 φ,以及类别无关的 box 回归参数 β,和基类的类代码。因此,在这个阶段结束时,会有一个检测器能够在图像中为基类和潜在的新类生成 bounding boxes。

Meta-training 在元训练期间,通过采样一组 Nx(K+1)图像 和 bounding box元祖(I,b) 来创建 N 个类别的小样本集、一个NxK个样本的支持集 和 一个包含 Nx1个样本的查询集。查询集用作基础检测器的输入,在这个阶段只计算来自分类分支的 focal loss。这个阶段主要是训练小样本超网络,使其能够映射到一组新的合成类代码以进行分类。冻结了 FCOS 分类子网络中除了四个卷积层之外的整个基础目标检测器,并将其初始分类器替换为咱们的条件分类器,该分类器能够采用合成的类代码对查询图像特征进行预测。发现在基础检测器中微调这些额外的卷积层比不微调它们会产生更加好的整体性能。在初步实验中发现,在预训练中初始化的组件/层越多,最终的基类 AP 越好。

Meta-testing 为了评估模型在所有类中的性能,从整个集合中对每个类选取 K 个样本,并通过超网络一次一个类进行前向传递以合成类代码。使用生成的代码,基础检测器能够以与普通检测器相同的推理速度和行为进行推理。这种模型设置称之为 Sylph。


3. 实验

  在 LVIS-v1 eval split 上进行了基准测试,结果如表1。

  在 COCO 数据集上进行了基准测试,在 minival 数据集上进行了评估,结果如表2。

  进行了 Sylph 在 LVIS 数据集上建模选择的消融实验,结果如表3。

  图3展示了 Sylph 元训练中基类数量的影响。

  表4展示了训练配置对 Sylph 框架的影响。

  表5展示了通过不同微调方法在新集合上精度的比较。


4. 总结

  作者介绍了 Sylph,这是一个目标检测框架,能够以持续的方式从几个实例扩展到新的类,而无需任何训练。作者凭经验验证了设计选择 可以带来有效的训练和更加高的准确性,首次表明没有 test-time 训练的 iFSD 可以在 LVIS 等大规模数据集上实现接近基于微调方法的性能。虽然将 Sylph 视为对现有方法的改进,但也存在局限性。尽管已经证明,预训练与类别无关的检测器可以以高召回率识别新目标,但它并非绝对可靠,并且仍然依赖于大规模数据集。若是由于标注错误 或 不在标签集中的类产生未标记的目标 可能会导致数据集中出现假阴性,这可能导致模型无法正确识别此类目标。此外,融合支持集特征的更加复杂的聚合方法也可能需要进一步的改进。


5. 参考

  [1] Sylph: A Hypernetwork Framework for Incremental Few-shot Object Detection.


  好了,以上解读了 一种用于增量小样本目标检测的超网络框架 Sylph。希望我的分享能对你的学习有一点帮助。


 【极智视界】

《Sylph | 一种用于增量小样本目标检测的超网络框架》


搜索关注我的微信公众号【极智视界】,获取我的更多经验分享,让我们用极致+极客的心态来迎接AI !

目标检测yolo+dota:小样本检测策略(代码片段)

...;发现准确率还是非常低的。在网上冲浪时,我发现了一种小样本检测策略:那就是把大分辨率的图片分割成小块进行训练,然后再输入大图进行检测。那么本篇博文就使用DOTA数据集来验证一下这种思路是否可行。主... 查看详情

目标检测ssd基本思想和网络结构以及论文补充(代码片段)

...实现?5.fasterrcnn和ssd边界框回归参数的不同点6.正负样本的选取问题1.正样本的两种方式选取2.负样本的选取7.损失的计算三、经常遇到的一些小问题1.为什么anchor可以设置实际响应的区域?2.为什么同一个检测层可以设置... 查看详情

推荐研究方向小样本开集目标检测(few-shotopen-setobjectdetection)

...:https://arxiv.org/abs/2210.15996    1、任务:小样本开集目标检测,使用少量已知类样本训练模型,使得模型既能够检测小样本已知类又能够检测未知类。2、动机:解决FSOSOD问题有三个重要原因。1)可以识别小样本类... 查看详情

一种关注于重要样本的目标检测方法!

...性,不能被简单地同等对待。这次介绍的论文提出了一种重要样本的关注机制,在训练过程中帮助模型 查看详情

机器视觉中的目标检测

...: 目标检测分为以下几个步骤:1、训练分类器所需样本的创建训练样本一般包括正样本和负样本,正样本是指第一帧图中框定的待检测的目标,负样本是指其它不包含目标的任意图片(比如背景),所有的样本图片都被归... 查看详情

目标检测如何提高网络的特征提取能力

...验或自动化统计,确定较好的canny阈值2,利用阈值对训练样本中10-20个batch的数据进行canny边缘增强3,增强方式为:原图转灰度提取到的canny边缘所对应的原图像素位置进行对比度增强或直接涂黑。加深程度可以由自定义的超参数... 查看详情

centernet一种anchor-free的目标检测框架

...ff1a;https://github.com/xingyizhou/CenterNet1、CenterNet简介CenterNet是一种Anchor-Free的目标检测网络;不仅 查看详情

centernet一种anchor-free的目标检测框架

...ff1a;https://github.com/xingyizhou/CenterNet1、CenterNet简介CenterNet是一种anchor-free的目标检测网络,不仅 查看详情

优化目标检测方案

...都是解决问题最有力的办法。通常数据集中的各个类别的样本呈“长尾”分布,直接用来训练检测器容易导致对样本少的类别出现漏检。这时可以考虑对样本少的类别,进行样本扩增。扩增过程最好考虑新增样本的diversity以及con... 查看详情

目标检测轻量化压缩

...取大量的监督数据或数据的标准成本过高,进而导致缺少用于网络训练的样本数据。近年来,许多学者在目标检测难点方面已经做出许多成果,本文主要介绍 查看详情

目标检测yolov5跑xview数据集/小样本检测策略实验(代码片段)

...法。此篇就使用YOLOv5来试跑xView数据集,并对一些小样本检测的策略进行消融实验。xView数据集下载:https://github.com/zstar1003/Dataset数据预处理在YOLOv5的xView.yaml文件中,提供 查看详情

cnn调参目标检测算法优化技巧

上次bbuf分享了亚马逊团队的用于分类模型的bagoftricks,详见:链接,本文继续梳理一下目标检测trick,解读这篇19年同样由亚马逊团队发表的《BagofFreebiesforTrainingObjectDetectionNeuralNetworks》。先来看看效果,在使用了trick后,FasterR-CNN... 查看详情

计算机视觉算法——基于anchorfree的目标检测网络总结

...1.1关键知识点——网络结构及特点1.2关键知识点——正负样本匹配1.3关键知识点——损失计算2.CenterNet2.1关键知识点——网络结构及特点2.2关键知识点——损失计算3.FCOS3.1关键知识点——网络结构及特点3.2关键知识点——正负样... 查看详情

弹性响应蒸馏|用弹性响应蒸馏克服增量目标检测中的灾难性遗忘(代码片段)

...服增量目标检测中的灾难性遗忘。 传统的目标检测不适用于增量学习。然而,仅用新数据直接对训练好的检测模型进行微调将会导致灾难性的遗忘。知识蒸馏是减轻灾难性遗忘的灵活的方法。在增量目标检测(IOD)中,以... 查看详情

目标检测sahi:切片辅助推理和微调小目标检测(代码片段)

前言在我之前的文章中,写过一种对于微小目标的检测策略,即将大图裁成多个小图,每个小图分别进行检测,最后将所有的检测结果进行叠加,统一使用NMS进行滤除。但是经过实验,该方法的效果并不是... 查看详情

迁移学习《asymmetrictri-trainingforunsuperviseddomainadaptation》

...记目标样本可以产生良好的表示。  在本文中,提出了一种用于无监督域适应的非对称三重训练方法,将伪标签分配给未标记的样本,并像训练真实标签一样训练神经网络。本文工作,不对称地使用三个网络。不对称是指两个... 查看详情

dsgn解读用于三维目标检测的深度立体几何网络

...们的方法,称为深度立体几何网络(DSGN),通过在一种可微分的体积表示(3D几何体)上检测3D目标来显著缩小这一差距,该方法有效地编码了3D规则空间的3D几何结构。通过这种表示,我们可以同时学习深度... 查看详情

dsgn解读用于三维目标检测的深度立体几何网络

...们的方法,称为深度立体几何网络(DSGN),通过在一种可微分的体积表示(3D几何体)上检测3D目标来显著缩小这一差距,该方法有效地编码了3D规则空间的3D几何结构。通过这种表示,我们可以同时学习深度... 查看详情