《Learning To Count Everything》CVPR2021

ops/2024/9/23 10:30:10/

摘要

论文提出了一种新的方法来解决视觉计数问题,即在给定类别中仅有少量标注实例的情况下,对任何类别的对象进行计数。将计数问题视为一个少样本回归任务,并提出了一种新颖的方法,该方法通过查询图像和查询图像中的少量示例对象来预测图像中所有感兴趣对象的存在密度图。此外,还提出了一种新颖的适应策略,使网络能够在测试时仅使用新类别中的少量示例对象来适应任何新的视觉类别。为了支持这一任务,作者还引入了一个包含147个对象类别、超过6000张图像的数据集,并在该数据集上进行了实验,证明了他们的方法优于现有的一些最先进的对象检测器和少样本计数方法。

概述

拟解决的问题:现有的视觉计数研究主要集中在单一特定类别上,如人、动物和细胞。而本文的目标是能够对任何类别的对象进行计数,即使只有该类别的少量标注实例。这包括处理大规模视觉类别的计数系统设计难题,以及缺乏足够大的、包含多个视觉类别的无约束计数数据集的问题。

创新之处

  1. 问题重新定义:将计数问题重新定义为少样本回归任务。
  2. FamNet架构:提出了一个名为Few Shot Adaptation and Matching Network (FamNet)的新架构,用于处理少样本计数任务。
  3. 少样本适应策略:开发了一种新颖的少样本适应方案,在测试时使用梯度下降更新来适应新类别。
  4. FSC-147数据集:引入了一个包含147个视觉类别、超过6000张图像的中等规模数据集,适合少样本计数任务。

方法

FamNet包括两个关键组件:

  1. 特征提取模块:使用预训练的网络来处理大量视觉类别。
  2. 密度预测模块:设计为与视觉类别无关,通过相关性图作为输入来预测密度图。

训练时,使用带有边界框和点注释的训练图像,通过最小化预测密度图和真实密度图之间的均方误差来进行。测试时,使用提出的少样本适应方案来进一步提高计数精度。

2.1 方法部分

特征提取:多尺度特征提取模块由预训练的 ResNet-50 主干的前四个块组成(这些块的参数在训练期间被冻结)。我们通过第三个和第四个块的卷积特征图来表示图像。我们还通过对来自第三个和第四个Resnet-50块的卷积特征映射执行ROI池来获得样本的多尺度特征。

密度预测:为了使密度预测模块与视觉类别无关,不使用直接从特征提取模块获得的特征进行密度预测。相反,我们只使用样本特征和图像特征之间的相关性图作为密度预测模块的输入。为了解决不同尺度的感兴趣的对象,我们将样本特征缩放到不同的尺度,并将缩放的样本特征与图像特征相关联,以获得多个相关图,每个尺度一个。对于我们所有的实验,我们使用 0.9 和 1.1 的尺度以及原始尺度。相关图被连接起来并输入到密度预测模块中。密度预测模块由五个卷积块和三个上采样层组成,放置在第一个、第二个和第三个卷积层之后。最后一层是一个 1×1 卷积层,用于预测 2D 密度图。预测密度图的大小与输入图像的大小相同。

2.2 适应策略

在少样本学习场景中,模型需要能够快速适应新的视觉类别,即使这些类别在训练阶段未曾见过。适应策略的目的是利用测试时提供的少量示例对象,通过快速的梯度下降过程调整模型参数,以提高对新类别的计数精度。

Min-Count Loss:这个损失函数确保每个示例对象的边界框内的预测密度值之和至少为1。这是基于每个边界框至少包含一个对象的假设。

  • 其中 B 是所有示例对象的边界框集合,Z_{b}​ 是在边界框 b 内从预测密度图中裁剪出的部分,\left \| Z_{b} \right \|_{1} 是 Z_{b}​ 中所有值的总和。

Perturbation Loss:这个损失函数受到基于相关滤波的跟踪算法的启发,旨在使预测密度图在示例对象位置附近的值呈高斯分布,从而更好地模拟对象的存在。

  • 其中 G_{h\times w}​ 是一个高斯窗口,大小为 h×w,模拟理想中的密度分布。

联合适应损失(Adaptation Loss):这是Min-Count Loss和Perturbation Loss的加权组合,用于测试时的参数更新。

适应过程

  • 在测试阶段,对于每张测试图像,使用提供的少量示例对象的边界框,计算上述适应损失。
  • 通过梯度下降法更新FamNet的密度预测模块的参数。这个过程通常涉及少量(如100步)的迭代更新,使用一个较小的学习率。
  • 这种适应过程仅在测试时进行,不涉及训练数据,目的是在面对新类别时快速调整模型以提高计数精度。

http://www.ppmy.cn/ops/106288.html

相关文章

MySQL——数据类型

一、常见的数据类型及分类 其中上述的数值类型包含了整形和浮点型,文本、二进制类型主要是字符串类型。 整数类型(Integer Types): TINYINT:范围为-128到127或0到255(无符号),用于…

Qt QT中QString 类的使用--获取指定字符位置、截取子字符串等

QString 类中各函数的作用。 一、字符串连接函数 1、QString也重载的和运算符。这两个运算符可以把两个字符串连接到一起。 2、QString的append()函数则提供了类似的操作,例如: str "User:";str.append(userName);str.append("\n"…

草料二维码功能上新!可以跨分区移动或复制内容了!

支持将 分区 下的内容移动或复制到其他分区。适用于将原初始分区下的内容按业务划分,移动到其他分区。或者当物品流转或业务变更时,可以及时将码及数据移动到对应分区,移动后,二维码图案不会发生变化。 目前仅表单、活码、批量模…

论文阅读——Compact Single-Feed Dual-Mode Antenna for Active RFID Tag Application

文章目录 摘要一、天线设计A. 天线结构B. 天线演进 二、天线仿真与测试总结 论文来源:https://ieeexplore.ieee.org/document/7247651 摘要 文章提出了一种用于主动射频识别(RFID)标签应用的紧凑型单馈双模天线。该天线由一个位于FR4基板上的…

javaweb项目1

1.配置servlet 注意:需要在web.xml进行操作。 2.执行原理 3.五个方法 1.init 在servlet创建的时候,执行,并且只执行一次。 init 方法可以用来执行 Servlet 的初始化逻辑,比如: 读取配置参数初始化数据库连接加载资…

完整指南:CNStream流处理多路并发框架适配到NVIDIA Jetson Orin (一) 依赖库编译、第三方库编译安装

目录 1 jetson-ffmpeg的编译安装与配置--用来做视频编码、视频解码 2 CV-CUDA库的编译安装与配置--用来做图像缩放、裁剪、色域转换 3 cuda cudnn TensorRT相关库的拷贝与配置 3.1将cuda cudnn TensorRT相关的头文件拷贝到工程中 3.2 将cuda cudnn TensorRT相关的库拷贝到…

GS-SLAM论文阅读笔记--GSFusion

介绍 GS-SLAM是最近比较新的方向,由于传统SLAM的研究变得很少,拥抱与新的技术结合的方法也许是个好主意。之前总结了大部分GS-SLAM的文章。但是这个方向在不断发展,而发展初期的很多论文值得参考。所以用博客记录一下比较新的论文阅读笔记。…

华为云征文|初识Flexus云服务X实例和参数配置,finalShell远程连接,安装MySQL并配置和远程访问

引出 4核12G-100G-3M规格的Flexus X实例使用测评第一弹:初识Flexus云服务X实例和参数配置,finalShell远程连接,安装MySQL并配置和远程访问 初识Flexus云服务X实例和参数配置 什么是Flexus云服务器X实例 官方解释: Flexus云服务…