[论文阅读笔记32] Object-Centric Multiple Object Tracking (ICCV2023)

news2024/10/7 6:43:37

最近Object centric learning比较火, 其借助了心理学的概念, 旨在将注意力集中在图像或视频中的独立对象(objects)上,而不是整个图像。这个方法与传统的基于像素或区域的方法有所不同,它试图通过识别和分离图像中的各个对象来进行学习和理解。

这个任务和跟踪有着异曲同工之处,跟踪也是需要在时序中定位感兴趣的目标。那么object centric learning能否用于无监督的MOT呢?在应用的过程中,会不会有什么问题呢?这就是这篇文章的主要内容。

论文:论文

代码:代码


0. 摘要

无监督的object-centric learning(OCL)可以将场景划分为多个object,而无需进行先验的定位(例如pretrain的detector)。这正好可以解决MOT标注信息繁多、困难的问题。然而,直接应用OCL的效果不好,主要有两个原因:

  1. 空间上,OCL没有正确认识整个物体的语义信息,导致物体往往被划分成了很多parts
  2. 时间上,OCL也无法准确地维护帧间连续性

所以,为了解决以上这两个问题,本文提出了以下的改进措施:

  1. 对于物体碎片化的问题,提出了一个index merge module,将OCL模块输出的slots中同属于一个object的几个碎片结合,变成准确的detection outputs。
  2. 对于时序连续性的问题,搞了一个memory module存储完整的object信息,来应对遮挡。
  3. 此外,还提出了一个EM算法指导的优化loss,从而实现完全的自监督。

上面讲的问题如Fig. 1中所示:
在这里插入图片描述

1. Related Work

我们先直接看Related Work。

1.1 无监督的OCL

与传统的网络学习整个图像的特征不同,OCL旨在从场景中直接学习目标的特征,换句话说,就是直接将输入的视觉信号(例如图像等)与object直接“绑定”在一起,这样比较符合人类的认知习惯。自然,无监督的OCL就是用无监督的方式来完成这一过程。

这样说有点抽象。我们以nips2020的文章Object-Centric Learning with Slot Attention为例。

插曲:Object-Centric Learning with Slot Attention

我们先来看DETR:DETR首先通过CNN backbone提取图像特征,然后将特征打成patch输入Transformer Encoder,随后在Decoder一端,我们输入可能代表目标的query,并与Encoder的输出作Cross attention,最后对每个query进行FFN,得到回归的边界框和类别等等。其实这就有一点object centric的意思在了,我们用一个预先的query来代表目标。

在这里插入图片描述

而Slot Attention,实际上发挥的作用和Decoder类似,就正如文章中所说: an architectural component that interfaces with perceptual representations such as the output of a convolutional neural network.

什么是Slot? 原文中说a set of task-dependent abstract representations which we call slots.,实际上就像一个未知的object的先验,和query类似。

Slot Attention的说明如下:

在这里插入图片描述
为什么要沿着slot维做softmax? softmax会将每个元素视为logits然后求概率,实际上可以让slots产生竞争(compete) 表达同一个input的part。

我有一个困惑,如果真的要达到竞争的效果,为什么只在1维上用softmax约束?应该让理想的attention matrix是分配矩阵的感觉才对,类似于:
[ 0 , 1 , 0 ] [ 0 , 0 , 1 ] [0, 1, 0] \\ [0, 0, 1] [0,1,0][0,0,1]
然后我在网上看到了一个网友的困惑,是否证明其实这种处理方式有可能直接让模型摆烂,输出同样的weight?
在这里插入图片描述

这个Slot Attention就是一个接口(interface),作者将其嵌入到Encoder-Decoder结构做了两个任务:1. 无监督的物体发现;2. 有监督的集合预测问题,如下图所示:

在这里插入图片描述
我们先只说object discovery任务。对于Encoder,采用位置编码增强的CNN backbone,并使用slot attention获得slot的embedding。对于Decoder,首先将每个slot广播成2D的,也通过位置编码增强。对于每个2D的slot,用CNN解码成 H × W × [ R G B + α ] H \times W \times [RGB + \alpha] H×W×[RGB+α]的张量,其中 α \alpha α表示这一块的mask,然后将若干个slot叠加,最理想的情况就是恢复出原图像的样子。

插曲结束

因此,我们初步对什么是OCL有了一个例子上的概念。回归到这篇MOT的文章上来,其实这篇文章想借助OCL对于object discovery的用处,对于摘要里提出的两个问题,通过object merge处理碎片,以及memory module进行时序信息传输,来改善其在MOT上的性能。

1.2 自监督MOT

为了减少手工标记注释,最近的一些方法利用自监督信号从广泛可用的未标记视频中学习关联。例如,CRW和JSTG通过应用cycle-consistent loss来学习视频对应关系。在没有微调的情况下,这些模型可以通过从第一帧传播注释来跟踪。

这篇工作还是类似于传统的TBD,也就是假定有一个好的detector了。

1.3 Memory Models

Memory的策略在动作识别等领域已经有了很广泛的应用了。在MOT中,也有一些工作,例如MeMOTR、MeMOT等等。但是,这些无一例外都是有监督的,仍然面临着ID标注昂贵的问题。

2. Method

整个模型由三部分组成,一个是类似于detector作用的Object-centric Grouping,其输入图像,输出对应的slots,这里作者直接采用了前面咱们介绍的Object-Centric Learning with Slot Attention,并且权重是frozen的,没有参与训练。

比较关键的点是Memory Module和Index Merge,前者用来传播帧间信息应对遮挡,后者用来将碎片化的slots对应成一个object。

2.1 Memory Module

对于 M M M个目标(轨迹), 存储时间长度为 T T T, 特征维度为 d d d, Memory buffer的维度是 M ∈ M × T × d \mathcal{M}\in M \times T\times d MM×T×d.

Memory rollout. 这个Buffer采用FIFO的策略, 在每一帧更新时, 预测当前的状态. rollout过程将多视图目标表示集成在一起, 并在遮挡场景中处理部分-整体匹配. (存疑.)

M ~ t = R o l l o u t ( M < t ) \tilde{\mathcal{M}}_t = Rollout(\mathcal{M}_{<t}) M~t=Rollout(M<t)

技术上, 作者用自回归模型GPT2-mini实现从历史状态到当前的预测.

2.2 Index merge module

2.2.1 slot to memory

多个slots往往是同一个物体的多个碎片, 无法直接和memory buffer中的object一一对应起来. 为了解决这个问题, 我们需要预测出到底哪些slots是属于同一个物体的.

假设slots有 N N N个. 本质上, 要解决这个问题, 就是要计算一个 I ∈ N × M \mathcal{I} \in N \times M IN×M的映射. 作者直接让多头注意力的注意力分数矩阵充当了 I \mathcal{I} I的角色.

具体来说, 我们以slots为query, 以更新的 M ~ t \tilde{\mathcal{M}}_t M~t为key和value, 取多头注意力的注意力分数:

I t = MHA ⁡ ( k , v = M ~ t , q = S t ) . a t t n w e i g h t \mathcal{I}_t=\operatorname{MHA}\left(k, v=\tilde{\mathcal{M}}_t, q=\mathcal{S}_t\right).attn weight It=MHA(k,v=M~t,q=St).attnweight

2.2.2 memory to slot

我们的目标是通过聚合属于同一个物体的slots来确保其表达buffer中的物体,同时处理哪些重复和表示parts的slots. 因此, 又用一个多头注意力模块, 以上面得到的 I t \mathcal{I}_t It为mask, 从而从buffer中聚合信息.

m t = MHA ⁡ ( k , v = S t , q = M ~ t , a t t n m a s k = I t ) m_t=\operatorname{MHA}\left(k, v=\mathcal{S}_t, q=\tilde{\mathcal{M}}_t\right., attnmask \left.=\mathcal{I}_t\right) mt=MHA(k,v=St,q=M~t,attnmask=It)

实际上slot to memory和memory to slot就是把一次注意力计算分成了两步.
首先, 索引步, 计算哪些slot对应哪些buffer, 得到一个权重矩阵
之后, 聚合步, 为了用这个权重聚合特征, 作为一个强约束(attention weight) 来防止不正确的slot被聚合成一个. 作者举了一个例子: 例如,如果有三个slot,其中两个与一个buffer匹配,注意力权重可以是 [0.8, 0.2, 0],表明第3个slot不属于这个buffer。

上面的流程如下图所示:

在这里插入图片描述

2.3 训练

训练的关键在于我们如何无监督地计算assignment损失.

我们有三种选择来计算分配成本:

  1. 在解码的掩码上使用二进制交叉熵损失来提高对象属性(如形状)的一致性
  2. 对对象重建(像素重建乘以对象掩模)使用逐像素平方的重建损失来学习颜色信息;有点像Object-Centric Learning with Slot Attention
  3. 使用与2)相同的损耗,但直接应用于特征空间。

L assign  ( S t i , M t j ) = λ 1 B C E Loss ⁡ ( Dec ⁡ ( S t i ) , Dec ⁡ ( M t j ) ) + λ 2 ∥ Dec ⁡ ( S t i ) − Dec ⁡ ( M t j ) ∥ 2 + λ 3 ∥ S t i − M t j ∥ 2 \begin{aligned} & \mathcal{L}_{\text {assign }}\left(\mathcal{S}_t^i, \mathcal{M}_t^j\right)=\lambda_1 B C E \operatorname{Loss}\left(\operatorname{Dec}\left(\mathcal{S}_t^i\right), \operatorname{Dec}\left(\mathcal{M}_t^j\right)\right) \\ & +\lambda_2\left\|\operatorname{Dec}\left(\mathcal{S}_t^i\right)-\operatorname{Dec}\left(\mathcal{M}_t^j\right)\right\|^2+\lambda_3\left\|\mathcal{S}_t^i-\mathcal{M}_t^j\right\|^2\end{aligned} Lassign (Sti,Mtj)=λ1BCELoss(Dec(Sti),Dec(Mtj))+λ2 Dec(Sti)Dec(Mtj) 2+λ3 StiMtj 2

其中 D e c Dec Dec表示解码器,估计结构和slot attention中的相似。

最终的loss为:

L = ∑ t = 1 T ∑ i = 1 N ∑ j = 1 M I t [ i , j ] L assign  ( S t i , M t j ) \mathcal{L}=\sum_{t=1}^T \sum_{i=1}^N \sum_{j=1}^M \mathcal{I}_t[i, j] \mathcal{L}_{\text {assign }}\left(\mathcal{S}_t^i, \mathcal{M}_t^j\right) L=t=1Ti=1Nj=1MIt[i,j]Lassign (Sti,Mtj)

整个模型的流程如下图所示:

在这里插入图片描述

3. 实验

作者只用了比较少的标签,在CATER和fishbowl数据集上达到了比较好的效果

在这里插入图片描述

但是在更通用的数据集,比如KITTI,效果就一般了:

在这里插入图片描述
作者认为是分辨率下采样过大的原因。

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

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

相关文章

详细的介绍匀加速运动的物理方程是如何转化为卡尔曼滤波的状态空间模型的

详细的介绍匀加速运动的物理方程是如何转化为卡尔曼滤波的状态空间模型的 flyfish 加速度是描述物体速度变化快慢的物理量&#xff0c;定义为速度对时间的变化率。数学上&#xff0c;它表示为&#xff1a; a Δ v Δ t a \frac{\Delta v}{\Delta t} aΔtΔv​ 其中&#xf…

[图解]SysML和EA建模住宅安全系统-02-现有运营领域-块定义图

1 00:00:00,840 --> 00:00:02,440 首先我们来看画在哪里 2 00:00:02,570 --> 00:00:08,310 你看&#xff0c;这是图的类型&#xff0c;图里面内容 3 00:00:08,320 --> 00:00:10,780 这是元素类型 4 00:00:10,790 --> 00:00:14,900 这是位置&#xff0c;哪个包 …

中国计量大学2024年成人高等继续教育招生简章

中国计量大学&#xff0c;作为一所享有盛誉的高等学府&#xff0c;始终秉持着“精益求精&#xff0c;追求卓越”的办学理念&#xff0c;致力于为社会培养各类优秀人才。在2024年&#xff0c;我校继续秉承这一传统&#xff0c;全面启动成人高等继续教育招生工作&#xff0c;为广…

KVB App:金价看涨动能不足,关注美国PCE数据

当前市场状况 截至2024年6月28日&#xff0c;现货黄金价格震荡走弱&#xff0c;一度失守2320美元/盎司关口&#xff0c;目前交投于2322.65美元/盎司附近。KVB首席分析师Valeria Bednarik指出&#xff0c;黄金价格目前缺乏看涨动能&#xff0c;市场焦点转向美国个人消费支出(PC…

python中pip换源

目录 1. 背景2. Python 的 pip 换源2.1 临时换源&#xff08;命令行中使用参数&#xff09;2.2 永久换源&#xff08;修改配置文件&#xff09;2.2.1 Windows系统2.2.2 Linux/macOS系统 2.3 使用 pip-config 命令换源&#xff08;Linux/macOS 特定&#xff09; 3. 常用的 PyPI …

嵌入式Linux系统编程 — 4.7 regcomp、regexec、regfree正则表达式函数

目录 1 为什么需要正则表达式 2 正则表达式简介 3 正则表达式规则 4 regcomp、regexec、regfree函数 4.1 函数介绍 4.2 URL格式案例 1 为什么需要正则表达式 在许多的应用程序当中&#xff0c; 有这样的应用场景&#xff1a; 给定一个字符串&#xff0c;检查该字符串是否…

数字信号处理实验三(IIR数字滤波器设计)

IIR数字滤波器设计&#xff08;2学时&#xff09; 要求&#xff1a; 产生一复合信号序列&#xff0c;该序列包含幅度相同的28Hz、50Hz、100Hz、150Hz的单音&#xff08;单频&#xff09;信号&#xff1b;其中&#xff0c;50Hz及其谐波为工频干扰&#xff08;注&#xff1a;采样…

Git与GitLab的企业实战--尚硅谷git课程

Git与GitLab的企业实战 第1章 Git概述 Git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目。 Git易于学习&#xff0c;占地面积小&#xff0c;性能极快。 它具有廉价的本地库&#xff0c;方便的暂存区域和多个工作流分支等特性…

揭秘系统架构:从零开始,探索技术世界的无限可能

文章目录 引言一、系统架构的基本概念二、系统架构的设计原则模块化可扩展性高可用性安全性 三、常见的系统架构模式1. **分层架构&#xff08;Layered Architecture&#xff09;**&#xff1a;2. **微服务架构&#xff08;Microservices Architecture&#xff09;**&#xff1…

微信视频号里面的视频怎么下载,分享4个视频号视频下载方法!可长期使用

如何在微信视频号里下载视频,虽然互联网上微信视频号视频下载方法千千万&#xff0c;奈何总有一些方法不起任何作用. 如何解决这一问题&#xff0c;今天就分享3个可以下载微信视频号的视频方法仅供参考。 1:提取器助手 手机搜索提取器助收/扫码获取视频号下载小助手二维码。该…

G882磁力仪拖鱼位置是如何计算的?

根据参考文献&#xff0c;磁力仪拖鱼位置计算有两种方法&#xff1a; 1、直线法 直线计算法是假设不考虑海流、船摆等动态因素的影响&#xff0c;拖鱼与拖点始终和航向相同&#xff0c;即整个拖拽系统与船舶是刚性连接。 2、曲线法 实际海洋磁力测量中&#xff0c;在海风、海…

6.24.4.2 YOLO- logo:一种基于变压器的YOLO分割模型,用于数字乳房x光片中乳腺肿块的检测和分割

背景与目的:数字化乳房x光片的肿块检测和分割在乳腺癌的早期发现和治疗中起着至关重要的作用。此外&#xff0c;临床经验表明&#xff0c;它们是乳腺病变病理分类的上游任务。深度学习的最新进展使分析更快、更准确。本研究旨在开发一种用于乳房x线摄影的乳腺癌质量检测和分割的…

柯桥在职学历提升|专科本科之自考本科哪些专业不考数学

一、管理类专业 这类专业综合性和理论性比较强&#xff0c;除了涉及到管理学相关的理论知识外&#xff0c;还有相应的专业知识&#xff0c;目前比较典型的专业有&#xff1a;行政管理、人力资源管理、工商管理&#xff08;现代企业管理&#xff09;、工商管理&#xff08;商务管…

【websocket】websocket网课视频记录

仅个人方便回顾。 【WebSocket入门与案例实战-哔哩哔哩】 https://b23.tv/2p1f9t2 课程对应代码仓库: https://gitee.com/duoli-java/websocket-demo.git

SpringBoot防抖方案(防止表单重复提交)

SpringBoot防抖方案&#xff08;防止表单重复提交&#xff09; 1.应用场景&#xff08;什么是防抖&#xff09; 所谓防抖&#xff0c;一是防用户手抖&#xff0c;二是防网络抖动。在Web系统中&#xff0c;表单提交是一个非常常见的功能&#xff0c;如果不加控制&#xff0c;容…

Selenium IDE 的使用指南

Selenium IDE 的使用指南 在自动化测试的领域中&#xff0c;Selenium 是一个广为人知且强大的工具集。而 Selenium IDE 作为其中的一个组件&#xff0c;为测试人员提供了一种便捷且直观的方式来创建和执行自动化测试脚本。 一、Selenium IDE 简介 Selenium IDE 是一个用于录…

GRS认证流程是什么?

GRS认证的认证流程主要包括以下几个步骤&#xff1a; 1. 提交申请 首先&#xff0c;企业需要向GRS认证机构提交认证申请&#xff0c;并提供相关的企业信息和产品信息。这通常包括企业的基本信息、生产工厂信息、产品范围、生产流程等。 2. 合同评审 认证机构会对企业提交的…

基于java语言+springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、APP 医院AI智能导诊系统源码

基于java语言springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、APP 医院AI智能导诊系统源码 一、智慧导诊系统开发原理 导诊系统从原理上大致可分为基于规则模板和基于数据模型两类。 1、基于规则推理的方法通过人工建立症状、疾病和科室之间的对应规则实现…

5G VONR

转载&#xff1a;VoNR呼叫流程介绍 (baidu.com) 使用5G RAN、5G Core和IMS的语音服务被称为新无线电VoNR上的语音&#xff0c;5G提供语音/视频通话等服务。 NR网络架构上的语音 NR语音网络体系结构由5G RAN、5G Core和IMS网络组成。下面显示了一个体系结构。&#xff08;仅包…

snowflake 不再是个数据仓库公司了

标题先上结论&#xff0c;为啥这么认为&#xff0c;且听接下来道来。 snowflake 非常成功&#xff0c;开创了云数仓先河&#xff0c;至今在数仓架构上也是相对比较先进的&#xff0c;国内一堆模仿的公司&#xff0c;传统上我们会认为 snowflake 肯定是一家数据仓库公司。不过最…