
# 基于RGB-D数据的群组内人员跟踪

Matteo Munaro、Filippo Basso 和 Emanuele Menegatti

信息工程系

帕多瓦大学

35131——意大利帕多瓦

{matteo.munaro, filippo.basso, emg}@dei.unipd.it

摘要——本文提出了一种适用于搭载RGB-D传感器的移动平台的快速鲁棒多人跟踪算法。我们的方法特点在于采用了一种新颖的基于深度的子聚类方法，该方法专为检测群组内或靠近背景的人员设计，同时采用三项联合似然来限制跟踪漂移和ID交换。此外，本文还提出了一种在线学习的外观分类器，该分类器能够鲁棒地针对单轨迹进行专门化学习，同时将其他检测结果作为负样本。

我们使用移动机器人在室内环境采集的数据，以及由三个RGB-D传感器采集的公开数据集进行了测试，并使用CLEAR MOT指标对结果进行了评估。在我们基于分布式ROS的CPU实现中，本方法达到了接近当前最优的性能和非常高的帧率。

## 1. 引言与相关工作

人员检测与跟踪是在人口稠密环境中运行的移动机器人的核心能力。根据自身任务，这类机器人必须能够将人员与其他障碍物区分开，预测人员未来位置，并以符合人类感知的方式规划自身运动。

目前已有大量关于仅使用RGB相机（9, [^27], [^6]）或仅使用3D传感器（[^20], [^25], [^26], [^7], [^21]）进行人员检测与跟踪的研究。然而，针对移动机器人应用，对鲁棒性和实时性的需求通常促使研究人员通过结合外观和深度信息来解决这些问题。在[^3]中，作者同时使用PTZ相机和激光测距仪，来融合人脸检测器和腿部检测器的观测结果，而在[^18]中，作者提出了一种概率聚合方案，用于融合来自全向相机、激光测距仪和声纳系统的数据。Ess等人[^10], [^11]描述了一种基于多假设框架的检测跟踪方法，用于利用同步相机对获取的数据在拥挤环境中跟踪多人。立体相机对提供的深度估计让他们能够在挑战性场景中取得良好结果，但他们的算法只有在不计入人员检测算法耗时（该算法处理每张图像需要30秒）的情况下才能达到实时性能。立体相机目前仍在机器人领域得到广泛使用（[^1], [^23]），但生成视差图所需的计算量始终会对可实现的最高帧率造成限制，因此留给后续算法的运行空间很小。

![Image](images/14e49d25f3cd0a44595cd00c6bebac8235bcd213bdd102bd9f10b6c5ab94cb3d.jpg)

<div style="text-align: center;">Fig. 1. Example of our system output: (left) a 3D bounding box is drawn for every tracked person on the RGB image, (right) the corresponding 3D point cloud is reported, together with people trajectories.</div>

与跟踪模块串行运行，或是需要GPU实现[^2]。

随着可靠且价格亲民的RGB-D传感器问世，机器人能力有望得到快速提升。例如，微软Kinect传感器能够原生采集分辨率（640×480像素）和帧率（30帧每秒）都表现良好的RGB信息与深度信息。尽管深度估计在距离超过8米后精度会变得非常差，且该技术无法在户外使用（因为阳光会改变传感器投射的红外图案），但它仍然是信息非常丰富的来源，可简便地应用于移动平台。近年来，三星也研发出了能够同时采集彩色和距离图像的CMOS传感器[^15]，为RGB-D传感器的进一步普及铺平了道路。

[^24]提出了一种针对RGB-D数据的人体检测算法，该算法结合使用了HOG描述子和HOD描述子。但该算法需要对整帧图像进行密集扫描来搜索人体，因此需要GPU实现才能实时运行。[^8]同样依赖基于GPU的密集目标检测，而[^19]则研究了如何通过基于深度的ROI跟踪来减少人体检测器的调用次数。但该方法得到的ROI仍然需要基于GPU的人体检测器进行密集扫描。

[^17]提出了一种面向RGB-D数据的跟踪算法，该算法采用了[^24]中描述的多线索人体检测方法。它采用了可在线学习单个目标模型的检测器，以及多假设决策框架。该文献并未给出该算法所需计算时间的相关信息，仅报告了从一台配备

---

三块RGB-D传感器的静态平台上采集的若干序列的结果。

本文针对静态或移动平台提出了一种基于RGB-D数据的多人跟踪算法。通过假设人体在地面平面上运动，我们的方法仅需标准CPU实现，就能以每秒26帧的中等帧率稳定地对多人进行跟踪。本文的主要贡献如下：一是提出了3D子聚类方法，可高效检测彼此距离极近、或是与背景距离极近的人体；二是提出了用于限制跟踪漂移和ID切换的三项联合似然；三是提出了可在线学习的外观分类器，该分类器能鲁棒地针对单条轨迹进行特化训练，同时将其他检测结果作为负样本使用。

本文剩余部分的结构安排如下：第二节概述了我们系统的两个主要模块。第三节介绍检测阶段，第四节详细说明跟踪流程，第五节描述本文开展的测试，并报告采用CLEAR MOT指标评估得到的结果。第六节总结全文并展望未来工作。

### 二、系统概述

![Image](images/194e465b759ecca3a4edf7eba70a3296c0811427e8252d6fb937b257e193cb74.jpg)

本节简要概述我们人体跟踪系统的两个主要软件模块。如图2所示，RGB-D数据首先由检测模块处理：该模块对点云数据进行滤波，移除地面点，并对剩余点执行3D聚类。接下来，我们对得到的聚类的RGB图像应用基于HOG的人体检测算法，仅保留更可能属于人体类别的聚类。最终输出的一组检测结果会被送入跟踪模块。

<div style="text-align: center;">Fig. 2. Block diagram describing input/output data and the main operations performed by our detection and tracking modules.</div>

我们的跟踪算法将检测-轨迹关联建模为一个由运动、颜色外观和人体检测置信度三项组成的联合似然最大化问题。为了评估颜色外观，我们为每个目标在线训练一个行人分类器，使用从目标颜色直方图中提取的特征，并将图像内的其他检测结果也选作负样本。当未找到与现有轨迹的匹配关联时，我们还利用HOG置信度来鲁棒地初始化新轨迹。

### III. 检测

### A. 体素网格滤波

体素网格滤波是对RGB-D点云进行智能下采样的方法。在每一帧，空间被划分为一组体素（即三维像素），每个体素内的所有点都用其质心坐标来近似。默认情况下，我们将体素大小设置为0.06米。该参数可以将我们RGB-D传感器采集的点云缩小一个数量级，从而实现优异的实时性能，同时保留足够的数据完成跟踪流程。此外，该操作还有助于获得密度近似恒定的点云，点云密度不再依赖于点到传感器的距离。在这种条件下，一个聚类包含的点数直接与其实际大小相关。例如，在图3中，我们对比了微软Kinect RGB-D传感器得到的原始点云和体素大小设为0.06米时体素网格滤波的输出结果。

![Image](images/c926a15a4349add06df6b475316e1923ee6df9933d1fd8b899fefca64df85a15.jpg)

<div style="text-align: center;">(a) Raw Kinect point cloud.</div>

![Image](images/86929cc53a03cd3dd17a590c511a630226060c62c08ff351aee6f8b8ffe684b7.jpg)

<div style="text-align: center;">(b) After voxel grid filtering.</div>

<div style="text-align: center;">Fig. 3. The effect of the voxel grid filter on Kinect 3D data.</div>

### B. 人群子聚类

由于我们假设行人行走在地平面上，因此我们的算法从体素网格滤波得到的点云中估计并移除该平面。我们使用基于RANSAC的最小二乘法计算平面系数，移除距离阈值范围内的所有内点。我们将上一帧的估计结果作为初始条件，逐帧更新地平面方程，从而能够实时适应地面坡度的微小变化，或是机器人运动通常引发的相机抖动。

完成该操作后，不同聚类不再通过地面相连，因此我们可以基于欧氏距离对相邻三维点进行标记，得到各个独立聚类。但该流程会产生两个典型问题：(i) 由于遮挡或部分深度数据缺失，同一个人的点可能被分割为多个聚类；(ii) 多个人因为距离过近或相互接触会被合并到同一个聚类中，或是出于同样原因，一个人会和墙、桌子这类背景聚类到一起。

为了解决问题(i)，在完成欧氏聚类后，我们合并地平面上距离极近的聚类

---

平面坐标 $^{1}$，这样每个行人大概率只会属于一个聚类。对于问题(ii)，当多个人被合并到同一个聚类中时，检测个体最可靠的方法就是检测头部，因为行人和头部是一一对应的关系，且头部是人体最不容易被遮挡的身体部位。此外，头部通常是人体位置最高的部位。基于这些考虑，我们实现了如下算法：该算法从三维点聚类中检测头部，并根据头部位置将原聚类分割为多个子聚类：

1) 对每个聚类，沿对应图像x轴的方向创建高度图 $^{2}$；

2）在高度图中搜索局部最大值；

5）舍弃点数过少或高度不足的子簇。

3）仅保留地平面坐标中距离大于阈值距离的极大值，因为人头间距通常不会小于亲密距离[^14]，该距离一般为0.3米；

4）为每个剩余的极大值创建一个子簇，并将地平面坐标中距离小于亲密距离的点关联到该子簇；

针对得到的子簇，我们计算其HOG置信度，也就是将HOG行人检测器[^9]应用于RGB图像中对应于该簇理论边界框的区域，这个理论边界框就是应当包含从头部到地面完整行人的框。值得注意的是，与直接将HOG检测器应用于簇边界框相比，该流程能够得到更可靠的HOG置信度，即使在行人被遮挡的情况下也是如此。对于行人检测器，我们使用了Dollár实现的HOG $^{3}$，并采用了Dalal和Triggs [^9]中描述的相同流程与参数来训练检测器，因此在精确率/召回率指标上获得了相近的性能。

在图4中，我们给出了一个由八位距离极近的行人组成的簇的子聚类示例。具体而言，我们展示了：(a) 从原始簇得到的高度图（显示为黑白图像）、作为高度图上方白点的头部位置最终估计结果、用不同颜色区分的簇到子簇的分割结果，以及(b) 行人检测器在整幅图像上的最终输出。图5展示了一个示例，说明我们的子聚类方法如何正确检测出原本会与背景合并的行人。

### IV. 跟踪

跟踪模块接收来自一个或多个检测模块的检测结果作为输入，将数据关联问题求解为联合似然度的最大化问题，该联合似然度编码了地平面运动、颜色外观以及属于行人的概率。

![Image](images/800e57ba3f3d309023210f69ca89a7404ba0cfc77231ba2e1b500def557777d7.jpg)

<div style="text-align: center;">(a) Height map and segmentation.</div>

![Image](images/efd333aeccc2bd6b7c71518c9ba6ade8316c82394f13f2e24263cf6517103f60.jpg)

<div style="text-align: center;">(b) People detection output.</div>

<div style="text-align: center;">Fig. 4. Sub-clustering of a cluster containing eight people standing very close to each other.</div>

![Image](images/26a36019cdd0a2f25cfdcd0ec58a22be82e5bede7e5b795667ab7a83366aa0ff.jpg)

<div style="text-align: center;">(a)</div>

<div style="text-align: center;">(b)</div>

![Image](images/661c26735a587d885f0b37ec981cbc1a86c8b6d53e29780b4859153338b854d6.jpg)

<div style="text-align: center;">(c)</div>

<div style="text-align: center;">Fig. 5. Example of how the sub-clustering method allows to correctly detect a person otherwise merged with the background. a) Height maps, b) detector output, c) tracker output.</div>

### A. 用于学习颜色外观的在线分类器

对于每个已初始化的跟踪轨迹，我们维护一个基于Adaboost的在线分类器，与[^13]或[^17]中使用的分类器类似。但这两种方法使用直接在RGB（或深度）图像上计算得到的特征，与之不同的是，我们在目标的颜色直方图中计算特征，步骤如下：

1）我们计算与跟踪轨迹关联的当前检测对应点的RGB颜色直方图；

2）我们在直方图内选取一组随机的坐标轴平行平行六面体（每个弱分类器对应一个）。特征值由落入给定平行六面体内的直方图元素之和给出。

采用该方法，仅需计算一次颜色直方图即可完成所有特征计算。在图6中，我们展示了图1中三位行人在初始化时（第一行）和150帧之后（第二行）权重最高的三个特征（即RGB颜色空间中的平行六面体）。可以很容易看出，150帧之后权重最高的特征高度反映了目标的真实颜色。

在训练阶段，我们将目标的颜色直方图用作正样本，但我们并不像[^13]中那样仅从图像的随机选取窗口中挑选负样本，我们还将在未关联到当前轨迹的检测结果上计算得到的直方图也视为负样本。该方法的优势在于仅挑选能够真正表征目标、并将目标与其他所有目标区分开的颜色。图7清晰展示了该方法如何增大正确轨迹与其他轨迹之间的置信度距离。

---

![Image](images/0dfe598a1c67bf9c89a89cd0957352d0485970100965c84aa0e92c25f4f8d253.jpg)

<div style="text-align: center;">Fig. 6. From left to right: visualization of the features selected by Adaboost at the first frame (first row) and after 150 frames (second row) for the three people of Fig. 1.</div>

![Image](images/5a4634a719d521711e2e9d6f2723fb70c311bdb31fd07c5182e2b031ede4ca30.jpg)

<div style="text-align: center;">(a) Random windows.</div>

![Image](images/539796642656a4b61e0bcb72fd78f12c930c7b656b18093a9812e8a64ca80c57.jpg)

<div style="text-align: center;">(b) Other detections and random windows.</div>

<div style="text-align: center;">Fig. 7. Confidence obtained by applying to the three people of Fig. 1 the color classifier trained on one of them (Track 1) for two different methods of choosing the negative examples.</div>

### B. 三项联合似然

为完成数据关联，我们采用全局最近邻方法（使用Munkres算法求解），该方法记载于[^16]和[^3]中。我们的代价矩阵由每一组目标-检测对的三项联合似然计算得到。

作为运动项，我们根据轨迹的预测状态，计算检测位置和估计速度的马氏距离。由于该距离服从卡方分布，我们利用该分布为可能的关联定义门控函数。

我们使用无迹卡尔曼滤波预测人体在地面平面两个坐标轴上的位置和速度$(x, y)$，因为它的预测能力接近粒子滤波，但计算开销仅比扩展卡尔曼滤波略高[^3]。我们选择恒定速度模型作为人体运动模型，因为正如[^3]中所述，该模型能够很好地处理完全遮挡情况。

为了对人体外观建模，我们额外增加了两个项：

1) 颜色似然：当不同人体彼此靠近，或人体靠近背景时，该项可帮助区分不同人体。颜色似然由为每条轨迹在线学习得到的颜色分类器提供；

2) 检测器似然：当墙面或背景物体的颜色与目标颜色相似时，该项可帮助将轨迹保持在人体上，避免轨迹漂移到墙面或背景物体上。我们使用HOG检测器得到的置信度作为该似然。

针对每一条轨迹i和每一个检测j，需要最大化的联合似然如下：

 $$ \begin{array}{r}{L_{T O T}^{i,j}=L_{m o t i o n}^{i,j}\cdot L_{c o l o r}^{i,j}\cdot L_{d e t e c t o r}^{j}.}\end{array} $$

为了简化代数运算，我们实际上会最小化对数似然

 $$ l_{T O T}^{i,j}=-l o g\left(L_{T O T}^{i,j}\right)=\gamma\cdot D_{M}^{i,j}+\alpha\cdot c_{o n l i n e}^{i,j}+\beta\cdot c_{H O G}^{j}, $$

其中$D_{M}^{i,j}$是轨迹i与检测j之间的马氏距离，$c_{online}^{i,j}$是轨迹i的在线分类器使用检测j的直方图计算得到的置信度，$c_{HOG}^{j}$是检测j的HOG置信度。

如果存在未关联的检测，其HOG置信度高于安全阈值，则创建新轨迹。

### V. 实验

A. 移动机器人室内追踪

![Image](images/1cf83429c17dbde310d2246def008d927e1f0ba28b75f1cdca9560994719e5b0.jpg)

<div style="text-align: center;">Fig. 8. The mobile platform we used for the experiments. Note that for this work we only exploit RGB-D data from a Microsoft Kinect sensor and do not make use of other sensors such as Laser Range Finder or sonars.</div>

本文展示了我们的追踪系统在RGB-D视频序列上得到的部分实验结果，这些序列是在室内环境使用图8所示的移动机器人采集得到的。该机器人基于Pioneer P3-AT平台，搭载微软Kinect传感器，该传感器配备标准RGB相机、红外相机和红外投影仪。这套低成本硬件能够以每秒30帧的速度输出分辨率为640×480像素的RGB-D数据。为了提升处理速度，我们在本次测试中以降低后的分辨率（即160×120像素）采集深度数据。值得指出的是，由于我们为所应用的体素网格滤波器选择了合适的体素尺寸，该分辨率选择不会影响我们系统可达到的精度。

我们在机器人沿单一方向移动的过程中，针对难度递增的三种不同场景开展了测试：

1) 场景中无障碍物，人员沿简单（线性）轨迹移动；

2) 场景中无障碍物，人员沿复杂轨迹移动并相互交互；

3) 场景中存在障碍物（椅子、一块白板），人员沿复杂轨迹移动并相互交互。

---

每个视频序列约包含750帧，因此整个测试集共包含4671帧、12272个行人实例和26条轨迹，所有内容均已在RGB图像上完成人工标注，构成真值基准。行人之间的最小距离为0.2米，行人与物体之间的最小距离为0.05米。

为了评估跟踪性能，我们采用了CLEAR MOT指标[^4]，该指标包含两个评价指数：MOTP和MOTA。MOTP指标衡量行人位置估计的精确程度，MOTA指数则反映了跟踪算法在漏检、误检和匹配错误方面的总错误量。特别需要说明的是，由于我们的真值基准并非所有行人的实际空间坐标，而是他们在图像内的位置，因此我们将验证阈值设为0.5，把MOTP指数计算为真值与跟踪结果关联对的平均PASCAL指数[^12]（即边界框的交并比）。我们通过以下公式计算MOTA指数

 $$ MOTA=1-\frac{\sum_{t}\left(f n_{t}+f p_{t}+I D_{t}^{s w}\right)}{\sum_{t}g_{t}} $$

式中，$fn_t$是跟踪器未检测到的（每帧）真值行人实例数量，$fp_t$是输出轨迹中与真值无对应关系的实例数量，$ID_t^{sw}$表示同一行人的轨迹随时间发生ID切换的次数，$g_t$是所有帧中真值实例的总数量。

我们在表I中列出了每个测试序列对应的MOTP指数、MOTA指数、误检百分比、漏检百分比以及ID切换次数。本次测试的结果非常优异：仅有的ID切换均由行人被他人遮挡时改变运动方向，或是行人移出相机视场所导致。图9展示了我们测试集中若干正确跟踪帧的示例。不同ID用不同颜色表示：如果算法估计行人完全可见，边界框用粗线绘制；如果判定行人被遮挡，则用细线绘制。

2011年11月16日至19日，我们在米兰举办的2011年意大利机器人展览会Robotica 2011上，测试了我们的跟踪系统在拥挤环境下的实时性能。我们的机器人仅依靠跟踪算法提供的数据，就成功实现了群体内行人的检测与跟踪，以及在拥挤环境下对特定目标行人的跟随。图10展示了展会期间采集的部分图像。

### B. 基于RGB-D People Dataset的测试

为了与其他现有顶尖算法进行对比，我们使用RGB-D People Dataset $^{4}$（[^24]，[^17]）测试了我们的跟踪系统，该数据集包含约4500帧RGB-D数据，由三台垂直安装的Kinect采集得到。

<div style="text-align: center;">TABLE I</div>

<div style="text-align: center;">TRACKING RESULTS FOR TESTS WITH A MOVING ROBOT.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>MOTP</td><td style='text-align: center; word-wrap: break-word;'>MOTA</td><td style='text-align: center; word-wrap: break-word;'>FP</td><td style='text-align: center; word-wrap: break-word;'>FN</td><td style='text-align: center; word-wrap: break-word;'>ID Sw.</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Simple traj.</td><td style='text-align: center; word-wrap: break-word;'>82.2%</td><td style='text-align: center; word-wrap: break-word;'>95.8%</td><td style='text-align: center; word-wrap: break-word;'>2.5%</td><td style='text-align: center; word-wrap: break-word;'>1.6%</td><td style='text-align: center; word-wrap: break-word;'>3</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Complex traj.</td><td style='text-align: center; word-wrap: break-word;'>83.5%</td><td style='text-align: center; word-wrap: break-word;'>90.9%</td><td style='text-align: center; word-wrap: break-word;'>4.7%</td><td style='text-align: center; word-wrap: break-word;'>4.4%</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>With obstacles</td><td style='text-align: center; word-wrap: break-word;'>83.3%</td><td style='text-align: center; word-wrap: break-word;'>94.3%</td><td style='text-align: center; word-wrap: break-word;'>4.7%</td><td style='text-align: center; word-wrap: break-word;'>0.9%</td><td style='text-align: center; word-wrap: break-word;'>3</td></tr></table>

<div style="text-align: center;">TABLE II</div>

<div style="text-align: center;">TRACKING EVALUATION WITH RGB-D PEOPLE DATASET.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>MOTP</td><td style='text-align: center; word-wrap: break-word;'>MOTA</td><td style='text-align: center; word-wrap: break-word;'>FP</td><td style='text-align: center; word-wrap: break-word;'>FN</td><td style='text-align: center; word-wrap: break-word;'>ID Sw.</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Ours</td><td style='text-align: center; word-wrap: break-word;'>73.7%</td><td style='text-align: center; word-wrap: break-word;'>71.8%</td><td style='text-align: center; word-wrap: break-word;'>7.7%</td><td style='text-align: center; word-wrap: break-word;'>20.0%</td><td style='text-align: center; word-wrap: break-word;'>19</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>[^17]</td><td style='text-align: center; word-wrap: break-word;'>N/A</td><td style='text-align: center; word-wrap: break-word;'>78%</td><td style='text-align: center; word-wrap: break-word;'>4.5%</td><td style='text-align: center; word-wrap: break-word;'>16.8%</td><td style='text-align: center; word-wrap: break-word;'>32</td></tr></table>

传感器。尽管数据集网页未提供各传感器之间的精确位置，我们推断其位置如图11所示。本次测试中，我们使用了三个独立的行人检测模块（每个Kinect对应一个），随后在跟踪阶段对检测结果进行了融合。

![Image](images/6e1d4da2363045bed022ea470a9174c73f19180b871d78dea51723b1fb2ccc37.jpg)

<div style="text-align: center;">Fig. 11. Sensory setup configuration for the RGB-D People Dataset.</div>

在表II中，我们给出了默认系统的结果，并与[^17]中得到的结果进行对比。包含我们跟踪结果的视频可通过此链接获取：<http://youtu.be/b70vLKFSriM>，图12从俯视图展示了所有估计得到的轨迹。我们的MOTA指标为71.8%，而[^17]的结果为78%，但我们得到的ID切换次数显著更低（19次，对比原结果的32次）。此外，以下几点必须

![Image](images/106a76d14af605ba3384ae659fac2072a708b331375427c341784369d0ed2121.jpg)

<div style="text-align: center;">Fig. 12. Top view of the resulting estimated trajectories for the RGB-D People Dataset.</div>

予以考虑：

- 该数据集中有10%的行人样本出现在楼梯上，而跟踪不在地平面行走的行人超出了我们的研究范围。因此值得注意的是，我们一半的假阴性都来自这些行人；

---

![Image](images/cc4ed2b5156e0170db763f11eaad33b05629809f24578c093eba4c00c91da4f6.jpg)

<div style="text-align: center;">Fig. 9. Tracking output on some frames extracted from our test set collected from a moving robot.</div>

![Image](images/11eec0be7963616e4c2660363ce8b6c7d6d1b083dfa34f89f08e8e8a412f5cfa.jpg)

<div style="text-align: center;">Fig. 10. Examples of tracking results from our mobile robot moving in a crowded environment.</div>

- 在数据集提供的标注中，部分可见的行人也未被标注；此外，当行人同时出现在两张图像中时，仅在其中一张被标注。然而，我们的算法能够在行人可见的每一张图像中正确检测出行人。这类标注错误的示例如图13所示。实际上，我们90%的假阳性都源于这些标注错误，而非错误轨迹。如果不存在这些错误，FP和MOTA值将分别为0.7%和78.9%；

- 我们一半的ID切换是因为轨迹初始速度估计较差，导致轨迹刚创建就被重新初始化。如果我们在计算运动似然度的马氏距离中不使用速度项，ID切换次数会降至9次，同时得到的MOTA为70.5%。

![Image](images/f80eeac80d8281b9a2d4909de69dfa0c7904fb1911a6a4097046517f456a7d61.jpg)

<div style="text-align: center;">(a) Track 1</div>

![Image](images/f75da7de2e4436adf5ea67635a93d2050741373afe2a03b479ff2fe84df3d18e.jpg)

<div style="text-align: center;">(b) Track 16</div>

<div style="text-align: center;">Fig. 13. Examples of people missing in the ground truth (first row) while detected by our algorithm (second row).</div>

考虑到上述问题，若经过恰当评估，我们的跟踪算法似乎可以达到当前最优性能。

如果不使用第三节B部分描述的子聚类方法，MOTA指标会下降10%，ID切换次数增加17次。图14展示了不使用子聚类技术时，多个行人被合并检测的两个示例。

![Image](images/3e1d5b9749ca1b691ce0a19c6870fe9a3af850367f64306e23668cb1240a3dee.jpg)

<div style="text-align: center;">(a)</div>

![Image](images/d6ea031a1d0062a0c5d05777c467af5a6c5cf477729086b999b1333cd16be631.jpg)

<div style="text-align: center;">(b)</div>

<div style="text-align: center;">Fig. 14. Examples of people merged together when not using the sub-clustering method for the RGB-D People Dataset.</div>

对于这个特定数据集，在线分类器并没有太大作用，因为大多数行人穿着相近颜色，且Kinect的自动亮度功能导致不同图像之间的亮度发生大幅突变。

### C. 运行时性能

整个系统在ROS（机器人操作系统）$^{5}$中采用C++实现，使用了针对二维计算机视觉[^5]、三维点云处理[^22]和贝叶斯估计$^{6}$的高度优化库。我们的实现

---

<div style="text-align: center;">TABLE III</div>

<div style="text-align: center;">FRAME RATES FOR PROCESSING ONE KINECT STREAM (FPS).</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>CPU</td><td style='text-align: center; word-wrap: break-word;'>Detector</td><td style='text-align: center; word-wrap: break-word;'>Detector+Tracker</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Intel Xeon E31225 3.10GHz</td><td style='text-align: center; word-wrap: break-word;'>28</td><td style='text-align: center; word-wrap: break-word;'>26</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Intel i5-520M 2.40 GHz</td><td style='text-align: center; word-wrap: break-word;'>23</td><td style='text-align: center; word-wrap: break-word;'>19</td></tr></table>

不依赖GPU处理，因此可在计算资源有限的机器人上使用。

在表III中，我们报告了使用测试所用的两台计算机分别对检测算法和我们的完整系统（检测+跟踪）测得的帧率：一台是搭载Intel Xeon E31225 3.10GHz处理器的工作站，另一台是搭载Intel i5-520M 2.40GHz处理器的笔记本电脑$^7$。这些帧率是使用Kinect QQVGA深度分辨率获得的，使用Kinect VGA分辨率时帧率会有所变化。我们的实现利用了ROS的多线程能力，明确设计用于实时运行，可正确处理来自多传感器的数据、延迟和丢帧问题。这些结果表明，机器人可在同一台计算机上同时运行人体跟踪和导航、自定位等其他任务。作为进一步测试，我们让系统实时处理RGB-D人体数据集的3×30Hz码流。即使仅能处理32%的图像（68%的帧丢失），系统仍获得了良好的结果，针对这些图像计算得到的MOTA指标为69.3%，共发生24次ID切换。

### 六、结论与未来工作

本文提出了一种快速且鲁棒的多人跟踪算法，适用于搭载RGB-D传感器的静态或移动平台。依托人体在地面平面移动的假设以及一种新型子聚类方法，即使人物彼此距离极近或靠近背景，该算法也能完成检测。在数据关联过程中采用三项联合似然来抑制漂移和ID切换，同时提出了一种在线学习的外观分类器，该分类器可针对单个轨迹稳健地进行特征适配，并将其他检测结果用作负例。

我们分别使用移动机器人在室内环境采集的数据，以及由三台RGB-D传感器采集的公开数据集开展了测试。我们的方法取得了接近当前最优水平的性能，且我们的ROS实现经测试可在标准计算机上以26fps的速率进行人体跟踪。

在未来工作中，我们计划改进轨迹速度估计，以避免部分ID切换问题。此外，由于我们的跟踪模块专为融合多个分布式检测模块的数据设计，我们还计划使用来自RGB-D相机网络或机器人团队的数据对该方法进行测试。

## 参考文献

[^1]: M. Bajracharya, B. Moghaddam, A. Howard, S. Brennan, and L. H. Matthies. A fast stereo-based system for detecting and tracking pedestrians from a moving vehicle. In International Journal of Robotics Research, volume 28, pages 1466–1485, 2009.

[^2]: M. Bansal, S. Jung, B. Matei, J. Eledath, and H. Sawhney. A real-time pedestrian detection system based on structure and appearance classification. In IEEE International Conference on Robotics and Automation (ICRA), pages 903–909. IEEE, 2010.

[^3]: N. Bellotto and H. Hu. Computationally efficient solutions for tracking people with a mobile robot: an experimental evaluation of bayesian filters. Auton. Robots, 28:425–438, May 2010.

[^5]: G. Bradski. The OpenCV Library. Dr. Dobb's Journal of Software Tools, 2000.

[^4]: K. Bernardin and R. Stiefelhagen. Evaluating multiple object tracking performance: the clear mot metrics. J. Image Video Process., 2008:1:1–1:10, January 2008.

[^6]: M. D. Breitenstein, F. Reichlin, B. Leibe, E. Koller-Meier, and L. V. Gool. Robust tracking-by-detection using a detector confidence particle filter. In International Conference on Computer Vision, 2009.

[^7]: A. Carballo, A. Ohya, and S. Yuta. People detection using range and intensity data from multi-layered laser range finders. In IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 5849–5854, 2010.

[^8]: W. Choi, C. Pantofaru, and S. Savarese. Detecting and tracking people using an rgb-d camera via multiple detector fusion. In IEEE ICCV Workshops, pages 1076–1083, 2011.

[^9]: N. Dalál and B. Triggs. Histograms of oriented gradients for human detection. In Computer Vision and Pattern Recognition, 2005., volume 1, pages 886–893, June 2005.

[^10]: A. Ess, B. Leibe, K. Schindler, and L. Van Gool. A mobile vision system for robust multi-person tracking. In IEEE Conference on Computer Vision and Pattern Recognition 2008., pages 1–8, 2008.

[^11]: A. Ess, B. Leibe, K. Schindler, and L. Van Gool. Moving obstacle detection in highly dynamic scenes. In Proc. of ICRA 2009, ICRA'09, pages 4451–4458, Piscataway, NJ, USA, 2009.

[^12]: M. Everingham, L. Gool, C. K. Williams, J. Winn, and A. Zisserman. The pascal visual object classes (voc) challenge. Int. J. Comput. Vision, 88:303–338, June 2010.

[^13]: H. Grabner and H. Bischof. On-line boosting and vision. In Proc. of the IEEE Conference on Computer Vision and Pattern Recognition, pages 260–267, Washington, DC, USA, 2006.

[^14]: E. Hall. The Hidden Dimension. 1966.

[^15]: W. Kim, W. Yibing, I. Ovsiannikov, S. Lee, Y. Park, C. Chung, and E. Fossum. A 1.5Mpixel RGBZ CMOS Image Sensor for Simultaneous Color and Range Image Capture. In IEEE International Solid-State Circuits Conference, San Francisco, USA, February 2012.

[^16]: P. Konstantinova, A. Udvarev, and T. Semerdjiev. A study of a target tracking algorithm using global nearest neighbor approach. In Proc. of the 4th international conference on Computer systems and technologies: e-Learning, pages 290–295, New York, USA, 2003.

[^17]: M. Luber, L. Spinello, and K. O. Arras. People tracking in rgb-d data with on-line boosted target models. In IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2011.

[^18]: C. Martin, E. Schaffernicht, A. Scheidig, and H.-M. Gross. Multimodal sensor fusion using a probabilistic aggregation scheme for people detection and tracking. Robotics and Autonomous Systems, 54(9):721–728, 2006.

[^19]: D. Mitzel and B. Leibe. Real-time multi-person tracking with detector assisted structure propagation. In IEEE International Conference on Computer Vision Workshops (ICCV Workshops). IEEE, 2011.

[^20]: O. Mozos, R. Kurazume, and T. Hasegawa. Multi-part people detection using 2d range data. Int. Journal of Social Robotics, 2:31–40, 2010.

[^21]: L. E. Navarro-Serment, C. Mertz, and M. Hebert. Pedestrian detection and tracking using three-dimensional ladar data. In FSR, pages 103–112, 2009.

[^22]: R. B. Rusu and S. Cousins. 3D is here: Point Cloud Library (PCL). In Proc. of ICRA 2011, Shanghai, China, May 9-13 2011.

[^23]: J. Satake and J. Miura. Robust stereo-based person detection and tracking for a person following robot. In Workshop on People Detection and Tracking IEEE ICRA, 2009.

[^24]: L. Spinello and K. O. Arras. People detection in rgb-d data. In IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS), 2011.

[^25]: L. Spinello, K. O. Arras, R. Triebel, and R. Siegwart. A layered approach to people detection in 3d range data. In Proc. 24th AAAI Conference on Artificial Intelligence, PGAI Track, Atlanta, USA, 2010.

[^26]: L. Spinello, M. Luber, and K. O. Arras. Tracking people in 3d using a bottom-up top-down people detector. In IEEE International Conference on Robotics and Automation (ICRA'11), Shanghai, 2011.

[^27]: P. Viola and M. Jones. Rapid object detection using a boosted cascade of simple features. In CVPR 2001, volume 1, pages 511–518, 2001.
