【深度学习MOT】SMILEtrack SiMIlarity LEarning for Multiple Object Tracking,论文
论文:https://arxiv.org/abs/2211.08824
文章目录
- Abstract
- Introduction
- 2. 相关工作
- 2.1 基于检测的跟踪
- 2.1.1 检测方法
- 2.1.2 数据关联方法
- 2.2 基于注意力的跟踪
- 3. 方法
- 3.1 架构概述
- 3.2 用于重新识别的相似性学习模块(SLM)
- Experimental Results
Abstract
多目标跟踪(MOT)在计算机视觉领域得到广泛研究,具有许多应用。基于检测的跟踪(TBD)是一种流行的多目标跟踪范式。TBD包括首先进行目标检测,然后进行数据关联、轨迹生成和更新的步骤。我们提出了一种受Siamese网络启发的相似性学习模块(SLM),用于提取重要的目标外观特征,并提出一种有效结合目标运动和外观特征的方法。
这种设计加强了目标运动和外观特征的建模,用于数据关联。我们为我们的SMILEtrack跟踪器设计了相似性匹配级联(SMC)以进行数据关联。SMILEtrack在MOTChallenge和MOT17测试集上分别达到了81.06的MOTA和80.5的IDF1。
Introduction
MOT是计算机视觉中的热门课题,在视频理解中起着重要作用。MOT的目标是估计每个目标的轨迹,并尝试将它们与视频序列中的每一帧关联起来。随着MOT的成功,它可以在社会中被广泛应用,例如车辆计算、计算机交互[25] [12]、智能视频分析和自动驾驶。在过去的几年里,主要和高效的MOT策略[1] [27] [26]基于基于检测的跟踪(TBD)范式方法。它根据检测结果进行跟踪,将问题分解为检测和关联两个步骤。在检测步骤中,我们需要在单个视频帧中定位感兴趣的物体,在关联步骤中将每个物体与现有轨迹连接或创建新的轨迹。然而,由于模糊的物体、遮挡和复杂的场景,它仍然面临挑战。
为了实现跟踪系统,解决方案模型可以分为分离检测和嵌入模型(SDE)以及联合检测和嵌入模型(JDE)。我们的方法属于SDE,其架构如图1所示。SDE至少需要两个功能组件:一个检测器和一个重新识别模型。
首先,检测器通过边界框定位单帧中的所有物体。然后,重新识别模型将从每个边界框中提取物体的特征以生成嵌入。最后,将每个边界框与现有轨迹中的一个关联,或创建一个新的轨迹。然而,SDE方法无法实现实时推断速度,因为当使用两个单独的模型来检测物体和提取嵌入时,需要进行多次计算。检测器和重新识别模型之间的特征无法共享,而SDE方法需要在推断时间内将重新识别模型应用于每个边界框以提取嵌入。面对这个问题,一个可行的解决方案是集成检测器和重新识别模型。JDE类别[26] [32]将检测器和嵌入模型组合在一个单次深度网络中。它可以通过仅推断一次模型同时输出检测结果和检测到的边界框的相应外观嵌入。
尽管JDE的成功使得MOT任务在精度方面取得了巨大的成果,但我们认为JDE仍然存在一些问题。例如,不同组件之间的特征冲突。我们认为用于目标检测任务和目标重新识别任务的特征是完全不同的。目标检测任务的特征需要高级特征来识别物体属于哪个类别,但重新识别任务的特征需要更多的低级特征来区分同一类别中的不同实例。因此,JDE中的共享特征模型可能会降低每个任务的性能。然而,正如我们上面提到的JDE的缺点,SDE可以克服这些缺点,仍然在MOT方面具有出色的潜力。
近年来,基于注意力机制的Transformer [24] 已被引入到计算机视觉领域,并取得了出色的结果。在多目标跟踪问题中,大部分基于Transformer的方法采用了CNN + Transformer的框架。这意味着模型首先通过CNN架构提取输入图像特征,然后将这些特征映射作为输入传递到Transformer中。与基于检测的跟踪方法不同,基于Transformer的方法通过将检测和数据关联部分结合在一起来实现跟踪结果。它可以通过单一模型直接输出轨迹的身份和位置,而无需使用任何额外的轨迹匹配技巧。尽管基于Transformer的方法在特征注意力方面取得了出色的结果,但在将整个图像输入到Transformer架构中时,推断速度仍然存在一定限制。
为了生成高质量的检测和目标外观,我们选择了SDE作为TBD模型,以解决JDE中的特征冲突问题。然而,我们认为大多数特征描述符无法清楚地区分不同对象之间的外观特征。
为了解决这个问题,我们提出了SMILEtrack,它结合了一个检测器和类似Siamese网络的相似性学习模块(SLM)。受到视觉Transformer [6] 的启发,我们创建了一个图像分割注意块(ISA),它使用了SLM中的注意力机制和图像分割机制。此外,我们还为视频中每个帧之间的对象匹配构建了一个相似性匹配级联(SMC)。我们跟踪系统的大致过程如下:首先,我们通过一个名为PRB [4] 的检测器预测目标边界框的位置。在获得物体边界框后,我们通过SMC将边界框与轨迹关联起来。
我们工作的贡献总结如下:
我们引入了一个名为SMILEtrack的分离检测和嵌入模型,以及相似性学习模块(SLM),该模块使用类似Siamese网络的架构来学习每个对象之间的相似性。
在SLM的特征提取部分,我们构建了一个图像分割注意块(ISA),它使用了Transformer的图像分割方法和注意力机制来学习对象特征。
为了完成轨迹匹配部分,我们为每个帧中的每个边界框构建了一个相似性匹配级联(SMC)来实现关联步骤。
2. 相关工作
2.1 基于检测的跟踪
基于检测的(TBD)算法在MOT问题中取得了显著的成功,已经成为MOT框架中最受欢迎的方法。TBD方法的主要任务是在视频的每一帧之间关联检测结果,以实现MOT系统。整个工作可以大致分为两部分。
2.1.1 检测方法
Faster R-CNN [18] 是一种两阶段检测器,它使用VGG-16作为主干网络,使用区域建议网络(RPN)来检测边界框。SSD [11] 使用锚点机制来取代RPN,在每个特征图上设置不同大小的锚点,以增强检测质量。YOLO系列 [15] [16] [17] [2] 是一种一阶段方法,它使用特征金字塔网络(FPN)来解决目标检测中的多尺度问题,速度和精度表现出色。尽管基于锚点的检测器可以取得出色的性能,但仍存在一些由锚点引起的问题。例如,基于锚点的检测器很难根据情况调整一些锚点的超参数,而在训练过程中计算锚点的交并比(IOU)需要大量时间和内存。为了克服这些问题,无锚点检测器是另一种选择。CornerNet [9] 是一种无锚点方法,它利用热图和角点池化代替锚点来预测目标的左上角和右下角,然后将这两个点匹配以生成物体的边界框。与CornerNet相比,CenterNet [34] 通过中心池化和级联角点池化直接预测目标的中心点。YOLOX将YOLO系列从基于锚点的检测器转变为无锚点检测器。此外,它使用解耦的头部来提高检测的准确性。
2.1.2 数据关联方法
在MOT系统中,必须克服许多挑战,如物体遮挡、拥挤的场景和运动模糊。因此,数据关联方法需要小心处理。SORT [1] 首先使用卡尔曼滤波器根据当前帧的物体位置预测对象的未来位置,然后通过计算现有目标的检测和预测边界框之间的IOU距离生成分配成本矩阵。最后,通过匈牙利算法匹配分配成本矩阵。尽管SORT在推断时间方面具有较高的速度,但由于它不涉及对象外观信息,因此无法处理长时间遮挡问题或快速运动的对象。
为了解决遮挡问题,Deep SORT [27] 使用预训练的CNN模型提取边界框外观特征,然后使用外观特征计算轨迹和检测之间的相似性。最后,使用匈牙利算法完成分配。
这种方法可以有效减少ID切换的次数,但Deep SORT中的检测模型和特征提取模型是分开的,这导致推断速度远低于实时。面对这个问题,JDE [26] 将检测器和嵌入模型组合成一个单次网络,它可以实时运行,并且在准确性上与两阶段方法相当。FairMOT [32] 展示了锚点带来的不公平问题,它采用了一种基于CenterNet的无锚点方法,在多个数据集中(如MOT17 [14])的性能大幅提升。然而,我们认为JDE模型存在一些问题,比如不同组件之间的特征冲突。
与此同时,一些MOT跟踪方法 [21] [22] 放弃了物体外观特征,仅通过应用高性能的检测器和运动信息来完成跟踪系统。尽管这些方法在MOTChallenge基准测试中可以达到最先进的性能和高推断速度,但我们认为这部分是因为MOTChallenge基准数据集中的运动模式相对简单。
此外,不考虑物体外观特征可能导致在更拥挤的场景中,物体跟踪的准确性和鲁棒性较差。
2.2 基于注意力的跟踪
在使用Transformer进行目标检测取得成功后,Trackformer [13] 将MOT视为一种集合预测问题,基于DETR构建,添加了对象查询和自回归轨迹查询来进行目标跟踪。
TransTrack [23] 基于可变形DETR构建,并具有两个解码器,一个用于当前帧检测,另一个用于先前帧检测。它通过在两个解码器之间匹配检测框来解决跟踪问题。TransCenter [29] 是基于点的跟踪方法,提出了一个密集的查询特征图,使用多尺度的输入图像来实现基于Transformer的MOT。
3. 方法
在本节中,我们介绍SMILEtrack模型的细节,包括相似性学习模块(SLM)以及用于每一帧中的框关联的相似性匹配级联(SMC)。
3.1 架构概述
SMILEtrack的整体架构如图2所示。我们的框架可以分为以下几个步骤:(1)检测目标位置:为了定位目标物体的位置,我们采用PRB作为检测器。 (2)数据关联:通过关联相邻帧中的每个物体来解决MOT问题。在通过PRB生成的检测结果之后,我们计算每一帧之间的运动相似性矩阵和外观相似性矩阵,然后通过匈牙利算法解决线性分配问题,其中成本矩阵与这两个矩阵相结合。
3.2 用于重新识别的相似性学习模块(SLM)
为了实现稳健的跟踪质量,目标的外观信息是不可或缺的。一些跟踪方法已经考虑了目标的外观信息。例如,DeepSORT使用一个由简单CNN构建的深度外观描述符来提取目标的外观特征。尽管外观描述符可以提取有用的外观特征,我们认为外观描述符无法清楚地区分不同物体之间的外观特征。为了提取更具有辨识度的外观特征,我们提出了一个类似Siamese网络架构的相似性学习模块SLM。SLM的详细信息如图3所示。
后面翻译略,感兴趣可以看论文。
Experimental Results
相关文章:

【深度学习MOT】SMILEtrack SiMIlarity LEarning for Multiple Object Tracking,论文
论文:https://arxiv.org/abs/2211.08824 文章目录 AbstractIntroduction2. 相关工作2.1 基于检测的跟踪2.1.1 检测方法2.1.2 数据关联方法 2.2 基于注意力的跟踪 3. 方法3.1 架构概述3.2 用于重新识别的相似性学习模块(SLM) Experimental Res…...

jmeter通过BeanShell对接口参数进行MD5和HmacSHA256加密【杭州多测师_王sir】
一、在eclipse里面编写MD5加密算法 package com.Base64;import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class Md5Utils {public static String md5(String sourceStr) {String result "";try {MessageDigest md Mess…...

基于自适应曲线阈值和非局部稀疏正则化的压缩感知图像复原研究【自适应曲线阈值去除加性稳态白/有色高斯噪声】(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Spring AOP 切点表达式
参考博客: 参考博客...

打破传统直播,最新数字化升级3DVR全景直播
导语: 近年来,随着科技的不断创新和发展,传媒领域也正经历着一场前所未有的变革。在这个数字化时代,直播已经不再仅仅是在屏幕上看到一些人的视频,而是将观众带入一个真实世界的全新体验。其中,3DVR全景直…...
网络安全--利用awk分析Apache日志
一、溯源 你会溯源吗?怎么溯 拿到日志(ssh登录日志,Apache日志),通过日志溯到ip,对日志进行每天的拆分,第二通过awk日志分析工具对每天的日志进行拆分,分析某一个ip今天对我访问多…...

计算机视觉一 —— 介绍与环境安装
傲不可长 欲不可纵 乐不可极 志不可满 一、介绍 研究理论和应用 - 研究如何使机器“看”的科学 - 让计算机具有人类视觉的所有功能 - 让计算机从图像中,提取有用的信息,并解释 - 重构人眼;重构视觉皮层;重构大脑剩余部分 计…...

如何看懂统一社会信用代码?
在查看企业信息的时候,我们通常第一时间查看的就是该企业的照面信息:企业名称,企业信用代码,企业法人等等。 其中统一社会信用代码就是给各个企业组织编号,是便于统一识别管理的一串代码,类似我们的身份证…...

systrace: 系统级跟踪工具的解析
关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、获取systrace文件3.1 通过python命令获取3.1.…...

关于青少年学习演讲与口才对未来的领导力的塑造的探析
标题:青少年学习演讲与口才对未来领导力的塑造:一项探析 摘要: 本论文旨在探讨青少年学习演讲与口才对未来领导力的塑造的重要性和影响。通过分析演讲和口才对青少年的益处,以及如何培养这些技能来促进领导力的发展,我…...

大数据分析案例-基于KMeans和DBSCAN算法对汽车行业客户进行聚类分群
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
Vue 3 中定义组件常用方法
在Vue 3 中有多种定义组件的方法。从选项到组合再到类 API,情况大不相同 1、方式一:Options API 这是在 Vue 中声明组件的最常见方式。从版本 1 开始可用,您很可能已经熟悉它。一切都在对象内声明,数据在幕后由 Vue 响应。它不是…...
Linux | curl命令调用接口时查看调用时长和详情
关注wx: CodingTechWork 引言 在服务器中通过curl命令调用接口时,我们经常需要分析一些时长。本文主要总结两种方式进行处理。 curl命令 使用time命令 time curl -k -u <username>:<password> https://127.0.0.1/xxxx -vvv 使用文本 编…...

用ngrok实现内网穿透,一行命令就搞定!
最近在写支付的东西,调试时候需要让支付平台能够回调本地接口来更新支付成功的状态。但由于开发机器没有公网IP,所以需要使用内网穿透来让支付平台能够成功访问到本地开发机器,这样才能更高效率的进行调试。 推荐内网穿透的文章已经很多很多…...

C++ 混合Python编程 及 Visual Studio配置
文章目录 需求配置环节明确安装的是64位Python安装目录 创建Console C ProjectCpp 调用 Python Demo 参考 需求 接手了一个C应用程序,解析csv和生成csv文件,但是如果要把多个csv文件合并成一个Excel,分布在不同的Sheet中,又想在一…...
斐波拉契数列+二进制--夏令营
1. f[40]{0,1} 数组赋值:只赋值前两个的话,剩余的自动为0 2.先要自己写出斐波拉契数列判断一下应该要多少个斐波拉契数样例,第39项已经超样例数500了,所以够用 3.就是把一个数字拆分成斐波拉契数列里的数的和嘛,但是…...

【使用Hilbert变换在噪声信号中进行自动活动检测】基于Hilbert变换和平滑技术进行自动信号分割和活动检测研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Android 13 Launcher——屏蔽上拉到应用列表
背景 Launcher定制需要将原先的应用列表去掉,可以从根源去掉,就是将上拉出现应用列表的上拉手势直接屏蔽,让其不能上拉出现应用列表界面,在研究的过程中顺便将下拉出现负一屏的逻辑也研究了下,如下就是具体实现。 目录 背景 一.如何屏蔽上拉出现应用列表 一.如何屏蔽上拉…...

Java 基础知识点
Object 类相关方法 getClass 获取当前运行时对象的 Class 对象。 hashCode 返回对象的 hash 码。 clone 拷贝当前对象, 必须实现 Cloneable 接口。浅拷贝对基本类型进行值拷贝,对引用类型拷贝引用;深拷贝对基本类型进行值拷贝,对…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...

[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...

Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...

LINUX编译vlc
下载 VideoLAN / VLC GitLab 选择最新的发布版本 准备 sudo apt install -y xcb bison sudo apt install -y autopoint sudo apt install -y autoconf automake libtool编译ffmpeg LINUX FFMPEG编译汇总(最简化)_底部的附件列表中】: ffmpeg - lzip…...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...