本文主要是介绍《Zero-Shot Object Counting》CVPR2023,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
摘要
论文提出了一种新的计数设置,称为零样本对象计数(Zero-Shot Object Counting, ZSC),旨在测试时对任意类别的对象实例进行计数,而只需在测试时提供类别名称。现有的类无关计数方法需要人类标注的示例作为输入,这在许多实际应用中是不切实际的。ZSC方法不依赖于人类标注者,可以自动操作。研究者们提出了一种方法,可以从类别名称开始,准确识别出最佳的图像块(patches),用作计数示例。通过实验验证了该方法在FSC-147数据集上的有效性。
概述
拟解决的问题:论文针对的问题是类无关对象计数(class-agnostic object counting),即在没有特定类别对象的先验知识的情况下,对图像中任意类别的对象进行计数。现有的方法通常需要人类标注的示例,这在实际应用中往往不可行,尤其是在自动化系统中。
创新之处:
- 提出了零样本对象计数(ZSC)的新设置,测试时只需要类别名称,不需要人类标注的示例。
- 提出了一种两步方法:首先基于给定的类别名称构建类别原型,选择可能包含目标对象的图像块(称为类相关块);然后从这些块中选择最适合作为计数示例的块。
- 引入了一个模型来定量评估任意图像块作为计数示例的适用性,并基于此选择最佳的图像块作为示例。
方法
研究者们首先使用条件变分自编码器(VAE)在预训练的特征空间中构建给定类别的类别原型。然后,通过计算图像块的特征嵌入与类别原型之间的距离,选择最近的k个邻居作为类相关块。接着,使用一个预测模型来评估每个类相关块作为计数示例的适用性,选择预测误差最小的块作为最终的示例。最后,使用选定的示例和预训练的基于示例的计数模型来实现无需示例的对象计数。
3.1 训练基础计数模型
- 网络架构:使用ResNet-50作为特征提取器的骨干网络,该网络以预训练的ImageNet模型权重初始化。骨干网络输出1024通道的特征图。对于每个查询图像,通道数通过1×1卷积减少到256。对于每个示例,特征图首先通过全局平均池化处理,然后线性映射以获得256维特征向量。计数器由5个卷积和双线性上采样层组成,以回归与查询图像大小相同的密度图。
- 训练过程:基础计数模型使用大量带注释的训练图像进行训练。模型使用输入图像和示例来获得用于对象计数的密度图。训练的目标是最小化预测密度图和真实密度图之间的L2损失。
3.2 零样本对象计数(Zero-Shot Object Counting)
选择类相关块:
- 生成类别原型:使用条件VAE模型根据给定的类别名称生成类别原型。VAE由编码器和解码器组成,两者都基于类别的语义嵌入进行条件化。训练VAE以在预训练的ImageNet特征空间中重建特征。
- 选择类相关块:使用生成的类别原型,通过计算查询图像中随机采样的多个块的嵌入与类别原型之间的L2距离,选择最近的k个邻居作为类相关块。
选择用于计数的示例:
- 错误预测网络:引入一个错误预测网络,用于预测任意块作为示例时的计数误差。训练此网络以回归基础计数模型产生的计数误差。
- 选择最优块:使用训练好的错误预测器,为每个候选块预测计数误差,并选择导致最小计数误差的块作为最终的示例。
使用选定的块作为示例: 使用错误预测器预测每个候选块的误差,并选择导致最小计数误差的块。然后,这些选定的块被用作基础计数模型的示例,以获得密度图和最终计数。
这篇关于《Zero-Shot Object Counting》CVPR2023的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!