CAMOT 摄像机角度感知多目标跟踪 !

科技   2024-10-18 09:00   上海  

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群




想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶
AI模型部署落地实战👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入「集智书童-知识星球」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

这篇论文提出CAMOT,这是一个用于多目标跟踪的简单摄像机角度估计器,可以解决两个问题:1)遮挡问题,和2)深度方向上的不准确距离估计。

假设多个物体在每一帧视频中都在一个平面上,CAMOT使用检测器估计摄像机角度。

此外,它为每个物体给出深度,从而实现伪3D MOT。

作者在MOT17和MOT20数据集上评估了其性能,并确认了其有效性。将CAMOT应用到ByteTrack中,作者在MOT17上获得了63.8% HOTA,80.6% MOTA和78.5% IDF1,这些结果是 state-of-the-art。

它的计算成本明显低于现有的基于深度学习的追踪深度估计器。

1 Introduction

视频多目标跟踪(MOT)是一种在视频中跨空间和时间检测并跟踪物体的任务,同时保持一致的身份。它被广泛应用于自动驾驶和视频监控等领域。其标准范式包括两个阶段:

1)目标检测,其中在每帧中检测单个物体,以及2)关联[7, 62],其中将目标间的检测结果在时间上关联起来,为每个物体形成一个跟踪。

在本论文中,作者将MOT的应用领域聚焦在安防领域。

MOT在现实生活中面临许多挑战。一个显著的问题是目标物体通常被其他物体遮挡,导致检测失败。另一个问题是当两个物体在深度方向上对齐时,它们之间的距离无法精确估算,这可能导致不同帧之间的错误物体关联。

要解决这两个问题,需要知道每个物体的深度。为此,Khurana等人[24]将一个基于深度学习的深度估计器集成到MOT框架中。尽管它一定程度上解决了遮挡问题,但距离问题仍然需要解决。此外,深度估计器可能需要额外增加计算成本。

在本文中,作者提出了一种名为CAMOT(Camera Angle-aware Multi-Object Tracking)的简单相机角度估计器,用于解决这些问题。

假设每帧中的多个物体位于一个平面上,作者的方法通过目标检测来估计相机角度,从而提供每个物体的深度并解决遮挡问题。

作者的方法还测量深度方向上的距离,并更准确地关联不同帧中的物体。CAMOT在计算上高效且可以作为各种MOT方法的插件组件使用。

作者在MOT17和MOT20数据集上添加了不同的2D MOT方法,并确认了该方法的有效性。

例如,将其应用于ByteTrack,它实现了MOT17中最先进的结果,包括63.8% HOTA,80.6% MOTA和78.5% IDF1[35]。

关于计算成本,在一台机器上,总体而言,本文的主要贡献如下:

  1. 作者提出了一种轻量级的相机角度估计器,该估计器利用目标检测位置进行计算。
  2. 作者利用每个物体的相机角度和深度来在2D MOT中关联帧间的物体。
  3. 作者通过将作者的方法添加到各种2D MOT方法中来评估其性能。

2 Related Works

2D Multi-Object Tracking (MOT)

随着可靠的目标检测的出现,MOT的标准方法是"检测驱动跟踪",它使用预训练的检测器,并更注重数据关联。早期的方法如SORT[4]和DeepSORT[52]使用了卡尔曼滤波器。相比之下,最近的方法尝试新的方法,例如在帧内回归边界框[3],在感受野内匹配 Heatmap [64],或将在单个模型中结合检测和重识别(Re-ID)。此外,视觉Transformer[16]还进入了MOT[54, 59, 46, 10],在端到端的方式中将检测和跟踪结合起来。MOT的最新显著发展是ByteTrack[61],它将简单的SORT修改为一个两步算法,用于处理低置信边界框。

MOT的一个问题是,当两个目标在深度方向对齐时,它们之间的距离无法精确估计。这是因为深度方向在投影到相机时被展开并结合到另一方向(通常是up/down方向)。由于视差,不同深度的目标在图像中可能具有相同的距离。然而,现有的方法在关联目标时都没有考虑空间方向上的视差校正。

最常见的用于关联的特征是交点与union(IoU),其次是外观特征[52, 62]。基于Transformer的MOT[59, 33, 30]试图统一检测和跟踪,并将关联过程作为模型的一部分进行。所有这些方法都使用了2D图像上测量的距离。

最近对纯IoU的替代方案是距离与IoU(DIoU)[63],它也考虑了目标的相对位置。对于两个不同的目标(i)和(j),DIoU定义为:

其中c_{x},c_{y}是最小包容框的宽度和高度,该最小包容框包含了目标(i)和(j)的边界框。以前的研究将DIoU应用于MOT[57, 45, 28, 45]。作者基于DIoU并将其修改为考虑摄像机角度。

2. Occlusion

遮挡仍然是运动目标跟踪(MOT)中的一个主要问题。一个常见的方法是识别重识别(Re-ID),它用于在遮挡前后重新关联检测 。

然而,这是一种针对被遮挡物体存在的后验推理;在在线设置中,智能代理应该在重新出现遮挡物体之前对其进行推理 [24]。此外,由于预遮挡和后遮挡特征之间的差距不断增大,Re-ID无法有效处理较长的遮挡(>3秒) [15]。

一个可能的解决方案是将跟踪过程提升到3D空间。在3D空间中跟踪遮挡物体会更容易,因为在2D中重叠的轨迹在3D空间中分开得很好。将2D信息提升到3D的最直接方法是使用单目深度估计器。

Depth Estimation

单目深度估计从单个图像中获取深度图,无需额外的传感器或模态。这是一个不适定问题,因为二维场景可以从无数个三维场景中投影出来。传统方法[42, 36]依赖于对场景及其中的物体进行充分的先验知识。

相比之下,基于深度学习的最近一些方法可以在不需要几何约束或先验知识的情况下可靠地从单个图像中推理深度。这些方法从小时glass网络[27]、编码器-解码器结构[5, 58]、 Transformer [1, 25, 39],到扩散网络[43]不等。深度估计是许多任务的前置步骤,包括三维检测和跟踪。适用于3D任务的数据集通常用于自动驾驶等任务[47, 9, 22]。因此,目前没有可用的数据集用于监控等应用场景。

Depth Estimation for MOT

仅用单张RGB图像进行单目3D目标检测和跟踪的工作已经有很多了。早期的3D目标检测方法[60, 44, 2, 56]处理的是由附加传感器(例如,激光雷达,飞行时间相机,立体相机)或由单目深度估计器生成的点云。相比之下,最近的方法从单张2D图像中生成3D边界框建议。

几种2D MOT方法[3, 4, 52, 61]只需要稍作修改就可以进行3D MOT。此外,还提出了专门的3D跟踪器[12, 51]。

也有使用深度信息进行2D MOT的研究。然而,与3D MOT不同,这些研究仍然使用2D边界框作为输入和输出;但是,内部处理,例如关联和轨迹管理,是在3D中进行的。Khurana et al.[24]是第一个在2D MOT中增加3D推理的工作,它利用单目深度估计[27]生成深度图并增加SORT。通过修改卡尔曼滤波器在3D中进行跟踪,跟踪器可以过滤假阳性预测,从而允许更好的遮挡处理。

另一项工作,Quo Vadis [15]使用同构变换将整个场景转换为鸟瞰视角,然后添加轨迹预测。深度估计器在计算上是昂贵的[58];

Quo Vadis [15]添加除了深度估计器之外的其它计算昂贵的组件,使得该系统的运行成本过高。相比之下,作者提出的估计器需要的计算成本要少得多,因为它使用了 readily 可用边界框。

Camera Pose Estimation Methods

传统的相机位姿估计方法,例如RANSAC [20]和PnP [31],需要手工设计的特征在图像之间进行匹配。相比之下,基于深度学习的单目相机位姿估计方法[23, 6](这些方法也生成相机角度)仅使用一张图像就能产生良好的结果。

然而,大多数相机位姿估计方法需要从动态移动的相机捕获的连续视频或需要作为参考的结构具有明确的定义。不幸的是,许多MOT场景使用静态相机拍摄,并且包含大量人群,可能会模糊参考结构。

作者提出的方法通过检测输出估计相机角度,无需参考结构或动态相机。此外,它可以在无需任何额外训练的情况下估计每个目标相对于相机的3D点。

3 Camera Angle Estimation

Outline

在本文中,作者描述了估计相机仰角\θ和物体3D坐标集的方法。CAMOT通过回归所有目标检测的共同平面来同时估计角度和物体深度。

目标检测等价于告诉作者物体在图像上的分布情况,而物体的分布情况又可以告诉作者相机仰角。例如,从地面角度拍摄的图像其物体集中在一个水平线上,而较高角度拍摄的图像其物体则分布得更加均匀。作者可以使用目标检测来估计物体的深度,然后利用深度来估计相机仰角。

作者的算法概述如下:

选择用于当前帧 的边界框。当 不是最优的 ,迭代次数 如下:

为当前迭代设置一个 值。

  1. 使用 估计3D物体点

  2. 从点集回归一个平面,得到法向量,并计算平面角度。

    具体的公式表示如下:

  3. 从点集 回归一个平面,得到法向量 ,并计算平面角度

  4. 进行角度平滑处理。


  5. 使用最优


Assumptions and Problem Formulation

对于作者预期的使用场景(监控,人群分析等),作者将场景限制为跟踪在公共空间中的人流(人类)的运动。作者针对场景做如下假设:

  1. 相机参数未知,除了焦距之外。
  2. 每帧视频中至少检测到三个目标。
  3. 假设一个物体与地面接触,即所有物体的底部边缘都在一个共同的平面上(地面平面)。
  4. 相机角的变化在时间上是平滑的。

作者用一个中心在3D空间中的球体来表示人类物体,这个球体具有质心 ,高度 ,和短轴长度比例 。作者假设高度 为常量,但短轴长度比例 可以变化。作者使用针孔相机光学,焦距。在针孔相机模型的框架下,作者将问题形式化为寻找最佳拟合平面的一组被检测到的物体之间的回归误差 最小化 值。图2说明了这个问题,其中一个物体 可以用一个通过 的线段 来表示, ,和 分别表示物体的顶部,中间和底部点。

Bounding Box Selection

不是所有由目标检测过程产生的边界框都可以用于平面估计过程。令表示当前帧中所有检测到的物体的索引。作者首先需要选择个物体,其中是用于平面估计过程的目标物数量。

作者首先筛选出物体的对应边界框截断了帧的边缘。然后将图像切成个区域。对于每个区域,作者至少添加一个具有最高检测置信度的物体,其质心位于该区域。

Initial Elevation Angle Setting

作者将相机抬升角定义为主轴和其在地平面上的投影之间的夹角。给定一组3D点,可以轻松地获得(参见3.6节)。然而,由于在开始时都是未知的,作者首先假设一个初始的值,并通过优化迭代获得最终的值(参见3.7节)。

在第一个帧中,根据参数进行初始化。在后续帧中,作为前一个帧的值进行初始化。

Depth Estimation Using Detection Results

这个过程首先在每个优化的迭代中在所选目标 上执行,以获得选择的点集 。在获得 的最优值后,作者再对 中的所有目标执行一次最后一步,以获得所有 3D 点集

利用角度 ,作者可以找到从原点点至 ,和 的距离 。作者使用图像平面上的最近和最远两个点进行计算,因为它们分别是一个目标与摄像机原点距离的最近点和最远点。

首先,作者将 2D 坐标转换为摄像机焦点出发的 3D 光栅,定义为


其中,光栅 是通过针孔摄像机原点、图像平面上的相关点以及 3D 摄像机坐标中的实际点。而 是摄像机内参矩阵的逆矩阵。对于每个目标 ,作者通过使用其边界框的上中点和下中点 来分别获得光栅 ,如图2 所示。

然后作者定义以下:对于每个目标 ,主轴与光栅 的角度定义为主轴与光栅 的夹角,同时, 的角度r_{it}r_{ib}$ 的夹角。

在图3 中,作者可以利用目标和光栅形状中的角度性质,计算原点至目标之间的距离。利用目标与光栅的 这个三角形,可以求出头点的位置。


然后,通过 这个三角形,作者可以求出底点 的距离。


之后,通过光栅 ,作者可以计算出目标的中心点 的位置,如图2 所示。


将这个过程应用到选定的目标 ,作者得到一个用于平面估计过程的 3D 目标点集 。在最后一次迭代中,将这个过程应用到所有目标 ,作者得到最终的所有 3D 目标点集

Plane Estimation

3图:物体的2D平面侧面视图。黑色部分显示所有物体共用的部分,而蓝色部分显示该物体独有的组件(i)。绿色部分显示用于计算的推导点、角等。

被拟合到平面,其中是平面法向单位向量,是z轴和平面的交点。

最后,使用平面得到平面的角度。如果是一个单位向量,那么可以通过以下公式获得:

请注意,在3D中估计平面至少需要三个点。如果帧中的物体太少(即的点数小于3\),那么作者从上一帧保留平面(即

Error Calculation

作者的目标是通过找到最小化误差

的抬升角 



作者将最终的误差

作为三个误差项的加权和:


作者使用Nelder-Mead 优化算法 [37],以误差

作为最小化目标来寻找最优角度。优化过程在
小于收敛阈值
时停止。

最终产物是最优抬升角

Angle Smoothing

为了使深度估计和角度假设随着时间平滑,作者使用加权移动平均平滑,窗宽为

利用平滑后的角度为第t帧,重新计算所有点以获得第t帧的最后表示。

摄像头角度和物体深度生成的结果可能与实际值不准确;然而,只要角度和深度在视频中保持一致(即时间平滑),作者的方法不需要它们准确。

4 Angle- and Depth-aware MOT

开始讲述四角和深度感知的运动目标(MOT)的第四部分。

Tracking in 3D Camera Coordinates

许多运动目标(MOT)方法[4, 52, 61]使用卡尔曼滤波器预测物体的位置,并将其与检测到的物体位置进行调整。在跟踪过程中使用的卡尔曼滤波器的状态空间通常包括位置(x,y),长宽比(a),高度(h),以及它们的速度(dx, dy, da, dh)[24]。作者将逆深度项1 / z添加到状态空间中,这给出了状态向量(xi, yi, 1 / zi, ai, dxi, dyi, dhi)[24]。这些值(xi, yi, zi)来自于第3.5节的3D质心点Pi。

为了考虑深度变化,作者根据深度[24]对高斯噪声进行缩放,结果得到一个恒定速度模型。

为了考虑相机运动,作者跟随[3, 24]的方法,通过图像注册和Enhanced Correlation Coefficient (ECC)最大值引入[17]的方式应用相机运动补偿(CMC)。

Track Association

为考虑摄像机的仰角,作者对相似度矩阵 进行了修改,基于距离置信度[63]。将摄像机仰角因子 添加到 y 轴项()的原公式中。改进后的相似度测度定义为:


其中 分别表示检测和跟踪, 是原相似度测度(2D IoU), 是修改后的相似度测度(DIoU与角度)。

低仰角会导致 具有较大的值,而 具有较小的值,当两个物体分别位于彼此的顶部或底部时,会降低两个物体之间的相似度。这会不利于在图像的垂直方向上进行搜索,因为当摄像机位于地面时,物体通常不会在垂直方向上移动。在高仰角情况下,物体在垂直轴上有更大的运动自由度, 的影响更小,公式 13 退化为正常的 DIoU 相似度。

得到的结果相似度矩阵 包括摄像机仰角信息,并用于目标关联步骤。

Assumptions and Limitations

CAMOT也依赖于第3.2节中提出的假设。特别是,在3D坐标下的跟踪中,作者假设相机的焦距是已知的(假设1)。在实际应用中,可以通过校准相机来满足这个假设。然而,在互联网上找到的大多数视频(例如YouTube等),包括MOT评估数据集中的视频,不包括相机的内参。因此,作者在训练集中调整的值,并选择一个最适合作者的数据集的单一值。作者观察到的值可以充分适用于典型的视频序列。

另一个重要假设是,摄像机角度(因而深度估计)的变化是时间的平滑的(假设4)。如前所述,只要值保持一致,即使它们不准确,作者的方法也可以正常工作。

此外,CAMOT在当前帧中检测到更多物体时受益,因为平面估计会更为稳定。然而,如第3.6节所述,CAMOT在帧中的任何时刻都必须至少存在三个物体。

尽管这些假设和限制在现实生活中可能并不总是成立,但作者的实证结果表明,作者的方法适用于各种情况。

5 Experiments

Experiment Setup

实现细节:作者在PyTorch [38]中实现作者提出的方法,并在具有8个NVIDIA特斯拉A100 GPU系统的系统上执行所有实验。作者使用ByteTrack [61]作为基准,并在其顶部构建作者的方法。大多数用于跟踪的超参数保持不变,检测阈值分别保持为。丢失的tracklets在30帧后被丢弃。

对于目标检测,作者使用了在COCO上预训练的YOLOX-x [21]。该模型在MOT17,MOT20,CrowdHuman,Cityperson和ETHZ上以80个epoch训练,batch大小为48。作者使用SGD作为优化器,权重衰减为,动量因子为。初始学习率为,经过一个epoch的warm-up和一个cosine annealing计划。

对于角度估计,作者排除了所有具有界限框部分超出图像框的目标。作者设置。对于被剪裁在顶部或底部的目标,作者使用3.2中定义的3D目标高度来推理剪裁侧相对于可见侧。对于被剪裁在左侧或右侧的目标,作者使用平均宽高比来推理剪裁边界框点。作者实际设置初始输入角度,错误权重,收敛阈值

遵循[21],在单个GPU上使用FP16精度[34]和batch大小为1进行测速。作者使用运行AMD EPYC 7702 1.5GHz的机器和256GiB RAM以及一个NVIDIA A100 GPU。

Results

基准。表1和表2在MOT17 [35]和MOT20 [14]的测试集上,分别比较了作者的跟踪器与其他主流MOT方法的表现。由于检测质量显著影响整体跟踪性能,为了进行公平的比较,下方的 block 中的方法使用与 YOLOX [21] 生成的相同检测,YOLOX 在 MOT17 和 MOT20 数据集上的权重由 ByteTrack [61] 和 OC-SORT [11] 分别提供。作者也列出了上方的 block 中的方法作为参考,这些方法可能与作者使用的检测效果更好或更差。

作者的方法在 HOTA、MOTA 和 IDF1 方面均超过了所有以前的方法,而在 FP、FN 和 IDSw 上略显逊色。在 MOT17 上,作者的方法与其他使用相同检测的方法相比,身份切换(IDSw)错误最小;而在 MOT20 上,作者紧随第二。作者的方法优于原始 ByteTrack [61] Baseline ,并总体上优于所有其他方法。

与基准(ByteTrack [61])相比,作者得到了更少的 #FP 和 #IDSw,但引入了更多的 #FN。作者采用的三维跟踪方法导致轨迹分离更好,从而使有效的检测-跟踪对候选项数量更少。

推理速度。 作者还展示了作者的方法可以在不影响推理速度的情况下实时运行。如表3所示,尽管融合角度和三维点估计会对速度产生轻微影响,但影响不大。性能改进的优势超过了任何适度的速度降低。

Ablation Studies

组件分析。 表4显示了使用MOT17数据集进行的消融研究结果。作者测试了四个变量:是否在整个视频中执行角估计(Var(\theta));是否在卡尔曼滤波器中使用深度预测(DF);是否执行相机角感知关联(AA);以及是否使用相机运动补偿(CMC)。结果表明,每个组件都能提高跟踪性能。此外,作者观察到CMC显著提高了性能,可能是由于MOT17数据集中具有大量移动相机序列。

逐序列分析。 为了研究相机角对跟踪性能的影响,根据第一帧的相机角,作者将MOT17验证集分为低角()和高角()序列。结果见表5。

在低角场景中,3D相机坐标下的跟踪和相机角感知关联对跟踪性能有显著影响。通过在3D相机坐标下运行跟踪器,可以更好地了解物体轨迹,减少身份切换,提高准确性,尤其是在遮挡情况下。相机角感知关联进一步通过根据当前相机角抑制不合理的轨迹关联过程,来增强跟踪过程。

随着相机角的增大,相机角感知关联模块的影响减弱,但3D相机坐标下的跟踪仍然在较高角度场景中具有高度有效性。较高的相机角可以减少前文中物体在背景中造成的遮挡和透视失真,从而提供更广泛的视野和更好的可见性。

使用深度估计器进行跟踪。 作者还尝试用一些现成的单目深度估计器替换作者提出的基于框的深度估计方法来评估其作为跟踪组件的性能。

作者认为,单目深度估计器在处理拥挤场景时的当前限制源于训练数据的兼容性。这些深度估计器通常针对自动驾驶数据集进行训练,该数据集主要由地面摄像头视角捕捉的车辆和行人组成。因此,在处理具有密集行人的高角度场景时,它们的有效性较差。利用一种针对高角度行人和正确3D标记的更适用的数据集上训练的深度估计器可能会改进性能。

多种运动跟踪方法的应用 为了评估作者的角估计方法的多样性,作者将它应用于几种最先进的状态跟踪方法,包括JDE [50],FairMOT [62],CenterTrack [64],和OC-SORT [11]。作者使用每个跟踪器产生的目标检测,并将其应用于卡尔曼滤波器更新步骤中估计相机的相对三维坐标。作者还进行了类似于作者方法的角度感知的关联,同时保持其他设置相同,如训练数据集和超参数等。

表7显示了修改后的跟踪器在MOT17验证集上的评估结果。结果表明,添加角估计和3D建模提高了每种方法跟踪性能。这些结果证明了作者的方法与现有跟踪器的集成潜力。

6 Conclusion

本文介绍了CAMOT,一种用于运动目标跟踪的角度估计算法。通过估计相机角,跟踪器采用一种启发式方法自适应地根据物体相对于相机的视角畸变调整跟踪行为。

此外,计算出的物体深度还能实现伪3D运动目标跟踪。将CAMOT应用于其他2D运动目标跟踪器,在MOT17和MOT20数据集上的评估结果表明,相较于现有方法,CAMOT能够提供性能提升,并实现最先进的结果。

同时,CAMOT在计算效率上也优于用于跟踪的基于深度学习的单目深度估计器。

目前,CAMOT在估算相机角时仅使用单帧作为输入。作者未来的工作将致力于使用多帧以提高稳定性。作者对中国本科生数学建模竞赛2022

参考

[1].CAMOT: Camera Angle-aware Multi-Object Tracking.

扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称



点击下方“阅读原文”,
了解更多AI学习路上的「武功秘籍」


集智书童
书童带你领略视觉前沿之美,精选科研前沿、工业实用的知识供你我进步与学习!
 最新文章