论文《Few-Shot Object Detection with Model Calibration》的解读

《Few-Shot Object Detection with Model Calibration》论文的解读

作者:Qi Fan1, Chi-Keung Tang1 , and Yu-Wing Tai1,2
单位:1 The Hong Kong University of Science and Technology, 2 Kuaishou Technology
邮箱:fanqics@gmail.com, cktang@cs.ust.hk, yuwing@gmail.com

一、摘要

少样本目标检测(Few-Shot Object Detection, FSOD)旨在将已知类别的知识转移到未知类别,以检测新类别的目标。然而,以往的研究忽略了转移学习过程中固有的模型偏差问题。这种模型偏差导致了对训练类别的过拟合,并破坏了已学到的可转移知识。本文全面探讨了FSOD模型中的模型偏差问题,并提出了一种简单而有效的方法,通过在三个层次上进行模型校准来解决模型偏差问题:1)骨干网络校准,以保留已学到的先验知识并缓解对基本类别的模型偏差;2)区域建议网络(RPN)校准,以识别新类别的未标记目标;3)检测器校准,以防止模型对新类别的少量训练样本产生偏差。具体而言,我们利用了以往仅用于预训练的分类数据集来促进我们的模型校准过程。我们在流行的Pascal VOC和MS COCO数据集上验证了我们模型校准方法的有效性,结果显示出非常有前景的性能。代码已发布在:https://github.com/fanq15/FewX。

关键词: 少样本目标检测,模型偏差,模型校准,不确定性感知RPN,检测器校准。

这篇论文主要是解决FSOD模型中的偏差问题,并且提出了简单且有效的方法:
这篇论文主要是解决FSOD模型中的偏差问题,并且提出了简单且有效的方法:
(1)骨干网络校准:保留已学到的先验知识,减少对基本类别的模型偏差。
(2)RPN校准:帮助识别新类别中的未标记目标。
(3)检测器校准:防止模型对新类别的少量训练样本产生偏差。

二、引言

目标检测 [26,77,58] 是计算机视觉领域一个基础且被广泛研究的问题,对于许多后续的视觉任务和应用具有重要作用。当前基于深度学习的方法通过利用大量标注良好的训练样本,在目标检测任务上取得了显著的性能。然而,为目标检测进行框级别标注非常耗时费力,而且不可能为现实世界中的每个类别进行标注。当标注的训练数据稀缺时,典型的目标检测模型 [59,75,76,63] 性能会下降,并且无法检测训练集中未见过的新类别。少样本目标检测(FSOD)[22,8,41] 旨在解决这个问题。只需少量的新类别支持样本,FSOD 模型就能在查询图像中检测目标新类别的对象。

作者在这里提出小样本学习的重要性

表1.每个检测模块的偏差源和COCO [60]校准模型的性能改进。

在这里插入图片描述

从表1中可以看出,模型在矫正之后,map均有了显著的提升。

少样本目标检测是一个新兴任务,最近引起了相当大的关注。一些研究 [40,95,94] 通过配备元学习的孪生网络探索支持图像和查询图像之间的关系来检测查询对象。其他研究 [91,93,108] 则采用微调策略,将基础类的知识先验转移到只有少量标注样本的新类别中。

简单来说,Siamese network就是“连体的神经网络” Siamese网络要解决什么问题? (1)第一类,分类数量较少,每一类的数据量较多,比如ImageNet、VOC等。这种分类问题可以使用神经网络或者SVM解决,只要事先知道了所有的类。 (2)第二类,分类数量较多(或者说无法确认具体数量),每一类的数据量较少,比如人脸识别、人脸验证任务。 用了什么方法解决?

解决以上两个问题,本文提出了以下解决方法:
提出了一种思路:将输入映射为一个特征向量,使用两个向量之间的“距离”(L1 Norm)来表示输入之间的差异(图像语义上的差距)。
基于上述思路设计了Siamese Network。每次需要输入两个样本作为一个样本对计算损失函数。
1)用的softmax只需要输入一个样本。
2)FaceNet中的Triplet Loss需要输入三个样本。
提出了Contrastive Loss用于训练。
应用的场景:
孪生神经网络用于处理两个输入"比较类似"的情况。伪孪生神经网络适用于处理两个输入"有一定差别"的情况。比如,我们要计算两个句子或者词汇的语义相似度,使用siamese network比较适合;如果验证标题与正文的描述是否一致(标题和正文长度差别很大),或者文字是否描述了一幅图片(一个是图片,一个是文字),就应该使用pseudo-siamese network。也就是说,要根据具体的应用,判断应该使用哪一种结构,哪一种Loss。

尽管取得了一定的成功,但少样本目标检测的一个关键内在问题长期以来被这些先前的研究忽视了:模型偏差问题。这个问题是由于基础类和新类别之间的训练数据集极度不平衡引起的。具体来说,为了学习通用和可迁移的知识,模型首先在大量标注样本的基础类上进行训练,而潜在的新类别被标记为背景。因此,模型将倾向于只识别基础类,并在区域提议网络(RPN)[77] 中拒绝新类别。其次,在有偏训练监督下,主干特征将偏向于基础类,从预训练数据集中学习到的丰富类别的特征分布[13] 会被破坏,主干网络会过拟合于有限的基础类。第三,当检测器在新类别上进行微调时,极少的训练样本无法代表真实的类别统计。因此,模型将偏向于新类别的有限训练样本,无法很好地泛化到真实数据分布,这一问题无法通过类别不平衡学习方法[14,42,89,43,11] 解决。
模型偏差的三个问题:
(1)模型将倾向于只识别基础类,并在区域提议网络(RPN)[77] 中拒绝新类别.
(2)在有偏训练监督下,主干特征将偏向于基础类,从预训练数据集中学习到的丰富类别的特征分布[13] 会被破坏,主干网络会过拟合于有限的基础类
(3)当检测器在新类别上进行微调时,极少的训练样本无法代表真实的类别统计。因此,模型将偏向于新类别的有限训练样本,无法很好地泛化到真实数据分布。

在以往的研究中,模型偏差问题并未得到足够的重视。仅有一些常见做法用于防止模型偏差。一种简单且常见的做法是利用具有大量类别的大规模分类数据集,例如 ImageNet [13],预训练模型以获得更好和更通用的先验知识,从而减轻模型对基础类的偏差。尽管 ImageNet 预训练通过全监督[33]或自监督学习[31,35,56]提供了更好的先验知识,但由于缺乏明确的偏差约束,相关模型仍然倾向于基础类。**Fan 等人[22] 提出了另一种解决方案,通过利用具有大量训练类别的目标检测数据集来防止模型对基础类的过拟合。**虽然这项工作显著提高了新类别的泛化性能,并验证了现有少样本目标检测方法中的模型偏差问题,但这种方法需要建立一个大规模的数据集用于少样本目标检测,这既昂贵又难以推广到其他高层次的少样本任务。

两种常见的传统的解决方案:
(1)一种简单且常见的做法是利用具有大量类别的大规模分类数据集。
这种方法仍然具有一定的局限性。
缺陷:尽管 ImageNet 预训练通过全监督[33]或自监督学习[31,35,56]提供了更好的先验知识,但由于缺乏明确的偏差约束,相关模型仍然倾向于基础类。
(2)Fan 等人[22] 提出了另一种解决方案,通过利用具有大量训练类别的目标检测数据集来防止模型对基础类的过拟合。
缺陷:这种方法需要建立一个大规模的数据集用于少样本目标检测,这既昂贵又难以推广到其他高层次的少样本任务。

之前的研究 [22,91,93] 要么性能有限,要么需要额外的标注数据集。在本文中,我们明确指出并深入研究了各个检测模块中的模型偏差问题,并提出了一种简单但有效的方法,通过三个层次校准模型以解决模型偏差问题:RPN校准、检测器校准和主干网络校准。表1展示了不同检测模块的模型偏差问题及其偏差来源,以及我们的模型校准所带来的性能提升。

具体来说,RPN校准旨在通过识别新类别的潜在对象并纠正其训练标签来校准偏向的RPN。我们提出了不确定性感知RPN(UA-RPN),以评估每个提案的不确定性,并利用这种不确定性挖掘新类别。检测器校准旨在利用基础类和新类别的特征统计生成提案特征,以进行无偏检测器训练。对于主干网络校准,我们提出利用被忽视的分类数据集,即 ImageNet 数据集,来解决模型偏差问题,这个数据集是免费可用的,但在其他少样本目标检测工作中仅用于预训练。主干网络在检测和分类数据集上联合训练,并使用伪框注释以弥合领域差距。总而言之,我们的论文有三个贡献:

  • 我们识别并深入检查了现有少样本目标检测方法中各个检测模块的模型偏差问题。
  • 我们提出通过主干网络校准、RPN校准和检测器校准三个层次来解决模型偏差问题。我们利用被忽视的分类数据集进一步促进我们的模型校准过程。
  • 我们在两个数据集上验证了我们方法的有效性,结果表明我们的方法取得了非常有前途的性能。

    domain gap的含义:
    图像及点云的标注的一件非常耗时、无聊、繁琐的事情。人工标注的成本高、耗时长,因此人们会用计算机合成的图像数据集进行语义分割模型的训练。合成的数据集称为 source domain(源域),真实世界的数据集称为target domain(目标域)。
    通常我们会使用源域中的数据进行训练模型,然后将在目标域进行分割预测时往往会产生很多错误的标签,称为伪标签噪声。
    由于不同的数据集之间的目标分布不同,即源域和目标域之间存在域差距——Domain Gap 导致这种现象产生。

三、相关工作

3.1 目标检测(Object Detection)

单阶段检测器(One-stage detectors)
单阶段检测器 [59,75,76,63,62,102] 在提取的主干特征上直接预测锚点的类别和位置,以单次拍摄的方式进行。这些方法 [46,80,109,105,103,90,70,85] 通常在牺牲检测性能的情况下具有快速的推理速度。然而,最近提出的无锚点算法 [47,66,107,18,99,87,64,45] 在保持竞争性运行速度的同时显著提升了性能。
双阶段检测器
以 R-CNN 方法 [26,77,58] 为代表的双阶段检测器首先使用传统技术 [88] 或联合优化的区域建议网络 region proposal network (RPN) [77] 生成可能包含对象的候选建议。然后,这些建议会被细化以获得准确的位置并分类到不同的类别。这些方法 [32,83,5,6,12,55,3,81,74,69,82,34] 通常具有较高的检测性能,但由于其双阶段流程,速度较慢。总体而言,即使这些方法在多个目标检测数据集上表现出色,它们也只能检测训练类别的对象,无法泛化到检测新类别。
目标检测分为:单阶段的目标检测和双阶段的目标检测。目前它们存在的问题是:总体而言,即使这些方法在多个目标检测数据集上表现出色,它们也只能检测训练类别的对象,无法泛化到检测新类别。

domain gap的含义: 图像及点云的标注的一件非常耗时、无聊、繁琐的事情。人工标注的成本高、耗时长,因此人们会用计算机合成的图像数据集进行语义分割模型的训练。合成的数据集称为 source domain(源域),真实世界的数据集称为target domain(目标域)。 通常我们会使用源域中的数据进行训练模型,然后将在目标域进行分割预测时往往会产生很多错误的标签,称为伪标签噪声。 由于不同的数据集之间的目标分布不同,即源域和目标域之间存在域差距——Domain Gap 导致这种现象产生。

3.2 少样本学习

近期的少样本分类方法大致可以根据先验知识学习和适应方法分为两类。第一类将少样本分类视为一个元学习问题,通过基于度量或基于优化的方法来实现。基于度量的方法 [1,16,36,44,52,53] 利用孪生网络 [44] 学习支持图像和查询图像的特征嵌入,并使用通用距离度量评估它们的相关性,而不考虑它们的类别。基于优化的方法 [24,4,49,27,48,2,28,79] 通过元学习快速在线更新模型,仅需少量样本。第二类是最近提出的迁移学习方法 [10,25,15,71],包括两个独立的训练阶段。这些方法首先在基础类上预训练模型,以获得可迁移的主干特征;在第二阶段,微调高层次的层以适应新类别。多项最新研究 [61,86,110] 验证了这种简单的迁移学习过程可以获得强大的性能。我们的工作受迁移学习方法的启发,并将其理念应用于少样本目标检测任务。

小样本的学习根据先验知识学习和适应方法分为两类:
(1)第一类将少样本分类视为一个元学习问题,通过基于度量或基于优化的方法来实现。基于度量的方法 [1,16,36,44,52,53] 利用孪生网络 [44] 学习支持图像和查询图像的特征嵌入,并使用通用距离度量评估它们的相关性,而不考虑它们的类别。
(2)第二类是第二类是最近提出的迁移学习方法:包括两个独立的训练阶段。这些方法首先在基础类上预训练模型,以获得可迁移的主干特征;在第二阶段,微调高层次的层以适应新类别。

3.3少样本目标检测

到目前为止,少样本学习在多个重要的计算机视觉任务上取得了令人印象深刻的进展 [65,54,20,21],例如语义分割 [17,68,38]、人体运动预测 [29] 和目标检测 [8]。少样本目标检测方法可分为两类:元学习和迁移学习方法。元学习方法采用孪生网络,根据查询图像与给定支持图像的相似性来检测新类别。Fan 等人 [22] 提出了注意力-RPN多关系检测器以更好地测量相似性。FR [40] 提出了一个元特征学习器和一个重加权模块以快速适应新类别。其他方法通过不同模块改进了基于元学习的少样本目标检测方法,例如联合特征嵌入 [94]、支持-查询互导 [101]、密集关系蒸馏 [37] 以及其他方法 [51,95,94]。迁移学习方法首先在基础类上训练模型,然后在新类别上微调模型,以获得良好的泛化能力。 TFA [91] 引入了余弦相似性分类器以检测新类别。MSPR [93] 提出了多尺度正样本细化模块以丰富少样本目标检测的对象尺度。为改进迁移学习少样本目标检测方法,提出了各种技术,例如语义关系推理 [108]、幻觉网络 [104]、对比提案编码 [84] 以及其他方法 [57,50,23,98,8,41,7,72,30,92]。我们的工作属于迁移学习方法。值得注意的是,我们识别了现有少样本目标检测模型中的模型偏差问题,并提出了相应的模型校准模块以解决这些偏差问题,从而使训练的模型在新类别上能够更好地泛化。将我们的方法应用于零样本任务 [100] 也是很有前景的。

四、 FSOD的模型校准

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图1. 整体网络架构。检测图像被输入到卷积主干网络中,该网络与分类图像及伪框一起联合训练。检测图像的特征随后由RPN和UA-RPN(不确定性感知RPN)处理以生成建议框。UA-RPN通过标签修正(LR)和预测修正(PR)为常规RPN提供支持。RoI池化生成的建议框特征被输入到特征存储模块,以生成新类别的特征。检测器处理原始和生成的建议框特征并输出目标检测预测结果。

4.1 骨干网络的校准

对于少样本目标检测任务,常见的做法是先在大规模分类数据集(例如 ImageNet [13])上预训练主干网络,以获得良好的特征初始化,从而加速训练收敛,同时提供一般的先验数据分布,以便在新类别上获得良好的泛化能力。然而,FSOD 的分离的两阶段训练阻碍了新类别的泛化增益,因为新类别仅在第二训练阶段进行微调。关键原因在于,拥有大量训练样本的基础类显著改变了第一训练阶段的主干特征分布。模型被训练以适应有限基础类(少于100个类别)的数据分布,代价是失去了预训练阶段从大量类别(至少1000个类别)中学习到的一般分布。主干网络偏向于基础类,从而阻碍了在新类别上的泛化。

虽然基础类训练阶段会破坏预训练中学到的良好类别分布,但它确实通过启用新对象检测为模型提供了位置监督。实际上,如果我们舍弃基础类训练阶段,新类别上的检测性能将显著下降。这个悖论促使我们找到一个解决方案,既能保留学到的良好类别分布,又能进行位置监督。在本文中,我们提出在基础训练阶段通过为主干网络提供隐含的特征约束来实现这一目标,从而在进行基础类位置监督下的对象检测训练的同时,保持覆盖大量类别的良好数据分布。

一个简单的解决方案是将主干网络同时在大规模分类数据集和目标检测数据集上联合训练,以保留它们的数据属性。但我们发现分类和检测任务不太兼容,分类任务总是主导训练过程,从而显著降低目标检测性能。因此,我们提出为分类图像配备伪框注释,将分类数据集转换为目标检测数据集。

分类图像具有一个理想的属性:大多数图像主要由标注目标类的显著对象占据。我们利用这一特性为目标对象生成伪框。我们使用预训练的显著对象检测 (SOD) 模型 [73] 来检测分类图像中的显著对象。然后,我们移除 SOD 掩码的离群值,仅保留最大的连续区域作为显著区域,并生成相应的伪框。

我们使用共享权重的主干网络在检测数据集和配有伪框的分类数据集上联合训练模型。具体来说,对于检测分支,我们保持与其他少样本目标检测 (FSOD) 方法相同的训练设置。对于在分类数据集上训练的主干网络,我们使用较小的输入尺寸以适应其原始图像尺寸。通过这种方式,模型可以同时进行目标检测任务,同时保持从分类数据集的大量类别中学习到的数据分布。需要注意的是,我们的主干网络校准可以扩展到分类数据集中的类别数量,更多的类别将产生更好的数据分布,从而提升检测性能。

我们的主干网络校准方法通过联合训练分类任务中丰富的可用类别的分布校准,显著缓解了主干网络对有限检测类别的偏差。为了展示主干网络偏差问题和我们主干网络校准的效果,我们使用 t-SNE [67] 绘制了原始、偏差和校准后主干网络特征的各自分布。如图2所示,对于相同的输入图像,偏差主干网络的特征分布明显偏离了原始主干网络的良好分布。经过我们的模型校准后,主干网络特征分布很好地对齐到原始分布,且更接近真实数据分布。

在这里插入图片描述

4.2 RPN的校准

区域建议网络 (RPN) 旨在生成潜在对象的建议框,它以无类别的方式进行训练。因此,RPN 被广泛视为能够检测任意已知或未知类别的通用目标检测模块 [39]。然而,我们发现 RPN 仅对已知的训练类别具有通用性,其在未知的新类别上的性能显著下降,主要有以下两个内在原因。

首先,没有可用于新类别的训练样本,因此 RPN 无法通过新类别的监督信号进行训练。不过,RPN 在新类别上的泛化能力(RPN 仍然可以检测到一些新类别的对象)是源于类似训练类别的监督信号。例如,RPN 在马和羊上训练后可以检测到斑马,但性能不如训练类别。其次,可能存在新类别的负监督信号。注意,RPN 的训练图像可能包含新类别的对象,但由于没有标注,这些对象在训练过程中被视为背景。这种无意的忽略进一步降低了 RPN 在新类别上的泛化能力。更糟糕的是,FSOD 模型由于其两阶段训练方案,进一步遭受偏向 RPN 的问题,因为新类别在第一阶段基础训练中完全没有标注。

我们提出通过纠正新类别潜在对象的标签和预测来校准偏向的 RPN。挑战在于如何发现新类别的对象。我们发现新类别的 RPN 提案具有一个有趣的属性:即使是同一新类别的对象,其在不同图像中的对象得分也会大幅波动,而基础类几乎总是具有稳定的高对象得分。这意味着新类别的提案相比于纯背景和基础类具有更高的预测不确定性。一方面,RPN 被训练为识别无类别的对象,不论类别如何。另一方面,一些新类别的对象在训练过程中被视为背景。这一观察促使我们利用预测不确定性来识别新类别的对象。

我们提出了不确定性感知 RPN(UA-RPN),通过校正 RPN 训练标签和预测来进行 RPN 校准。我们的方法受一种广泛使用的不确定性估计方法 M-head [78] 的启发,该方法使用共享的主干网络建模确定性特征,并使用多个不同的预测器建模随机特征,其中多个预测假设用于表示不确定性。我们的 UA-RPN 扩展了 M-head 的理念来估计提案的不确定性,如图3所示。具体来说,我们首先构建 M 个具有相同架构的独立 RPN 头 ( f_m )。每个 RPN 共享相同的输入主干特征 ( x ),并为每个提案生成一个对象得分预测。因此,我们可以为每个提案获得 M 个对象得分。
在这里插入图片描述

然后我们计算方差 (\text{Var})
在这里插入图片描述
对每个建议的多个预测来表示预测的不确定性,其中µ是f (x)的平均值。
图3. 不确定性感知RPN(UA-RPN)及偏差RPN和我们的UA-RPN的提案可视化。提案通过半透明插图进行可视化,最有信心的提案用实线矩形轮廓突出显示。基础类和新类别分别用绿色和红色提案表示。
图3. 不确定性感知RPN(UA-RPN)及偏差RPN和我们的UA-RPN的提案可视化。提案通过半透明插图进行可视化,最有信心的提案用实线矩形轮廓突出显示。基础类和新类别分别用绿色和红色提案表示。

利用上述的 M 个预测头,我们希望它们对新类别样本的预测有所不同,以便预测方差可以用于评估不确定性。因此,我们提出了以下两个设计,使 UA-RPN 更加具有不确定性意识。

首先,我们通过多样化标签分配来训练 UA-RPN,其中不同的 RPN 头对同一提案有不同的监督标签。因为我们的目标是从混乱的背景中发现新类别,所以我们只改变背景提案的标签,其中一些背景提案在不同的标签分配下被选择性忽略。对于常规 RPN,当提案与真实边界框的重叠度 OV 满足 OV ∈ [0.0, 0.3] 时,这些提案被标记为背景,而那些 OV ∈ (0.3, 0.7) 的提案在训练过程中被忽略。对于我们的 UA-RPN,我们为不同 RPN 头的背景标签分配设置了不同的 OV 以提高监督的模糊性和多样性。那些与标签分配不一致的原始背景提案在训练过程中被忽略。

第二个设计是将 UA-RPN 与主干网络的梯度分离,以便主干网络和 UA-RPN 分别进行优化。这种独立优化不仅避免了主干特征受到 UA-RPN 的模糊监督影响,还确保了 UA-RPN 的不同头可以独立训练。在训练过程中,那些具有较大不确定性 ((\text{Var} > \alpha)) 的背景提案被视为潜在的新类别对象,并将其标签校正为前景。在测试过程中,UA-RPN 预测的对象得分通过平均操作来校正 RPN 的预测。由于 UA-RPN 的轻量设计,以上校正以模块集成的方式进行,仅需少量额外计算。

我们分析了基础类和新类别的提案得分,以说明 RPN 的偏差问题及我们的 RPN 校准方法。如图3所示,常规 RPN 由于训练偏差未能检测到新类别,而我们的 UA-RPN 成功检测到了这个新的“摩托车”对象。需要注意的是,新类别提案从 UA-RPN 的多个头获得的对象得分是多样化的,因此其不确定性(方差)非常高,而基础类提案则始终具有较高的对象得分且不确定性较低。

4.3 检测头的校准

在这里插入图片描述

五、实验

在本节中,我们进行了大量实验,以验证当前少样本目标检测 (FSOD) 模型中的模型偏差问题,并展示我们提出的模型校准模块的有效性。

5.1 实验设置

数据集
我们的实验在 MS COCO [60] 和 Pascal VOC [19] 数据集上进行。MS COCO 数据集包含 80 个类别,我们按照之前的研究 [22,91,40] 将其分为两个独立的集合,其中与 Pascal VOC 数据集重叠的 20 个类别被视为新类别,其余 60 个类别被视为基础类别。我们利用 val2017 集合的 5K 图像进行评估,并使用 train2017 集合的大约 80K 图像进行训练。我们使用 FSOD [22] 中的新类别支持样本在 MS COCO 数据集上微调我们的模型。对于包含 20 个类别的 Pascal VOC 数据集,我们进行随机划分以产生 5 个新类别和 15 个基础类别。具体来说,有三个随机类别划分组,我们遵循之前研究的划分设置 [84,91] 以进行公平比较。我们利用 VOC 2007 和 VOC 2012 的 trainval 集合进行训练,并使用 VOC 2007 的测试集合进行评估。
训练和评估

模型首先在基础类上进行训练,然后在新类别上进行微调。具体来说,在 MS COCO 数据集上,新类别的实例数量 (K) 为 5 和 10;在 Pascal VOC 数据集上,(K) 为 1、2、3、5 和 10。模型在新类别上多次进行评估,使用平均精度 (AP) 作为评估指标。我们报告 COCO 数据集上的 COCO 风格 mAP 和 Pascal VOC 数据集上的 AP50,这是符合数据集特征的常见做法。

模型细节

我们采用预训练的 U²-Net [73] 显著目标检测网络来生成伪框。我们重新使用 ImageNet [13] 数据集进行主干网络校准,而其他研究中仅将其用于模型预训练。UA-RPN 有 4 个 RPN,具有不同的 OV ([0.01, 0.3]、[0.1, 0.3]、[0.15, 0.3]、[0.2, 0.3])。我们通过选择前 1,000 个不确定提案来动态设置 (\alpha)。

实现细节

我们采用基于特征金字塔网络 [58] (FPN) 的 Faster R-CNN [77] 作为基本检测框架,使用在 ImageNet [13] 数据集上预训练的 ResNet-50 [33] 主干网络。我们使用 SGD 优化模型,权重衰减为 5e-5,动量为 0.9。模型在基础训练阶段进行 50,000 次迭代训练,前 30,000 次迭代的学习率设置为 0.02,每 10,000 次迭代后衰减 10 倍。在新类别微调阶段,模型训练 3,000 次迭代,初始学习率为 0.01,在第 2,000 次迭代时衰减 10 倍。目标检测图像按照固定高宽比进行调整,较短的一边调整为 600 像素,而较长的一边限制为 1,000 像素。

消融实验
表3显示了每个模型校准模块都提高了检测性能,它们的组合使总体性能从11.3 AP提升到15.1 AP。我们进一步在 MS COCO 数据集上进行了大量实验,以研究我们模型校准在处理不同模块中的模型偏差的有效性。

在这里插入图片描述
主干网络校准
主干网络偏差是在基础训练阶段引入的,此时从大量类别中学习到的广泛特征分布可能被破坏。我们的主干网络校准模块有效地缓解了这一问题,使新类别上的泛化性能显著提高了 3.4 AP。(见表4)

表4. 主干网络校准消融研究“CAM”表示类激活图,“PB”表示伪框,† 表示进行了仔细的超参数调优。
在这里插入图片描述

讨论

对主干网络校准的担忧包括:

性能提升是否来自 ImageNet 数据集中与新类别重叠的类别? 性能提升主要来自覆盖大量类别的良好特征分布。为了消除重叠类别的影响,我们使用经过净化的 ImageNet [13] 数据集对主干网络进行校准,去除了所有与 MS COCO 新类别相似的类别,剩下 725 个类别。与在完整 ImageNet 数据集上校准的主干网络相比,性能仅下降了 0.5 AP。使用随机选择的 500 个类别进行校准,性能仅下降了 0.8 AP。这些结果验证了主干网络校准的改进主要源于大量类别,而不是重叠类别。我们还展示了使用随机选择的 100 个和 300 个类别的性能,以进一步显示类别多样性对主干网络校准的影响。

性能提升是否来自预训练的显著对象检测 (SOD) 模型? 为了解决这个问题,我们利用类激活图 [106] (CAM) 生成伪框,这是一种无监督方法,可以直接从预训练的分类模型生成伪掩码。使用不准确的 CAM 生成的伪框,性能仅下降了 0.3 AP。我们还在没有伪框的情况下,直接联合训练检测和分类数据集。由于分类分支的主导作用,性能急剧下降到 7.5 AP。但通过减少分类分支的损失权重进行仔细的超参数调优,性能可以达到 14.2 AP。这些结果验证了主干网络校准仅会受到伪框质量的轻微影响。

主干网络校准是否引入了额外的数据? 我们的方法没有引入任何额外的数据。我们只重新使用了 ImageNet 数据集,这是一个免费的资源,用于进行主干网络校准。然而,其他 FSOD 方法仅将 ImageNet 用于模型预训练。
RPN的校准
在这里插入图片描述
表5. UA-RPN 的消融研究“DT”表示将 UA-RPN 梯度与主干网络分离,“LA”表示背景提案的标签分配,“LR”表示标签校正,“PR”表示预测校正。
在这里插入图片描述
检测器校准
我们在新类别的训练样本上评估模型,以展示检测器的偏差。训练样本上的检测性能达到 61.7 AP,而测试样本上的泛化性能仅为 11.3 AP。训练和测试样本之间的巨大性能差距表明检测器对训练样本存在严重的偏差。通过使用我们的检测器校准,测试样本上的性能从 11.3 AP 提升到 11.9 AP,同时通过减轻对训练样本的过拟合,性能差距也有所缩小。

六、和先进的模型进行比较

我们在 Pascal VOC 和 MS COCO 数据集上与最先进的方法进行了对比实验。Pascal VOC 包含更多中等大小和大型对象,因此其检测性能比 MS COCO 数据集高得多。如表6所示,我们的方法在所有类别划分中表现优于或可与其他方法相比。MS COCO 是一个具有挑战性的数据集,即使是全监督方法也很难取得高性能。正如表7所示,通过所提出的模型校准,我们的模型显著超过其他方法,领先了2.5 AP,检测性能达到15.1 AP。

表6. Pascal VOC 数据集上的实验结果最佳结果和次优结果分别用粗体和下划线标出。
在这里插入图片描述
表7. MS COCO 数据集上的5-shot实验结果
在这里插入图片描述

结论

结论

少样本目标检测 (FSOD) 最近取得了显著进展。然而,以往的FSOD研究忽略了迁移学习中的内在模型偏差问题。模型偏差问题导致模型对训练类别的过拟合,同时破坏了学到的可迁移知识。在本文中,我们识别并全面研究了FSOD中的模型偏差问题,提出了一种简单而有效的方法来解决这个问题,利用ImageNet数据集不仅限于预训练,如其他研究所做的那样。具体来说,我们在三个层次上进行模型校准:1)主干网络校准,以保留学到的先验知识,从而减轻模型对基础类的偏差;2)RPN校准,以挽救新类别的未标注对象;3)检测器校准,以防止模型对新类别少量训练样本的偏差。广泛的实验和分析证实了我们模型校准方法的有效性。

参考文献:
【1】Fan, Q., Tang, CK., Tai, YW. (2022). Few-Shot Object Detection with Model Calibration. In: Avidan, S., Brostow, G., Cissé, M., Farinella, G.M., Hassner, T. (eds) Computer Vision – ECCV 2022. ECCV 2022. Lecture Notes in Computer Science, vol 13679. Springer, Cham. https://doi.org/10.1007/978-3-031-19800-7_42.

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
USB摄像头在使用时需要进行标定,以获得更好的图像质量和准确的测量结果。下面是使用OpenCV进行USB摄像头标定的步骤: 1. 准备标定板:使用黑白相间的棋盘格标定板。 2. 拍摄标定图像:将标定板放在摄像头前,拍摄10-20张不同角度和位置的标定图像,并保存为JPEG格式。 3. 计算相机内参:使用OpenCV的calibrateCamera函数计算相机的内参矩阵、畸变系数和旋转平移矩阵等参数。 4. 计算外参:对于每张标定图像,使用solvePnP函数计算相机的外参矩阵,即相机相对于标定板的旋转平移矩阵。 5. 应用标定结果:将相机的内外参矩阵应用到实际的图像中,可以进行图像矫正和测量等操作。 下面是一个简单的C++程序示例,演示如何使用OpenCV进行USB摄像头标定: ```c++ #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main() { // 准备标定板 Size boardSize(8, 6); float squareSize = 0.025; // 棋盘格格子大小,单位为米 vector<Point3f> boardPoints; for (int i = 0; i < boardSize.height; i++) { for (int j = 0; j < boardSize.width; j++) { boardPoints.push_back(Point3f(j*squareSize, i*squareSize, 0)); } } // 拍摄标定图像 vector<vector<Point2f>> imagePoints; vector<Point2f> corners; Mat image, gray; namedWindow("camera"); // 创建窗口 VideoCapture capture(0); // 打开摄像头 while (imagePoints.size() < 10) { // 拍摄10张标定图像 capture >> image; cvtColor(image, gray, COLOR_BGR2GRAY); bool found = findChessboardCorners(gray, boardSize, corners); if (found) { cornerSubPix(gray, corners, Size(5, 5), Size(-1, -1), TermCriteria(TermCriteria::EPS + TermCriteria::MAX_ITER, 30, 0.1)); drawChessboardCorners(image, boardSize, corners, found); } imshow("camera", image); waitKey(100); if (found) { imagePoints.push_back(corners); } } destroyWindow("camera"); // 关闭窗口 // 计算相机内参 vector<Mat> rvecs, tvecs; Mat cameraMatrix, distCoeffs; vector<vector<Point3f>> objectPoints(imagePoints.size(), boardPoints); calibrateCamera(objectPoints, imagePoints, image.size(), cameraMatrix, distCoeffs, rvecs, tvecs); // 计算外参 Mat rvec, tvec; solvePnP(boardPoints, imagePoints[0], cameraMatrix, distCoeffs, rvec, tvec); // 应用标定结果 Mat undistorted; undistort(image, undistorted, cameraMatrix, distCoeffs); imshow("undistorted", undistorted); waitKey(0); return 0; } ``` 注意:在实际应用中,需要根据实际情况调整标定板的大小和格子大小,以及标定图像的数量和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值