回归元学习,基于变分特征聚合的少样本目标检测实现新SOTA
不同于传统的目标检测问题,少样本目标检测(FSOD)假设我们有许多的基础类样本,但只有少量的新颖类样本。其目标是研究如何将基础类的知识迁移到新颖类,进而提升检测器对新颖类的识别能力。
FSOD 通常遵循两阶段训练范式。在第一阶段,检测器使用丰富的基础类样本进行训练,以学习目标检测任务所需的通用表示,如目标定位和分类。在第二阶段中,检测器仅使用 少量(如 1, 2, 3...)新颖类样本进行微调。然而由于基础类和新颖类样本数量的不平衡,其学习到的模型通常偏向于基础类,进而导致新颖类目标与相似的基础类混淆。此外,由于每个新颖类只有少量样本,模型对新颖类的方差很敏感。例如,随机采样新颖类样本进行多次训练,每次的结果都会有较大的差异。因此十分有必要提升模型在少样本下的鲁棒性。
近期,腾讯优图实验室与武汉大学提出了基于变分特征聚合的少样本目标检测模型 VFA。VFA 的整体结构是基于改进版的元学习目标检测框架 Meta R-CNN ,并提出了两种特征聚合方法:类别无关特征聚合 CAA(Class-Agnostic Aggregation)和变分特征聚合 VFA(Variational Feature Aggregation)。
特征聚合是 FSOD 中的一个关键设计,其定义了 Query 和 Support 样本之间的交互方式。前面的方法如 Meta R-CNN 通常采用类别相关特征聚合 CSA(class-specific aggregation),即同类 Query 和 Support 样本的特征进行特征聚合。与此相反,本文提出的 CAA 允许不同类样本之间的特征聚合。由于 CAA 鼓励模型学习类别无关的表示,其降低了模型对基础类的偏向。此外,不同类之间的交互能够更好地建模类别间的关系,从而降低了类别的混淆。
基于 CAA,本文又提出了 VFA,其采用变分编码器(VAEs)将 Support 样本编码为类的分布,并从学习到的分布中采样新的 Support 特征进行特征融合。相关工作 [1] 指出类内方差(如外观的变化)在不同类之间是相似的,并且可以通过常见的分布进行建模。因此我们可以利用基础类的分布来估计新颖类的分布,进而提高少样本情况下特征聚合的鲁棒性。
VFA 在多个 FSOD 数据集上表现优于目前最好的模型,相关研究已经被 AAAI 2023 录用为 Oral。
论文地址:https://arxiv.org/abs/2301.13411
VFA 模型细节
更强的基线方法:Meta R-CNN
目前 FSOD 的工作主要可以分为两类:基于元学习(meta learning)的方法和基于微调(fine-tuning)的方法。早期的一些工作证明元学习对 FSOD 是有效的,但基于微调的方法在最近受到越来越多的关注。本文首先建立了一个基于元学习的基线方法 Meta R-CNN ,缩小了两种方法之间的差距,在某些指标上甚至超过了基于微调的方法。
我们首先分析了两种方法在实现上的一些差距,以元学习方法 Meta R-CNN [2] 和基于微调的方法 TFA [3] 为例,虽然这两种方法都遵循两阶段训练范式,TFA 在微调阶段使用额外的技术优化模型:
- TFA 冻结了大部分网络参数,只训练最后的分类和回归层,这样模型就不会过度拟合少样本类别。
- TFA 不是随机初始化分类层,而是复制基础类的预训练权重,只初始化新颖类的权重。
- TFA 采用余弦分类器(cosine classifier)而不是线性分类器。
考虑到 TFA 的成功,我们构建了 Meta R-CNN 。如下表 1 所示,只要我们仔细处理微调阶段,元学习方法也能够取得较好的效果。因此,本文选择 Meta R-CNN 作为基线方法。
表一:Meta R-CNN 和 TFA 的对比与分析
类别无关特征聚合 CAA
图一:类别无关特征聚合 CAA 示意图
本文提出一个简单而有效的类别无关特征聚合方法 CAA。如上图一所示,CAA 允许不同类之间的特征聚合,进而鼓励模型学习类别无关的表示,从而减少类别间的偏向和类之间的混淆。具体来说,对于类别的每个 RoI 特征
和一组 Support 特征
,我们随机选择一个类的 Support 特征
的
与 Query 特征聚合:
然后我们将聚合特征
提供给检测子网络
以输出分类得分
。
变分特征聚合 VFA
之前的工作通常将 Support 样本编码为单个特征向量来表示类别的中心。然而在样本较少且方差较大的情况下,我们很难对类中心做出准确的估计。在本文中,我们首先将 Support 特征转换为类别的分布。由于估计出的类别分布不偏向于特定样本,因此从分布中采样的特征对样本的方差有较好的鲁棒性。VFA 的框架如上图二所示。
a)变分特征学习。VFA 采用变分自编码器 VAEs [4] 来学习类别的分布。如图二所示,对于一个 Support 特征 S,我们首先使用编码器来估计分布的参数
和
,接着从分布
中通过变分推理(variational inference)采样
,最后通过解码器
得到重构的 Support 特征
。在优化 VAE 时,除了常见的 KL Loss
和重构 Loss
,本文还使用了一致性 Loss 使得学习到的分布保留类别信息:
b)变分特征融合。由于 Support 特征被转换为类别的分布,我们可以从分布中采样特征并与 Query 特征聚合。具体来说,VFA 同样采用类别无关聚合 CAA,但将 Query 特征与变分特征
聚合在一起。给定类
的 Query 特征
和类
的 Support 特征
,我们首先估计其分布,并采样变分特征
;然后通过下面的公式将其融合在一起:
其中表示通道乘法,而 sig 是 sigmoid 操作的缩写。在训练阶段,我们随机选择一个 Support 特征
进行聚合;在测试阶段,我们对
类的个 Support 特征取平均值
,并估计分布
,其中
。
分类 - 回归任务解耦
通常情况下,检测子网络包含一个共享特征提取器
和两个独立的网络:分类子网络
和回归子网络
。在前面的工作中,聚合后的特征被输入到检测子网络中进行目标分类和边界框回归。但是分类任务需要平移不变特征,而回归需要平移协变的特征。由于 Support 特征表示的是类别的中心,具有平移不变性,因此聚合后特征会损害回归任务。
本文提出一种简单的分类 - 回归任务解耦。让和
表示原始和聚合后的 Query 特征,之前的方法对这两个任务都采用
,其中分类分数
和预测边界框
定义为:
为了解耦这些任务,我们采用单独的特征提取器并使用原始的 Support 特征进行边界框回归:
我们采用的数据集:PASCAL VOC、 MS COCO。评价指标:新颖类平均精度 nAP、基础类平均精度 bAP。
主要结果
VFA 在两个数据集上都取得了较好的结果。如在 PASCAL VOC 数据集上(下表二),VFA 显著高于之前的方法;VFA 的 1-shot 结果甚至高于一些方法 10-shot 的结果。
消融实验
a)不同模块的作用。如下表三所示,VFA 的不同模块可以共同作用,提升模型的性能。
b) 不同特征聚合方法可视化分析。如下图三所示,CAA 可以减小基础类与新颖类之间的混淆;VFA 在 CAA 的基础上,进一步增强了类间的区分度。
c)更加准确的类别中心点估计。如下图四所示,VFA 可以更加准确的估计出类别的中心。且随着样本数量的减少,估计的准确度逐渐高于基线方法。这也解释了为什么我们的方法在样本少的情况下(K=1)表现的更好。
d)结果可视化。
结语
本文回归了基于元学习的 FSOD 中特征聚合方法,并提出了类别无关特征聚合 CAA 和变分特征聚合 VFA。CAA 可以减少基础类和新颖类之间的类别偏差和混淆;VFA 将样本转换为类别分布以实现更加鲁棒的特征聚合。本文提出的方法在 PASCAL VOC 和 MS COCO 数据集上的实验证明了其有效性。
以上是回归元学习,基于变分特征聚合的少样本目标检测实现新SOTA的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

i77700的性能运行win11完全足够,但是用户却发现自己的i77700不能升级win11,这主要是受到了微软硬性条件的限制,所以只要跳过该限制就能安装了。i77700不能升级win11:1、因为微软限制了cpu的版本。2、intel只有第八代及以上版本可以直升win11。3、而i77700作为7代,无法满足win11的升级需求。4、但是i77700在性能上是完全能流畅使用win11的。5、所以大家可以使用本站的win11直装系统。6、下载完成后,右键“装载”该文件。7、再双击运行其中的“一键

哈喽,大家好。今天给大家分享一个摔倒检测项目,准确地说是基于骨骼点的人体动作识别。大概分为三个步骤识别人体识别人体骨骼点动作分类项目源码已经打包好了,获取方式见文末。0. chatgpt首先,我们需要获取监控的视频流。这段代码比较固定,我们可以直接让chatgpt完成chatgpt写的这段代码是没有问题的,可以直接使用。但后面涉及到业务型任务,比如:用mediapipe识别人体骨骼点,chatgpt给出的代码是不对的。我觉得chatgpt可以作为一个工具箱,能独立于业务逻辑,都可以试着交给c

今天给大家介绍一篇MIT上周发表的文章,使用GPT-3.5-turbo解决时间序列异常检测问题,初步验证了LLM在时间序列异常检测中的有效性。整个过程没有进行finetune,直接使用GPT-3.5-turbo进行异常检测,文中的核心是如何将时间序列转换成GPT-3.5-turbo可识别的输入,以及如何设计prompt或者pipeline让LLM解决异常检测任务。下面给大家详细介绍一下这篇工作。图片论文标题:Largelanguagemodelscanbezero-shotanomalydete

01前景概要目前,难以在检测效率和检测结果之间取得适当的平衡。我们就研究出了一种用于高分辨率光学遥感图像中目标检测的增强YOLOv5算法,利用多层特征金字塔、多检测头策略和混合注意力模块来提高光学遥感图像的目标检测网络的效果。根据SIMD数据集,新算法的mAP比YOLOv5好2.2%,比YOLOX好8.48%,在检测结果和速度之间实现了更好的平衡。02背景&动机随着远感技术的快速发展,高分辨率光学远感图像已被用于描述地球表面的许多物体,包括飞机、汽车、建筑物等。目标检测在远感图像的解释中

写在前面&笔者的个人理解在自动驾驶系统当中,感知任务是整个自驾系统中至关重要的组成部分。感知任务的主要目标是使自动驾驶车辆能够理解和感知周围的环境元素,如行驶在路上的车辆、路旁的行人、行驶过程中遇到的障碍物、路上的交通标志等,从而帮助下游模块做出正确合理的决策和行为。在一辆具备自动驾驶功能的车辆中,通常会配备不同类型的信息采集传感器,如环视相机传感器、激光雷达传感器以及毫米波雷达传感器等等,从而确保自动驾驶车辆能够准确感知和理解周围环境要素,使自动驾驶车辆在自主行驶的过程中能够做出正确的决断。目

随着现代Web应用不断发展,PHP作为其中最流行的编程语言之一,被广泛地应用于网站开发中。但在开发过程中,经常会遇到空值错误,而这些错误会导致应用程序抛出异常,进而影响用户的使用体验。因此,在PHP开发过程中,如何检测和处理空值错误,是程序员们需要掌握的重要技能。一、什么是空值错误在PHP开发过程中,空值错误通常指的是两种情况:变量未初始化和变

最近在Arxiv上阅读到一篇关于纯视觉环视感知的最新研究,该研究基于PETR系列方法,并专注于解决远距离目标检测的纯视觉感知问题,将感知范围扩大到150米。这篇论文的方法和结果对我们来说有很大的参考价值,所以我尝试着对其进行解读原标题:Far3D:ExpandingtheHorizonforSurround-view3DObjectDetection论文链接:https://arxiv.org/abs/2308.09616作者单位:北京理工大学&旷视科技任务背景三维物体检测在理解自动驾驶

写在前面&笔者的个人总结鸟瞰图(Birdeye'sview,BEV)检测是一种通过融合多个环视摄像头来进行检测的方法。目前算法大部分算法都是在相同数据集训练并且评测,这导致了这些算法过拟合于不变的相机内参(相机类型)和外参(相机摆放方式)。本文提出了一种基于隐式渲染的BEV检测框架,能够解决未知域的物体检测问题。该框架通隐式渲染来建立物体3D位置和单个视图的透视位置关系,这可以用来纠正透视偏差。此方法在领域泛化(DG)和无监督领域适应(UDA)方面取得了显着的性能提升。该方法首次尝试了只用虚拟数
