
# 基于Kinect的人体检测与跟踪，用于小型地面机器人

阿曼多·佩森蒂·格里蒂 $^{1}$ 奥斯卡·塔拉比尼 $^{1}$ 热罗姆·古齐 $^{2}$ 詹尼·A·迪卡罗 $^{2}$ 温琴佐·卡廖蒂 $^{1}$ 卢卡·M·甘巴德拉 $^{2}$ 亚历山德罗·朱斯蒂 $^{2}$

摘要：小型地面机器人，例如流行的Turtlebot和Kobuki平台，由于其紧凑的结构，通常配备安装在接近地面的传感器。从这种视角可靠地检测和跟踪人员是一项具有挑战性的问题，而该解决方案是涉及共享空间和人机近距离互动的许多应用的关键要求。我们提出了一种用于复杂室内环境的鲁棒解决方案，该解决方案使用廉价的RGB-D传感器，例如Microsoft Kinect或Asus Xtion。即使在具有多个人员同时出现并相互遮挡的复杂情况下，我们的系统在解决人员检测问题方面也比其他方法表现更好，精度、召回率和F1分数分别为0.85、0.81和0.83。评估数据集、实时ROS实现和演示视频作为补充材料提供。

## 1. 引言

许多新兴的机器人应用需要移动机器人与人类共享空间并相互交互。要解决的主要问题之一是可靠地检测和跟踪附近的行人。只有在解决此问题后，机器人才能完成诸如以下任务：

- 在与行人[^16]共享的环境中安全高效地导航，沿可预测且不妨碍行人的路径行进（这是一种间接交互形式）。

- 根据考虑了个人空间[^31]的社交规则调整自身位置，以促进直接交互与合作[^22]；例如，当机器人期望与人类开展交互或交互正在进行时，会移动到人类前方合适距离的位置[^34]。

- 执行特定于应用的任务，例如：监控人群流动；跟踪特定人员以在复杂环境中提供帮助或预测其意图[^20]；与人类排队[^27]。

RGB-D传感器，例如Microsoft Kinect[^2]或Asus Xtion[^1]，是用于人类感知的理想且广泛采用的工具：在这项工作中，我们处理了当传感器安装在机器人上时，检测和跟踪一个或多个人的问题。更具体地说，我们关注由传感器视场接近地面引起的各种问题：这适用于诸如流行的Turtlebot和Kobuki机器人[^5]之类的配置；然而，这通常适用于任何小型地面机器人，例如自主吸尘器、用于监控或物品交付的小型平台。

RGB-D传感器被设计用于感知人员，并且已经发表了许多技术来解决比检测和跟踪更复杂的问题，并取得了令人印象深刻的结果[^13]，[^28]。不幸的是，现有的算法不适用于我们所要解决的任务，因为在本例中，一些关键的假设（例如，在图像中可以清晰地看到被检测对象的上半身）并不成立（我们在第二部分中回顾了相关文献）。从低角度对人员进行检测和跟踪是一个根本上不同且大多未探索的问题，具有独特的挑战（参见图3）：

- 遮挡（由其他目标、其他机器人，甚至桌椅这类低矮物体造成的遮挡）发生频繁且程度严重；

- 当目标靠近机器人时——也就是恰恰在精准感知至关重要的时候——目标的大部分会处于传感器的视野之外；唯一可见的特征是该人员的部分腿部，腿部外观复杂多变、运动无规律，且没有可供检测的明显标记；

- 典型室内环境中布满干扰物（例如桌腿和椅子），这些干扰物很难与人类腿部区分开；

- 机器人自身的运动导致无法采用简单直接的方法对运动物体进行分割。

我们的主要贡献是提出了一种高效技术（第三节），该技术在地面为平面的假设下，能够鲁棒地解决这一挑战性场景下的行人检测与跟踪问题，而对于地面机器人可通行的大多数室内环境来说，该假设是合理的。更具体地说，我们的系统可以检测出传感器视野范围内的每个行人，返回其相对于机器人的位置和大致朝向；此外，只要目标保持可见，我们就能对其进行持续跟踪（请注意，我们不处理跟踪长时间丢失后的行人重识别问题）。

在我们的方法中，首先会对从地面伸出的类腿物体进行分割，随后将其分类为人体腿部

---

或是干扰物，我们所用的统计分类器是从在15种不同真实环境中采集的、包含26000个样本的大规模训练数据集中学习得到；得到的概率信息会在双层跟踪框架中进行处理，该框架关联时空数据来实现行人检测与跟踪。我们利用真实数据集详细介绍了本文算法，并在多种与训练环境不重叠的复杂真实场景（第四节）中展示了实验结果。定量结果显示，我们的方法性能相比其他方法有显著提升，体现了所学分类器和跟踪框架的贡献。大量演示视频以及一个支持ROS的实时开源实现可作为补充材料从<http://bit.ly/perceivingpeople>获取。我们系统的初步版本将在2014年HRI会议视频环节向公众展示[^35]。

### 二、相关工作

由于检测与跟踪在实际应用中具有重要意义，机器人领域的文献中已经提出了诸多解决方案。

2D 激光测距数据：早期的研究主要利用水平面的 2D 激光测距数据。根据传感器的高度，会考虑人体不同水平的部分，最常见的是腰部 [^15] 或腿部 [^7]、[^23]、[^30]。首先，在水平面上对测距数据进行空间聚类，然后使用机器学习 [^7] 或模型拟合算法对每个聚类进行分类 [^37]。基于 2D 激光数据的算法效率高，但仅限于对场景的单个（或几个）平面部分进行感知；因此，根据传感器的高度，一个人和一个不同的物体可能会产生非常相似的观测结果，因此无法区分 [^26]。这与基于更强大传感器的方法的精度较低，如我们在第四部分验证的那样。此外，最便宜的 2D 激光扫描仪的成本是 RGB-D 传感器的 4 倍以上，而 Turtlebot 和 Kobuki 等廉价机器人默认情况下未配备此类设备。另一方面，值得注意的是，一些基于激光的方法 [^7]、[^23]、[^30] 与我们的系统共享采用低位传感器位置所带来的挑战性要求，例如解决将属于同一人的腿部配对的问题 [^6]。

RGB-D数据：尽管RGB-D传感器比二维激光扫描技术成本更低，它能够在自身视场内提供环境对齐的彩色图像和深度图像，从而可以重构出观测空间的三维点云。此外，人们可以轻松将二维RGB图像处理技术与三维点云分析相结合，这是相较于单目视频流的一大核心优势——在单目视频流中，推断三维信息的计算成本很高。由于RGB-D传感器采用结构化红外照明，因此不适用于户外场景；在这类场景中，机器人前方环境的三维点云可改为通过立体相机或三维激光扫描仪获取[^33]。机器人研究人员将RGB-D传感器用于各类不同的室内感知任务，范围从室内环境制图[^18]到人体姿态与手势识别[^28]。

当感知人物时，一个需要解决的基本问题是检测问题，即确定一个人是否在视场中，以及它的近似位置。大多数处理来自 RGB-D 数据的个性感知算法都侧重于更高层次的任务，例如姿态恢复、动作或手势识别。在这些场景中，一个合理的假设是至少被试的上半身是可见的：然后，检测问题可以通过更简单的技术来解决，例如：寻找明显的人体特征（例如头部 [^38]）；过滤与人体预期近似尺寸匹配的点云簇（最重要的是，身高 [^9]）；或使用经过人体整体形状训练的统计分类器 [^32]。但是，为了确保被试的上半身可见，视点不能太靠近被试；此外，为了避免遮挡，尤其是在拥挤或杂乱的环境中，传感器应保持在较高位置，至少在被试的胸部或眼睛的水平。因此，上述算法无法直接用于小型地面机器人，这些机器人必须很小，传感器位于地面附近，并且可能非常靠近被试。在这种情况下，由于不常见的视角，人体下半部分是主要特征，并且在杂乱的环境中经常发生严重的遮挡，因此检测问题变得更加复杂。

此外，一些并非专门为机器人应用开发的基于 RGB-D 的方法假设传感器是静止的，并使用背景消除来分割移动对象 [^4]，如果传感器安装在移动机器人上，则这并非合适的方法，因为整个场景相对于传感器的参考系移动。

一篇相关的研究 [^17] 解决了在存在遮挡的情况下的人体检测问题，它根据距离地面的高度将 3D 点云分成多层，然后在每层中查找簇，并将每个簇分类为人体片段或非人体片段：将分类为人体一部分的不同簇根据它们之间的相对距离最终连接起来，以重建人体可见部分。但是，仅考虑影响人体下部位置的遮挡，而在我们的场景中，腿通常是唯一可见的部分，这会带来一系列在本文的其余部分中详细介绍的挑战。此外，每个帧都是独立处理的：而我们的方法在整个流程中采用跟踪，这在整体准确性方面具有显著优势，我们在第四节中对这些进行了量化。

据我们所知，我们的方法是第一个展示从安装在移动、低视角的 RGB-D 传感器上进行人体检测和跟踪的实用和可靠性的方法。

---

![Image](images/334a94ff644ef0e068413f7dcd29189ab6537154a920bc22d1a514369dd04a76.jpg)

<div style="text-align: center;">Fig. 1. System overview</div>

![Image](images/fe78d2ea230986bdd1a3d1a672d11f32050f4785036f56db925adc901334523e.jpg)

<div style="text-align: center;">Fig. 2. Point clusters within the first 20 cm above the floor are identified as candidate feet (a). The centroids of the clusters are projected onto the floor plane and are used as generators of a Voronoi diagram. Each candidate foot is then expanded to a candidate leg, by constraining its expansions up to the knee level and only to the points whose vertical projections fall within the corresponding Voronoi region (b). The Rectified Depth Image is computed on each candidate leg (c) and from it the Histogram of Oriented Gradients feature vector is extracted (d). The latter is classified (e) and the corresponding leg probability is obtained (f).</div>

### III. 方法

腿是最显著的特征（并且，对于近距离的物体，是唯一可见的特征）。因此，我们的方法基于在三维点云中检测腿。但是，腿的外观变化很大，而且在杂乱的环境中存在许多形状相似的物体：因此，我们的方法首先使用简单的规则检测候选腿（第 III 节 A），这些规则具有很高的灵敏度（即很少会遗漏实际的腿），但特异性较低（即会检测到许多虚假物体）；然后，将先前从大型训练数据集学习的统计分类器应用于候选对象，以区分实际的腿和其它物体（第 III 节 B）。跟踪单个候选对象随时间变化（第 III 节 C），并通过在时间上集成分类器输出来持续更新其腿部概率。在此阶段，可以使用腿的位置和概率作为卡尔曼滤波的观测值，最终可以检测和跟踪人员。系统的总体视图如图 1 所示。

### A. 数据预处理和候选腿的选择

最初，通过丢弃超出传感器声明范围的点（这些点会受到大量噪声的影响 [^21]），对点云数据进行预处理；然后，使用体素网格方法 [^3] 对点云进行降采样，体素大小为 1 厘米。这可以将要处理的数据量减少超过 80%，并使不同距离处的点密度更加均匀（图 3）。

地面平面检测：由于传感器位置和方向可能仅为近似值，因此我们使用基于 RANSAC 的 [^14] 平面检测方法检测三维点云中的地面平面，并将搜索限制在准水平平面上。现在，可以将整个点云刚性变换，使地面位于平面上。

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

<div style="text-align: center;">Fig. 3. Original (left) and downsampled (right) point cloud.</div>

 $z = 0$，z 轴向上，y 轴沿光学轴在地面平面上的投影方向，x 轴用于完成右手坐标系。

候选选择：候选对象被识别为从地面上冒出的点簇（图 2(a)）。特别是，我们最初将分析限制在距离地面上方 20 厘米范围内的 3D 点，并使用基于密度的 3D 聚类技术。这种聚类算法将簇定义为密度高于数据集中剩余区域的区域。我们选择的要进行此搜索的点云部分通常具有大面积内的少量稀疏对象：这些点密度的大幅变化完美地满足了 DBSCAN [^12] 的要求。该方法需要两个参数：限制邻域范围的半径和形成簇所需的最小邻居数量。基于密度的聚类算法受益于输入点云中相对均匀的密度：在我们的例子中，这通过上述体素网格降采样预处理步骤来确保。实际上，这简化了参数的设置，我们通过经验调整这些参数，并将最小邻居数量调整为 4 厘米半径内的 5 个，并且通过目视检查聚类输出结果，验证了它们在各种情况下都能很好地工作。实际上，这种方法有时会导致将两只脚聚在一起，尤其是在人站立不动时（相反，当人行走时，它们的脚通常彼此分开，因此不会被合并）：我们接受这种可能性，并允许后续的机器学习和跟踪方法处理这种情况。

用于计算每个集群水平投影的边界框尺寸，用作一个简单的标准，用于预先过滤那些明显太大或太小，无法代表单个脚或一对脚的候选对象。

扩展候选对象以形成候选腿：生成的 3D 点集群的最大高度限制为 20 厘米，因此包含的信息不足以区分实际的脚和其他对象；仅尝试利用这些数据会面临与 2D 激光扫描相同的难题，因为许多对象看起来

---

![Image](images/943c6d36e631ab84996c9064e6407847dec69a5f5968f3c4ae62ef775c5cb154.jpg)

<div style="text-align: center;">Fig. 4. Grayscale representation of the rectified depth image for four leg candidates, the last of which is a non-leg object.</div>

像脚一样。因此，我们现在将候选对象扩展到膝盖高度（50 厘米），从而纳入有关人体腿部特征的有用信息，例如脚踝的形状以及肢体的近圆柱形表面。进一步扩展会导致传感器附近的主体出现问题，因为膝盖以上的所有内容都将超出传感器的视野。

为了避免向候选腿添加过多的不相关点，这可能会导致错误分类，因此我们对每个候选脚的扩展进行了空间限制。具体来说，我们考虑所有候选对象的重心在地面平面上的投影，并计算每个对象的 2D Voronoi 区域（图 2(b)）。对于给定的候选对象，扩展仅考虑其在地面平面上投影在各自 Voronoi 区域内的 3D 点。

### B. 分类

对于每个候选 3D 形状，计算一个校正后的深度图像，并将其用于通过统计 SVM 分类器 [^19] 进行分类。

校正后的深度图像计算：对于给定的候选对象，通过将 3D 点正交投影到垂直平面上（图 2(c) 和 4）来计算校正后的深度图像。注意，与传感器直接获取的深度图像不同，校正后的深度图像不受传感器俯仰和横滚的影响（这些可能不是完全水平的），也不会受到透视失真；因此，它预计会产生候选对象的标准化表示，并且对机器人的传感器位置变化具有鲁棒性。深度值以 40x50 厘米的网格计算（这些尺寸预计可以包含腿部的整个投影，无论其倾斜程度如何），网格单元尺寸为 1 厘米，并通过轻微的形态滤波进行正则化。

特征计算和分类：我们通过直方图定向梯度 [^11] 描述符（HOG）总结候选对象的校正后的深度图像：这使得我们能够稳健地表征对象的局部 3D 形状和外观，通过表示局部深度变化。相似的描述符是深度直方图，该描述符也用于 RGB-D 数据中进行人员检测 [^32]，但与我们的不同，该描述符是根据传感器获取的原始深度图像计算的。

我们将校正后的深度图像划分为 $4 \times 5$ 个边长为 10 厘米的方形窗口，然后离散化

![Image](images/62602c3d122136b0f6231fb1c04298578ea94dc542a70ed0ff7dcbcde525c03f.jpg)

<div style="text-align: center;">Fig. 5. Visualization of the results of candidate classification: green and red correspond respectively to high and low leg probability.</div>

每个窗口内的深度梯度，划分为 9 个直方图。这在分类精度和特征维度之间实现了良好的平衡。生成的 180 维特征向量由预训练的软 SVM 二元分类器（具有 RBF 核）处理，该分类器返回腿和非腿类别的概率（图 2(d,e,f)）。

在分类阶段之后，会获得一组腿部观测结果，包括腿部候选对象的3D点以及它们的腿部概率，以便进行进一步处理（图5）。

### C. 跟踪

通过一种两步方法，对每个帧的腿部观测结果进行检测和跟踪，从而检测和跟踪人物：第一步，利用单个腿部观测结果，稳健地检测和跟踪腿部，获得一组腿部轨迹；第二步，将腿部轨迹用作滤波器中的观测值，从而获得一组人物轨迹，解决具有挑战性的数据关联问题。

腿部跟踪：跨帧跟踪腿部观测结果并非易事，因为腿部经常会被前景对象、另一条腿或其他人遮挡。每个腿部观测结果的跟踪状态变量包括投射到地面平面的腿部质心的2D位置和速度，以及它作为腿部的概率。更新步骤是通过将每个腿部观测结果与最近的腿部轨迹关联，并使用分类器返回的聚类质心和腿部概率作为测量值来执行的。假设每个腿部轨迹都具有恒定速度，并考虑高斯随机噪声以应对可变的加速度（实际上，腿部的运动模式非常不规则）。

由于机器人可能会在进行传感时移动或旋转，因此必须使用固定参考系进行跟踪，而不仅仅是机器人的参考系：特别是，将腿部观测结果从传感器的参考系转换为固定参考系，方法是利用机器人的里程计信息。我们在补充视频 [^24] 中展示了此功能，展示了跟踪对机器人旋转的稳定性，以及如何正确估计一个人的速度，无论机器人的运动如何。

在杂乱环境中进行多目标跟踪是一项公认极具挑战性的任务。目前已有多种复杂算法（最具代表性的包括JPDAF [^8]、GMPHD [^36]、MHT [^10]以及多目标粒子滤波[^29])已经

---

被提出用于处理这些复杂场景。我们采用一种更简单高效的方法取得了令人满意的结果，该方法考虑了当前待解决问题的若干特有特征。

为了将腿部观测结果关联到腿部轨迹，我们执行一种最近邻数据关联的方法。具体来说，我们投影腿部观测结果的脚点到地面上，并计算它们到腿部轨迹质心的最小欧几里得距离。当此最小距离小于一个阈值（5厘米）时，将腿部观测结果直接关联到该腿部轨迹，并执行经典的卡尔曼滤波器更新步骤。如果一个腿部观测结果可以与两个不同的腿部轨迹直接关联，这表明先前跟踪的两个靠近的腿部可能已被聚类阶段合并为一个独特的腿部观测结果，那么将同时更新这两个腿部轨迹，每个轨迹都有一个测量值，对应于其新质心的估计。未直接关联到任何腿部观测结果的腿部轨迹将通过PDAF [^8]方法进行更新，该方法考虑所有在轨迹质心15厘米范围内的观测结果。PDAF算法扩展了标准卡尔曼滤波器，以便在存在多个测量值时执行轨迹状态更新，其中不清楚哪个测量值是正确的，并且还考虑到可能没有测量值是目标测量值。最后，如果一个腿部观测结果距离任何现有轨迹都太远（超过15厘米），则会创建一个新的轨迹。

注意，只有腿概率大于阈值 $\tau$ 的腿轨迹才用于后续的跟踪。$\tau$ 代表系统的一个重要参数，其影响将在第四部分进行评估。

人员跟踪：第二步跟踪使用腿轨迹作为观测值，并返回一组人员轨迹，这是系统的最终输出。具体来说：每个人的状态变量包括其质心的二维位置和速度；运动模型假设为恒定速度，并带有高斯噪声；用于更新状态的测量值是从腿轨迹派生出来的，如下所述。

在拥挤的场景中，正确地将每个腿轨迹与正确的个人轨迹相关联并不容易：我们采用以下几何方法。

- 首先，我们找到最可能属于同一人的腿轨迹对。具体来说，与每个腿轨迹相关的 3D 点簇向上扩展，到臀部水平：如果两个簇连接，我们检查它们的质心是否可以直接与现有的人员轨迹相关联，使用最近邻策略。如果验证通过，则对人员轨迹执行经典的卡尔曼状态更新，并从进一步处理中删除这两个腿轨迹。需要注意的是，此过程会遗漏许多腿对，尤其是在传感器附近的受试者（其臀部区域超出传感器的视野范围）的情况下。

- 剩余的腿轨迹用于创建所有可能属于同一人的腿轨迹对的列表（即，彼此的距离小于 80 厘米）。需要注意的是，同一个腿轨迹可能出现在多个这样的对中。计算每个对的质心并将其添加到潜在的人员质心的列表中。此外，每个单独腿的质心也包含在同一列表中，以应对常见的情况，即一个人只有一个腿是可见的。对于每个尚未更新的人员轨迹，对位于人员轨迹质心 40 厘米范围内的所有潜在人员质心执行 PDAF 方法。

一个关键方面是创建新的人员轨迹。我们的系统采用一种保守的策略，只有当两个腿轨迹具有很高的分类概率，相关簇的向上扩展几乎合并，并且它们的质心与现有人员轨迹的质心相距足够远时，才创建新的人员轨迹。因此，远离任何已知人员轨迹的单个腿轨迹被假定属于一个尚未跟踪的人员，其第二条腿尚未被观察到。

### IV. 实验结果

### A. 实现

原型系统使用 MATLAB 实现，计算量大的任务以 mex 函数的形式编写，可以利用 OpenMP 支持，从而利用多核 CPU。存在各种 ROS-Matlab 桥接技术 [^25]，允许我们在 ROS 中使用我们的原型：特别是，它作为一个节点，用于接收 RGB-D 数据和机器人里程计，并发布跟踪人物的位置和速度。或者，原型系统可以使用 OpenNI 库来访问实时或录制的传感器数据。该版本可在 bit.ly/perceivingpeople 上在线获取。根据场景的复杂程度，该系统可以在低端英特尔酷睿 i5 笔记本电脑上以 10 到 30 fps 的速度运行。当使用基于英特尔酷睿 i7-4930MX 处理器的高端笔记本电脑时，在非常复杂的场景中，最小帧速率可达到 25 fps，而大多数情况下，在 CPU 负载低于 40% 的情况下，可以实现完整的帧速率。如我们在第 IV 节中测量的，即使帧速率降至 10 fps，系统的性能也不会明显下降。

### B. 数据集获取和分类器训练

SVM 分类器的训练数据集的获取方式如下。我们录制了两组视频：第一组是在 15 个不同的杂乱室内环境中录制的，没有任何人出现在画面中；第二组是在将传感器放置在几个宽敞的室内大厅中录制的，只录制行人。在第一组视频中，所有检测到的腿部候选区域都已标记为“非腿”，在第二组中，所有腿部候选区域都已标记为“腿”。由此产生的训练数据集包含 26000 个候选区域，其中 35% 是腿。

此外，创建了测试数据集，用于评估系统的整体性能。我们录制了三段 30 秒的 RGB-D 视频，分别在不同的全新环境中（即，不包含在训练数据集中），并手动标记每帧，即标记每个

---

可见的腿，并指示它属于哪个人。三种测试场景如下：

S-Easy：传感器静止，两名人员在无障碍环境中随机行走。

S-Medium：传感器静止，三名人员在小桌子周围，周围有一些障碍物。

S-Difficult：传感器位于移动平台上，在相当杂乱的环境中，总共有三名人员在小桌子周围行走。

这三个测试数据集以及相关的地面真实数据也作为补充材料提供，以促进与未来系统的定量比较。

### C. 性能指标

我们使用基于帧的指标，即精度 (p)、召回率 (r) 和 F1 分数 (f1) 来测试我们系统的性能，其定义如下：

 $$ p=\frac{TP}{TP+FP}\quad r=\frac{TP}{TP+FN}\quad f1=\frac{2pr}{p+r} $$

其中：TP 是真阳性数，FP 是假阳性数，FN 是假阴性数。

我们分别评估腿部检测和人物检测。

腿部检测：此评估旨在测量在每个帧中正确识别腿部的性能，而不考虑它们属于哪个人。在这种情况下，真阳性是一个正确检测到的腿，假阳性是由我们的系统返回但无法与帧中任何腿部对应的腿部检测，假阴性是在帧的地面真实数据中存在的腿，但没有检测到。

人员检测：此评估旨在表达我们系统的整体性能指标，该指标仅考虑在帧中可见的人员是否实际被检测到。对于每个在 ground truth 中出现的人员，如果返回了人员轨迹，则会计算出真实正例，轨迹必须在 25 厘米的半径范围内。对于每个在 ground truth 中出现但未找到人员轨迹的人员，会计算出虚假负例，范围也必须在 25 厘米以内。对于每个检测到的人员轨迹，如果其关联的腿不在 ground truth 中，或不属于同一个人，则会计算出虚假正例。

### D. 替代方法

为了评估我们的系统与替代方法的比较，我们在同一数据集上实现了并测试了三种不同的腿检测方法。

内切角方差 (IAV [^37])：一种基于激光的 2D 方法，该方法根据几何关系将一个簇分类为腿。

2D 范围数据的监督学习 [^7]：一种基于激光的 2D 方法，该方法通过在 13 个簇特征上训练机器学习分类器。我们比较使用 Adaboost 和 SVM 分类器获得的结果。

局部表面法线的直方图 (HLSN [^17])：一种从 3D 点提取的替代分类特征。

对于基于激光的 2D 方法，我们通过在 30 厘米处计算 3D 腿候选对象的水平截面，来合成输入数据。

### E. 数量结果

我们报告了在我们的测试数据集中的 S-Difficult 场景上计算的结果。最初，我们分析了在调整腿概率阈值 $\tau$ 时，性能的变化，即用于区分腿和非腿候选对象的概率。图 6(a) 显示了腿检测的精度-召回曲线，包括我们的方法和替代方法。HOG SVM 曲线是我们的系统使用的分类器的输出，明显优于所有替代方法。此外，HOG SVM + 跟踪曲线显示，跟踪也提高了基于帧的检测性能，因为与每个候选对象关联的腿概率会随时间进行过滤，这可以减少偶发遮挡的影响。此外，由于数据关联的处理方式（参见第 III 节），我们的跟踪算法可以返回紧挨着彼此的两条腿，即使之前的聚类算法将它们合并成一个簇。图 6(b) 显示了人员检测的精度-召回曲线，使用了我们的系统以及替代方法进行腿检测。特别是，对于给定的替代方法，性能是通过将我们的跟踪方法应用于该方法返回的检测结果来计算的。

为了确定最佳的腿概率阈值 $\tau$，在图 7(a) 中，我们分析了系统在不同 $\tau$ 值下的人员检测性能。我们观察到，当 F1 分数达到稳定最大值时，该值位于 0.5 - 0.9 范围内，这表明该参数不是一个关键参数。我们选择 $\tau = 0.8$ 的中间值，用于以下实验。在同一图中，我们还报告了在调整 $\tau$ 时，两个返回概率的替代方法获得 F1 分数。对于激光 SVM 曲线，我们注意到最大 F1 分数较低，并且对阈值参数的变化不太稳定。

以下表格报告了我们的系统在三个不同测试场景下的性能，当使用上面确定的 $\tau = 0.8$ 时。

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Scenario</td><td colspan="3">Legs Detection</td><td colspan="3">People Detection</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>p</td><td style='text-align: center; word-wrap: break-word;'>r</td><td style='text-align: center; word-wrap: break-word;'>f1</td><td style='text-align: center; word-wrap: break-word;'>p</td><td style='text-align: center; word-wrap: break-word;'>r</td><td style='text-align: center; word-wrap: break-word;'>f1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>S-Easy</td><td style='text-align: center; word-wrap: break-word;'>0.97</td><td style='text-align: center; word-wrap: break-word;'>0.91</td><td style='text-align: center; word-wrap: break-word;'>0.94</td><td style='text-align: center; word-wrap: break-word;'>0.88</td><td style='text-align: center; word-wrap: break-word;'>0.91</td><td style='text-align: center; word-wrap: break-word;'>0.89</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>S-Medium</td><td style='text-align: center; word-wrap: break-word;'>0.98</td><td style='text-align: center; word-wrap: break-word;'>0.81</td><td style='text-align: center; word-wrap: break-word;'>0.88</td><td style='text-align: center; word-wrap: break-word;'>0.93</td><td style='text-align: center; word-wrap: break-word;'>0.83</td><td style='text-align: center; word-wrap: break-word;'>0.88</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>S-Difficult</td><td style='text-align: center; word-wrap: break-word;'>0.96</td><td style='text-align: center; word-wrap: break-word;'>0.79</td><td style='text-align: center; word-wrap: break-word;'>0.87</td><td style='text-align: center; word-wrap: break-word;'>0.85</td><td style='text-align: center; word-wrap: break-word;'>0.81</td><td style='text-align: center; word-wrap: break-word;'>0.83</td></tr></table>

其他定性结果和考虑因素见图 8。

### F. 帧率对实时应用的影响

我们的跟踪方法假设恒定的速度状态转换模型。 这种简化的假设在两个观测时间间隔保持较小时，是一个很好的近似。 因此，我们研究了当限制输入帧率（通过有意跳过帧）时，性能如何变化——这在处理能力较低的系统中可能很有用。 采用上面确定的最佳腿概率阈值，我们通过模拟记录的 S-Difficult 场景测试视频中的给定帧率来评估我们的系统。 图 7(b) 报告了腿检测问题和人物检测问题的 F1 分数，以及模拟的帧率。 可以观察到，当帧率保持在 10 fps 以上时，限制帧率的性能惩罚很小。 在此阈值以下，腿部跟踪性能开始显著下降，这也会影响人物跟踪性能。

---

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

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

![Image](images/2ba248a9d1e8093e1fae87a42724f550e2c512053683d09bc2f1273adb269e65.jpg)

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

<div style="text-align: center;">Fig. 6. Performance in the Precision-Recall plane for different detection approaches. The ideal algorithm has precision = recall = 1 (which yields an F1-score of 1). By tuning the  $\tau$ parameter, the tradeoff between precision and recall is explored, yielding a precision-recall curve. Some methods appear as single points since by design they only output a binary classification.</div>

![Image](images/24b2ee010045112f313b63204f178f8ae3d8f88c24001867a4627902c7043838.jpg)

<div style="text-align: center;">(a) People Detection F1 Score Comparison vs  $\tau$</div>

![Image](images/b906b2b57e6bb66073026051e8ccf8a809ea0bf376da4913afe69621f90b67bd.jpg)

<div style="text-align: center;">(b) Effect of Frame Rate on F1 Score</div>

<div style="text-align: center;">Fig. 7. F1 score curves. On the left we show how the F1 score changes while tuning  $\tau$, for both our system and alternative methods. On the right we plot, for our system, the effect of frame rate on performance using  $\tau = 0.8$.</div>

### V. 讨论与结论

## 五、讨论与结论

我们提出了一种实用方法，可实现搭载RGB-D传感器的小型地面机器人对室内人员进行检测与跟踪。解决该问题需要妥善处理该场景下特有的挑战。我们证明，在所有测试数据集中，我们的系统性能优于其他替代方案，且在定量（第四节E部分）和定性（参见<http://bit.ly/perceivingpeople>处的补充视频）方面都取得了良好效果。我们提供了一个实用、支持ROS的实时实现方案，可直接在Turtlebot和Kobuki等常见机器人平台上运行。在当前版本中，该系统尚未利用传感器提供的RGB数据；这些都是宝贵的信息，我们计划未来将其用于改进数据关联，还可实现额外功能，例如跟踪临时丢失后的行人重识别。

## 参考文献

[^1]: Asus xtion pro live. <http://bit.ly/19Sfn62>.


## [^2]: Microsoft kinect. <http://bit.ly/1cAhjxI>.


---

![Image](images/bfe1bb763fecdc668b2d282fbbc68d3a19d28922006db7bea8061ed75056d60b.jpg)

<div style="text-align: center;">Fig. 8. Example outputs from our system in challenging scenarios. All 3D points corresponding to each detected person are displayed in a different color. A large disk drawn on the floor represents the barycenter for each person, with an arrow pointing towards the computed motion direction. Remaining images show various failure modes. In c) one leg of the person on the left is not joined to the other. In d) part of the wall was merged with the person's leg (which was nonetheless correctly detected). In e) the person on the right was not re-associated to the correct person track (gray disk) after being briefly lost, but a new track was created instead. In f) two legs were not correctly joined, and each was associated to its own person track. Note that most of these failure cases are unstable, short-lived configurations which quickly resolve, as is apparent in supplementary videos.</div>

[^3]: The point cloud library. <http://pointclouds.org/>.

[^4]: Primesense nite middleware. <http://bit.ly/IAIHRb>.

[^6]: K. Arras, S. Grzonka, M. Luber, and W. Burgard. Efficient people tracking in laser range data using a multi-hypothesis leg-tracker with adaptive occlusion probabilities. In Proc. ICRA 2008.

[^5]: The turtlebot robot development kit. <http://bit.ly/lqRgND>.

[^7]: K. O. Arras, O. M. Mozos, and W. Burgard. Using boosted features for the detection of people in 2d range data. In Proc. ICRA 2007.

[^8]: Y. Bar-Shalom et al. The probabilistic data association filter. IEEE Control Systems, 29(6):82–100, 2009.

[^9]: F. Basso, M. Munaro, S. Michieletto, E. Pagello, and E. Menegatti. Fast and robust multi-people tracking from rgb-d data for a mobile robot. In Proc. Intelligent Autonomous Systems (IAS) 2012.

[^10]: S. Blackman. Multiple hypothesis tracking for multiple target tracking. Aerospace and Electronic Systems Magazine, IEEE, 19(1):5–18, Jan 2004.

[^11]: N. Dalal and B. Triggs. Histograms of oriented gradients for human detection. In Proc. CVPR, 2005.

[^12]: M. Ester, H.-P. Kriegel, J. Sander, and X. Xu. A density-based algorithm for discovering clusters in large spatial databases with noise. In Proc. Knowledge Discovery and Data Mining (KDD) 1996.

[^13]: G. Fanelli, M. Dantone, J. Gall, A. Fossati, and L. Van Gool. Random forests for real time 3d face analysis. Int. J. Comput. Vision, 101(3):437–458, February 2013.

[^14]: M. A. Fischler and R. C. Bolles. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Communications of the ACM, 24(6):381–395, 1981.

[^15]: A. Fod, A. Howard, and M. Mataric. A laser-based people tracker. In Proc. ICRA 2002.

[^16]: J. Guzzi, A. Giusti, L. Gambardella, G. Theraulaz, and G. Di Caro. Human-friendly robot navigation in dynamic environments. In Proc. ICRA 2013.

[^17]: F. Hegger, N. Hochgeschwender, G. K. Kraetzschmar, and P. G. Ploeger. People detection in 3d point clouds using local surface normals. In RoboCup 2012: Robot Soccer World Cup XVI.

[^18]: P. Henry, M. Krainin, E. Herbst, X. Ren, and D. Fox. RGB-d mapping: Using depth cameras for dense 3d modeling of indoor environments. In Proc. International Symposium on Experimental Robotics (ISER) 2010.

[^19]: T. Joachims. Making large scale svm learning practical. 1999.

[^20]: T. Kanda, D. Glas, M. Shiomi, and N. Hagita. Abstracting people's trajectories for social robots to proactively approach customers. IEEE Transactions on Robotics, 25(6):1382–1396, 2009.

[^21]: K. Khoshelham and S. O. Elberink. Accuracy and resolution of kinect depth data for indoor mapping applications. Sensors, 12(2):1437–1454, 2012.

[^22]: C.-P. Lam, C.-T. Chou, K.-H. Chiang, and L.-C. Fu. Human-centered robot navigation – towards a harmoniously human-robot coexisting environment. IEEE Transactions on Robotics, 27(1):99–112, 2011.

[^23]: J. H. Lee, T. Tsubouchi, K. Yamamoto, and S. Egawa. People tracking using a robot in motion with laser range finder. In Proc. IROS 2006.

[^24]: A. Pesenti Gritti, O. Tarabini, J. Guzzi, G. A. D. Caro, V. Caglioti, L. M. Gambardella, and A. Giusti. Supplement to "kinect-based people detection and tracking from small-footprint ground robots". In Proc. IROS 2014.

[^25]: ROS Wiki Contributors. Ros on matlab. <http://wiki.ros.org/groovy/Planning/Matlab>, 2014.

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

[^27]: Y. Nakauchi and R. Simmons. A social robot that stands in line. Autonomous Robots, 12(3):313–324, 2002.

[^28]: I. Oikonomidis, N. Kyriazis, and A. A. Argyros. Efficient model-based 3d tracking of hand articulations using kinect. In Proc. British Machine Vision Conference (BMVC) 2011.

[^29]: K. Okuma, A. Taleghani, N. De Freitas, J. J. Little, and D. G. Lowe. A boosted particle filter: Multitarget detection and tracking. In Proc. European Conference on Commuter Vision (ECCV) 2004

[^30]: D. Schulz, W. Burgard, D. Fox, and A. B. Cremers. People tracking with mobile robots using sample-based joint probabilistic data association filters. The International Journal of Robotics Research, 22(2):99–116, 2003.

[^31]: E. Sisbot, R. Alami, T. Simeon, K. Dautenhahn, M. Walters, and S. Woods. Navigation in the presence of humans. In Proc. IEEE-RAS International Conference on Humanoid Robots (Humanoids) 2005.

[^32]: L. Spinello and K. O. Arras. People detection in rgb-d data. In Proc. IROS 2011.

[^33]: L. Spinello, K. O. Arras, R. Triebel, and R. Siegwart. A layered approach to people detection in 3d range data. In Proc. AAAI 2010.

[^34]: M. Svenstrup, S. Tranberg, H. J. Andersen, and T. Bak. Adaptive human-aware robot navigation in close proximity to humans. International Journal of Advanced Robotic Systems, 8(2):1–15, 2011.

[^35]: O. Tarabini et al. Video: Perceiving people from a low-lying viewpoint. In Proc. Human Robot Interaction (HRI) 2014.

[^36]: B.-N. Vo and W.-K. Ma. The gaussian mixture probability hypothesis density filter. Signal Processing, IEEE Transactions on, 54(11):4091–4104, 2006.

[^37]: J. Xavier, M. Pacheco, D. Castro, A. Ruano, and U. Nunes. Fast line, arc/circle and leg detection from laser scan data in a player driver. In Proc. ICRA 2005.

[^38]: L. Xia, C.-C. Chen, and J. Aggarwal. Human detection using depth information by kinect. In In Proc. Computer Vision and Pattern Recognition Workshops (CVPRW) 2011.
