【论文笔记】Matching Anything by Segmenting Anything

news2024/11/20 19:30:10

引用格式】:Li S, Ke L, Danelljan M, et al. Matching Anything by Segmenting Anything[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2024: 18963-18973.

网址https://openaccess.thecvf.com/content/CVPR2024/papers/Li_Matching_Anything_by_Segmenting_Anything_CVPR_2024_paper.pdf

开源代码】:https://github.com/siyuanliii/masa

目录

一、瓶颈问题

二、本文贡献

三、解决方案

1、MASA

1.1 MASA Pipeline

1.2 MASA Adapter

1.3 Inference

1.3.1 Detect and Track Anything

1.3.2 Segment and Track Anything

四、实验结果

1、State-of-the-Art Comparison

1.1 TAO TETA

1.2 Open-vocabulary MOT

1.3 TAO Track mAP

1.4 BDD100K MOTS

1.5 BDD100K MOT

​​​​​​​1.6 UVO VIS

​​​​​​​1.7 Compare with VOS Methods

​​​​​​​1.8 Compare with Self-supervised Methods

2、Ablation Study and Analysis


一、瓶颈问题

目前的方法主要依赖于标记的特定领域视频数据集,这限制了学习相似性嵌入的跨域泛化。

  • 现有的多目标跟踪方法大多针对特定场景和目标类别进行训练,泛化能力有限
  • 传统的跟踪方法需要人工标注的跟踪数据进行训练

二、本文贡献

  • 提出了一种新颖的实例关联学习方法MASA,能够在不同领域内的视频之间匹配任何对象,无需追踪标签。
  • 设计了一个通用的MASA适配器,可以实现与现有的分割模型或检测模型结合使用,增强这些模型的追踪能力。
  • 提出了一种多任务训练流程,联合执行检测知识蒸馏和实例相似性学习,进一步提高了追踪特征的泛化能力。

三、解决方案

1、MASA

    文中的方法由两个关键组件组成。

    首先,基于 SAM,文中开发了一个新的管道:MASA。有了这个管道,文中从丰富的未标记图像集合中为密集实例级对应关系构建了详尽的监督。它使我们能够学习强大的判别实例表示来跟踪任何对象,而不需要任何视频注释。

    其次,文中引入了一个通用 MASA 适配器,以有效地转换来自冻结检测或分割主干的特征,以学习可泛化的实例外观表示。同时,MASA 适配器的蒸馏分支也可以显着提高分割一切的效率。

    此外,文中还构建了一个统一的模型来联合检测/分割和跟踪任何内容。

1.1 MASA Pipeline

    问题:对于以前的工作,严重依赖于手动标记的域内视频数据。而目前有的视频数据集仅仅包含有限的固定类别数据,这就给训练出模型的泛化能力提出了挑战。UniTrack[Do Different Tracking Tasks Require Different Appearance Models?]表明,通用外观特征可以通过原始图像或视频的对比自监督学习技术[Emerging Properties in Self-Supervised Vision Transformers、Improved Baselines with Momentum Contrastive Learning、Rethinking Self-supervised Correspondence Learning: A Video Frame-level Similarity Perspective]来学习。但是,它们通常依赖于干净的、以对象为中心的图像,并且专注于帧级的相似性。

    针对以上问题,文中提出了MASA训练管道。核心思想是从两个角度增加多样性:训练图像多样性和实例多样性。

    首先从不同领域构建丰富的原始图像集合,以防止学习特定领域的特征。这些图像还包含复杂环境中丰富的实例,以增强实例的多样性。给定一个图像I,通过在相同的图像上采用两种不同的增强来模拟视频的外观变化。通过应用强数据增强 φ(I) 和 ɸ(I),构建了 I 的两个不同视图 V1 和 V2,从而自动获得像素级对应关系。如果图像干净并且只包含一个实例,例如 ImageNet 中的实例,则帧级相似性可以应用于前面问题中提到的方法。但是,使用多个实例,需要进一步挖掘此类原始图像中包含的实例信息。基本分割模型 SAM [Segment Anything] 为我们提供了这种能力。SAM 自动对属于同一实例的像素进行分组,并提供检测到的实例的形状和边界信息。为此,这里应用SAM将整个图像分割产生密集多样的实例提议Q集合。通过建立像素级对应关系,将相同的 φ(·) 和 ɸ(·)应用于Q将像素级对应关系转移到密集实例级对应关系。这里使用对比学习公式来学习有区别的对比嵌入空间,增加其于正样本之间的相似度,同时减少其于负样本之间的相似度,具体公式如下:

  • q+ 和 q− 分别表示 q 的正样本和负样本。正样本是应用不同 φ(·) 和 ɸ(·) 的相同实例提议。负样本来自不同的实例。
  • sim(·) 表示余弦相似度。
  • τ 是温度参数,在实验中设置为 0.07。

1.2 MASA Adapter

    MASA适配器是为了将现有的分割或检测模型(如SAM、Detic、GroundingDINO等)扩展为 能够追踪它们检测到的任何对象。MASA适配器与这些基本的模型中的冻结主干一起运行,确保保留原始检测和分割能力。由于并非所有预先训练的特征都对跟踪具有固有的区分性(物体的形状和大小的多样性),首先需要将这些冻结的主干特征转换为更适合跟踪的新特征。

    为此,构建了一个多尺度特征金字塔。对于层次化的特征提取器(如基于Transformer的模型),可以直接使用特征金字塔网络(FPN)来获取多尺度的特征;对于单尺度特征提取器(如利用普通ViT主干的SAM),使用转置卷积(Transpose Convolution)和最大池化(MaxPooling)进行上采样和下采样,生成多尺度特征表示。

    为了有效地学习不同实例的判别特征,必须在一个位置中的对象知道其他位置实例的外观。故文中利用变性卷积来生成动态偏移量,并将空间位置和特征级别的信息聚合为F(p),如下公式所示,以便更好的获得上下文信息。另外,对于基于SAM的模型,文中还使用到了Dyhead [Dynamic Head: Unifying Object Detection Heads with Attentions] 中的任务感知注意力和尺度感知注意力,如上图所示。

  • F(p):在位置p的特征
  • L:特征层级的数量,表示模型在不同尺度上处理特征。
  • K:每个卷积核的采样位置数量。
  • w_{k}:第 k 个采样位置的权重。
  • F_{j}(p):在第 j个特征层级上,位置 p 的原始特征。
  • p_{k}:预先定义的采样偏移,用于确定采样位置。
  • ​​​​​\bigtriangleup p_{k}^{j}:学习到的偏移量,用于调整第 j 个特征层级上第 k 个采样位置的实际位置。
  • \bigtriangleup m_{k}^{j}:可学习的调制因子,用于调整第 j 个特征层级上第 k 个采样点的特征响应。

     在获取转换后的特征图后,通过将 RoI-Align [Mask R-CNN] 应用于视觉特征 F 来提取实例级特征(检测头),然后使用包含 4 个卷积层和 1 个全连接层的轻量级轨道头进行处理以生成实例嵌入(追踪头)。

    在生成实例嵌入后,文中引入了对象先验蒸馏分支。使用标准的RCNN检测头来学习边界框,该边界框紧密包含SAM对每个实例的掩码预测。它有效地从 SAM 中学习详尽的对象位置和形状知识,并将此信息划分为转换后的特征表示。这种设计不仅增强了 MASA 适配器的特征,从而提高了关联性能,而且还通过直接提供预测的框提示来加速 SAM 的所有模式。

    最终损失函数由前面所提到的对比损失和检测损失加权组合:L = L_{det} + L_{c}。其中检测损失与Faster R-CNN中使用的损失一样。

1.3 Inference

1.3.1 Detect and Track Anything

    将MASA适配器与对象检测器集成时,删除了在训练期间学习的MASA检测头( RoI-Align),MASA适配器仅用作跟踪器。检测器预测边界框,然后利用它们提示MASA适配器,检索相应的跟踪特征进行实例匹配。这里文中使用了一个简单的bi-softmax最近邻搜索进行准确的实例匹配。

    算法流程如下:

    相似度计算如下:

  • s_{1}s_{2}是两种不同的相似度计算方法,计算轨道τ和对象候选r之间的相似度得分。
  • s_{1}:基于高斯分布的指数函数,用于衡量嵌入q_{r}q_{\tau }之间的相似度
  • s_{2}:余弦相似度,用于衡量两个嵌入之间的夹角
  • q_{r}:对象候选 r 的检测嵌入,封装其外观特征
  • q_{\tau }:表示轨道 τ 的轨道嵌入,捕获跟踪对象的特征

    s_{1}中进行了双重归一化,确保了对相似性的平衡和全面的评估,促进了动态视频序列中的准确对象关联。

1.3.2 Segment and Track Anything

    将MASA适配器与SAM集成时,保留检测头。文中用它来预测场景中的所有潜在对象,将框预测转发到 SAM 掩码解码器和 MASA 适配器以分割和跟踪所有内容。预测的框提示省略了对原始 SAM 的所有模式中所示的繁重后处理的需要,因此显着加快了 SAM 的自动掩码生成。

1.3.3 Testing with Given Observations

    在实际应用中,MASA适配器可能接收来自不同源的检测结果,而不仅仅是它自身训练时所用的数据源。当检测结果来自于MASA适配器构建时所用数据源之外的其他源时,意味着MASA适配器需要适应不同来源的检测数据。在这种情况下,MASA适配器充当追踪特征提供者的角色。它利用自身的能力来提取和提供用于追踪的特征。直接使用提供的边界框作为提示(prompts),通过ROI-Align操作从MASA适配器中提取追踪特征。

    这种设计使得MASA适配器具有很高的灵活性,能够与不同的检测模型或方法配合使用,从而在多种场景和应用中实现有效的对象追踪。无论检测结果来自何处,只要它们提供了准确的边界框,MASA适配器就能够利用这些信息来提取用于追踪的特征,进而进行对象的关联和追踪。

四、实验结果

    文中对具有不同域的多个具有挑战性的MOT/MOTS基准上进行了实验。

1、State-of-the-Art Comparison

    文中以两种方式评估文中的方法。首先,为了准确评估文中方法的关联能力,总是在标准 MOT 基准测试中提供与当前最先进的方法相同的检测观察结果。其次,为了评估文中统一模型的综合能力,遵循该协议:对于基于 SAM 的模型,在开放世界视频分割数据集 UVO 上进行评估。对于基于检测器的模型,在开放词汇 MOT 基准上进行评估。文中还报告了 TAO TETA 和 TAO TrackmAP 基准的分数。

1.1 TAO TETA

  • † 表示使用相同的检测观察。
  • LocA:可能表示定位准确性(Localization Accuracy),衡量追踪框与真实对象位置的匹配程度。
  • AssocA:可能表示关联准确性(Association Accuracy),衡量追踪算法正确关联跨帧对象的能力。
  • ClsA:可能表示分类准确性(Classification Accuracy),衡量追踪算法正确分类对象的能力。
  • TETA:可能是一个综合评估指标,考虑了上述几个方面。

1.2 Open-vocabulary MOT

  • Base:指的是模型在训练阶段已经见过的类别。这些类别构成了训练数据的一部分,模型通过这些类别学习到了如何识别和分类对象。
  • Novel:指的是模型在训练阶段没有遇到过的新类别。这些类别在测试或应用阶段出现,用于评估模型对未知类别的泛化能力。

1.3 TAO Track mAP

​​​​​​​

​​​​​​​1.4 BDD100K MOTS

​​​​​​​1.5 BDD100K MOT

​​​​​​​1.6 UVO VIS

​​​​​​​1.7 Compare with VOS Methods

​​​​​​​1.8 Compare with Self-supervised Methods

2、Ablation Study and Analysis

    直接使用现成的 SAM 特征(第 1 行)进行关联会产生较差的结果。主要原因是 SAM 的原始特征针对分割进行了优化,而不是实例级判别。然而,集成文中的 MASA 训练方法并添加轻量级轨道头显着提高了性能,在 AsocA 中提高了 15.6%,在 BDD MOT 上的 mIDF1 提高了 14.4%。这强调了文中的训练策略的有效性。结合动态特征融合块进一步提高了 1.6% 的性能。此外,使用对象先验蒸馏分支的联合训练导致 AsocA 增加 1.8%,mIDF1 提高了 1.6%,显示了这些架构设计的效果。

    通过将 MASA 管道中的 SAM 替换为 Mask2former-SwinL,在 COCO 上进行了预训练。如表 9a 所示,我发现使用 SAM 提议训练的模型显着提高了 BDD 上的域内性能和 TAO 上的零样本跟踪

    调查 SAM 提案数量对学习的影响,尝试了每批 64、128 和 256 个提案的不同上限。表 9b 显示了随着提案数量的增加,BDD 和 TAO 上的 AssocA 持续改进,这表明丰富的实例集合促进了更具辨别力的跟踪特征。

    如表 9c 所示,随机仿射、Mixup 和 LSJ  的组合提供了最佳性能。方法 1 表示基本的数据增强,包括翻转、调整大小、颜色抖动和随机裁剪。如果没有强增强(方法1),其在BDD MOT上的mIDF1下降了6.7%,比方法5差得多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1978859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】把list转换成json文件(list中为字典,元素按行写入)

0.前言 数据需要处理成与大模型输入相同类型的数据,从csv文件读出后,想要转换成json文件,看了好多资料都是把整个list写入了json,并不是我想要的格式,这里记录一下最后的按行写入的格式。 1.list转json import json …

Camtasia怎么自动加字幕 Camtasia怎么设置字幕

为了防止观众听不清楚视频中的解说声音,在进行视频编辑时,往往需要添加字幕。但是,你是否觉得一个一个添加字幕有些麻烦?使用Camtasia时,有没有什么能够快速、方便添加字幕的方法呢?添加字幕后,…

Docker 环境下使用 Traefik 3 的最佳实践:快速上手

Traefik 最近终于发布了大版本升级后的第一个修正版本,或许是时候正式迁移程序到新版本了。 写在前面 最近 Traefik 发布了 3.1 版本。作为从 Traefik 1.x 开始使用的用户,Traefik 每个大版本升级都会出现一些配置不兼容的情况,这次 3.x 的正…

DC-DC芯片:MT2492说明

文章目录 一. MT2492介绍1. 特点2. 应用3. 额定值4. 电气特性5. 引脚说明6. 典型应用电路 二. 功能说明内部调节器过电流保护和打嗝模式误差放大器启动和关闭内部软启动设置输出电压电感器的选择输入电容器的选择输入电容器的选择PCB布局建议 一. MT2492介绍 MT2492是一款完全…

LaneATT推理详解及部署实现(下)

目录 前言一、LaneATT推理(Python)1. LaneATT预测2. LaneATT预处理3. LaneATT后处理4. LaneATT推理 二、LaneATT推理(C)1. ONNX导出2. LaneATT预处理3. LaneATT后处理4. LaneATT推理 三、LaneATT部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX导出…

平衡二叉树 - 力扣(LeetCode) C语言

110. 平衡二叉树 - 力扣(LeetCode)(点击前面链接即可查看题目) 一、题目 给定一个二叉树,判断它是否是 平衡二叉树 是指该树所有节点的左右子树的深度相差不超过 1。 示例 1: 输入:root […

计量经济学(十六)--一文读懂和学会医学统计学中的四种检验方法

1. 统计学是什么? 统计学是应用数学的一个分支,主要通过利用概率论建立数学模型,收集所观察系统的数据,进行量化的分析、总结,并进而进行推断和预测,为相关决策提供依据和参考。它被广泛的应用在各门学科之上,从物理和社会科学到人文科学,甚至被用来工商业及政府的情报…

原神自定义倒计时

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>原神倒计时</title><style>* {margin: 0;padding: 0;box-sizing: border-box;user-select: none;body {background: #0b1b2c;}}header {…

C++ ---- vector的底层原理剖析及其实现

vector 一、定义二、常用接口及模拟实现三、vector迭代器失效问题四、使用memcpy拷贝会出现的问题五、二维数组vector<vector< T >> vv 一、定义 vector 是 C 标准模板库&#xff08;Standard Template Library, STL&#xff09;中的一个非常有用的容器。它是一个…

SD卡受损数据会消失吗 内存卡坏了数据还能恢复吗 SD卡受损里面的数据怎么办 sd卡受损最简单的修复方法

SD卡里的数据有时候也容易出现消失或者遭到破坏等情况&#xff0c;针对此类情况&#xff0c;给大家详细讲解&#xff0c;SD卡受损数据会消失吗&#xff0c;以及SD卡受损了里面的数据怎么办。 一、SD卡受损数据会消失吗 SD卡本身比较小巧&#xff0c;里面的小芯片比较密集&…

04 RabbitMQ:控制界面详解

04 RabbitMQ&#xff1a;控制界面详解 1. 控制台界面2. 控制界面详解2.1. Overview&#xff08;概览&#xff09;2.1.1. Totals&#xff08;总数&#xff09;2.1.1.1. Queued messages2.1.1.2. Message rates2.1.1.3. Global counts 2.1.2. Nodes&#xff08;节点消息&#xff…

SpringBoot多数据源事务处理

多数据源时,一般会配置多个事务管理器 Spring编程式 第二种方式 不可能去同一个方法上写两个事务注解 不允许 SpringBoot 2.6.0之后禁止自己注入自己 本来可以自己注入自己去调用 (为什么要自己注入自己调用,AOP代理,类不是自己写的类) 最简单方式 引入 <dependency&…

DPDK基础入门(一):认识和理解DPDK

Linux的网络瓶颈 以Linux为例&#xff0c;传统网络设备驱动包处理的动作可以概括如下&#xff1a; 数据包到达网卡设备。网卡设备依据配置进行DMA操作。网卡发送中断&#xff0c;唤醒处理器。驱动软件填充读写缓冲区数据结构。数据报文达到内核协议栈&#xff0c;进行高层处理…

Linux中信号的发送及信号的自定义捕捉方法

预备知识&#xff1a; 信号产生时进程早已知道该信号如何处理。 信号产生时进程可能并不能立即处理信号而是等到合适的时候处理。 信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻…

C语言第14篇

1.以下定义语句中&#xff0c;错误的是________. A) int a[]{1,2}; B) char a{"test"}; C) char s[10]{"test"}; D) int a[]{a,b,c}; 2.以下定义语句中&#xff0c;错误的是________. A) int a[]{1,2}; B) char a[]{…

扬声器、麦克风的等效电路及相关技术参数(灵敏度等)

扬声器、麦克风都是日常我们所需的电子小器件&#xff0c;今天小编来具体讲解一下有关两者的等效电路及相关技术参数。 1、扬声器 等效电路 Re表示扬声器音圈的直流电阻 Le表示音圈的电感,对高频信号产生的阻抗 Mm表示动圈的等效质量,主要影响扬声器的低频响应 Rm 表示动圈…

算力共享:forward_to_next_shard,推断之间的链接

目录 forward_to_next_shard 参数 函数逻辑 _process_prompt StandardNode get_current_shard map_partitions_to_shards forward_to_next_shard 这段代码定义了一个名为 forward_to_next_shard 的异步函数,它是设计用于在分布式模型或数据处理系统中的节点(或称为“分…

【秋招笔试】2024-08-03-科大讯飞秋招笔试题(算法岗)-三语言题解(CPP/Python/Java)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍖 本次题目难度中等偏上,最后一题又是…

dfs深搜

Problem - C - Codeforces 无向图,判断是否是子叶.

Co-Detr

参考&#xff1a;https://www.bilibili.com/video/BV1Sh4y1F7ur/?spm_id_from333.788&vd_source156234c72054035c149dcb072202e6be 之前的detr正样本数量少&#xff0c;匹配不平衡。 主要修改两个地方&#xff1a;encoder和decoder。 1.在encoder之后加入RPN&#xff0c;a…