Skip to content

Latest commit

 

History

History
123 lines (72 loc) · 13.5 KB

04-2023aicity-track1-UW-team.md

File metadata and controls

123 lines (72 loc) · 13.5 KB

2023 Track1: Enhancing Multi-Camera People Tracking with Anchor-Guided Clustering and Spatio-Temporal Consistency ID Re-Assignment (华盛顿大学冠军队伍)

Abstract

本文提出了一种新的多摄像机多人跟踪方法,该方法使用锚引导聚类进行跨摄像机重识别和时空一致性,用于基于几何的跨摄像机 ID 重新分配。

本文方法旨在通过识别每个个体独有的关键特征并利用摄像机之间的视图重叠来预测准确的轨迹,而不需要实际的相机参数来提高跟踪的准确性。

Introduction

多摄像头人员跟踪 (Multi-Camera People Tracking, MCPT) 任务涉及跨多个摄像头检测和跟踪相同的个体。目标是保持每个个体的身份及其在不同视图中的轨迹,同时处理遮挡和相机视点变化等挑战。然而,由于隐私问题,数据仅限于研究基于深度学习的人员跟踪方法。因此,研究人员正在探索使用合成图像作为替代方案。AI City Challenge 最近发布了在多摄像头设置下使用合成视频跟踪室内人员的数据。该数据集侧重于多摄像头交叉视图场景,因此,我们开发了一种由三个主要组件组成的多摄像机人跟踪方法 (MCPT):单摄像机跟踪、用于多摄像机再识别的锚引导聚类、基于3D的时空一致性ID重新分配进行后处理

  • 我们提出了一种鲁棒的锚引导聚类方法,用于多摄像头人员跟踪和重新识别
  • 我们利用每个轨道的时空一致性进行自相机校准启用的后处理,可以显著提高外观相似的人的跟踪精度
  • 在公共测试集上的 2023 个 AI City Challenge Track 1 中,IDF1 为 95.36 实现了最佳性能,其中包括来自真实和合成多摄像头设置的数据

Method

Single-Camera Tracking,单摄像头跟踪

单摄像机跟踪算法通常遵循检测跟踪范式,该范式涉及在输入图像上使用独立的检测器,然后使用关联算法跨帧链接边界框。为了将外观特征合并到跟踪过程中,我们使用 BoT-SORT 的 Re-ID 版本作为单摄像机跟踪算法来获得初步的目标轨迹。BoT-SORT 旨在利用对象运动和外观进行关联,这导致在几个多目标跟踪基准上实现了最先进的跟踪性能。

Anchor-Guided Clustering,锚引导聚类

在完成单摄像头跟踪后,通常获得初步轨迹,由于同一场景中不同摄像机之间相同身份的遮挡未对齐的对象 ID 以及摄像机视野中缺乏重新进入的处理方法,可能会受到许多 ID 切换的影响。这种方法的缺失使得很难将唯一的对象 ID 分配给在特定时间退出后重新进入相机视野的身份。

为了同时解决这三个问题,我们提出了一种称为锚引导聚类和全局 ID 分配的有效方法。我们的方法优雅地使分配相同的唯一对象 ID 以重新进入身份,并且可以在同一场景中处理不同相机之间相同身份的遮挡诱导的 ID 切换和未对齐的对象 ID。

该方法涉及对同一场景中每个摄像机中一定数量的帧的检测外观特征进行周期性采样。在采样过程完成后,进行层次聚类以获得几个锚点,其中每个锚点包含多个特征,这些特征代表不同检测大小、光照条件和旋转角度下相同身份的外观特征。每个锚点都有一个唯一的ID,它将被用作多摄像机跟踪中身份的全局ID。

随后,同一帧 t 和锚点中的检测将执行匈牙利算法,其成本如下公式所述:

$$ cost\left(d_{i, t}, a_j\right)=1-\frac{1}{k} \sum_{l=1}^k \frac{d_{i, t} \cdot a_{j, l}}{\left|d_{i, t}\right|\left|a_{j, l}\right|} $$

我们使用检测外观特征 $d_{i, t}$ 之间的余弦距离(其中 t 是检测的帧 ID)和 $a_j$ 中的每个外观特征向量 $a_{j, k}$ 作为全局 ID 分配的成本。具体来说,我们计算 $d_{i, t}$ 和所有 $a_{j, k}$ 之间的余弦距离的平均值以获得最终成本。请注意,每个锚包含多个外观特征向量,表示为 $a_{j, l}$,这些向量的数量表示为 k。

在执行匈牙利算法后,每个单摄像机跟踪轨迹获得与原始轨迹长度相同的全局ID列表。为了分配最终的全局 ID,我们使用滑动窗口多数投票方法。该方法有效地固定了单摄像机跟踪中的 ID 切换,通过考虑多帧来稳健地分配全局ID,并通过分配相同的全局ID来正确识别重新进入摄像机视场的个体。

Spatio-Temporal Consistency ID Reassignment,时空一致性ID重新分配

假设多视图视频是同步和重叠的,预计一个人的轨迹将在所有视图中的位置运动方面表现出空间和时间的一致性。因此,通过依赖这种跨视图一致性,可以将不同视图下的 2D 轨迹与同一个人进行匹配,并进一步重新分配先前跟踪阶段中的错误全局 ID,无论是由于相似的外观还是严重遮挡。

给定锚引导聚类 ID 分配后的跟踪结果,其中 $X_{t, i d}^k \in \mathbb{R}^4$ 表示帧 t 的第 k 个相机视图下每个检测 (x, y, w, h) 的 2D 信息。函数 $F_g$ 以任何检测 $X_{t,id}^k$ 为输入,输出图像空间的二维坐标,表示每当左右脚踝关键点 $(x_{la}, y_{la})$$(x_{ra}, y_{ra})$ 都可用时,每个目标所在的地平面位置:

$$ F_g\left(X_{t, i d}^k\right)= \begin{cases}\left(\frac{\left(x_{l a}+x_{r a}\right)}{2}, \frac{\left(y_{l a}+y_{r a}\right)}{2}\right) & \text { if } c_{l a}, c_{r a} \geq \tau_{p o s e} \ (x+w / 2, y+h) & \text { otherwise }\end{cases} $$

其中 $c_{la}$$c_{ra}$ 是 2D 姿态估计器预测的关键点的置信度分数。$\tau_{\text {pose}}$ 是阈值,它通过基于姿势的分析控制每个目标的自上而下的位置,还是简单地从边界框的信息计算。

然后,给定通过相机自标定得到的第 k 个摄像机视图的单应矩阵 $H^k \in \mathbb{R}^{3 \times 3}$,我们可以通过重新投影图像空间中每个检测的地平面坐标来获得任何检测 $X_t^{cam}$ 的自上而下的坐标:

$$F_{3 D}\left(X_{t, i d}^k\right)=H^k \cdot F_g\left(X_{t, i d}^k\right)^T$$

我们在此使用符号 $\hat{X}{t, i d}^k \in \mathbb{R}^6$ 表示帧 t 的第 k 个相机视图下每个检测 (x, y, w, h) 和 3D 信息 $(x{3D} , y_{3D})$ 的 2D 信息。

我们工作中的空间一致性是指每个ID从所有相机视图自上而下位置的一致性水平。使用 $\hat{X}{t, id}^k$ 表示帧 t 的第 k 个相机视图下的 3D 信息 $(x{3D}, y_{3D})$,多视图之间的空间一致性定义为:

$$ D_{\text {spatial }}\left(\hat{X}{t, i d}^k, t, i d\right)=\frac{1}{N} \sum{l \neq k}\left|\hat{X}{t, i d}^l-\hat{X}{t, i d}^k\right|^2 $$

因为值得一提的是,在计算平均坐标之前,我们将排除函数O(·)识别的异常值。这些异常值通常是具有相似外观的检测,在我们的以前的单摄像机跟踪或锚引导聚类中,这些外观可能被错误分类为不同的身份。最后,我们使用自定义的置信度分数作为阈值来确定我们将重新分配身份的哪些检测:

$$ \text{conf}{i \rightarrow j}\left(\hat{X}{t, i}^k\right)=1-\frac{D_{\text {spatial }}\left(\hat{X}{t, i}^k, t, j\right)}{D{\text {spatial }}\left(\hat{X}_{t, i}^k, t, i\right)} $$

此外,如果我们将轨道位置的任何突然变化视为不规则的,我们可以通过采用一种简单的方法来对滑动窗口内的轨道位置进行加权求和来增强它们随时间的一致性。这产生了一个平滑的位置估计,它捕获轨道随时间的一般运动。这种方法在数据包含可能导致轨迹位置的突然变化的噪声或缺失信息的情况下可能非常有益,这不是由于实际运动,而是测量误差。我们可以通过用加权变体替换初始平均坐标计算来建立时间一致性。这涉及根据坐标与滑动时间窗口的相关性为坐标分配权重,而是计算加权平均值。

Implementation Details

相机校准

WILDTRACK 和 MMP-Track 数据集使用针孔相机模型提供相机校准文件,每个相机都有外部和内部参数。然而,在赛道一 1:多摄像头人员跟踪 (MCPT) 中,校准没有提供数据集,但每个子集都可以使用自上而下的视图图。

我们选择相机视图帧和自上而下的视图映射之间的对应关系来计算每个相机的单应矩阵 H,以便将每个目标的地平面位置从 2D 图像空间投影到 3D 世界空间。我们采用基于 Perspective-n-Point 方法的半自动相机校准来计算每个相机的单应矩阵。对于每个相机视图,我们使用以下方法手动选择 6 到 12 对点作为输入,包括 (1) 使用所有点的最小二乘方法,(2) 基于 RANSAC 的鲁棒方法,(3) 最小中值方法或 (4) 基于 PROSAC 的鲁棒方法。

检测器

合成数据 在 30 的高帧速率下,训练集和验证集由 1M 和 500k 个高分辨率帧组成,每个帧来自 15 个序列,总共 6.3M 检测。为了保持长训练时间和检测性能之间的平衡,我们最终决定使用所有场景以 20 的采样率和在特定场景的采样率下进行微调的第二阶段以 15 的采样率进行我们的第一阶段预训练。

我们使用 YOLOv7 作为我们的主干,使用 mmyolo 中的 COCO 预训练权重进行初始化。我们的第一阶段预训练模型训练了 60 个 epoch,批量大小为 8,初始学习率为 0.0025。我们的第二阶段特定于场景的微调模型训练了 10 个 epoch,批量大小为 8,初始学习率为 0.00025。

真实数据 数据集中的唯一真实世界数据是来自测试拆分的序列 S001。尽管目标检测上的有监督和无监督域适应方法在标签稀缺的目标数据集中显示出有希望的结果。训练或验证拆分中缺乏相应的真实数据使得我们评估跨域人体检测的性能变得困难。因此,为了应对这一挑战,我们直接使用来自 ByteTrack 的公共可用预训练 YOLOX x 模型,该模型在 CrowdHuman、MOT17、Cityperson 和 ETHZ 上进行训练。

2D姿态估计。由于数据集中没有 2D 姿势注释,我们直接使用 MMPTrack 中的预训练权重直接施加自上而下的人体姿态估计方法 HigherHRNet。输入是根据 YOLO 检测器预测的包围盒裁剪出来的,然后在COCO格式下估计17个关键点。

Re-ID 模型

在我们的多摄像头人员跟踪系统中,我们选择了 OSNet 作为人员重新识别 (ReID) 模型。OSNet 架构已被证明在人员 ReID 任务中是有效的,使用统一的聚合门来融合不同尺度的特征,并在多个基准数据集上取得了最先进的性能。

合成数据 ReID 训练数据是从 2023 个 AI City Challenge Track1 数据集的训练和验证集中采样的。我们对每条轨迹进行随机采样,并将样本分为训练、测试和查询集。

真实数据 由于挑战训练集中缺乏真实世界的数据,其他人类 Re-ID 数据集上的几个预训练模型用于测试集中的真实场景中的多摄像头跟踪。使用了三种不同的模型架构,包括 OSNet、OSNetIBN 和 OSNet-AIN。总共使用了在不同数据集组合上预训练的五个模型,模型架构和使用的数据集可以在下表中找到。从这些模型中提取的特征直接连接在一起,用于单摄像机跟踪和多摄像头跟踪。

跟踪

单摄像头跟踪 为了过滤检测结果,合成场景跟踪高分阈值为 0.6,低分阈值为 0.1。对于现实世界的场景,高分阈值为0.6,而低分在每个相机中仔细微调。单摄像机跟踪中使用的所有其他参数是 BoT-SORT 的默认参数。由于相机是静止的,因此去除相机运动补偿部分以降低计算成本。

多摄像头跟踪 多摄像头跟踪系统中有几个参数,包括层次聚类阈值和多数投票滑动窗口的长度。仔细微调层次聚类阈值以确保锚聚类结果准确。滑动窗口的长度应该足够大,以在投票过程中实现鲁棒性,但不能太大,因此在单次摄像机跟踪发生 ID 切换后,ID 切换不能立即固定。在我们的最终系统中,我们使用 15 的多数投票长度来实现 ID 分配鲁棒性和单个相机跟踪中的 ID 校正能力之间的平衡。最后,在提交之前对所有跟踪结果执行线性插值。

结果

$$ \begin{array}{lccccc} \hline \text { Method } & \text { IDF1 } & \text { IDP } & \text { IDR } & \text { Precision } & \text { Recall } \\ \hline \text { Baseline } & 89.57 & 91.89 & 87.36 & 92.79 & 88.21 \\ \text { + FT } & 92.98 & 92.01 & 93.97 & 92.83 & 94.81 \\ \text { + FT + STCRA } & 93.62 & 92.90 & 94.35 & 93.61 & 95.08 \\ \text { + FT + i-STCRA } & \mathbf{9 5 . 3 6} & \mathbf{9 5 . 8 3} & \mathbf{9 4 . 8 8} & \mathbf{9 6 . 4 4} & \mathbf{9 5 . 4 9} \\ \hline \end{array} $$

我们的基线方法是无锚引导的聚类多摄像头人员跟踪方法,无需任何时空重新分配,IDF1 得分为 89.57%。

然后,我们对该方法的三种变体进行了实验:对每个特定场景使用 Fine-Tuned 检测器模型,将时空一致性重新分配 (Spatio-Temporal Consistency Re-Assignment, STCRA) 引入框架中,并对后一种技术进行迭代(iteration)细化,称为迭代时空一致性重新分配 (i-STCRA)。

对于我们最终提交的 i-STCRA,我们使用升序置信度分数阈值和降序异常值阈值的 k = 3,以确保每次迭代后重新分配更加严格。

我们的实验表明,每个变化都可以提高性能,通过时空一致性迭代重新分配方法取得的最佳结果,IDF1 得分为 95.36,IDP 得分为 95.83,IDR 得分为 94.88,排名第 27 个团队中的第一个位置。