Tracking之MTMCT:Locality Aware Appearance Metric for Multi-Target Multi-Camera Tracking

介绍了一种新的局部邻域内目标外观度量方法,适用于多目标多摄像头跟踪,提高了DukeMTMC和CityFlow数据集上的跟踪性能。
Locality Aware Appearance Metric for Multi-Target Multi-Camera Tracking
多目标多摄像头的局部邻域内目标外观的度量
时间:2019年

1 资源
  • paper:https://arxiv.org/abs/1911.12037
  • code:https://github.com/hou-yz/open-reid-tracking
2 名词释义
  1. Multi-target multi-camera tracking (MTMCT):多目标多相机跟踪;
  2. locality aware appearance metric (LAAM):局部邻域内目标外观的度量;
  3. re-identification (Re-ID):重识别;
  4. single camera tracking(SCT):单摄像头跟踪;
  5. multi-camera tracking (MCT):多摄像头跟踪;
3 摘要

  Abstract: Multi-target multi-camera tracking (MTMCT) systems track targets across cameras. Due to the continuity of target trajectories, tracking systems usually restrict their data association within a local neighborhood. In single camera tracking, local neighborhood refers to consecutive frames;in multi-camera tracking, it refers to neighboring cameras that the target may appear successively. For similarity estimation, tracking systems often adopt appearance features learned from the re-identification (re-ID) perspective. Different from tracking, re-ID usually does not have access to the trajectory cues that can limit the search space to a local neighborhood. Due to its global matching property, the re-ID perspective requires to learn global appearance features. We argue that the mismatch between the local matching procedure in tracking and the global nature of re-ID appearance features may compromise MTMCT performance.
  To fit the local matching procedure in MTMCT, in this work, we introduce locality aware appearance metric (LAAM). Specifically, we design an intra-camera metric for single camera tracking, and an inter-camera metric for multi-camera tracking. Both metrics are trained with data pairs sampled from their corresponding local neighborhoods, as opposed to global sampling in the re-ID perspective. We show that the locally learned metrics can be successfully applied on top of several globally learned reID features. With the proposed method, we report new stateof-the-art performance on the DukeMTMC dataset, and a substantial improvement on the CityFlow dataset.

  摘要: 多目标多摄像机跟踪(MTMCT)系统跨摄像机跟踪目标。由于目标轨迹的连续性,跟踪系统通常将其数据关联限制在局部邻域内。在单摄像机跟踪中,局部邻域是指连续的帧;在多摄像机跟踪中,局部邻域是指目标可能连续出现的相邻摄像机。对于相似度估计,跟踪系统通常采用从再识别(re-ID)角度学习的外观特征。与跟踪不同的是,re-ID通常不能访问轨迹线索,而这些线索可以将搜索空间限制在一个本地社区。由于其全局匹配属性,reid透视图需要学习全局外观特性。我们认为,跟踪中的局部匹配过程与re-ID外观特征的全局性质之间的不匹配可能会影响MTMCT的性能。
  为了适应MTMCT中的局部匹配过程,在本文中,我们引入了局域感知的外观度量(locality - aware appearance metric, LAAM)。具体来说,我们设计了用于单相机跟踪的相机内度量,以及用于多相机跟踪的相机间度量。这两个指标都使用从其相应的本地邻居中采样的数据对进行训练,而不是在re-ID透视图中进行全局采样。我们证明了局部学习的度量可以成功地应用于几个全局学习的reID特性之上。通过提出的方法,我们报告了DukeMTMC数据集的最新性能,以及CityFlow数据集的重大改进。

4 Overview

图1:重识别(ReID)多目标多相机跟踪(MTMCT) 任务之间的区别。给定一个查询,重识别在所有相机的图库中全局搜索真实的匹配图。相比之下,多目标多相机的跟踪在单摄像机跟踪(SCT) 只考虑相邻帧的匹配,在 多摄像机跟踪(MCT) 中只考虑相邻相机间的匹配。具体来说,多摄像头跟踪时,当目标出现在摄像头2中,就不考虑摄像头3,因为目标从未出现在这两个摄像头(摄像头可能太远了)。

图2:(A) 一个全局度量的学习来自整个训练集的所有数据。这个度量相当鲁棒,但有一个松弛的决策边界(经常存在错误)。(B)本文提出一个局部的学习度量,它具有较强的决策边界和敏感性。在MTMCT中,数据的关联通常存在于领域内,而不是进行重识别的全局匹配。因此局部度量学习更适合。提出的局部外观度量具有单摄像机内度量和多摄像机间度量。前者是在同一台相机内某一时间段的轨迹学习。后者通过相邻相机间进行轨迹学习(目标可能连续出现)。
图3:MTMCT系统概述。给定目标边界框,我们首先将边界框连接到短小但可靠的追踪器。然后,追踪器合并成单摄像头轨迹。最后,不同摄像头的轨迹互相关联。提出的LAAM包括相机内度量和相机间度量。相机内/相机间分别应用于生成单相机轨迹和跨相机轨迹。
图4:提出相机内和相机间的训练数据采样策略。同一个人的相机标签具有相同颜色。一小段数据采样窗口通常在相机内采样。另一方面,相机间的数据采样使用大的数据采样窗口在相邻相机间采集好的样本对,在随机相机中采样不好的样本对。
图5:LAAM的度量网络结构。他有三个全连接层和一个2维 softmax输出层。该网络已特征对之间的绝对差向量作为输入,输出输入特征隶属于同一目标的置信分数。

图6:全局度量和LAAM之间的错误匹配比较。我们报告了验证集的假阳性率和假阴性率。

表1:实验中的方法/变量比较。
表2:关于重识别特征在Market-1501 和 DukeMTMC-reID 数据集的Rank-1 accuracy(%)和 mAP(%)。本文采用的三种特征(IDE、Triplet和PCB)在重识别方面具有较强的准确性。

表3:IDF1在DukeMTMC验证集上的准确性。三个重识别特征在不同方法下的评估。

表4:CityFlow在线测试集结果。请注意,CityFlow数据集仅评估多摄像机跟踪。该方法具有较高的精度。

表5:DukeMTMC在线测试集结果。带“*”的方法为在线跟踪方法,“LAAM (intra/inter)”是指提出的方法。在简单和困难的测试集,我们的方法产生非常有竞争力的准确性。
5 理解概述

  

### DeepSORT算法在多目标跟踪中的应用与实现 #### 1. **DeepSORT算法概述** DeepSORT(Simple Online and Realtime Tracking with a Deep Association Metric)是一种高效的在线多目标跟踪算法。其核心思想在于结合深度学习的目标检测技术和传统的卡尔曼滤波器以及数据关联技术,从而实现实时性和准确性之间的平衡[^1]。 该算法主要分为两大部分: - **目标检测**:利用先进的目标检测算法(如YOLO、Faster R-CNN等),提取每一帧图像中的目标边界框及其置信度分数。 - **目标跟踪**:通过卡尔曼滤波器预测目标位置,并采用匈牙利算法完成检测结果与已有轨迹的匹配。 --- #### 2. **DeepSORT的具体实现** ##### (1)目标检测模块 DeepSORT依赖于高质量的目标检测结果作为输入。通常使用的检测框架有YOLOv3/v5、Faster R-CNN等。这些模型能够提供每帧中物体的位置信息(bounding box坐标)、类别标签和置信度得分。为了提高鲁棒性,还可以引入特征嵌入向量(feature embedding vector),用于区分外观相似的对象[^1]。 ```python import torch from yolov5 import YOLOv5 def detect_objects(frame, model_path="yolov5s.pt"): """ 使用YOLOv5进行目标检测 """ device = 'cuda' if torch.cuda.is_available() else 'cpu' model = YOLOv5(model_path, device=device) results = model(frame) detections = [] for result in results.xywhn[0]: bbox = [result[:4].tolist(), float(result[4])] # 提取bbox和confidence score detections.append(bbox) return detections ``` ##### (2)卡尔曼滤波器 卡尔曼滤波器负责估计目标的状态并预测下一时刻可能的位置。状态变量包括中心点坐标(x,y)、宽高(w,h),以及它们的变化率(velocity)[^1]。具体而言: - 初始化阶段:当新对象被首次检测到时,为其创建对应的KalmanFilter实例; - 预测更新:根据当前时间步长Δt推算未来位置; - 测量校正:融合实际观测值调整预测误差。 ```python class KalmanBoxTracker(object): count = 0 def __init__(self, bbox): self.kf = kalman_filter.KalmanFilter(dim_x=7, dim_z=4) ... # 设置初始参数 def predict(self): ... def update(self, detection): ... ``` ##### (3)数据关联 为解决跨帧间同一实体对应关系问题,DeepSORT采用了双重策略——空间距离约束+外观特征比较。前者由IoU重叠程度衡量;后者则借助预训练ResNet生成固定维度描述子(embedding vectors),并通过余弦相似度评估差异大小。 最终运用匈牙利算法寻找最优分配方案,在满足一定阈值条件下确认配对成功与否。 ```python def associate_detections_to_trackers(detections, trackers, iou_threshold=0.3): """ 利用IOU矩阵执行二分图最大权匹配 """ if(len(trackers)==0 or len(detections)==0): return np.empty((0,2),dtype=int), np.arange(len(detections)), np.arange(len(trackers)) iou_matrix = iou_batch(detections, trackers) matched_indices = linear_sum_assignment(-iou_matrix) unmatched_detections = [] for d,det in enumerate(detections): if(d not in matched_indices[:,0]): unmatched_detections.append(d) unmatched_trackers = [] for t,trk in enumerate(trackers): if(t not in matched_indices[:,1]): unmatched_trackers.append(t) matches = [] for m in matched_indices: if(iou_matrix[m[0],m[1]]<iou_threshold): unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) else: matches.append(m.reshape(1,2)) if(len(matches)==0): matches = np.empty((0,2), dtype=int) else: matches = np.concatenate(matches,axis=0) return matches, np.array(unmatched_detections), np.array(unmatched_trackers) ``` --- #### 3. **性能优化方向** 尽管DeepSORT表现良好,但在某些场景下仍需进一步改进以适应更复杂的环境需求: - **降低延迟**:减少从视频采集至结果显示的时间间隔,可通过异步处理机制或者轻量化神经网络结构达成目的[^2]。 - **增强稳定性**:针对遮挡情况下的误删现象,可尝试扩展历史记忆长度或将长期依赖建模纳入考量范围。 - **提升精度**:探索更高维数表征能力的学习范式,比如自监督对比损失函数设计,有助于缓解光照变化带来的干扰影响。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coplin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值