
# 基于密度图与二维斑点分割的测距相机行人跟踪

伊萨克·范·克龙布鲁赫 $^{a}$、鲁迪·彭内 $^{a,b}$ 和史蒂夫·范兰迪特 $^{a,*}$

 $^{a}$安特卫普大学应用工程学院，比利时安特卫普 2020

 $^{b}$安特卫普大学数学系，比利时安特卫普 2020

摘要：本文提出了一种适用于测距相机的鲁棒行人跟踪方法：带斑点分割的密度图跟踪（DMT-BS）。该方法主要针对工业环境下的工人安全设计，同时也可应用于其他场景。该方法可轻松扩展至多相机，以解决遮挡问题、扩大观测区域。由于检测过程不依赖特定人体模型，因此该方法可用于跟踪其他静态环境中的任意运动目标。其优势在于原理简单，行为可预测，并且能够在低成本硬件上实现。基于深度传感器输出的点云，我们在地面坐标系中构建二维密度图，随后进行基础二维跟踪。我们借助一种简单有效的斑点分割技术提升了该跟踪方法的鲁棒性。测试表明，相机位置、深度噪声以及外参校准误差对跟踪器性能的影响很小。所提方法在三个深度跟踪数据集上进行了测试，与两种当前最优的基于深度的跟踪器相比，获得了显著更高的MOTA（多目标跟踪精度）得分。

关键词：行人跟踪、深度相机、飞行时间、RGB-D、工业安全

## 1. 引言

行人跟踪在工业工人安全领域发挥着重要作用。例如，当操作人员距离危险机器过近时，该技术可用于让机器减速或停机；当有人仍处于重物下方时，它可以阻止重物下降。

本文所述的安全（safety）不应与安防（security）混淆：后者旨在检测怀有恶意的人员，而我们的研究聚焦于前者——保护人员免受身体伤害。这给安全跟踪带来了特定要求：例如，高召回率至关重要，必须保证不遗漏任何人员，但不需要重新进行身份识别，因为每个人的安全价值都是同等的。

面向工业安全应用的跟踪算法需要满足以下特定要求：

- 必须能够应对变化的光照条件。

- 为避免误报，需要鲁棒的背景减除方法。

– 临时遮挡不能导致跟踪中断。

- 所需的处理能力应当保持在较低水平，以支持多相机大规模部署。

使用测距相机有助于满足上述要求。测距相机对阴影、光照变化等光照影响相对不敏感。深度数据为前景分割提供了可靠基础，还能提供额外维度信息来解决遮挡问题。仅使用深度数据还有一个常被低估的额外优势：它不会暴露被监测人员的身份。这一点十分重要，能够让工人和工会接受工作场所布设“相机”这一安排。

为便于开展风险评估，算法应当尽可能简单，从而让负责部署安全系统的技术人员能够理解其内部工作原理与运行行为。同时，简单的算法也更便于在低成本硬件上实现。

---

在本文中，我们提出了一种计算复杂度极低的鲁棒跟踪方法。

### 2. 相关工作

目前大多数相机跟踪都基于RGB相机实现，流程为先进行背景分割，再调用人体检测器 [^1] [^2]。这类检测器——例如HOG [^3] [^4] 或SVM分类器 [^5]——不仅需要大量算力，也难以处理遮挡问题。

距离相机——例如飞行时间相机或三角测量技术 [^6] [^7]——能够提供额外的空间信息，这对处理遮挡问题大有帮助。已有部分方法采用一台或多台距离相机从俯视视角进行观测 [^8] [^9] [^10]。虽然俯视视角最容易区分不同个体，但它会限制观测区域，且在低天花板甚至无天花板的场景中难以部署。对于工业应用场景，为了实现灵活的相机布置，通常需要将相机布置在较低位置。

Munaro和Menegatti [^11] [^12] 采用了一种基于深度的子聚类方法。该方法在分类过程中还会用到颜色信息，计算强度高，因此限制了其在低功耗系统中的应用。DPOM: Probability Occupancy Maps for Occluded Depth Images [^13] 是一款应用领域非常相似的算法，但速度过慢，无法实时运行。

Harville [^14] 以及Muscoloni和Mattoccia [^15] 将高度图投影到地平面上，以获得虚拟鸟瞰视角。他们的方法与本文提出的方法相似。虽然这类方法速度较快，但原始高度图噪声很大，对其滤波需要额外的算力。

OpenPTrack [^12] 可以在跟踪网络中结合多个不同相机，针对单色、RGB和深度图像采用不同检测器处理。这种设计带来了更高的灵活性，但代价是复杂度上升。

本研究的目标是开发一种跟踪算法，能够在工作环境中对操作人员进行鲁棒跟踪，同时将复杂度保持在最低水平。但目前领域内最优的人体跟踪器都不具备这种简洁性。

### 3. 跟踪算法

本文提出的方法假设使用能够提供三维点云的距离传感器，点云既可直接获取，也可作为

![Image](images/94b651b794a790223b3b14413635e17dfd08591a018a701777e3e92e40727c50.jpg)

<div style="text-align: center;">Fig. 1. Block diagram of the proposed tracking method.</div>

深度图结合已知内参计算得到的结果。

如图1所示，该算法主要包含两个核心部分：一次性校准和实时位置跟踪，其中实时位置跟踪又分为多个子步骤。图中的编号对应相关章节。可采用多个相机解决遮挡问题。灰色区域内的步骤对每个相机i分别执行，其余步骤则全局执行。

#### 3.1. 一次性校准

首先需要确定地面平面与外参标定。地面平面可在第一帧相机深度图像中检测得到，也可如[^16]所述实时更新地面平面模型。使用多个距离相机时的外参标定是研究较为充分的方向，现有诸多优秀的解决方案[^17] [^18]。标定结果为每个相机得到一个刚体变换，可将点从各自的相机坐标系变换到统一的世界坐标系。

#### 3.2 密度图创建

本文所提方法的核心是使用与占用地图类似的密度图。来自不同相机的点云被合并为一张密度图。从深度帧创建密度图的步骤如图2a–e所示。最终得到的密度图是一张二维地图，以俯视视角展示测量点的密度。

---

![Image](images/ac6cfaf9985bb9518e6915cd8d577f11b6d859a2739706f229eff241966fb514.jpg)

![Image](images/dcf0e0ec53fa73a27b7fea727a13e55ddb39f43e5336f951d7b26b2a71a72d7f.jpg)

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

![Image](images/72cb232519bd6e0d4218dd3dc4e5d5270d33d76fd79d946938e653b51c2533f8.jpg)

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

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

![Image](images/48b117da95e1bf276eecd5276ddd46af4a3961bb5e1d846d8d8d4cf01eb3ee9a.jpg)

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

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

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

![Image](images/e215ffb167412d58010947d9b825c71fcfd0df0b4a8fcfb3baf82e45c0896c79.jpg)

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

<div style="text-align: center;">Fig. 2. Visualization of the different steps. (a) Z-values of the current frame. (b) The background model. (c) Full point cloud of the current frame in camera coordinates. (d) Foreground points transformed to world coordinates. (e) Density map after gaussian blur. (f) Segmented people in blob image.</div>

##### 3.2.1 背景减除

仅在Z图上完成前景分割。满足$Z < (BG - thr_{depth})$的每个点都会被判定为前景。距离相机经常会因过曝光或欠曝光产生“无效”像素。背景模型中对应当前Z帧无效像素的位置无法基于这些无效像素值更新，因此这些像素会被“推回”为背景，参见式(3)和式(4)。初始化时将第一帧Z图作为背景，背景通过一套简单有效的方案更新。对于所有帧，仅对有效的Z像素执行以下操作：

 $$ BG=(1-a)\cdot BG+a\cdot Z $$

 $$ BG=(1-b)\cdot BG+b\cdot\max(BG,Z) $$

初始化过程中，对于无效Z像素：

 $$ BG=(1-b)\cdot BG+b\cdot z_{max} $$

初始化完成后，对于无效Z像素：

 $$ BG=(1-a)\cdot BG+a\cdot z_{max} $$

其中BG为背景“图像”，Z为当前Z帧，a和b分别为常规更新速率和快速更新速率（ $a \ll b$），$z_{max}$为选定的最大背景值。实验中使用的参数值汇总在表1中。

有效像素的背景更新包含两个步骤：首先在式(1)中对背景和当前帧计算加权平均，为当前帧赋予较小的权重a；随后在式(2)中将背景与背景和当前帧的最大值进行混合。这种方式可以加速当前帧中距离比背景更远的像素的背景更新速度。

##### 3.2.2 点云变换

点云通过预先确定的刚体变换T从相机坐标系（图2c）变换到统一的世界坐标系（图2d），变换后点云的地面位于xz平面上。

##### 3.2.3 分箱到地图像素

人体跟踪的理想观测位置是从高处垂直向下俯视，通过这种方式，人们可以

---

![Image](images/193cbf7a728a993f2c33518c68dd22200653da04387796f54e4d07d868f201f0.jpg)

<div style="text-align: center;">Fig. 3. Maps of different cameras (a)–(c) and the combined map (d). Because of occlusions, in each camera 1 person is not detected.</div>

<div style="text-align: center;">Table 1</div>

<div style="text-align: center;">Used parameters and their values</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Param</td><td style='text-align: center; word-wrap: break-word;'>Value</td><td style='text-align: center; word-wrap: break-word;'>Unit</td><td style='text-align: center; word-wrap: break-word;'>Description</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>a</td><td style='text-align: center; word-wrap: break-word;'>0.001</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Normal update rate</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>b</td><td style='text-align: center; word-wrap: break-word;'>0.1</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Fast update rate</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$thr_{depth}$</td><td style='text-align: center; word-wrap: break-word;'>0.2</td><td style='text-align: center; word-wrap: break-word;'>m</td><td style='text-align: center; word-wrap: break-word;'>Threshold for background subtraction</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$z_{max}$</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>m</td><td style='text-align: center; word-wrap: break-word;'>Background distance</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_{init}$</td><td style='text-align: center; word-wrap: break-word;'>60</td><td style='text-align: center; word-wrap: break-word;'>frames</td><td style='text-align: center; word-wrap: break-word;'>Initialization time</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>S</td><td style='text-align: center; word-wrap: break-word;'>40</td><td style='text-align: center; word-wrap: break-word;'>px/m</td><td style='text-align: center; word-wrap: break-word;'>Density Map scale</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>K</td><td style='text-align: center; word-wrap: break-word;'>1.4</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Empirical constant to normalize to 1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$\sigma$</td><td style='text-align: center; word-wrap: break-word;'>0.02 $\cdot$ S</td><td style='text-align: center; word-wrap: break-word;'>px</td><td style='text-align: center; word-wrap: break-word;'>Standard deviation of Gaussian blur</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$thr_{density}$</td><td style='text-align: center; word-wrap: break-word;'>0.5</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Density threshold</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$R_{closing}$</td><td style='text-align: center; word-wrap: break-word;'>0.1 $\cdot$ S</td><td style='text-align: center; word-wrap: break-word;'>px</td><td style='text-align: center; word-wrap: break-word;'>Radius of morph. closing (10 cm)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$R_{opening}$</td><td style='text-align: center; word-wrap: break-word;'>0.05 $\cdot$ S</td><td style='text-align: center; word-wrap: break-word;'>px</td><td style='text-align: center; word-wrap: break-word;'>Radius of morph. opening (5 cm)</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$d_{max_{match}}$</td><td style='text-align: center; word-wrap: break-word;'>1.0 $\cdot$ S</td><td style='text-align: center; word-wrap: break-word;'>px</td><td style='text-align: center; word-wrap: break-word;'>Max. dist. to match detection to track</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$d_{max_{split}}$</td><td style='text-align: center; word-wrap: break-word;'>0.3 $\cdot$ S</td><td style='text-align: center; word-wrap: break-word;'>px</td><td style='text-align: center; word-wrap: break-word;'>Max. dist. from prediction to blob</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$t_{split}$</td><td style='text-align: center; word-wrap: break-word;'>20</td><td style='text-align: center; word-wrap: break-word;'>frames</td><td style='text-align: center; word-wrap: break-word;'>Minimum age of track to split blobs</td></tr></table>

轻松区分开不同目标。这种高空架设位置通常很难实现，但借助三维点云可以重建出该视角，这就是使用距离数据的主要优势。

从变换后的点云（图2d）可以创建得到密度图（图2e）。密度图的大小取决于感兴趣区域和地图比例S，单位为像素每米。基于点的x和z坐标将点分箱到对应的地图像素中，即可将点云投影到地面平面（xz平面）上。

在实验中，仅保留距离地面高度大于1米的点。站立和行走行人的腿部会从点云中移除。低于1米的身体部位通常存在遮挡，且无法在身体其余部分的基础上提供任何额外信息。该高度阈值可直接修改或完全移除，例如如果需要纳入蹲姿行人即可调整。

物体距离相机越远，其在图像中对应的点数就越少，该关系符合平方反比规律。为补偿这一效应，高于高度阈值的每个点对地图的贡献计算方式如下：

 $$ map(row_{i},col_{i})=map(row_{i},col_{i})+d_{i}^{2} $$

其中 $d_i$ 是相机与点 $P_i$ 之间的z向距离。通过这种方式，不同距离处的同类物体在密度图中仍能拥有相近的密度。

分箱完成后，我们对密度图进行归一化处理，使其结果不受相机焦距f和地图尺度S的影响。尺度越小，分箱尺寸越大，每个分箱中累积的点数就越多，最终得到的密度也就越高。而焦距越大，物体投影得到的图像面积就越大，因此密度$\propto 1/S^2$，密度$\propto f^2$。为补偿该影响，我们进行如下处理：

 $$ map_{norm}=map\cdot K\cdot S^{2}/f^{2} $$

加入经验常数K，使得归一化后的地图后续可以1.0为阈值进行处理。

#### 3.3 地图合并

在点云变换步骤中，每个相机的点云都会被转换到统一的世界坐标系下。合并后的地图仅需取各单独密度图对应像素的最大值即可得到，示例如图3所示。

#### 3.4 质心检测

对每个目标，我们跟踪其在地图上投影的质心。生成斑点的步骤如图2e和f所示。首先使用高斯模糊对密度图进行平滑，标准差为$2 \, cm \cdot S$。随后对平滑后的密度图做阈值处理：所有值大于1.0的分箱都被判定属于目标。

得到的二值图像随后会先进行形态学闭运算（半径为$10 \, cm \cdot S$的圆盘结构元）滤波，再进行形态学开运算（半径为$5 \, cm \cdot S$的圆盘结构元）滤波。这些圆盘尺寸是通过经验确定的，但由于尺度因子和地图归一化的存在，该参数具有通用性。最终得到的斑点的二维质心被用作实际检测结果。

#### 3.5 斑点分割

这种简单方法能够可靠运行的关键，是如图4所示的高效斑点分割方案。

---

![Image](images/a4cb3e5fe6342158e27a3926bca382308d02658b6d24c71ed6a3509e73d52b1f.jpg)

<div style="text-align: center;">Fig. 4. Example of blob splitting. a. Three tracked objects approach each other. b. Blobs overlap and the predicted centroids share a merged detection. c. The merged detection is split into three separate detections based on proximity to the predicted centroids.</div>

当两个或多个斑点发生合并时，合并后的斑点中包含的信息仍可用于估计每个单独目标的质心。

首先对合并斑点进行检测。当使用匈牙利算法[^19]匹配检测结果和轨迹时，发生斑点合并的轨迹中至少会有一个轨迹无法匹配到任何检测结果。对于这些未匹配的轨迹，我们检测其预测位置是否靠近某个斑点。如果预测位置靠近某个斑点，但该轨迹仍未分配到任何检测结果，则可判定该轨迹的斑点与另一轨迹的斑点发生了合并。

下一步，我们使用欧几里得沃罗诺伊划分对所有合并斑点进行分割。分割规则为：基于欧几里得距离，将合并斑点中的每个像素分配给预测位置距离该像素最近的轨迹，以此完成分割。

只有已出现在视野中足够多帧的blobs才会被分割。在实验中，该最小轨迹年龄设为1秒。进入视野时blobs已发生融合的目标会被作为单个目标跟踪。一旦它们的blobs分离，就会被作为独立目标跟踪。从此时起，如果它们再次融合，跟踪器就会将它们分割开。

#### 3.6. 跟踪

所有跟踪都在二维空间开展，采用地平面内的世界坐标。在假设匀速运动的前提下，通过卡尔曼滤波器预测质心位置。以检测结果与预测结果之间的欧氏距离作为代价，使用匈牙利算法将预测结果与检测结果进行匹配。

#### 3.7. 人物与物体分割说明

所提出的方法没有设置显式分类步骤来区分人类与物体。不过，该方法的以下特性可以过滤掉大多数物体：

– 静止物体会随着时间推移逐渐融入背景，这是背景减除法带来的结果。

- 所有低于高度阈值（1米）的物体都会被排除在跟踪之外。

- 尺寸远小于人类的物体会在密度图中产生过低的密度，因此不会被纳入跟踪。

因此，只有接近人类尺寸的大型运动物体会被跟踪。

### 4. 实验评估

实验可以分为两类：

- 在真实数据集（见4.1节）上与现有顶尖的基于深度的跟踪器进行对比（见4.2节）。

– 使用模拟数据进行敏感性分析（见4.3节）。

#### 4.1. 真实世界数据集

目前已有许多可用于人员跟踪的RGB数据集，但同时提供三维真值的RGB-D数据集却相对较少。本研究使用了两个这类数据集。Kinect跟踪精度数据集（KTP） [^11] 提供了多个实验室环境下的序列，场景中最多包含5个人。本次评估仅使用了相机静止的序列，具体场景如下：

- 1个人来回行走（390帧）

– 3个人沿随机路径行走（850帧）

– 2个人并排沿直线路径行走（160帧）

- 1个人跑步穿过房间（150帧）

- 5个人聚集在一起（487帧）

真值需要手动清理，因为部分检测结果存在缺失。录制帧率为30 fps。

---

![Image](images/d6d14188236d2546055059e534164cf6d0640803a5395e54e2b746afde2ee000.jpg)

<div style="text-align: center;">Fig. 5. Design of the scenes. (a) Scene 1: Different camera heights and angles. (b) Scene 2: Placement of multiple cameras for multi-camera tracking.</div>

在 [^13] 中介绍了一个使用新一代Kinect相机录制的RGB-D数据集。该数据集在两种不同环境下采集得到：

- 一处为实验室场景（EPFL-LAB），约1000帧，场景中最多有4个人。

- 另一处更具挑战性，为走廊场景（EPFL-CORRIDOR），约3000帧，场景中最多有8个人。

该数据集的真值首先经过校正：部分目标被遮挡时的标注存在缺失。帧率在20 fps到30 fps之间变化。

#### 4.2. 基准方法

本文所提方法（DMT-BS）与下述基于深度的跟踪方法进行了对比，以和同类型现有顶尖方法对比，验证该方法的有效性。

- DPOM：遮挡深度图像的概率占用映射 [^13] 是一种与本文提出方法应用领域非常相似的算法。该算法使用预测深度图像分布的生成模型对目标存在概率进行优化。

- KINECT2：Windows SDK版Kinect的人体姿态估计结果。该方法具体采用的算法尚不明确。尽管该软件为闭源，它仍然是极具价值的对比基线，因为Kinect深度传感器在研究中被广泛使用。

我们采取了相关措施保证对比的公平性：所有参与对比的方法都仅使用深度信息。DPOM和KINECT2的结果均由DPOM论文的作者获得，且已经考虑了KINECT2算法自身的局限性。

#### 4.3 仿真设置

灵敏度分析将在以下章节中开展：

- 相机高度与角度（4.3.1，场景1）

– 组合相机数量（4.3.2，场景2）

- 深度噪声（4.3.3，场景2）

- 外参标定误差（4.3.4，场景2）

这些灵敏度分析均使用模拟数据完成，以确保仅改变被研究参数，其余所有条件保持完全一致。实验共使用两个场景，如图5和图6所示。场景1仅用于评估相机角度灵敏度，场景2用于其余所有仿真实验。

本文提出的跟踪方法在V-REP生成的仿真数据上进行了测试 [^20]。我们将模拟距离传感器建模为具备与微软Xbox One Kinect飞行时间相机完全相同的属性：$512 \times 424$, $f \approx 362$。为了生成真实的飞点，图像先以两倍分辨率渲染，再通过双线性插值降采样。我们按照在三台真实Kinect上测量得到的分布添加了随机噪声 [^21]，这也验证了 [^22] 的结论。模拟帧率为20 fps。

##### 4.3.1 相机高度与角度灵敏度

跟踪结果通常很大程度上依赖于相机的高度和安装角度。当相机安装位置较低、倾斜角度较小时，场景中会出现更多遮挡，跟踪难度也更大。当相机安装位置较高、呈向下拍摄角度时，可以获得无遮挡的鸟瞰视角。

为了评估跟踪器在不同相机角度下的性能，完全相同的仿真

---

![Image](images/a9e5dc1612cad6bb39ccf6ff42f95d9f05d11dd4ea160a59212b3e1e29da0101.jpg)

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

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

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

<div style="text-align: center;">Fig. 6. Example images of the simulated scenes. (a) Scene 1: Different angles scene at a  $10^{\circ}$ angle. (b) Scene 2: Multiple cameras and multiple occlusions.</div>

使用相机的10种不同角度完成，角度范围从 $0^{\circ}$ 到 $90^{\circ}$，步长为 $10^{\circ}$，如图5a所示。出于实际考虑，最小角度和最大角度分别为 $1^{\circ}$ 和 $89^{\circ}$，但这种微小角度差异的影响可以忽略不计。场景为四个人在5×5米的平面上行走，持续时长100秒（共2000帧）。

##### 4.3.2 单相机与多相机性能对比

跟踪在存在大量遮挡的场景中容易出现问题。合理布置额外相机是一种有效的解决方案。使用多相机的主要目的是解决遮挡问题。尽管多相机也可用于扩大观测区域，但由于该算法不执行重识别，因此不同相机的视野必须始终存在重叠。

本实验评估了额外增加相机的附加价值。我们构建了一个具有挑战性的测试场景：4个人在一块5×5米的平面区域内行走，场景中设置了3根大柱子。如图5b所示，我们将4台相机对称布置。对同一序列共进行四次追踪，每次额外增加一台相机参与实验。我们模拟并评估了7组时长均为100秒的序列，最终结果是对该组所有帧计算得到的。

##### 4.3.3. 对深度噪声的敏感度

为了测试深度噪声对追踪性能的影响，我们使用包含两台相机的场景2开展实验。原始噪声水平与Xbox One搭载的Kinect一致。该噪声水平取决于被测点的深度，以及图像像素到图像中心的距离。在5米距离处，对于大多数像素，该噪声的标准差为5毫米。

相同的模拟（7组序列，每组2000帧）共运行12次，加入的高斯噪声的$\sigma$范围为0到200毫米。

##### 4.3.4. 对外部标定误差的敏感度

在实际场景中，多相机之间几乎不可能获得“完美的”外部标定。我们使用包含两台相机的场景2开展实验。为了测试外部标定不准确带来的影响，我们在相机间变换中引入了误差，采用的是最坏情况误差：第二台相机绕垂直轴旋转的取值错误。该误差在0到$3^{\circ}$之间以步长$0.5^{\circ}$变化，因此模拟（7组序列，每组2000帧）共运行了六次。

#### 4.4. 评价指标

为了量化结果，CLEAR MOT指标 [^23] 被用于MOTChallenge DevKit [^24] [^25] 的实现中。TP、FP和FN是统计所有帧中所有检测结果得到的真阳性、假阳性和假阴性总数。精确率和召回率的定义与常规一致：

 $$ P=\frac{TP}{TP+FP}and R=\frac{TP}{TP+FN}. $$

式中，$\Phi$ 为轨迹碎片化次数，T为真值检测的总数量，多目标跟踪准确率（MOTA）的定义为

 $$ MOTA=1-\frac{FN+FP+\Phi}{T}. $$

当检测结果与真值目标之间的距离不大于阈值距离 $t_{d}$ 时，二者即可匹配。第t帧中此类匹配的数量为 $c_{t}$，$d_{t,i}$ 为目标i与其分配的真值目标之间的距离。多目标跟踪精确率的定义如下：

---

![Image](images/059c6bfc57bc3b35f22d2426a4c8d03969f75d54ae77046b7b648ff7e335fcd7.jpg)

<div style="text-align: center;">Fig. 7. Tracking performance compared to state-of-the-art trackers on different datasets. The precision-recall curve of the proposed method (DMT-BS) is so small because there is only a limited range of relevant thresholds.</div>

 $$ M O T P=1-\frac{\sum_{t,i}d_{t,i}}{t_{d}\cdot\sum_{t}c_{t}}. $$

在所有实验中，$t_{d}$ 被设置为0.5米。MOTA分数将作为主要评估指标：该指标十分适合用于体现面向工业安全的跟踪器的性能，因为它会对假阴性、假阳性和轨迹碎片化进行惩罚。

### 5. 实验结果

#### 5.1. 真实数据集上的对比结果

尽管本文提出的方法结构简单，但在三个数据集的实验中，它仍然是效果最优的追踪器。所有追踪器在EPFL-CORRIDOR数据集上的性能都更低，这源于该数据集本身更具挑战性：相机没有布置在高位（仅为眼高高度），且场景中时常同时出现多人，导致大量遮挡。

DMT-BS的整体MOTA分数最高。图7中的精确率-召回率图也表明，该方法在保持良好精确率的同时，还拥有较高的召回率，这对于安全应用而言十分重要。

#### 5.2. 基于仿真的敏感性分析结果

图8表明，本文提出的方法在不同拍摄角度下均表现良好。较低相机角度下性能下降是由人员互相遮挡导致的。本文提出的追踪器对浅角度仍有很好的处理能力，只有当目标被完全遮挡多帧时才会丢失追踪。

图9的结果表明，新增第二台深度相机后MOTA评分显著提升，而新增第三台或第四台相机并未带来明显增益。在本次测试场景中，两台相机已足够消除所有遮挡。额外相机带来的提升效果与场景相关，因为这直接取决于场景中可能出现的遮挡情况。

图10表明，当高斯噪声的标准差不超过50 mm时，结果始终稳定，该噪声水平是Kinect的十倍。原始背景减除法在更高噪声水平下失效，导致性能大幅下降。这是因为噪声使静态物体产生了过大的“移动”，造成前景检测的假阳性率升高。为了展示追踪器在更高噪声水平下的性能，我们将原始背景分割器替换为基于高斯混合模型的检测器Matlab vision.ForegroundDetector。该

---

![Image](images/dc85c1ddc10926fdcc7f28535e33a3042974a48af929380c1d07a7ec68018ea2.jpg)

<div style="text-align: center;">Fig. 8. Tracking performance versus camera angle.</div>

<div style="text-align: center;">Performance vs number of cameras</div>

![Image](images/c1f89fcb74ad07035442c58d1b3a3f5e41039f0190267328e6cad363663e7684.jpg)

<div style="text-align: center;">Fig. 9. Tracking performance using one or multiple range cameras.</div>

<div style="text-align: center;">Performance vs depth noise level</div>

![Image](images/125e77a0a43131b556817bbbdaf3208587ef993430893cd5a3b2bdf1ae1946e7.jpg)

<div style="text-align: center;">Fig. 10. Tracking performance with different levels of depth noise. For higher noise levels, a different background subtraction method was used.</div>

---

![Image](images/80c3859f4a54b3d4b98df3df1829a444c8b5ab68973e8cb7136fd0cee58abedd.jpg)

<div style="text-align: center;">Fig. 11. Tracking performance versus extrinsic calibration error.</div>

实验采用了故障设置，高斯分量数量被设置为2。使用该背景减法，在噪声水平达到125毫米之前都能获得稳定的MOTA分数，之后分数才会降至95%以下。

如图11所示，本文提出的方法可以承受最高达$1^{\circ}$的标定误差，且不会损失任何精度，这对于使用高精度标定方法来说已经足够，例如[^18]可实现小于2 mm的标定精度，$0.6^{\circ}$。

### 6. 结论

简洁性和鲁棒性是我们设计该追踪算法的核心目标。如第3节所述，简洁性是本文提出方法的固有特性：该方法仅使用基础代数对点进行变换，再通过分箱将点融合到密度图中；经过简单阈值处理后，通过基础形态学操作得到候选连通区域。本文所用最“复杂”的技术就是追踪过程中的卡尔曼滤波和匈牙利算法，二者实际上都是简单轻量的矩阵算法。

实验证实了该方法的鲁棒性。仿真实验表明，本文提出的方法可以很好地应对不同的相机角度。针对相机噪声和外部标定误差的敏感性分析显示，该方法可承受高达Kinect ToF相机10倍的深度噪声，并且能耐受最高达$1^{\circ}$的标定误差。

将DMT-BS应用于三个数据集的测试结果显示，其整体性能优于两种当前最先进的方法：DPOM [^13]和Kinect SDK人体姿态估计器。这些结果十分引人注目，因为本文提出的方法复杂度远低于参与对比的算法。

需要注意的是，遗留在场景中的（大型）物体会被标记为静止人体。这是DMT-BS已知的局限性，使得该方法仅适用于不允许遗留物体存在，或需要和检测人体一样检测遗留物体的场景。未来工作将聚焦于解决这一问题。

## 参考文献

[^1]: Benito-Picazo J, Domínguez E, Palomo EJ, López-Rubio E, Ortiz-de-Lazcano-Lobato JM. Motion detection with low cost hardware for PTZ cameras. Integrated Computer-Aided Engineering 2018, 26: 21–36. doi: 10.3233/ICA-180579.

[^2]: Hsu W-Y. Automatic pedestrian detection in partially occluded single image. Integrated Computer-Aided Engineering 2018, 25: 369–79. doi: 10.3233/ICA-170573.

[^3]: Lacabex B, Cuesta-Infante A, Montemayor AS, Pantrigo JJ. Lightweight tracking-by-detection system for multiple pedestrian targets. Integrated Computer-Aided Engineering 2016, 23: 299–311. doi: 10.3233/ICA-160523.

[^4]: Ciarelli PM, Salles EOT, Oliveira E. Human automatic detection and tracking for outdoor video. Integrated Computer-Aided Engineering 2011, 18: 379–90. doi: 10.3233/ICA-2011-0383.

[^5]: Li D, Xu L, Goodman ED, Xu Y, Wu Y. Integrating a statistical background-foreground extraction algorithm and SVM classifier for pedestrian detection and tracking. Integrated Computer-Aided Engineering 2013, 20: 201–16. doi:10.3233/ICA-130428.


## [^6]: Wu S, Zhang G, Zhu M, Jiang T, Neri F. Geometry based three-dimensional image processing method for electronic


---

cluster eye。Integrated Computer-Aided Engineering 2018, 25: 213–28. doi: 10.3233/ICA-180564。

[^7]: Tirronen V, Neri F, Kärkkäinen T, Majava K, Rossi T. An enhanced memetic differential evolution in filter design for defect detection in paper production. Evolutionary Computation 2008, 16: 529–55. doi: 10.1162/evco.2008.16.4.529.

[^8]: van Oosterhout T, Englebienne G, Kröse B. RARE: people detection in crowded passages by range image reconstruction. Machine Vision and Applications 2015, 26: 561–73. doi:10.1007/s00138-015-0678-x.

[^9]: Stahlschmidt C, Gavriilidis A, Velten J, Kummert A. Applications for a people detection and tracking algorithm using a time-of-flight camera. Multimedia Tools and Applications 2016, 75: 10769–86. doi: 10.1007/s11042-014-2260-3.

[^10]: Burbano A, Bouaziz S, Vasiliu M. 3D-sensing distributed embedded system for people tracking and counting. In: Proceedings – 2015 International Conference on Computational Science and Computational Intelligence, CSCI 2015, 2016, pp. 470–5. doi: 10.1109/CSCI.2015.76.

[^11]: Munaro M, Menegatti E. Fast RGB-D people tracking for service robots. Autonomous Robots 2014, 37: 227–42. doi:10.1007/s10514-014-9385-0.

[^12]: Munaro M, Basso F, Menegatti E. OpenPTrack: Open source multi-camera calibration and people tracking for RGB-D camera networks. Robotics and Autonomous Systems 2016, 75: 525–38. doi: 10.1016/j.robot.2015.10.004.

[^13]: Bagautdinov T, Fleuret F, Fua P. Probability occupancy maps for occluded depth images. In: 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), IEEE; 2015, pp. 2829–37. doi: 10.1109/CVPR.2015.7298900.

[^14]: Harville M. Stereo person tracking with adaptive plan-view templates of height and occupancy statistics. Image and Vision Computing 2004, 22: 127–42. doi: 10.1016/j.imavis.2003.07.009.

[^15]: Muscoloni A, Mattoccia S. Real-time tracking with an embedded 3D camera with FPGA processing. In: 2014 International Conference on 3D Imaging (IC3D), IEEE; 2014, pp. 1–7. doi:10.1109/IC3D.2014.7032593.

[^16]: Van Crombrugge I, Azza IB, Penne R, Van Barel G, Vanlanduit S. Fast ground detection for range cameras on road surfaces using a three-step segmentation. vol. 10617 LNCS. Springer, Cham; 2017. doi: 10.1007/978-3-319-70353-4_41.

[^17]: Foix S, Alenya G, Torras C. Lock-in Time-of-Flight (ToF) cameras: a survey. IEEE Sensors Journal 2011, 11: 1917–26. doi: 10.1109/JSEN.2010.2101060.

[^18]: Fornaser A, Tomasin P, De Cecco M, Tavernini M, Zanetti M. Automatic graph based spatiotemporal extrinsic calibration of multiple Kinect V2 ToF cameras. Robotics and Autonomous Systems 2017, 98: 105–25. doi: 10.1016/j.robot.2017.09.007.

[^19]: Munkres J. Algorithms for the assignment and transportation problems. Journal of the Society for Industrial and Applied Mathematics 1957, 5: 32–8. doi: 10.1137/0105003.

[^20]: Rohmer E, Singh SPN, Freese M. V-REP: a versatile and scalable robot simulation framework. In: 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems, IEEE; 2013, pp. 1321–6. doi: 10.1109/IROS.2013.6696520.

[^21]: Terven JR, Córdova-Esparza DM. Kin2. A Kinect 2 toolbox for MATLAB. Science of Computer Programming 2016, 130: 97–106. doi: 10.1016/j.scico.2016.05.009.

[^22]: Corti A, Giancola S, Mainetti G, Sala R. A metrological characterization of the Kinect V2 time-of-flight camera. Robotics and Autonomous Systems 2016, 75: 584–94. doi:10.1016/j.robot.2015.09.024.

[^23]: Bernardin K, Stiefelhagen R. Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics. EURASIP Journal on Image and Video Processing 2008: 1–10. doi: 10.1155/2008/246309.

[^24]: Milan A, Leal-Taixe L, Reid I, Roth S, Schindler K. MOT16: A Benchmark for Multi-Object Tracking 2016.

[^25] 米兰A，里斯塔尼E。MOTChallenge DevKit 2018。<https://motchallenge.net/devkit>。