目标计数论文阅读(2)Learning To Count Everything
论文地址:Learning To Count Everything
github代码:代码与数据集
一、摘要
现有关于视觉计数的研究大多仅针对单一特定类别(如人、动物、细胞)进行。本文提出了一种通用计数方法,旨在仅需给定目标类别的少量标注实例,即可对任意类别物体进行计数。我们将计数问题构建为一个少样本回归任务,并提出一种新颖的方法:通过输入查询图像及该图像中少量示例物体,预测查询图像中所有目标类别的物体的密度分布图。此外,我们设计了一种创新的自适应策略,使网络在测试时能够仅通过来自新类别的少量示例物体,快速适应任何未知视觉类别。
我们同时发布了一个包含147个物体类别、超过6000张图像的数据集,适用于少样本计数任务研究。该数据集提供点标注和边界框标注两种标注形式,可用于开发少样本计数模型。在该数据集上的实验表明,我们的方法在性能上优于多种先进的目标检测器和少样本计数方法。
二、介绍
人类可以轻松地计数大多数视觉对象类别中的物体,而当前最先进的计数计算方法 [29, 48, 55] 只能处理有限数量的视觉类别。事实上,大多数计数神经网络 [4, 48] 一次只能处理单一类别,例如人、汽车和细胞。
有两个主要挑战阻碍了计算机视觉社区设计能够计数大量视觉类别的系统。首先,当下大多数的主流计数方法 [4, 48, 55] 将计数视为一种监督回归任务,这需要数千张带标注的图像来学习一个全卷积回归器,该回归器将输入图像映射到其相应的密度图,通过求和密度图中的所有值来获得估计的计数总数。这些网络需要在成千上万的训练图像上为数百万个物体提供点标注(dot annotations),而获取此类标注是一个成本高昂且费力的过程。因此,很难将这些现代计数方法扩展到处理大量视觉类别。其次,目前没有任何足够大的、包含许多视觉类别且不受限制的计数数据集,可用于开发通用计数方法。大多数流行的计数数据集 [14–16, 43, 49, 55] 仅包含单一对象类别。
图1:少样本计数——我们工作的目标。 给定一张来自新类别的图像以及该图像中用边界框标注的几个示例对象,目标是计算图像中该新类别对象的总数。
在这项工作中,我们同时应对了上述两个挑战。为应对第一个挑战,我们绕开了现有将计数视为典型全监督回归任务的方法,而是将计数构建为一个少样本回归任务,如图1所示。在这种少样本设置下,计数任务的输入是一张图像和来自同一图像的、目标物体的少量示例,输出则是该物体的实例数量。这些示例以边界框的形式提供,框出感兴趣的目标物体。换句话说,我们的少样本计数任务处理的是对图像中与给定示例相似的实例进行计数。遵循少样本分类任务 [9, 20, 46] 的惯例,测试时的类别与训练时见过的类别完全不同。这使得少样本计数与典型的计数任务(其训练和测试类别相同)截然不同。与典型计数任务有数百 [55] 或数千 [16] 个标注样本用于训练不同,少样本计数方法需要仅利用输入图像和几个示例就能泛化到全新的类别。
我们提出了一种名为少样本适应与匹配网络 的新型架构来应对少样本计数任务。FamNet有两个关键组成部分:1) 一个特征提取模块,和 2) 一个密度预测模块。特征提取模块包含一个能够处理大量视觉类别的通用特征提取器。密度预测模块被设计为与视觉类别无关。正如我们实验中将看到的,特征提取器和密度预测模块都能够在测试时泛化到新类别。我们通过在测试时开发一种新颖的少样本适应方案,进一步提高了FamNet的性能。该适应方案利用提供的示例本身,通过几次梯度下降更新使计数网络适应这些示例,其中梯度是基于两个损失函数计算的,这两个函数旨在最大限度地利用示例的位置信息。经验表明,这种适应方案提升了FamNet的性能。
最后,为解决缺乏用于开发和评估少样本计数方法性能的数据集的问题,我们引入了一个中等规模的数据集,包含来自147个视觉类别的6000多张图像。该数据集提供了点标注和边界框标注,适用于少样本计数任务。我们将其命名为少样本计数-147。
简而言之,我们工作的主要贡献如下:首先,我们将计数构建为一个少样本回归任务。其次,我们提出了名为FamNet的新型架构来处理少样本计数任务,并附带一种在测试时使用的新颖少样本适应方案。第三,我们提出了一个名为FSC-147的新颖少样本计数数据集,包含超过6000张图像,涵盖147个视觉类别。
简要总结
两个核心瓶颈:
- 方法限制:主流计数方法严重依赖大量昂贵且费力的“点标注”数据进行监督学习,这种范式难以扩展到众多物体类别。
- 数据缺失:缺乏一个大规模、涵盖多类别(multi-category)的通用计数数据集,阻碍了通用计数模型的发展。
其结果是,现有的计数模型通常是高度特化的(只能处理单一类别如人、车),而人类所具备的通用计数能力是目前计算方法难以企及的。
提出的核心方案和贡献:
- 范式转变:提出了“少样本计数”的新任务设定。只需输入一张图和一个目标物体的几个示例(边界框),模型就能计算出该物体的数量,且测试类别与训练类别完全不同,无需为每个新类别收集大量标注数据。
- 方法创新:提出了一个名为 FamNet 的新模型。其核心是一个通用特征提取器和一个类别无关的密度预测模块。最关键的是,它包含一个新颖的“测试时适应”机制,能利用提供的几个示例通过梯度下降快速微调模型,使其更适应当前任务,从而提升计数精度。
- 数据贡献:创建并发布了一个名为 FSC-147 的新数据集,包含147个类别、超过6000张图像,并带有点和边界框标注,专门用于训练和评估少样本计数方法,解决了该领域缺乏合适基准的问题。
三、最近工作
在这项工作中,我们关注的是利用来自同一图像的少量标注示例来计数给定图像中感兴趣的对象。先前的大多数计数方法都是针对特定类型的物体,例如人 [2, 5, 6, 23, 26, 27, 29, 32–34, 39, 42, 47, 50, 54, 55]、汽车 [30]、动物 [4]、细胞 [3, 18, 53] 和水果 [31]。这些方法通常需要包含数万甚至数百万个标注对象实例的训练图像。其中一些工作 [34] 通过利用源域上训练的计数网络,并仅使用目标域中少量信息样本的标签使其适应任何目标域,从而在某种程度上解决了标注成本高昂的问题。然而,即使是这些方法也需要在源域拥有大量标注数据。
提出的 FamNet 通过利用查询图像与所提供示例对象之间的强相似性来工作。在某种程度上,它类似于 Shechtman 和 Irani [41] 十年前的自相似性工作。与此想法相关的还有 Lu 和 Zisserman [28] 最近的工作,他们提出了一个用于类别无关计数的通用匹配网络(GMN)。GMN 使用跟踪视频数据进行了预训练,并有一个显式的适应模块,使网络能适应感兴趣的图像域。如果能有几十到几百个示例用于适应,GMN 已被证明效果良好。但如果没有适应过程,正如我们实验中将看到的,GMN 在新类别上表现不佳。
与少样本计数相关的是少样本检测任务(例如 [8, 17]),其目标是使用少量标注示例学习新类别的检测器。少样本计数在两个主要方面不同于少样本检测。首先,少样本计数需要点标注,而检测需要边界框标注。其次,少样本检测方法可能会受到严重遮挡的影响,而少样本计数采用密度估计方法[22, 55] 来解决,该方法比“先检测后计数”的方法对遮挡更具鲁棒性,因为密度估计方法不必在早期阶段就做出二值化的决策。密度估计方法的优势已在多个领域得到实证证明,尤其是在人群和细胞计数中。
与我们工作相关的还有少样本图像分类任务 [9, 19, 21, 35, 40, 46]。少样本分类任务处理的是在测试时,给定来自这些新测试类别的少量训练示例,对来自新类别的图像进行分类。基于模型无关元学习(MAML)[9] 的少样本方法与我们的少样本计数任务相关,它侧重于学习能够通过少量梯度下降步骤在测试时适应新类别的参数。然而,MAML 在训练过程中涉及计算二阶导数,这使其成本高昂,对于我们论文中考虑的密度图预测这种像素级预测任务而言更是如此。从这些工作中汲取灵感,我们提出了一种新颖的适应方案,该方案利用测试时可用的示例,并执行几步梯度下降,以使 FamNet 适应任何新类别。与 MAML 不同,我们的训练方案在训练时不需要高阶梯度。我们将我们的方法与 MAML 进行了比较,并凭经验表明我们的方法能带来更好的性能,并且训练速度也快得多。
简要总结
本段通过对比相关研究工作,进一步阐明了本文方法(FamNet)的定位与创新点:
- 问题背景:指出传统计数方法依赖大量特定类别的标注数据,而一些域适应方法仍需源域有大量数据。
- 核心思想:FamNet 的核心是利用查询图像与给定示例之间的视觉相似性进行计数,这与早期的自相似性思想和近期的类别无关计数(GMN)相关,但 GMN 需要大量示例进行适应且在新类上表现不佳。
- 与少样本检测的区别:强调了少样本计数(使用点标注和密度估计)相对于少样本检测(使用边界框标注)的两个优势:标注成本更低和对遮挡更鲁棒。
- 与少样本分类/MAML的关系:受到了少样本分类(尤其是 MAML)的启发,但针对密度图预测这一像素级任务,提出了一个更高效的适应方案,避免了 MAML 复杂且昂贵的二阶导数计算,从而在性能和训练速度上都有优势。
总之,这段内容将 FamNet 置于更广阔的研究背景中,清晰地说明了它与已有工作的联系与根本区别,并突出了其在高效率和高性能方面的改进。
四、Few-Shot Adaptation & Matching Network
图2:少样本适应与匹配网络以查询图像以及描绘感兴趣对象的几个边界框作为输入,并预测密度图。通过将密度图中所有像素值相加来获得计数。适应损失是基于边界框信息计算的,该损失的梯度用于更新密度预测模块的参数。适应损失仅在测试时使用。
4.1 网络结构
在这项工作中,我们关注的是利用来自同一图像的少量标注示例来计数给定图像中感兴趣的对象。先前的大多数计数方法都是针对特定类型的物体,例如人 [2, 5, 6, 23, 26, 27, 29, 32–34, 39, 42, 47, 50, 54, 55]、汽车 [30]、动物 [4]、细胞 [3, 18, 53] 和水果 [31]。这些方法通常需要包含数万甚至数百万个标注对象实例的训练图像。其中一些工作 [34] 通过利用源域上训练的计数网络,并仅使用目标域中少量信息样本的标签使其适应任何目标域,从而在某种程度上解决了标注成本高昂的问题。然而,即使是这些方法也需要在源域拥有大量标注数据。
提出的 FamNet 通过利用查询图像与所提供示例对象之间的强相似性来工作。在某种程度上,它类似于 Shechtman 和 Irani [41] 十年前的自相似性工作。与此想法相关的还有 Lu 和 Zisserman [28] 最近的工作,他们提出了一个用于类别无关计数的通用匹配网络(GMN)。GMN 使用跟踪视频数据进行了预训练,并有一个显式的适应模块,使网络能适应感兴趣的图像域。如果能有几十到几百个示例用于适应,GMN 已被证明效果良好。但如果没有适应过程,正如我们实验中将看到的,GMN 在新类别上表现不佳。
与少样本计数相关的是少样本检测任务(例如 [8, 17]),其目标是使用少量标注示例学习新类别的检测器。少样本计数在两个主要方面不同于少样本检测。首先,少样本计数需要点标注,而检测需要边界框标注。其次,少样本检测方法可能会受到严重遮挡的影响,而少样本计数采用密度估计方法[22, 55] 来解决,该方法比“先检测后计数”的方法对遮挡更具鲁棒性,因为密度估计方法不必在早期阶段就做出二值化的决策。密度估计方法的优势已在多个领域得到实证证明,尤其是在人群和细胞计数中。
与我们工作相关的还有少样本图像分类任务 [9, 19, 21, 35, 40, 46]。少样本分类任务处理的是在测试时,给定来自这些新测试类别的少量训练示例,对来自新类别的图像进行分类。基于模型无关元学习(MAML)[9] 的少样本方法与我们的少样本计数任务相关,它侧重于学习能够通过少量梯度下降步骤在测试时适应新类别的参数。然而,MAML 在训练过程中涉及计算二阶导数,这使其成本高昂,对于我们论文中考虑的密度图预测这种像素级预测任务而言更是如此。从这些工作中汲取灵感,我们提出了一种新颖的适应方案,该方案利用测试时可用的示例,并执行几步梯度下降,以使 FamNet 适应任何新类别。与 MAML 不同,我们的训练方案在训练时不需要高阶梯度。我们将我们的方法与 MAML 进行了比较,并凭经验表明我们的方法能带来更好的性能,并且训练速度也快得多。
简要总结
本段通过对比相关研究工作,进一步阐明了本文方法(FamNet)的定位与创新点:
- 问题背景:指出传统计数方法依赖大量特定类别的标注数据,而一些域适应方法仍需源域有大量数据。
- 核心思想:FamNet 的核心是利用查询图像与给定示例之间的视觉相似性进行计数,这与早期的自相似性思想和近期的类别无关计数(GMN)相关,但 GMN 需要大量示例进行适应且在新类上表现不佳。
- 与少样本检测的区别:强调了少样本计数(使用点标注和密度估计)相对于少样本检测(使用边界框标注)的两个优势:标注成本更低和对遮挡更鲁棒。
- 与少样本分类/MAML的关系:受到了少样本分类(尤其是 MAML)的启发,但针对密度图预测这一像素级任务,提出了一个更高效的适应方案,避免了 MAML 复杂且昂贵的二阶导数计算,从而在性能和训练速度上都有优势。
总之,这段内容将 FamNet 置于更广阔的研究背景中,清晰地说明了它与已有工作的联系与根本区别,并突出了其在高效率和高性能方面的改进。
4.2 训练
我们使用数据集的训练图像来训练 FamNet。每张训练图像包含多个感兴趣的对象,但只有示例对象使用边界框进行了标注,而大多数对象仅具有点标注。然而,直接使用基于点标注定义的训练损失来训练密度估计网络是困难的。大多数现有的视觉计数工作,尤其是人群计数 [55],会将点标注图与一个固定大小(通常是 15×15)的高斯窗口进行卷积,以生成平滑的目标密度图,用于训练密度估计网络。
我们的数据集包含 147 个不同的类别,其中物体的尺寸存在巨大差异。因此,为了生成目标密度图,我们使用了具有自适应窗口大小的高斯平滑。首先,我们使用点标注来估计物体的大小。给定点标注图(其中每个点位于一个物体的近似中心),我们计算每个点与其最近邻点的距离,并对图像中所有点的这些距离求平均值。该平均距离被用作高斯窗口的大小来生成目标密度图。高斯分布的标准差设置为窗口大小的四分之一。
为了训练 FamNet,我们最小化预测密度图与真实密度图之间的均方误差。我们使用 Adam 优化器,学习率为 10⁻⁵,批量大小为 1。我们将每张图像调整到一个固定的高度 384,并相应地调整宽度以保持原始图像的纵横比。
简要总结
本段详细说明了FamNet模型的训练策略,其核心是针对数据特点(多类别、物体尺寸差异大、标注稀疏)而设计的:
- 训练数据特点:训练图像中只有少数示例有边界框标注,绝大多数物体只有点标注。
- 关键挑战:直接使用稀疏的点标注作为监督信号训练密度图预测网络非常困难。
- 解决方案 - 自适应高斯平滑:
- 问题:传统方法使用固定大小的高斯核平滑点标注,但这不适用于FSC-147这种物体尺寸差异巨大的数据集。
- 创新:提出一种自适应方法。为每张图像计算一个专属的高斯核大小,其值为图像中所有物体点到其最近邻点距离的平均值。这能自动适应图像中物体的典型大小。
- 标准差:设置为窗口大小的1/4。
- 损失函数与训练细节:
- 使用均方误差(MSE) 作为损失函数,比较预测密度图与由自适应高斯核生成的目标密度图。
- 优化器:Adam,学习率为 10⁻⁵。
- 批量大小:1。
- 图像预处理:将图像缩放到固定高度384像素,宽度按比例调整,以保持原图比例。
核心思想:通过自适应地生成目标密度图,训练过程能够更好地处理数据集中巨大的尺度变化,这是模型能在众多不同类别上表现良好的重要原因。
4.3 Test-time adaptation
由于 FamNet 的两个模块不依赖于任何对象类别,训练好的 FamNet 已经可以直接用于在给定少量示例的情况下计数新类别的对象。在本节中,我们描述了一种新颖的方法,使该网络能适应这些示例,从而进一步提高计数估计的准确性。其关键思想是利用示例边界框位置所提供的额外信息。到目前为止,我们只使用了示例的边界框来提取其外观特征,尚未充分利用它们的位置信息。
令 B 表示所提供的示例边界框的集合。对于一个边界框 b ∈ B,令 Zb 为从密度图 Z 中在位置 b 处裁剪出的区域。为了利用边界框 B 的位置提供的额外信息,我们提出考虑以下两个损失函数。
最小计数损失 (Min-Count Loss):对于每个示例边界框 b,区域 ZbZbZb 内的密度值之和应至少为 1。这是因为预测计数是预测密度值之和,而在边界框 b 指定的位置至少存在一个对象。但是,由于边界框 b 与其他附近感兴趣对象可能存在重叠,我们不能断言 ZbZbZb 内的密度值之和恰好为 1。这一观察导致了一个不等式约束:∣∣Zb∣∣1≥1||Zb||₁ ≥ 1∣∣Zb∣∣1≥1,其中 ∣∣Zb∣∣1||Zb||₁∣∣Zb∣∣1 表示 Zb 内所有值的总和。给定预测的密度图和提供的示例边界框集合,我们定义以下最小计数损失来量化约束违反的程度:
LMinCount=Σb∈Bmax(0,1−∣∣Zb∣∣1)(1)L_MinCount = Σ_b∈B max(0, 1 - ||Zb||₁) (1)LMinCount=Σb∈Bmax(0,1−∣∣Zb∣∣1)(1)
扰动损失 (Perturbation Loss):我们利用示例边界框位置信息的第二个损失灵感来自于基于相关滤波器 [13, 44, 51] 的跟踪算法的成功。给定要跟踪对象的边界框,这些算法学习一个滤波器,该滤波器在边界框的精确位置具有最高响应,而在扰动过(轻微偏移) 的位置响应较低。可以通过优化一个回归函数来学习相关滤波器,该函数将扰动后的位置映射到一个目标响应值,目标响应值随着扰动距离的增加而呈指数下降(通常由高斯分布指定)。
在我们的案例中,预测的密度图 Z 本质上是示例与图像之间的相关响应图。因此,示例位置周围的密度值在理想情况下应看起来像一个高斯分布。令 Gh×wG_h×wGh×w 为一个大小为 h×wh×wh×w 的二维高斯窗口。我们将扰动损失定义如下:
LPer=Σb∈B∣∣Zb−Gh×w∣∣22(2)L_Per = Σ_b∈B ||Zb - G_h×w||²₂ (2)LPer=Σb∈B∣∣Zb−Gh×w∣∣22(2)
组合适应损失 (Combined Adaptation Loss):用于测试时适应的损失是最小计数损失和扰动损失的加权组合。最终的测试时适应损失由下式给出:
LAdapt=λ1LMinCount+λ2LPer(3)L_Adapt = λ₁ L_MinCount + λ₂ L_Per (3)LAdapt=λ1LMinCount+λ2LPer(3)
其中 λ₁ 和 λ₂ 是标量超参数。在测试时,我们对每个测试图像执行 100 次梯度下降步骤,并优化公式 (3) 中的联合损失。我们使用学习率 10⁻⁷。λ₁ 和 λ₂ 的值分别为 10⁻⁹ 和 10⁻⁴。学习率、梯度步数、λ₁ 和 λ₂ 的值是根据在验证集上的性能进行调整的。λ₁ 和 λ₂ 的值看起来很小,但这是必要的,以使适应损失与训练损失具有相似的数量级。尽管训练损失不用于测试时适应,但让损失及其梯度具有相似的数量级非常重要。否则,适应过程的梯度更新步骤要么不起任何作用,要么会远离训练期间学习到的参数。
请注意,适应损失仅用于测试时。在 FamNet 的训练期间,此损失是多余的,因为所提出的基于所有像素位置计算的均方误差的训练损失已经提供了比适应损失更强的监督信号。
简要总结
本段详细介绍了FamNet的一个关键创新:测试时适应(Test-time Adaptation) 方案。该方案旨在利用测试图像中提供的少量示例的位置信息来进一步微调已训练好的模型,从而提升在新类别上的计数精度。
- 核心思想:在测试时,利用示例边界框的位置信息(而不仅仅是其外观特征)作为额外的监督信号,通过少量梯度下降步骤来微调网络参数,使其更适应于当前测试图像中的特定对象。
- 两个精心设计的损失函数:
- 最小计数损失 (L_MinCount):确保在每个示例框区域内预测的密度总和至少为1(因为那里确实有一个物体),处理了可能的重叠情况。
- 扰动损失 (L_Per):受相关滤波器跟踪器启发,强制要求示例中心位置的密度分布形成一个高斯峰,这意味着网络应对物体的精确位置有高置信度,并对轻微偏移有较低的响应。这增强了定位的准确性。
- 执行方式:
- 将两个损失加权组合(L_Adapt)作为测试时的优化目标。
- 对每个测试图像,执行100次梯度下降(学习率极低:10⁻⁷),微调网络参数。
- 超参数(λ₁, λ₂)经过验证集精心调整,以确保适应损失与原始训练损失量级一致,避免破坏预训练模型。
- 重要区别:此适应过程仅在测试时进行,不参与模型的初始训练。初始训练使用的均方误差损失提供了更强、更全面的监督。
本质:这是一种元学习或在线微调策略,它允许预训练的通用计数模型(FamNet)在几秒钟内快速特化到当前需要计数的特定物体上,从而实现更高的精度,是模型强大泛化能力的关键组成部分。