基于深度学习的多目标跟踪算法——ReID与MOT的联系

本文探讨了基于深度学习的多目标跟踪算法,重点关注行人重识别(ReID)如何与多目标跟踪(MOT)相结合。ReID在MOT任务中主要作为表观模型,用于解决跨摄像头的行人识别。文章提到了DeepCC、NOTA、LAAM和STRN等方法,分别在数据集构建、网络框架设计、训练策略和运动表观特征融合等方面进行探讨,强调了ReID在跟踪任务中的重要性和挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

©PaperWeekly 原创 · 作者|黄飘

学校|华中科技大学硕士

研究方向|多目标跟踪

最近基于深度学习的多目标跟踪算法越来越多,有用于特征提取的,有改进单目标跟踪器的,也有提升数据关联的。如果真的要总结的话那就太多了,所以我准备分类别进行介绍,这次是这一系列最后一篇。我主要介绍基于行人重识别(ReID)算法的方法,相关 MOT 的基础知识可以去我的专栏查看。


ReID与MOT的联系

在 MOT 任务中,一般常用的特征模型有运动模型和表观模型,其中表观模型以行人重识别(ReID)类算法为主流。Re-ID 任务主要解决的是跨摄像头场景下行人的识别与检索,其中存在给定了身份的图片序列 query,需要为不同摄像头场景下的多组图片 gallery 的行人身份进行判定。



随着现在视觉任务需求的增加,车辆重识别任务也随之诞生,包括与之对应的数据集。对于多目标跟踪任务而言,由于目前只有行人和车辆的标注,所以基本只针对这两类目标,不过最近出来一个 833 类的多目标跟踪数据集 TAO [8] 。

以行人为例,多目标跟踪相对于 Re-ID 多出了空间位置信息和时间联系,其更多的是针对的同一摄像头场景,还包括可能出现的相机运动。

除此之外,对于 Re-ID 任务而言,其不需要考虑新身份的诞生和旧身份的消失,所有目标在 query 中一般都有对应的身份,而 MOT 任务中需要判定是否有可能不存在现有跟踪轨迹中,是否需要与已经丢失跟踪轨迹身份进行匹配等等,二者的异同总结如下:

指标

Re-ID

MOT

研究对象

行人/车辆

行人/车辆

场景

跨摄像头

单一摄像头

先验信息

表观信息

时空运动信息、

表观信息

研究任务

行人匹配

数据关联

目标序列是否

严格对称

其中,目标序列严格对称的意思是指的待比对的两个序列中,目标的 id 是否一致,如果不一致,则表明两个序列各自可能存在新的目标。

借鉴这个问题里面的回答行人重识别(re-ID)与跟踪(tracking)有什么区别 [9]。



我们可以看到 ReID 是一个相对底层的任务,随着检测、时序信息的加入,就可以拓展至行人检索和视频 ReID 任务,再引入 MOT 则可以得到更为高层的任务 MTMC(跨摄像头多目标跟踪)。

实际上 ReID 只是个任务名,我们不要将其具象化成了某一类数据集或者某一类深度框架,我们甚至可以直接用传统的图像特征来应用于这个任务,关键要看这个任务的定义。

MOT/MTMC中的ReID框架设计

2.1 DeepCC

### BoT-SORT 目标追踪算法的实现原理 BoT-SORT 是一种基于多目标跟踪 (Multi-Object Tracking, MOT) 的检测跟踪方法,其核心思想在于结合卡尔曼滤波器和重识别 (Re-ID) 技术来提升目标跟踪的效果。以下是关于 BoT-SORT 工作原理及其代码实现的具体说明。 #### 1. 核心组件解析 BoT-SORT 主要由以下几个部分组成: - **卡尔曼滤波器**: 这是一种用于状态估计的有效工具,在 BoT-SORT 中被用来预测目标的位置变化并减少噪声的影响[^1]。通过卡尔曼滤波器,可以更精确地估算目标在未来帧中的位置。 - **匈牙利匹配算法**: 在每一帧中,BoT-SORT 利用匈牙利算法将当前检测到的目标分配给已有的轨迹。这种分配方式能够最小化全局代价函数,从而提高关联准确性[^2]。 - **低分框处理机制**: 类似于 ByteTrack,BoT-SORT 同样考虑到了那些初始置信度较低但仍可能是真实目标的情况。通过对这些低分框进行额外分析,进一步提升了召回率。 - **可选 Re-ID 模块**: 如果启用了 `BoT-SORT-ReID` 版本,则会引入深度学习模型提取特征向量来进行身份验证。这有助于解决长期遮挡或其他复杂场景下的误配问题。 #### 2. 实现过程概述 以下是 BoT-SORT 算法的主要执行步骤描述(不涉及具体顺序表述): - 初始化阶段设置好参数配置文件以及加载预训练好的物体检测模型; - 对输入视频逐帧读取图像数据流; - 调用YOLOv8等对象探测引擎获取候选边界盒集合; - 应用卡尔曼过滤更新现有踪迹的状态预测值; - 计算新发现实例同已有路径间的相似程度得分矩阵; - 执行最优指派操作完成即时连接判定; - 处理未成功绑定的新出现实体创建独立记录项; - 输出最终标注结果保存至指定目录下。 #### 3. Python 示例代码片段 下面展示了一个简单的调用 Ultralytics 提供的功能接口实现 BoT-SORT 或者切换成其他替代方案如 Bytetrack 的例子: ```python from ultralytics import YOLO # 加载预定义权重文件构建基础分类体系结构 model = YOLO('yolov8n.pt') # 默认采用内置支持的 BoT-SORT 方法论开展全程监控活动 results_default_tracker = model.track( source="./example_video/input.mp4", show=True, ) # 显式指定改用另一种高效实时性能表现更好的选项——Bytetrack results_bytetrack = model.track( source="./example_video/input.mp4", show=True, tracker="bytetrack.yaml" ) ``` 上述脚本展示了如何轻松更换不同的跟踪策略而无需深入理解底层细节即可快速对比两者差异之处[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值