《Zero-Shot Object Counting》CVPR2023

2024-09-06 03:20

本文主要是介绍《Zero-Shot Object Counting》CVPR2023,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

论文提出了一种新的计数设置,称为零样本对象计数(Zero-Shot Object Counting, ZSC),旨在测试时对任意类别的对象实例进行计数,而只需在测试时提供类别名称。现有的类无关计数方法需要人类标注的示例作为输入,这在许多实际应用中是不切实际的。ZSC方法不依赖于人类标注者,可以自动操作。研究者们提出了一种方法,可以从类别名称开始,准确识别出最佳的图像块(patches),用作计数示例。通过实验验证了该方法在FSC-147数据集上的有效性。

概述

拟解决的问题:论文针对的问题是类无关对象计数(class-agnostic object counting),即在没有特定类别对象的先验知识的情况下,对图像中任意类别的对象进行计数。现有的方法通常需要人类标注的示例,这在实际应用中往往不可行,尤其是在自动化系统中。

创新之处:

  1. 提出了零样本对象计数(ZSC)的新设置,测试时只需要类别名称,不需要人类标注的示例。
  2. 提出了一种两步方法:首先基于给定的类别名称构建类别原型,选择可能包含目标对象的图像块(称为类相关块);然后从这些块中选择最适合作为计数示例的块。
  3. 引入了一个模型来定量评估任意图像块作为计数示例的适用性,并基于此选择最佳的图像块作为示例。

方法

研究者们首先使用条件变分自编码器(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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140862

相关文章

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

POJ 2386 Lake Counting(DFS)

题目: http://poj.org/problem?id=2386 题解: 遍历一次,遇到w,一次DFS后,与此w连接的所有w都被替换成‘ . ’,直到遍历完图中不再存在w为止,总共进行DFS的次数就是答案了。 代码: #include<stdio.h>int N,M;char map[110][110];void dfs(int x,int y){map[x][y]='

王立平--Object-c

object-c通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。在MA

COD论文笔记 ECCV2024 Just a Hint: Point-Supervised Camouflaged Object Detection

这篇论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点: 1. 动机 伪装物体检测(Camouflaged Object Detection, COD)旨在检测隐藏在环境中的伪装物体,这是一个具有挑战性的任务。由于伪装物体与背景的细微差别和模糊的边界,手动标注像素级的物体非常耗时,例如每张图片可能需要 60 分钟来标注。因此,作者希望通过减少标注负担,提出了一种仅依赖“点标注”的弱

[LeetCode] 338. Counting Bits

题:https://leetcode.com/problems/counting-bits/description/ 题目 Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary repres