0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

清华&美团提出稀疏Pairwise损失函数!ReID任务超已有损失函数!

CVer 来源:CVer 2023-04-09 10:18 次阅读

ReID任务的目的是从海量图像中检索出与给定query相同ID的实例。

Pairwise损失函数在ReID 任务中发挥着关键作用。现有方法都是基于密集采样机制,即将每个实例都作为锚点(anchor)采样其正样本和负样本构成三元组。这种机制不可避免地会引入一些几乎没有视觉相似性的正对,从而影响训练效果。为了解决这个问题,我们提出了一种新颖的损失范式,称为稀疏Pairwise (SP) 损失,在ReID任务中针对mini-batch的每一类筛选出少数合适的样本对来构造损失函数(如图1所示)。基于所提出的损失框架,我们进一步提出了一种自适应正挖掘策略,可以动态地适应不同类别内部的变化。大量实验表明,SP 损失及其自适应变体AdaSP 损失在多个ReID数据集上均优于其他成对损失方法,并取得了state-of-the-art性能。

d8a2c002-d629-11ed-bfe3-dac502259ad0.png

图1. Sparse pairwise损失与Dense pairwise损失之间的差异

d8bb4884-d629-11ed-bfe3-dac502259ad0.png

Adaptive Sparse Pairwise Loss for Object Re-Identification

论文地址:https://arxiv.org/abs/2303.18247

Github地址(已开源):

https://github.com/Astaxanthin/AdaSP

研究动机:

ReID任务中的由于光照变化、视角改变和遮挡等原因会造成同一类中不同实例的视觉相似度很低(如图2所示),因此由视觉相似度很低的实例(我们称之为harmful positive pair)构成的正样本对会对特征表示的学习过程带来不利的影响,从而使训练收敛至局部极小点。现有的方法都是以每个样本作为锚(anchor)密集采样正样本对来构造度量损失函数,不可避免的会引入大量坏对影响训练结果。基于此,我们提出了稀疏Pairwise损失函数以降低对坏对的采样概率,从而减轻坏对在训练过程的不利影响。

d8cd9ba6-d629-11ed-bfe3-dac502259ad0.png

图2. 行人ReID数据集上不同级别的类内差异

方法介绍:我们提出的稀疏Pairwise损失函数(命名为SP loss)针对每一类仅采样一个正样本对和一个负样本对。其中负样本对为该类别与其他所有类别间最难的负样本对,而正样本对为所有样本的hard positive pair集合中的最不难positive pair(least-hard mining):

d8f9ed14-d629-11ed-bfe3-dac502259ad0.png

从几何角度看,以最难positive pair的距离作为半径的超球面是能够覆盖所有类内样本的最大球,而以hard positive pair集合中最不难positive pair的距离作为半径的超球面是能够副高所有类内样本的最小球,如图3所示。利用最小球能够有效的避免过于难的harmful positive pair对于训练过程的影响,我们从理论上证明了针对一个mini-batch,我们的方法采样得到的正样本对中harmful positive pair的期望占比小于Triplet-BH和Circle等密集采样方法。

d906d934-d629-11ed-bfe3-dac502259ad0.png

图3. 不同级别类内差异差异下的最大和最小覆盖球。

为了适应不同类别可能具有不同的类内差异,我们在SP loss的基础上增加了自适应策略构成AdaSP loss:

d9169d7e-d629-11ed-bfe3-dac502259ad0.png

d92431fa-d629-11ed-bfe3-dac502259ad0.png

d939626e-d629-11ed-bfe3-dac502259ad0.png

该loss通过动态调整构造loss所用到的正样本对相似度以适应不同的类内差异。

实验结果:

我们在多个行人ReID数据集(包括MSMT17,Market1501,DukeMTMC,CUHK03)和车辆ReID数据集(包括VeRi-776,VehicleID,VERIWild)上验证了AdaSP loss的有效性。实验结果显示AdaSP loss在单独使用时超过Triplet-BH,Circle,MS,Supcon,EP等已有度量损失函数,如表1所示;AdaSP loss在不同骨干网络(包括ResNet-50/101/152,ResNet-IBN,MGN,ViT,DeiT)上的ReID性能均优于Triplet-BH;此外,AdaSP loss结合分类损失函数在ReID任务上达到了State-of-the-art的性能。

表1. 在不同数据集上不同度量损失函数的性能比较

d94748fc-d629-11ed-bfe3-dac502259ad0.png

具体细节可以参考原文。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    3911

    浏览量

    61313
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24364
  • REID
    +关注

    关注

    1

    文章

    18

    浏览量

    10797

原文标题:CVPR 2023 | 清华&美团提出稀疏Pairwise损失函数!ReID任务超已有损失函数!

文章出处:【微信号:CVer,微信公众号:CVer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    对象检测边界框损失函数–从IOU到ProbIOU介绍

    目标检测损失函数的选择在目标检测问题建模中至关重要。通常,目标检测需要两个损失函数,一个用于对象分类,另一个用于边界框回归(BBR)。
    的头像 发表于 01-24 10:50 1149次阅读
    对象检测边界框<b class='flag-5'>损失</b><b class='flag-5'>函数</b>–从IOU到ProbIOU介绍

    TensorFlow损失函数(定义和使用)详解

    了如何实现不同类型的损失函数。那么根据手头的回归任务,你可以选择相应的损失函数或设计自己的损失
    发表于 07-28 14:38

    神经网络在训练时常用的一些损失函数介绍

    神经网络在训练时的优化首先是对模型的当前状态进行误差估计,然后为了减少下一次评估的误差,需要使用一个能够表示错误函数对权重进行更新,这个函数被称为损失函数
    发表于 10-20 17:14

    keras常用的损失函数Losses与评价函数Metrics介绍

    ,这使得它在设置中可用作损失函数。如果&amp;#039; y_true &amp;#039;或&amp;#039; y_pred &
    发表于 08-18 06:31

    神经网络中的损失函数层和Optimizers图文解读

    对于许多机器学习算法来说,最终要解决的问题往往是最小化一个函数,我们通常称这个函数损失函数。在神经网络里面同样如此,损失
    的头像 发表于 11-30 16:09 8124次阅读

    机器学习经典损失函数比较

    所有的机器学习算法都或多或少的依赖于对目标函数最大化或者最小化的过程。我们常常将最小化的函数称为损失函数,它主要用于衡量模型的预测能力。
    的头像 发表于 06-13 17:53 8224次阅读
    机器学习经典<b class='flag-5'>损失</b><b class='flag-5'>函数</b>比较

    机器学习实用指南:训练和损失函数

    这个损失函数是合理的,因为当 $t$ 接近 0 时,$-log(t)$ 变得非常大,所以如果模型估计一个正例概率接近于 0,那么损失函数将会很大,同时如果模型估计一个负例的概率接近 1
    的头像 发表于 06-29 15:02 8322次阅读
    机器学习实用指南:训练和<b class='flag-5'>损失</b><b class='flag-5'>函数</b>

    三种常见的损失函数和两种常用的激活函数介绍和可视化

    从上面阐释的步骤可以看出,神经网络中的权重由损失函数的导数而不是损失函数本身来进行更新或反向传播。因此,损失
    的头像 发表于 05-05 11:42 6631次阅读
    三种常见的<b class='flag-5'>损失</b><b class='flag-5'>函数</b>和两种常用的激活<b class='flag-5'>函数</b>介绍和可视化

    深度学习的19种损失函数你了解吗?带你详细了解

    损失函数通过torch.nn包实现基本用法 criterion = LossCriterion() #构造函数有自己的参数loss = criterion(x, y) #调用标准时也有参数19种
    的头像 发表于 09-14 10:34 1w次阅读

    计算机视觉的损失函数是什么?

    损失函数在模型的性能中起着关键作用。选择正确的损失函数可以帮助你的模型学习如何将注意力集中在数据中的正确特征集合上,从而获得最优和更快的收敛。
    的头像 发表于 03-13 16:30 3332次阅读
    计算机视觉的<b class='flag-5'>损失</b><b class='flag-5'>函数</b>是什么?

    损失函数的简要介绍

    例如,你有一个神经网络,通过该网络可以获取一些与房屋有关的数据并预测其价格。在这种情况下,你可以使用MSE(均方误差)损失。基本上,在输出为实数的情况下,应使用此损失函数
    的头像 发表于 04-17 10:01 3468次阅读

    机器学习和深度学习中分类与回归常用的几种损失函数

    本文将介绍机器学习、深度学习中分类与回归常用的几种损失函数,包括均方差损失 Mean Squared Loss、平均绝对误差损失 Mean Absolute Error Loss、Hu
    的头像 发表于 10-09 16:36 5912次阅读
    机器学习和深度学习中分类与回归常用的几种<b class='flag-5'>损失</b><b class='flag-5'>函数</b>

    表示学习中7大损失函数的发展历程及设计思路

    表示学习的目的是将原始数据转换成更好的表达,以提升下游任务的效果。在表示学习中,损失函数的设计一直是被研究的热点。损失指导着整个表示学习的过程,直接决定了表示学习的效果。这篇文章总结了
    的头像 发表于 07-08 14:23 1523次阅读

    详细分析14种可用于时间序列预测的损失函数

    在处理时间序列预测问任务时,损失函数的选择非常重要,因为它会驱动算法的学习过程。以往的工作提出了不同的损失
    的头像 发表于 02-14 09:19 2406次阅读

    训练深度学习神经网络的常用5个损失函数

    被称为损失函数损失函数的选择与神经网络模型从示例中学习的特定预测建模问题(例如分类或回归)有关。在本文中我们将介绍常用的一些损失
    的头像 发表于 10-19 11:17 538次阅读
    训练深度学习神经网络的常用5个<b class='flag-5'>损失</b><b class='flag-5'>函数</b>