首页 > 其他分享 >《Represent, Compare, and Learn: A Similarity-Aware Framework for Class-Agnostic Counting》

《Represent, Compare, and Learn: A Similarity-Aware Framework for Class-Agnostic Counting》

时间:2024-09-06 11:52:03浏览次数:6  
标签:Represent Compare Similarity BMNet 示例 学习 类别 相似性 度量

摘要

论文提出了一个用于类别无关计数(Class-Agnostic Counting, CAC)的相似性感知框架。类别无关计数的目标是在给定少量示例的情况下,对查询图像中的所有实例进行计数。该框架通过联合学习表示和相似性度量来改进计数性能。作者首先提出了一个基础的双线性匹配网络(Bilinear Matching Network, BMNet),它通过可学习的双线性相似性度量来增强特征的鲁棒性。然后,作者进一步扩展了BMNet到BMNet+,从三个方面对相似性进行建模:1)通过自相似性表示实例以增强特征对类内变化的鲁棒性;2)动态比较相似性以关注每个示例的关键模式;3)从监督信号中学习以对匹配结果施加显式约束。在FSC147数据集上的广泛实验表明,作者的模型显著优于现有的CAC方法。

概述

拟解决的问题: 传统的对象计数方法通常专注于特定类别,并且需要大量的训练数据来学习一个好的模型。类别无关计数(CAC)旨在减少对训练数据的依赖,通过给定少量示例来计数任意类别的对象。现有的CAC方法存在相似性匹配噪声大的问题,导致计数性能受损。

创新之处

  1. 提出了一个相似性感知的CAC框架,该框架可以端到端地联合学习表示和相似性度量。
  2. 引入了自相似性模块,通过自注意力机制增强特征对类内变化的鲁棒性。
  3. 提出了动态相似性度量,通过特征选择模块关注示例的关键模式。
  4. 引入了相似性损失,对中间相似性映射施加显式监督,以提高匹配质量。

方法

  • BMNet:基础模型,使用可学习的双线性相似性度量代替固定的内积,允许通过反向传播学习表示。
  • BMNet+:在BMNet的基础上增加了自相似性模块、动态相似性度量和相似性损失,以进一步提升性能。

CAC框架以端到端的方式联合学习表示和相似性度量(上图)。我们(下图)首先使用一个简单的基线实例化这个框架,称为双线性匹配网络 (BMNet),然后提出一个扩展的 BMNet+ 来举例说明我们对如何表示、动态和学习表示和相似性度量的相似性的想法。 

BMNet遵循提取然后匹配范式,以端到端方式联合学习表示和相似性度量。BMNet+是一个改进版本,它与BMNet的不同之处用彩色块突出显示。

 3.1 Bilinear Matching Network(BMNet)

特征提取器

  • 特征提取器由一系列卷积层组成,将输入图像映射到 dd 通道特征。
  • 对于查询图像 X,输出一个降采样的特征图 F(X)。
  • 对于示例 Z,输出特征图经过全局平均池化,形成一个特征向量 F(Z)。

双线性相似性度量

  • 传统的 CAC 方法使用固定的内积来计算两个特征向量之间的相似性,但这种方法可能不足以建模类别无关的相似性。
  • BMNet 将原始内积扩展为可学习的双线性相似性度量,通过在特征通道之间建立灵活的连接来度量相似性。
  • 对于查询图像 X 中的空间位置 (i,j) 的通道特征x_{ij}=F_{ij}\left ( X \right )和示例 Z 的特征向量 z=F\left ( Z \right ),相似性图 S 可以通过以下公式计算:

  • 其中 P,Q是可学习的矩阵,b是可学习的偏置。

计数器:计数器接收查询特征图 F(X) 和相似性图 S 的通道级连接,然后预测一个密度图D_{pr}。最终的计数是 D_{pr} 的积分。计数器由卷积和双线性上采样层组成。

损失函数:使用传统的 l_{2}损失作为计数损失,D_{gt}表示真实的密度图。

3.2 可学习的动态相似性度量

尽管 BMNet 通过双线性相似性度量增加了建模相似性时的灵活性,但学习到的相似性度量在训练后是固定的,并且在推理时对所有类别一视同仁。然而,人类在识别一个类别时,往往会基于该类别特定的模式进行学习。因此,开发一个能够自适应地学习并专注于示例关键模式的动态相似性度量是有益的。

为了实现动态相似性度量,作者在 BMNet 的基础上引入了一个特征选择模块,用于生成特定于示例的度量。具体来说,每个通道在 Q_{z}+b_{z} 中被视为一个模式,并且通过学习动态的通道注意力权重 a 来计算相似性 S:

其中 ∘ 表示哈达玛积(逐元素乘积),a 是基于 Q_{z}+b_{z} 学习的条件动态通道注意力权重。 

通过特征选择模块,模型能够为每个示例学习一个特定的相似性度量,从而关注示例的关键视觉模式。

3.3 监督相似图 

作者提出了一种基于信号噪声比(signal-to-noise ratio, SNR)的相似性损失 l_{sim}​,用于直接监督相似性映射结果。这种方法的核心思想是将相似性映射 S 中的每个位置视为查询图像中的一个 r×r 块,根据这个块是否包含目标实例来分配正负标签。

  • 正标签(信号):如果 r×r 块包含多于一个目标实例,则分配正标签。
  • 负标签(噪声):如果 r×r 块不包含目标实例,则分配负标签。

其中,pospos 和 negneg 分别表示 SS 中的正负位置。 

通过这种方式,类似于对比学习,模型被鼓励提高同一类别特征之间的相似度(信号),同时降低不同类别特征之间的相似度(噪声)。 

总的损失函数:

3.4 Self-Similarity模块 

在类别无关计数(Class-Agnostic Counting, CAC)任务中,给定的示例可能因为类内变化(同一类别的实例往往以不同的属性出现,如姿势和比例)而在视觉上与查询图像中的目标实例存在显著差异。这种差异可能导致相似性匹配不准确,进而影响计数性能。为了解决这个问题,作者提出了 Self-Similarity 模块,通过利用来自同一类别但具有不同属性的其他实例的信息,增强每个实例的特征表示。

通过自注意力机制(Self-Attention Mechanism),每个特征向量在特征集合中被更新。自注意力机制能够使模型关注与当前实例相同类别的其他实例,从而聚合同类信息。

使用自注意力机制更新特征集合中的每个特征向量后,这些更新后的特征向量被加回到原始特征向量上,并通过一个可学习的比率 γ 进行调整。

更新后的特征集合被重新分割并重塑,以获得最终的示例特征 F(Z) 和查询图像特征 F(X)。

标签:Represent,Compare,Similarity,BMNet,示例,学习,类别,相似性,度量
From: https://blog.csdn.net/qq_46981910/article/details/141941045

相关文章

  • Beyond Compare 破解版永久激活
    BeyondCompare是一款非常专业且好用的文件对比软件,有了它的协助,即便你的文件包含在zip档案文件或远程服务(例如FTP站点)中,都可以帮助你查找和协调源代码、文件夹、图像和数据中的差异,甚至于它可以同步文件夹,并验证副本。除此之外,BeyondCompare可操作功能还有很多,不光是方便您......
  • BeyondCompare替代,推荐四款免费代码文件对比软件
     BeyondCompare是一套内容比较工具软件。除了可以作文件比较以外,还可以比对文件目录、FTP目录及压缩包案的内容等,但是由于要收费且比较贵,很多公司也在规避工作电脑使用非授权软件的风险,所以分享四款平替BeyondCompare的文件代码对比软件工具。1、WinMergeWinMerge是一款......
  • cloud compare 学习利用CC代码加快插件开发与总结(三)
    建议看过前面的文章后,再开始本文的学习cloudcompare二次插件化功能开发详细步骤(一)cloudcomparePCA插件开发详细步骤(二)附代码本文完成一个点云变换的插件,同时也是对CC接口的使用做进一步说明,进一步理解CC插件开发流程这个功能在cc已有的功能已经存在,位于edit->app......
  • 定义Person 类,里面有name、age属性,并提供compareTo 比较方法, 用于判断是否和另一个人
    1publicclassthisdetail{2//编写一个main方法3publicstaticvoidmain(String[]args){45Personp1=newPerson("mary",20);6Personp2=newPerson("mary",30);78System.out.println("......
  • cloud compare PCA插件开发详细步骤(二)附代码
    在上一节https://blog.csdn.net/csy1021/article/details/141200135我们已经完成了具体开发前的准备工作,包括各级CMakelists.txt的设置,相关内容的修改,并已成功编译如需整个插件项目,编译后的dll,或其他帮助,欢迎留言、私信或加群【群号:392784757】这一节针对我们的qPCA插......
  • cloud compare二次插件化功能开发详细步骤(一)
    点云处理,有一个出名的处理软件,cloudcompare,简称cc,将自己实现的功能以插件形式集成到CC里,方便使用前提环境:cc2.13,qt5.15,cmake3.18,vs2019【其他组合也可,本文基于此展开】能力要求:能够使用cmake成功编译cc并安装有问题,欢迎留言、进群讨论或私聊:【群号:392784757】CC......
  • 六. 部署分类器-preprocess-speed-compare
    目录前言0.简述1.案例运行2.代码分析2.1main.cpp2.2preprocess.cpp3.补充说明结语下载链接参考前言自动驾驶之心推出的《CUDA与TensorRT部署实战课程》,链接。记录下个人学习笔记,仅供自己参考本次课程我们来学习课程第六章—部署分类器,一起来CPU端图像预......
  • Beyond Compare Pro v5.0.0.29773 授权版
    BeyondCompare是一款文件及文件夹(目录)的对比工具。BeyondCompare不仅可以快速比较出两个目录的不同,还可以比较每个文件的内容,而且可以任意显示比较结果。BeyondCompare程序内建了文件浏览器,方便您对文件、文件夹、压缩包、FTP网站之间的差异比对以及资料同步。软件截图:使......
  • Beyond Compare Pro v5.0.0.29773 授权版
    BeyondCompare是一款文件及文件夹(目录)的对比工具。BeyondCompare不仅可以快速比较出两个目录的不同,还可以比较每个文件的内容,而且可以任意显示比较结果。BeyondCompare程序内建了文件浏览器,方便您对文件、文件夹、压缩包、FTP网站之间的差异比对以及资料同步。软件截图:使......
  • psycopg2.errors.InvalidTextRepresentation
    我正在尝试在Flask应用程序中运行原始sql查询。这就是我所拥有的@app.route("/price/compare",methods=["POST"])defpost():data=request.jsoncur=conn.cursor()query_stock="""SELECTname,size,MIN(price::float)asprice,linkFROM......