
文章

# 基于LIDAR传感器的人员检测与跟踪

克劳迪娅·阿尔瓦雷斯-阿帕里西奥 $^{1}$，安赫尔·曼努埃尔·格雷罗-伊格拉 $^{2,*ID}$，弗朗西斯科·哈维尔·罗德里格斯-莱拉 $^{2ID}$，乔纳坦·希内斯·克拉韦罗 $^{3}$，弗朗西斯科·马丁·里科 $^{3}$ 以及比森特·马特兰 $^{1ID}$

1 卡斯蒂利亚-莱昂超级计算中心（SCAyLE），贝加萨纳校区 s/n，24071 莱昂，西班牙

2 莱昂大学机械、计算机科学与航空航天工程系，贝加萨纳校区 s/n，24071 莱昂，西班牙

3 胡安·卡洛斯国王大学远程信息处理与计算系（GSyC），富恩拉夫拉达校区，莫利诺路 s/n，28943 富恩拉夫拉达，西班牙

通讯作者：<mailto:am.guerrero@unileon.es>

收稿日期：2019年7月15日；录用日期：2019年8月28日；发表日期：2019年8月31日

![Image](images/f8881154924c13d84df0f331eda8daa417ce15593f719d899baa54b92225ff2d.jpg)

摘要：人员跟踪几乎是任何机器人应用都必不可少的能力。一个典型案例就是@home机器人竞赛，这类赛事中要求服务机器人证明自身具备特定技能，从而能够与所处环境以及环境中的人员实现交互；例如，接待敲门来访人员并提供相应服务。许多这类技能都以人员检测和跟踪的能力为基础。这是一个颇具挑战性的问题，尤其是在使用低分辨率传感器（如激光探测与测距（LIDAR）传感器）、且环境中存在多人交互的场景下。本文介绍了一种基于单个LIDAR传感器的解决方案，能够在时间和空间维度对人员进行持续识别。本文所述系统基于人员跟踪包PeTra（即People Tracker）构建，该软件包使用卷积神经网络在复杂环境中识别人员腿部。我们在该系统中新增了一项功能，通过卡尔曼滤波对不同时间的人员位置估计进行关联。为验证该解决方案，我们在经欧洲机器人联赛认证的测试环境中开展了多组实验。

关键词：LIDAR；卷积网络；人员跟踪；@home；机器人竞赛

## 1. 引言

在机器人竞赛（如RoboCup@home）的框架中，机器人通过完成不同任务比拼各项技能。竞赛开展期间，多个机器人会进入通常被称为赛场的研究区域，在完成不同任务的过程中接受评估。评估过程中，裁判会对机器人的各项能力打分，例如建图、自主导航、人员跟踪等，所有这些能力都与特定功能相关 [^1] [^2]。在这些技能中，人员检测与跟踪是最重要的技能之一，因为机器人必须完成的许多任务都完全依赖于对特定人员的正确检测和后续跟踪。

本文提出了一种使用单个LIDAR传感器，在家庭环境中跟踪与机器人交互人员的解决方案。在赛事中，这类传感器主要用于完成导航流程、执行SLAM任务。一般情况下，传感器安装在较低位置，位于地面上方$\sim$30–50厘米处，用于检测障碍物，同时也用于构建占据地图。传感器提供的信息可支持我们按精确角度估算距离（分辨率可达0.5度）。本文提出利用这类传感器采集的原有信息，推断并随时间跟踪人员的位置。

人体识别与跟踪是@home基准测试中的必备技能，因为它在人机交互中至关重要[^3]。这项技能主要涉及三大需要

---

处理的问题：(1) 空间关系，即人员相对于机器人的位置；(2) 数据采集，与用于感知环境的一个或多个传感器相关；(3) 分类，即根据一个或多个传感器提供的原始数据推断出人员存在。

在空间关系处理中，人体跟踪的常用方法是将目标人员保持在机器人前方[^4]，因为传感器通常安装在这个位置。接下来需要确定选取人体的哪个部位用于跟踪，通常可选择头部、躯干和腿部[^5] [^6]。在[^7]中，提出了一种基于躯干轨迹的解决方案。在[^8]中，描述了利用躯干背部和肩部进行跟踪的方法。在[^9]中，提出了一种基于腿部检测的系统，效果良好。许多研究者都采用最后这种方法，本研究也选择了该方案。

在数据采集方面，需要指出的是，RoboCup@home当前场景中包含桌腿、椅子、植物树干等物体，这些物体很容易被误认成人员腿部。此外，在拥挤环境中跟踪特定人员（即一双腿）也十分困难，因为会出现多种遮挡情况。数据采集方法很大程度上取决于所使用的传感器，目前最普遍的方案是采用多传感器组合的解决方案。

视觉传感器和距离传感器是最常用的两类传感器，如[^10]所示。就第一类视觉传感器而言，相机采集的信息容易存在噪声，尤其是在人员较多的环境中，因此本研究选择使用距离传感器。我们具体选用LIDAR传感器，因为这类传感器性能可靠、价格适中，计算性能良好。这类传感器能够以高频（约20–30 Hz）提供环境信息，且输出易于实时处理，因为每次扫描仅得到一个仅包含几百个整数的矩阵。每次扫描仅得到一个仅包含几百个整数的矩阵。

需要处理的第三个问题与采集到的环境数据分类相关。需要采用推理分类方案来处理传感器数据。本研究使用了莱昂大学机器人小组开发的人员跟踪工具包People Tracker（PeTra）来识别环境中的人员。PeTra采用卷积神经网络（CNN），能够实时识别环境中的成对腿部（即人员）。

综上所述，本文提出了一种利用LIDAR传感器实现人员追踪的方法。所提系统基于PeTra开发，详见[^11]。我们将PeTra的性能与知名人员追踪工具Leg Detector进行了对比评估。PeTra的设计用途是识别场景中的人员，但无法随时间推移追踪人员的运动。本文提出的系统新增了位置估计关联功能，因此可实现人员追踪。该关联方法通过卡尔曼滤波实现，用于对位置估计结果进行关联。此外，我们优化了CNN的设计以提升性能。这套新系统作为PeTra的新版本发布，开发为机器人操作系统（ROS）功能包。该系统可在官方ROS Wiki在线获取[^12]，并以开源许可证分发。

本文其余部分结构安排如下：第2节介绍实验阶段用到的所有元素以及评估方法；第3节列举我们所提方案经评估得到的一系列实验结果；第4节对结果展开讨论；最后，第5节给出本研究的结论与相关未来工作方向。

### 2. 材料与方法

为评估所提系统的准确率，我们开展了一系列实验。所有实验均在Leon@home测试床的模拟公寓中进行[^13]，该场地是欧洲机器人联盟（ERL）认证的测试环境[^14]。Leon@home位于莱昂大学控制论研究模块的移动机器人实验室，旨在真实家居环境中对机器人行为开展对比测试。图1a为该公寓的平面图。

后续章节将介绍实验用到的各个元素，以及评估结果所用的方法。

---

![Image](images/7448d9ffe0ea40a03ddc5eeeb04127afeecc2d6ed671444927935f82c033952d.jpg)

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

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

<div style="text-align: center;">© 2018 Guerrero-Higueras et al., all rights reserved</div>

<div style="text-align: center;">Figure 1. (a) mock-up apartment of Leon@home Testbed. (b) Orby-One and KIO device as shown in [^15].</div>

#### 2.1. KIO RTLS

我们采用一款商用实时定位系统（RTLS）来提供真值数据。KIO设备可计算名为Tag的移动收发器在二维或三维空间中的位置。该定位过程中，KIO依靠预先布置在已知固定位置、名为Anchor的射频信标工作。图1a中的红色标记为实验期间Anchor在公寓内的布置位置。Anchor的分布按照[^16]中给出的方法确定。图1b展示了安装在下文所述Orbi-One机器人上的KIO设备Tag，以及固定在公寓天花板上的一个Anchor。

实验过程中，待监测人员都会随身携带一个KIO设备的Tag，以此获取他们的真实位置。需要指出的是，根据制造商规格说明，该设备提供的位置数据平均误差为$\pm 30$ 厘米。本文作者完成的校准测试表明，该误差在部分区域更大，另一些区域更小，但平均来看制造商的说明是准确的。更多细节参见[^16]。

#### 2.2. Orbi-One 机器人

如图1b所示，Orbi-One机器人是Robotnik公司生产的服务机器人。该机器人配备了多种传感器，其中包括位于头部的RGB-D相机，以及安装在移动底座上的LIDAR传感器。此外，其躯干上还连接有机械臂，可实现与周围环境的交互。机器人内部搭载了配备8GB内存的英特尔酷睿i7 CPU，可运行控制各硬件组件的软件，该软件基于ROS框架开发。

#### 2.3. PeTra

PeTra是一款用于人员识别的工具。该系统基于CNN构建[^17]，它使用由LIDAR传感器读数构建得到的占用图。该网络遵循[^18]中的U-Net架构，该架构最初是为生物医学图像分割开发的。U-Net架构遵循这类网络的通用结构：一条用于捕获上下文信息的收缩路径，以及另一条对称的扩张路径，可实现特定模式的精确定位。在本研究中，需要定位的模式是行人双腿。关于PeTra设计和训练的更多细节可参见[^11]。

正如[^11]所述，PeTra是在基于ROS的移动机器人上开发并完成测试的，它被实现为一个集成了CNN的ROS节点。测试过程中使用了公开数据集——基于测距的人员跟踪分类器基准（Range-based people tracker classifiers Benchmark，RRID:SCR_01574）[^19]。关于该数据集的更多信息可参见[^20]。

---

##### 2.3.1. PeTra运行流程

PeTra通过三步运行流程实时获取场景中人员的位置。首先，处理LIDAR传感器提供的数据，构建二维占用图。图2a展示了Orbi-One机器人与一名人员位于Leon@home Testbed模拟公寓厨房中的场景。图2b为同一场景在Rviz中的显示效果，Rviz是ROS社区知名工具，可用于可视化机器人的状态。黄色标记表示LIDAR传感器的读数，红色箭头表示Orbi-One机器人的位置和朝向。图2c展示了从上述场景中LIDAR传感器读数得到的占用图，该占用图以图像形式呈现：白色像素表示LIDAR扫描检测到障碍物的位置，黑色像素表示扫描未检测到障碍物或未经过该位置。

![Image](images/c6f26a251e42389790e7aea2083de8efae09f36c91cc12eef5f65f818ffc79e3.jpg)

![Image](images/39ed13cc91f6871a0e5436aa74e228d851439b75e3a0c9daac5b852631b28d8f.jpg)

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

![Image](images/766f545c3875cc2b5e0c8ba5afd2c3eac5ec3d4c51ade392826ccc7244873506.jpg)

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

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

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

![Image](images/29ead5ac9728433923bbd5a217a77b6a87e6f3c4f39adac61512f7b71d02ba89.jpg)

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

<div style="text-align: center;">Figure 2. PeTra’s operation steps: (a) Orbi-One and one person in the study area; (b) the same situation as displayed on Rviz; (c) occupancy map made from the readings of the LIDAR in the previous situation; and (d) PeTra output after processing the previous occupation map.</div>

接下来，上一步得到的占用图会作为输入传入网络。网络输出另一张占用图，标记出检测到双腿的区域。图2d展示了网络处理图2c所示占用图后的输出结果。

最后，通过质心计算得到人员位置，并将其作为ROS消息发布到特定的ROS Topic中。

##### 2.3.2. PeTra新版本发布

针对本研究，我们发布了PeTra的新版本。该系统经过修改后可对位置估计结果进行关联，从而能够获取场景中每个个体的运动轨迹。此外，我们还调整了网络设计以提升其性能。

新版本采用开源许可证分发，可在线获取[^12]。读者可在莱昂大学机器人研究组的Youtube频道找到PeTra新版本的演示视频，视频展示了其在Rviz中的运行效果[^21]。关于这些新功能的更多详情将在下文中介绍。

## CNN设计的改动

PeTra首个发布版本的CNN设计，参见[^11]，直接沿用了U-Net原生架构。如前文所述，U-Net最初是为生物医学图像分割开发的，因此该CNN设计经过优化，可识别多种不同的模式。而PeTra仅需要识别一种特定模式：一对腿部，其在占据栅格地图中表示为两个半圆，因此可以对初始设计进行修改来提升性能。为验证这一点，文献[^22]开展了交叉验证，通过改变层数评估对U-Net原始设计的各类修改方案。

在本次新版本中，我们对原始设计进行了一些修改，修改内容如图3所示。CNN的层数仍保持为五层，但每个卷积层的输出滤波器数量

---

大幅降低，因为我们只需要识别一种非常特定的模式。这带来了更优异的性能，让PeTra可以在不降低准确率的前提下，每秒得到更多位置估计结果。

![Image](images/4ab1cce29e3d9bad44f20e95f3131cfdd86f3ac218ca1035baa5357211dbbe58.jpg)

<div style="text-align: center;">Figure 3. CNN's design used in PeTra's new release.</div>

位置估计关联

跟踪功能通过对不同时间的位置估计进行关联实现，从而能够得到场景中每个个体的运动轨迹。该方法需要对CNN输出的数据增加一个后处理阶段。

该方法的首个初步方案已发表在文献[^23]中。文献[^23]提出的系统根据距离对两个位置估计进行关联。特定时刻$(t)$的每个估计结果都会与时刻$t + \triangle t$的最近邻估计结果匹配。最近邻估计是根据欧氏距离选取的。该方法计算量低，但当行人轨迹交叉时，并不总能正确工作。

本文针对文献[^23]所述关联法在行人轨迹交叉时存在的问题提出了一种解决方案。我们不再使用欧氏距离，而是采用卡尔曼滤波器预测PeTra识别出的每个行人的运动方向。使用卡尔曼滤波器替代欧氏距离大幅提升了关联的准确率，因为行人轨迹交叉不会再导致位置估计的错误关联。

卡尔曼滤波器是离散数据线性滤波的递归求解方案。长期以来，它已被应用于众多领域，尤其是自主导航领域。卡尔曼滤波器由一组数学方程构成，提供了一种递归计算框架，可以在最小化均方误差的前提下估计过程的状态。因此，卡尔曼滤波器可以估计系统过去、当前和未来的状态[^24]。

本文工作中采用的卡尔曼滤波器实现可以预测下一次激光雷达读数中的行人位置估计，也就是系统的未来状态。本解决方案开发使用了OpenCV库（版本3.1.1）。

图4展示了用于初始化卡尔曼滤波器的矩阵初始值。X（图4a）代表系统的初始状态，其中x和y代表行人初始位置的坐标。图4b展示了协方差矩阵P，它定义了系统初始状态的不确定度。我们会根据传感器精度设定大小不同的数值，让滤波器更快收敛。P会在每次迭代中更新自身数值。图4c展示的动力学矩阵A是该滤波器的核心。我们系统采用的动力学模型是恒速模型，因为我们假设被跟踪行人的步行速度在整个跟踪区间内保持恒定。图4d展示了定义滤波器与状态向量之间关系的测量矩阵H。图4e展示了过程噪声协方差矩阵Q，Q定义了速度变化时状态之间的转移。最后，图4f

---

展示了测量噪声协方差矩阵R，它定义了传感器测量值的可靠性。

 $$ \begin{array}{ccc}{X=\left[\begin{array}{c}{x}\\ {y}\\ {0}\\ {0}\end{array}\right]}&{P=\left[\begin{array}{c c c c}{10}&{0}&{0}&{0}\\ {0}&{10}&{0}&{0}\\ {0}&{0}&{10}&{0}\\ {0}&{0}&{0}&{10}\end{array}\right]}&{A=\left[\begin{array}{c c c c}{1}&{0}&{1}&{0}\\ {0}&{1}&{0}&{1}\\ {0}&{0}&{1}&{0}\\ {0}&{0}&{0}&{1}\end{array}\right]}\\ {(a)}&{(b)}&{(c)}\end{array} $$

 $$ \begin{array}{c}{H=\left[\begin{array}{c c c c}{1}&{0}&{0}&{0}\\ {0}&{1}&{0}&{0}\end{array}\right]}\\ {(d)}\\ \end{array}\quad Q=\left[\begin{array}{c c c c}{1}&{0}&{0}&{0}\\ {0}&{1}&{0}&{0}\\ {0}&{0}&{1}&{0}\\ {0}&{0}&{0}&{1}\end{array}\right]\quad R=\left[\begin{array}{c c}{1}&{0}\\ {0}&{1}\end{array}\right] $$

<div style="text-align: center;">Figure 4. Value of matrices used to initialize the Kalman filter. (a) initial state of the system. (b) Covariance matrix. (c) Dynamics matrix. (d) Measuring matrix. (e) Process noise covariance matrix. (f) Measurement noise covariance matrix.</div>

### 2.4. 评估

为了评估PeTra的新版本，我们将位置估计结果与KIO设备提供的真值数据进行了对比。特定时刻PeTra的精度误差（ $e_{PeTra}$）计算为PeTra位置估计与KIO位置估计（分别为 $l_{PeTra}$ 和 $l_{KIO}$）之间的欧氏距离。仅当PeTra给出有效估计时才会进行比较，否则 $e_{PeTra}$会返回最大值。公式(1)给出了 $e_{PeTra}$的计算方式。

 $$ e_{PeTra}=\left\{\begin{aligned}&\text{Max.range value}&&if\nexists l_{PeTra}\\ &d(l_{PeTra},l_{KIO})&&if\exists l_{PeTra}\end{aligned}\right. $$

公式(2)给出了 $d(l_{PeTra}, l_{KIO})'$的计算方式，

 $$ d(l_{PeTra},l_{KIO})=\sqrt{\sum_{i=1}^{n}(l_{PeTra_{i}}-l_{KIO_{i}})^{2}} $$

其中n是所考虑的维度数量。在我们的实验中，仅考虑x和y坐标，因此 $n = 2$。由于移动机器人在地面运动，z坐标为恒定值。

## 评估数据集

为了评估PeTra的相关性，我们采集了新的实验数据。数据采集时，Orbi-One机器人静止固定在样板公寓的某个位置，一名或两名携带KIO标签的行人在机器人前方按三种不同场景运动：第一种场景仅一名行人运动，第二种场景两名行人运动，第三种场景两名行人运动且轨迹交叉。这些场景是根据ERL、RoboCup等机器人竞赛中常见的不同场景设计的。评估数据集可在莱昂大学机器人小组官网在线获取 [^19]。

每个场景都生成了一个Rosbag文件。Rosbag文件相当于一段时间内机器人状态的记录，可以作为数据集使用。图2b展示了场景1（一名行人在机器人前方运动）中PeTra在Rviz中的可视化效果：黄色标记表示LIDAR传感器的读数，红色箭头表示Orbi-One机器人的位置和朝向，箭头起点对应机器人的位置。中心区域显示PeTra的位置估计结果：红色标记对应腿部位置估计，它们之间的蓝色字母对应行人中心。图2a展示了Orbi-One在和图2b相同场景下记录的相机数据。

---

图5a展示了场景2（两名行人在机器人前方运动）中PeTra在Rviz中的可视化效果，图5b展示了Orbi-One在同一场景下记录的相机数据。

![Image](images/673ea455cafc2817a0dc7e9b5987e37dba984dab525bc3aa4f107304556d545b.jpg)

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

![Image](images/a3e5c5151b8d439af9c75ec667faece922e5eeca120eef62c52d28080302075c.jpg)

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

<div style="text-align: center;">Figure 5. (a) Robot state as displayed in Rviz at a specific time in scenario 2. (b) Information recorded by the camera at the same time.</div>

图6a展示了PeTra在场景3（两人在机器人前方运动并交叉轨迹）中运行的情况，该场景已在Rviz中可视化呈现。图6b展示了Orbi-One在相同场景下记录的相机数据。

![Image](images/effbb32fb7c3135e73dc584528f9fb43bebd7419c909386c2f12654748c2ed66.jpg)

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

![Image](images/554a398ea8032363e89446f6af952ddefe601f6873962bbba4ceb55c32550db9.jpg)

<div style="text-align: center;">Figure 6. (a) Robot state as displayed in Rviz at a specific time in scenario 3. (b) Information recorded by the camera at the same time.</div>

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

### 3. 实验结果

我们已根据上一节介绍的方法对PeTra关联算法的准确性进行了评估。表1给出了针对前述三个场景，分别使用欧氏距离或卡尔曼滤波器对估计值进行关联时得到的平均误差和标准差。

就欧氏距离的使用结果来看，如表中所示，场景1中$e_{PeTra}$的平均误差为0.41 m，$e_{PeTra}$的标准差为0.22 m。在场景2中，第一个人的平均误差为0.41 m，第二个人为0.45 m，标准差分别为0.15 m和0.30 m。最后，在场景3中，第一个人的平均误差为0.95 m，第二个人为1.04 m，标准差分别为0.66 m和0.91 m。

---

如果观察卡尔曼滤波器的使用结果，场景1中$e_{PeTra}$的平均误差为0.41，标准差为0.22 m。在场景2中，第一个人的平均误差为0.33 m，标准差为0.16；第二个人的平均误差和标准差分别为0.39 m和0.12 m。最后，在场景3中，第一个人和第二个人的平均误差分别为0.42 m和0.54 m，标准差分别为0.15 m和0.21 m。

<div style="text-align: center;">Table 1. Average error ( $\bar{X}_{e_{PeTra}}$) and standard deviation (m) using either the Euclidean distance or a Kalman filter to correlate location estimates.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Scenario</td><td rowspan="2">Person</td><td style='text-align: center; word-wrap: break-word;'>Euclidean Distance</td><td style='text-align: center; word-wrap: break-word;'>Kalman Filter</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\bar{X}_{e_{PeTra}}$</td><td style='text-align: center; word-wrap: break-word;'>$\bar{X}_{e_{PeTra}}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>1st</td><td style='text-align: center; word-wrap: break-word;'>0.41 ( $\pm 0.22$)</td><td style='text-align: center; word-wrap: break-word;'>0.40 ( $\pm 0.20$)</td></tr><tr><td rowspan="2">2</td><td style='text-align: center; word-wrap: break-word;'>1st</td><td style='text-align: center; word-wrap: break-word;'>0.45 ( $\pm 0.30$)</td><td style='text-align: center; word-wrap: break-word;'>0.41 ( $\pm 0.25$)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2nd</td><td style='text-align: center; word-wrap: break-word;'>0.41 ( $\pm 0.15$)</td><td style='text-align: center; word-wrap: break-word;'>0.41 ( $\pm 0.14$)</td></tr><tr><td rowspan="2">3</td><td style='text-align: center; word-wrap: break-word;'>1st</td><td style='text-align: center; word-wrap: break-word;'>0.95 ( $\pm 0.66$)</td><td style='text-align: center; word-wrap: break-word;'>0.44 ( $\pm 0.15$)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2nd</td><td style='text-align: center; word-wrap: break-word;'>1.04 ( $\pm 0.91$)</td><td style='text-align: center; word-wrap: break-word;'>0.39 ( $\pm 0.26$)</td></tr></table>

图7展示了使用欧氏距离关联位置估计时，PeTra精度误差在场景1、2、3录制的Rosbag文件覆盖的时间范围内的变化趋势。蓝色标记表示场景中第一个人对应$e_{PeTra}$的取值，黄色标记表示第二个人对应$e_{PeTra}$的取值。蓝色和黄色线条分别表示两个人对应$e_{PeTra}$的移动平均值。移动平均法用于平滑短期波动，突出趋势或长期周期。

![Image](images/17d3612754ec5ac132be612ce59471265255e046707d85e18d40a126b647e74c.jpg)

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

![Image](images/7398d33e4df47b3f1c8e6aa26c5a5d911b4ed4f8ac3dba1918cd188ccce1d84f.jpg)

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

![Image](images/9ea073dcbe86264b51b00c8e77005e35e46551490500831c343299aba02fbe20.jpg)

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

<div style="text-align: center;">Figure 7. $e_{PeTra}$ evolution (m) in time (hh:mm:ss) using the Euclidean distance to correlate the estimates at scenarios 1 (a), 2 (b), and 3 (c).</div>

图8展示了使用卡尔曼滤波器关联位置估计时，PeTra的精度在场景1、2、3中的变化趋势。蓝色标记表示场景中第一个人对应$e_{PeTra}$的取值，黄色标记表示第二个人对应$e_{PeTra}$的取值。蓝色和黄色线条分别表示两个人对应$e_{PeTra}$的移动平均值。

![Image](images/218f704b3ee6d62e393a9739922550a023d8e6be20f3a3c149e4b5ba29a793ab.jpg)

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

![Image](images/cf86a99734fac08bd8a74e6b54d44c7bba12ce4f5f63738480300ea4fa7271f0.jpg)

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

![Image](images/e54e48f27a394afea5020eefc9bfcecc7ea228a074a8af6eec5751ff0476c739.jpg)

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

<div style="text-align: center;">Figure 8. $e_{PeTra}$ evolution (m) in time (hh:mm:ss) using a Kalman filter to correlate the estimates at scenarios 1 (a), 2 (b), and 3 (c).</div>

---

表2给出了PeTra第一个和第二个发布版本的性能信息。第一个版本发布位置估计的平均频率为6.299 Hz，第二个版本的平均发布频率为10 Hz。对于PeTra的第一个发布版本，经对373个样本统计，位置估计的最小发布间隔为0.14 s，最大发布间隔为0.184，标准差为0.0081 s。对于PeTra的新版本，经对595个样本统计，位置估计的最小发布间隔为0.089 s，最大发布间隔为0.111，标准差为0.00326 s。

<div style="text-align: center;">Table 2. Performance information for PeTra's first and second releases.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Release</td><td style='text-align: center; word-wrap: break-word;'>Average Rate (Hz)</td><td style='text-align: center; word-wrap: break-word;'>Min. (s)</td><td style='text-align: center; word-wrap: break-word;'>Max. (s)</td><td style='text-align: center; word-wrap: break-word;'>Std. Deviation (s)</td><td style='text-align: center; word-wrap: break-word;'>Window</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1st</td><td style='text-align: center; word-wrap: break-word;'>6.299</td><td style='text-align: center; word-wrap: break-word;'>0.140</td><td style='text-align: center; word-wrap: break-word;'>0.184</td><td style='text-align: center; word-wrap: break-word;'>0.00810</td><td style='text-align: center; word-wrap: break-word;'>373</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2nd</td><td style='text-align: center; word-wrap: break-word;'>10.000</td><td style='text-align: center; word-wrap: break-word;'>0.089</td><td style='text-align: center; word-wrap: break-word;'>0.111</td><td style='text-align: center; word-wrap: break-word;'>0.00326</td><td style='text-align: center; word-wrap: break-word;'>595</td></tr></table>

表3展示了资源消耗的相关数据。根据表中数据，PeTra首个版本共运行了383次迭代，总时长59.27秒。我们将迭代定义为从获取激光雷达（LIDAR）读数到发布场景中人员位置估计之间所经过的时间。因此，PeTra首个版本的单次迭代平均时长为0.154752秒，过程中消耗了446%的CPU资源以及549288 KB的内存。PeTra新版本共运行了1778次迭代，总时长59.7053秒，因此单次迭代平均时长为0.03358秒，过程中消耗了430%的CPU资源以及247036 KB的内存。

<div style="text-align: center;">Table 3. Resources consumption for PeTra's first and second releases.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Release</td><td style='text-align: center; word-wrap: break-word;'>CPU Usage (%)</td><td style='text-align: center; word-wrap: break-word;'>Memory Usage (KB)</td><td style='text-align: center; word-wrap: break-word;'>Sample Size (s)</td><td style='text-align: center; word-wrap: break-word;'>Iterations</td><td style='text-align: center; word-wrap: break-word;'>S/Iteration</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1st</td><td style='text-align: center; word-wrap: break-word;'>446</td><td style='text-align: center; word-wrap: break-word;'>549,288</td><td style='text-align: center; word-wrap: break-word;'>59.27</td><td style='text-align: center; word-wrap: break-word;'>383</td><td style='text-align: center; word-wrap: break-word;'>0.154752</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2nd</td><td style='text-align: center; word-wrap: break-word;'>430</td><td style='text-align: center; word-wrap: break-word;'>247,036</td><td style='text-align: center; word-wrap: break-word;'>59.7053</td><td style='text-align: center; word-wrap: break-word;'>1778</td><td style='text-align: center; word-wrap: break-word;'>0.03358</td></tr></table>

### 4. 讨论

表1展示了场景1、2、3分别采用欧氏距离或卡尔曼滤波关联估计结果时的平均误差与标准差。在欧氏距离方法下，场景1的平均误差为0.41米。在此需要说明，KIO设备提供的位置估计本身平均误差为30厘米，这一符合预期的结果验证了[^11]中得到的原有结论。场景2的结果也与[^11]中展示的数据一致。但在场景3中，$e_{PeTra}$的值明显更高，这是因为当实验中人员的轨迹发生交叉时，关联方法无法正常工作。

图7可以直观展示场景1、2、3中$e_{PeTra}$随时间的变化过程。可以看出，场景3中的波动恰好对应人员轨迹交叉的特定时刻。

另一方面，当采用卡尔曼滤波时，表1给出了场景1、2、3的平均误差与标准差。场景1和场景2的结果与[^11]以及[^23]中展示的结果一致，$e_{PeTra}$保持在预期范围内，且场景2的$e_{PeTra}$值甚至略有优化。对于场景3，与$e_{PeTra}$得到的结果相比，[^23]的下降幅度非常大。图8同样可以直观展示场景1、2、3中$e_{PeTra}$随时间的变化过程，但在卡尔曼滤波方法下，场景3的波动消失了。

在性能方面，从平均发布频率来看，PeTra新版本远快于旧版本：新版本的发布频率为10 Hz，旧版本为6.299 Hz。从位置估计的发布间隔来看，旧版本的最小发布间隔（0.14秒）仍大于新版本的最大发布间隔（0.111秒）。

在资源消耗方面，PeTra新版本对计算能力的要求低于旧版本，新版本的CPU使用率略有降低，降幅为3%。

---

但内存消耗的降低更为显著，降幅达到55%。从迭代次数来看，相同时间内新版本完成的迭代次数比旧版本多78%，因此单次迭代的平均时间也降低了78%。

### 5. 结论

本文提出了一种基于PeTra的系统，结合卡尔曼滤波对位置估计结果进行关联。该系统可用于多种不同任务，例如提升导航效果、改善人机交互，甚至可应用于与人员人身安全相关的场景。为评估该系统的性能，研究人员开展了一系列实验，安排多名人员在不同场景下参与测试。实验结果表明，即使两人轨迹交叉，PeTra关联方法在最多包含两名人员的复杂场景中仍能表现出良好性能。

本文的主要贡献是PeTra关联方法本身，该方法仅依靠LIDAR传感器的信息即可实现对人员的实时监测。此外，本文还要强调一项技术贡献：我们提供了一套可直接在所有基于ROS框架的移动机器人上使用的现成人员跟踪系统。该系统已针对低计算能力平台进行了运行优化，尤其适合用于@home竞赛。本系统以开源许可证发布，可在线获取[^12]。

尽管目前的研究结果令人振奋，但仍有大量工作有待完成。具体而言，需要针对场景中人数超过两人的情况开展更多测试，以验证PeTra能否持续正常工作。

作者贡献：概念构思，C.A.-A., Å.M.G.-H. 和 V.M.；研究方法，Å.M.G.-H., F.J.R.-L. 和 V.M.；软件开发，C.Å.-A.；验证分析，F.J.R.-L., J.G.C. 和 F.M.R.；研究调查，C.Å.-A. 和 Å.M.G.-H.；资源提供，V.M. 和 F.M.R.；数据整理，Å.M.G.-H.；原文初稿撰写，C.Å.-A., Å.M.G.-H. 和 V.M.；文章审阅与编辑，C.Å.-A., F.J.R.-L., J.G.C. 和 F.M.R.；可视化处理，Å.M.G.-H. 和 F.J.R.-L.；指导监督，V.M.；项目管理，V.M.；资金获取，V.M. 和 F.M.R.

资金：本研究得到卡斯蒂利亚-莱昂自治区政府项目（编号LE028P17）和马德里自治区政府项目RoboCity2030-第三阶段（编号RoboCity2030-Fase 3）的资助。

致谢：作者感谢A. Campazas和M. A. González Santamarta在数据采集过程中提供的帮助。

利益冲突：作者声明不存在利益冲突。

## 缩写

本手稿使用的缩写如下：

CNN 卷积神经网络

ERL 欧洲机器人联盟

LIDAR 激光探测与测距

PeTra 人员追踪器

ROS 机器人操作系统

RTLs 实时定位系统

SLAM 同步定位与建图

## 参考文献

[^1]: Holz, D.; Iocchi, L.; Van Der Zant, T. Benchmarking Intelligent Service Robots through Scientific Competitions: the RoboCup@Home approach. In Proceedings of the AAAI Spring Symposium: Designing Intelligent Robots, Stanford, CA, USA, 25–27 March 2013; pp. 27–32.

[^2]: Wisspeintner, T.; Van Der Zant, T.; Iocchi, L.; Schiffer, S. RoboCup@ Home: Scientific competition and benchmarking for domestic service robots. Interact. Stud. 2009, 10, 392–426.


## [^3]: Kruse, T.; Pandey, A.K.; Alami, R.; Kirsch, A. Human-aware robot navigation: A survey. Robot. Auton. Syst. 2013, 61, 1726–1743. [CrossRef]


---

[^4]: Kessler, J.; Iser, D.; Gross, H.M. I'll keep you in sight: Finding a good position to observe a person. In Proceedings of the 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Vilamoura, Portugal, 7–12 October 2012; pp. 4392–4398.

[^5]: Mozos, O.M.; Kurazume, R.; Hasegawa, T. Multi-part people detection using 2d range data. Int. J. Soc. Robot. 2010, 2, 31–40. [CrossRef]

[^6]: Asghari Oskoei, M.; Walters, M.; Dautenhahn, K. An autonomous proxemic system for a mobile companion robot. In Proceedings of the AISB 2010 Symposium on New Frontiers for Human Robot Interaction, AISB, Savannah, GA, USA, 6–10 February 2010.

[^7]: Jung, E.J.; Yi, B.J. Control algorithms for a mobile robot tracking a human in front. In Proceedings of the 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Vilamoura, Portugal, 7–12 October 2012; pp. 2411–2416.

[^8]: Hirai, N.; Mizoguchi, H. Visual tracking of human back and shoulder for person following robot. In Proceedings of the 2003 IEEE/ASME International Conference on Advanced Intelligent Mechatronics (AIM 2003), Kobe, Japan, 20–24 July 2003; Volume 1, pp. 527–532. [CrossRef]

[^9]: Bellotto, N.; Hu, H. Multisensor-based human detection and tracking for mobile service robots. IEEE Trans. Syst. Man Cybern. Part B (Cybern.) 2009, 39, 167–181. [CrossRef] [PubMed]

[^10]: Arras, K.O.; Lau, B.; Grzonka, S.; Luber, M.; Mozos, O.M.; Meyer-Delius, D.; Burgard, W. Range-based people detection and tracking for socially enabled service robots. In Towards Service Robots for Everyday Environments; Springer: Berlin, Germany, 2012; pp. 235–280.

[^11]: Guerrero-Higueras, Á.M.; Álvarez-Aparicio, C.; Calvo-Olivera, M.C.; Rodríguez-Lera, F.J.; Fernández-Llamas, C.; Martín, F.; Matellan, V. Tracking People in a Mobile Robot From 2D LIDAR Scans Using Full Convolutional Neural Networks for Security in Cluttered Environments. Front. Neurorobot. 2019, 12, 85. [CrossRef] [PubMed]


12. PeTra (人员追踪器)。在线获取：<http://wiki.ros.org/PeTra>（访问于2019年8月30日）。

13. Leon@home测试平台。在线获取：<http://robotica.unileon.es/index.php/Testbed>（访问于2019年8月30日）。

14. 欧洲机器人联盟（ERL）认证测试环境。在线获取：<https://www.eu-robotics.net/robotics_league/erl-service/certified-test-beds/index.html>（访问于2019年8月30日）。

[^15]: Guerrero-Higueras, Á.M.; DeCastro-Garcia, N.; Matellan, V. Detection of Cyber-attacks to indoor real time localization systems for autonomous robots. Robot. Auton. Syst. 2018, 99, 75–83. [CrossRef]

[^16]: Guerrero-Higueras, Á.M.; DeCastro-García, N.; Rodríguez-Lera, F.J.; Matellán, V. Empirical analysis of cyber-attacks to an indoor real time localization system for autonomous robots. Comput. Secur. 2017, 70, 422–435. [CrossRef]

[^17]: Long, J.; Shelhamer, E.; Darrell, T. Fully Convolutional Networks for Semantic Segmentation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Boston, MA, USA, 7–12 June 2015; pp. 3431–3440, doi:10.1109/CVPR.2015.7298965. [CrossRef]

[^18]: Ronneberger, O.; Fischer, P.; Brox, T. U-Net: Convolutional Networks for Biomedical Image Segmentation. Medical Image Computing and Computer-Assisted Intervention (MICCAI); Springer: Berlin, Germany, 2015; Volume 9351, pp. 234–241.


19. 移动机器人基于测距的人员追踪器分类器评估基准数据集。在线获取：<https://www.frontiersin.org/articles/10.3389/fnbot.2017.00072/full>（访问于2019年8月30日）。

[^20]: Álvarez-Aparicio, C.; Guerrero-Higueras, Á.M.; Olivera, M.C.C.; Rodríguez-Lera, F.J.; Martín, F.; Matellán, V. Benchmark Dataset for evaluation of Range-Based people tracker Classifiers in Mobile Robots. Front. Neurorobot. 2018, 11, 72. [CrossRef]


21. PeTra新版本：基于二维LIDAR的人员追踪。在线获取：<https://youtu.be/GCI7IDXQLAM>（访问于2019年8月30日）。

## [^22]: Guerrero-Higueras, A.M.; Lorenzana, O.; Álvarez-Aparicio, M. Aplicaciones Contenedorizadas en Entornos HPC. Caso Práctico: Aprendizaje Automático Aplicado a Ciberseguridad en Robots Móviles. In Proceedings of the Jornadas SARTECO 2018 Conference, Teruel, Spain, 10–14 September 2018.


---

[^23]: Alvarez-Aparicio, C.; Guerrero-Higueras, Á.M.; Rodríguez Lera, F.J.; Calvo Olivera, M.D.C.; Ginés Clavero, J.; Martín-Rico, F.; Matellan, V. LIDAR-based People Detection and Tracking for @home Competitions. In Proceedings of the IEEE International Conference on Autonomous Robot Systems and Competitions, Porto, Portugal, 24–26 April 2019.

[^24]: Welch, G.; Bishop, G. An Introduction to the Kalman Filter; Tech. Rep. TR-95-041; Department of Computer Science, University of North Carolina: Chapel Hill, NC, USA, 1995.

样本获取：PeTra的新版本[^12]以及评估所用的Rosbag文件[^19]均可在线获取。

© 2019 作者保留所有权利。许可方为瑞士巴塞尔的MDPI。本文是开放获取文章，遵循知识共享署名（CC BY）许可协议的条款与条件分发（<http://creativecommons.org/licenses/by/4.0/>）。

![Image](images/bc2bcd17f7871beb96cc95bd66398d4256edaa6a18531d148dbe271cd305cc33.jpg)