
# 3D-Sensing 分布式嵌入式系统，用于人员跟踪和计数

安德烈斯·布尔巴诺 $^{*+\#}$，萨米尔·布阿齐兹 $^{*}$，马里乌斯·瓦西里乌 $^{*}$

{andres-alberto.burbano-lopez, samir.bouaziz, marius.vasiliu}@u-psud.fr

*IEF，巴黎萨克雷大学，F91405，法国奥赛CEDEX

+R&D，Shopline，78220，法国维罗弗莱

摘要：本研究的重点是开发一种嵌入式智能摄像头网络，用于跟踪和计数公共空间中的人员。 在该网络中，每个节点都能够感知、跟踪和计数人员，同时与网络的相邻节点进行通信。 每个节点通常使用一个向下看的 3D 摄像头，但设计的框架可以接受其他配置。 我们提出了一种用于估计深度摄像头相对位置和方向的方法。 该系统在校准过程中进行背景建模，使用一种快速且轻量级的分割算法。

关键词：人员跟踪；嵌入式系统；3D 传感；背景建模；场景分析。

## I. 简介

工业安全、机器人、城市规划和交通运输等领域使用计算机视觉研究成果来检测、跟踪和计数私人和公共空间中的人员。 智能摄像头概念和联网摄像头增加了检测、计数和跟踪应用程序的覆盖范围。

如 [^1] 所示，人体感应是指用于检测存在、计数、定位、跟踪和识别人员的方法的集合。 这可以解决各种挑战，这些挑战在 [^1] 和 [^2] 中有广泛的描述。 我们的工作采用相同的方法，并试图解决几个问题：人群重叠引起的遮挡、当人们靠近或身体接触时的人员分离、由于阳光引起的传感噪声、物体到摄像机的距离引起的比例变化，以及最后，当人员相对于传感器时的视角变化时，模型变形。

在传感和嵌入式技术方面，市场上现在有新一代低成本的 3D 摄像头和开发板，这些设备不断改进其规格。 在人员计数和跟踪领域，有两种主要方法：使用传统的 RGB 摄像头或智能深度传感器。 深度传感器不受反射或剧烈光照变化的影响，并且不需要昂贵的背景建模。 这些优点促使研究界将 3D 传感器用于检测、跟踪和计数人员。 深度传感器主要用于室内应用，因为会受到阳光干扰。

我们的工作主要受到两种人体检测、跟踪和计数方法的启发，分别是 [^3] 和 [^4]。 第一种是使用从帧差图像中的运动直方图来在彩色图像中定位人员的嵌入式智能摄像头网络。 第二种是使用头部到肩膀的特征进行模式匹配的鲁棒 3D 传感系统，该系统在背景过滤后进行。 我们的方案将这两种方法中最重要的概念融入到 3D 智能摄像头网络中，提供高效的算法、低功耗（资源受限）以及非集中式网络系统。 这使我们能够设计多摄像头和多目标跟踪系统，从而实现大量的应用程序、易于安装和可扩展的节点。

本文的组织结构如下：第二节描述相关工作。第三节描述我们的系统设计方法。第四节详细介绍了智能相机外参标定方法。第五节介绍了人员检测方法。第六节解释了跟踪和计数过程。最后，我们对结论和未来工作进行总结。

### II. 相关工作

我们介绍了有关人员检测、跟踪和计数技术的文献中最相关的研究。我们重点关注：相机位置、检测方法和应用场景。

目前针对摄像头的不同安装位置（如俯视视角或侧视视角）存在诸多争议。早期研究 [^5] [^6] [^7] [^8] 提出了俯视视角摄像头布局的优势：从头顶上方对人员进行观测 [^6]，可避免人群中出现完全遮挡，不过仍然存在遮挡情况。另一方面，[^4]、[^9] 这类研究更倾向于采集更多人体相关信息，并使用复杂方法去除背景。这些研究似乎表明，摄像头位置取决于实际应用场景。考虑到这一点，我们的目标是最大化覆盖区域，最小化遮挡。这验证了我们最初选择俯视视角的决定，因为它更符合我们系统的需求。因此，我们可以使用更少的设备，避免了检测和区分人员所需的复杂计算。

人类检测的方法主要可以分为背景建模、目标分割和模式匹配$^{[1]}$。我们发现了一些研究使用了这些方法或它们的组合。背景建模，

---

使用RGB相机，需要复杂的算法和大量的计算时间[^10]。这些算法通常关注图像的亮度变化，并避免将静止的人员识别为背景。另一方面，3D感应方法简化了前景分割。在[^7]中，使用高度阈值可以实现快速分割，但没有考虑到场景的不规则性。相反，Rauter等人[^8] 使用特征描述符来避免背景建模。但是，这需要手动参数化相机的安装高度。

正如Teixeira等人在[^1]中所解释的那样，在实际应用场景中，有两种对立的方法：资源受限型和性能驱动型。一些研究，如[^11]，[^12]，是基于资源受限的；然而，所有这些都使用彩色相机。近年来，提出了一些使用深度传感器的方案[^7]，[^13]，[^14]，[^8] 和[^4]。这些研究基于性能驱动的方法。

从这个角度来看，我们系统方法的优点是：系统成本低（更易于研究人员和工业界采用），人员检测处理时间短（使用背景建模和人员分割），系统可扩展且易于安装，以及低能耗（对环境的影响越来越重要）。我们的工作旨在在以下部分描述的资源受限场景中，将安装在俯视位置的深度传感器引入到系统中。

### III. 智能相机平台

我们的提出的系统由一个智能摄像头网络组成。每个节点由深度摄像头、嵌入式计算机和网络通信单元组成。在本地，节点检测、跟踪并计算其视野（FOV）内的行人数量。同时，通信单元将跟踪信息发送到网络中的所有相邻节点。该网络由两个架构层级构建（基于图，图 1）：一个通信图映射到局域网连接，以及由本地 FOV 之间的几何邻近性定义的覆盖图。

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

<div style="text-align: center;">Figure 1. Typical scene covered by 6 cameras: each black rectangle represents a camera FOV and the lines represent the graphs (the coverage graph in black and the communication graph in green).</div>

### A. 深度摄像头

我们使用 3D 主动传感摄像头（如 Asus Xtion Pro 或 Kinect）。这些摄像头可以以高达 60 帧/秒的速度运行，提供（通过 USB 链路）VGA（640x480）或更低分辨率的深度图像。每个 12 位的像素表示本地立体视差，可以将其转换为获取对象与摄像头的距离。当由于遮挡或干扰问题而没有传感信息时，深度像素等于 0。典型的 FOV 角度为 $58^{\circ}$（水平）和 $45^{\circ}$（垂直）。

不幸的是，这种主动传感器存在一个很大的缺点：阳光干扰限制了其在室内场景中的使用。但是，主动 3D 传感器可以在完全黑暗的环境中运行。我们的系统也与新的被动立体相机（如 Stereolabs 的 ZED）兼容，但需要更多的计算能力（不建议用于低端解决方案）。

### B. 计算机板和通信单元

计算机板由 Raspberry Pi-2B 和一个专用的辅助板组成。Raspberry-Pi 2 具有 Broadcom (BCM2836) 四核处理器（ARM Cortex-A7 MPCore），包括一个 VideoCore IV 双核 GPU、1GB 的 SDRAM、class 10 SD 卡、以太网连接以及 Linux Raspian 操作系统。

专用的辅助板由 Shopline R&D 部门开发，主要由一个电源过网 (POE) 连接和一个实时时钟和日历 (RTCC) 集成电路组成。组装的板旨在尽可能便宜，并提供方便的电源供应。

### C. 计数框架软件

我们设计了一个行人跟踪框架，该框架为不同类型的摄像头和嵌入式计算机提供功能。支持的摄像头包括 RGB、红外和深度摄像头。它支持运行基于 Linux 的操作系统的嵌入式计算机。该框架还提供远程配置和通信服务。我们可以设置：一个感兴趣区域 (ROI)、用于高度的滤波阈值以及计数边界（一个或多个用户定义的形状，用于将当前 ROI 分区，以便计算行人数量）。在正常运行中，该框架获取深度图像、计算行人分离、跟踪和计数行人，并定期通过网络发送所有相关信息。该框架使用常用的图像框架（OpenCV、Qt、Open NI）来促进数据交换和人机交互，但我们设计了自己的优化图像处理例程。

### D. 资源受限场景

我们的系统是在考虑以下约束条件的情况下设计的：

- 一个实时计数系统：智能摄像头必须能够实时计数和跟踪行人。它必须能够同时将所有信息发送到监视系统或相邻节点。

FOV 与安装高度：摄像头的最佳垂直高度在 2.5 到 3.5 米之间。

---

- 最小帧率要求：考虑到平均人类步行速度（1.33 米/秒）[^15] 以及摄像头视野范围内的人的平均轨迹长度（约为 3 米），所需的最小帧率高于 6 帧/秒。

- 防故障功能：当一个节点发生故障时，相邻节点必须考虑到该故障，并管理节点丢失，重新映射通信图。

### IV. 智能相机的外部校准

相机校准变量分为内部参数和外部参数。由于大多数智能相机已经校准了内部参数（焦距、主点、倾斜系数和畸变），我们的工作重点是外部校准。外部校准过程包括对地面平面的位置进行鲁棒估计，从而可以获得相机的安装高度、相机方向以及背景建模。由于地面平面和所有相机都是固定的，并且在短时间内背景不会发生变化，因此外部校准过程仅在系统的初始化阶段使用。此外，此操作对于每个新帧都太耗时。在开始计算之前，将每个深度像素 $G(x, y)$ 转换为 3D 点 $p_i = [x_i, y_i, z_i]$。

### A. 相机自定位

在自定位步骤中，我们通过最小化三维点云与平面之间的平方距离提取地面平面方程（图2）。为了加快这一计算步骤，我们计算深度直方图，并使用（$\pm d_0$）最高频区间 $B_{max}$ 周围的范围（假设地面近似水平，且是场景中面积最大的区域；这仅在俯视视角下成立）。

![Image](images/914c0f535406f8836622464ab47229e39b7b367ea4fedc65c8fd981e6c2b9765.jpg)

<div style="text-align: center;">Figure 2. Geometry of the floor plane using a coordinate system with camera CamI as the origin (lateral view from y axis).</div>

设 $\Psi=\left\{p_i\middle|B_{\max}-d_0\leq z_i\leq B_{\max}+d_0\right\}$ 为深度图像中属于地面平面 $\mathbf{P}_F$ 的 N 个选定点的集合，其由方程 $ax+by+cz+1=0$ 定义。如果记 $d=\sqrt{a^2+b^2+c^2}$，则到此平面的平方距离之和为：

 $$ S(\Psi)=\frac{1}{d^{2}}\sum_{i=1}^{N}\left(a x_{i}+b y_{i}+c z_{i}+1\right)^{2} $$

最佳地面平面参数的估计通过以下公式获得：

 $$ \arg\min_{a,b,c}S(\Psi)=\arg\min_{a,b,c}\frac{1}{d^{2}}\sum_{i=1}^{N}\left(ax_{i}+by_{i}+cz_{i}+1\right)^{2} $$

如果系数 a 和 b 太大，则地面平面不是近乎水平的，因此必须使用新的深度直方图重复估计过程，该直方图相对于上次估计的地面平面的法线方向。

最终，这为我们提供了估计的距离 p（相机安装高度）以及相机 X 轴与地面平面之间的角度 $\Phi$。

### B. 地面分类

地面点区域 $R_F$ 由深度像素组成的连接集合定义，这些深度像素的距离小于 $d_0$ 与地面平面 $P_F$ 的距离。 $d_0$ 的值取决于安装高度和深度信号的信噪比，通常在 10 到 15 厘米之间。

图 3 显示了使用相关直方图的地面平面分类，在两种相反的情况下：一个场景 (a) 具有简单的背景，没有动态对象，以及另一个场景 (b) 具有复杂的背景和一些动态对象。一个简单的背景可以是只有很少对象的地面。一个复杂的背景有很多物体，如桌子、椅子、墙壁、门、楼梯等。

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

![Image](images/07f4e25bdb2da1b079b85805f7de8abc3da94025ddb7ab9d6c3ca3c651aaf996.jpg)

<div style="text-align: center;">Figure 3. Floor plane classification with the corresponding depth histogram and the bin  $B_{max}$ marked in red. Cloud points are acquired from a downward-view but are presented here in a lateral view. a) Simple background. b) Complex background.</div>

### C. 非地面物体分类

其余的深度像素被分类到一个或多个连接区域中 $R_{i}$，这些区域在拓扑上由地面区域和图像边界定义。 我们只考虑与地面连接的大型区域。 此外，我们假设

---

大多数非地面物体可以大致地建模为平面表面。 对于每个区域 $R_i$，我们估计局部平面 $Pr^i$ 参数 $(a^i, b^i, c^i)$。

 $$ Pr^{i}:=\left\{a^{i}x+b^{i}y+c^{i}z+1=0\right\} $$

如果区域法线与地面平面几乎平行，则该区域被识别为墙壁或门。

对于其余重要的区域，我们计算相对于地面平面的相对角度 ( $\varphi^i$)。 如果此角度大于建筑物标准的最大角度 ( $\omega$) [^16]，则将其分类为家具； 否则，它将成为可跟踪的倾斜区域 $R_i$。 几乎平行于地面平面的区域可以被分类为不同的地面区域。

未来的工作将侧重于识别可以与人类互动的移动物体（例如，手推车、移动椅子）。

### D. 背景建模

我们的系统专注于在购物中心或超市等公共场所进行人员跟踪和计数。 在这种情况下，一个常见的限制是存在许多可以与人互动的物体，例如手推车。 这些不需要计数的物体必须使用背景建模从计数估计中排除。 此方法使用识别的各个区域来创建虚拟过滤表面，该表面考虑了场景的细微之处。 该虚拟表面 $Bg(x, y)$ 是一个背景阈值，用于区分深度像素是否属于感兴趣的对象还是属于背景。

设 L 为属于场景但不属于地面的区域集合。 设 $L^t \subseteq L$ 为可跟踪区域的集合。 设 $R_i$ 为一个可跟踪区域，当且仅当 $R_i \in L^t$、$R_i$ 与 $R_F$ 和 $|\varphi^i| \leq \omega$ 连接时。

过滤表面由每个可跟踪区域 $P_t^i$ 的局部过滤平面 $R_i$ 组成。 局部平面是通过将局部区域的估计平面 $P^i$ 升高一个高度阈值 $t_d$ 获得的，如 [^7] 所示。

 $$ \boldsymbol{P}_{t}^{i}:=\left\{\boldsymbol{a}^{i}\boldsymbol{x}+\boldsymbol{b}^{i}\boldsymbol{y}+\boldsymbol{c}^{i}(\boldsymbol{z}+\boldsymbol{t}_{d})+1=0\right\}=\left\{\boldsymbol{a}_{t}^{i}\boldsymbol{x}+\boldsymbol{b}_{t}^{i}\boldsymbol{y}+\boldsymbol{c}_{t}^{i}\boldsymbol{z}+1=0\right\} $$

然后，背景阈值由以下内容组成：

 $$ B g(x,y)=\left\{\begin{aligned}&\frac{-1}{a_{t}^{Ir(x,y)}\left(\frac{x-c c_{x}}{f_{x}}\right)+b_{t}^{Ir(x,y)}\left(\frac{y-c c_{y}}{f_{y}}\right)+c_{t}^{Ir(x,y)}}&\begin{array}{l}G(x,y)>0\wedge\\ Ir(x,y)\neq0\end{array}\\ &t_{d}&\text{otherwise}\end{aligned}\right. $$

其中 $I_r(x, y)$ 是一个标记函数，它为每个深度像素 $G(x, y)$ 返回 $R_i \in L^t$ 的索引 i，以获取平面估计值 $(a_t^i, b_t^i, c_t^i)$，否则返回0。图4说明了从y轴观察到的提升过程。

![Image](images/a7021c7f84974fdcacfad5dbcde39372b10c860c52894c003bcbe98da71978f2.jpg)

<div style="text-align: center;">Figure 4. Geometric Representation of the background model, where the green line represents  $P_t^i$ and the blue line represents  $P_r^i$ (lateral view from y axis).</div>

### V. 人员检测方法

人员检测过程分为 3 个步骤，每个新深度图像都执行这些步骤 (图 5)。 首先，使用前景 blob 检测方法进行感兴趣对象的快速检测； 在这里，我们过滤和标记 blob。 第二步是 blob 分割，我们详细分析每个 blob。 第三步是图结构创建，我们对人员进行表征。

![Image](images/b8548b1c7df88d55df7bde024f4cd0c412442c2c8f17728d51ce3f697a8f66db.jpg)

<div style="text-align: center;">Figure 5. Row depth image with several obstacles and two people in contact.</div>

### A. 前景 blob 检测

为了对图像进行过滤，我们使用提出的过滤方法 [^7]，改变用于背景建模的过滤阈值，以获得前景图像 $F_i$：

 $$ Fi(x,y)=\left\{\begin{aligned}G(x,y)\quad&G(x,y)\geq Bg(x,y)\\ 0\quad&\quad otherwise\end{aligned}\right. $$

在找到感兴趣的像素后，我们继续使用 [^17] 中提出的方法对连接的像素进行标记。对于每个对象，我们使用一个辅助组件表 [^18]，其中保存了用于进一步使用的重要信息，例如质心、像素数量、最大高度（MaxVal）和最小高度（MinVal）（相对于地面）、平均高度以及边界框。这只需要运行一次，从而节省计算时间。为了计算时间，我们只将此步骤应用于大于人类平均尺寸 150% 的块，并丢弃小于 $\approx$3% 的块（由于安装高度的不同，百分比在 2.3 到 3.5 之间有所变化）。

---

![Image](images/73a5282357a8b19ecf59c16ca22cadf4cdc5c4f04a94b75f09d99cc16627cc96.jpg)

<div style="text-align: center;">Figure 6. Foreground blobs detected and labeled.</div>

### B. 块分割

块分割过程由两个步骤组成。第一步是水平分割，其中每个块被分成具有恒定厚度 $t_{c}$ 的水平切片，并将像素按自上而下的顺序分组。它从块的最大值开始，一直到最小值。因此，不同的像素被分成不同的层（切片），这使我们能够区分头部和肩膀。现在像素按高度进行分割后，第二步使用与前面描述的相同标记方法，以获得标记表。在图 7 中，我们可以看到原始块（7a）和水平分割的结果（7b）。

![Image](images/60c0d1fc9e907765d948e2015307b73ba7368b114542f9456de6aa358db596f1.jpg)

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

![Image](images/d87da0b0b29c50c8475727bf66bb714f913ca4d98b9df97d3177fe209447ff94.jpg)

<div style="text-align: center;">Figure 7. Two people in contact: a) Depth image filtered and labeled. b) Blobs segmented by levels.</div>

### C. 图结构创建

图结构是一个双向图，称为搜索图（SG），其中每个节点代表一个区域，每条边代表两个区域之间的连接。我们重用了块分割的标签表，并添加了 4 连接属性：如果 4 连接中的一个像素不属于同一标签，则我们创建一个新的边。当连接的节点位于较低级别时，边具有正值，否则为负值。因此，我们得到一个相对于高度的层次图。

将人体目标表示为图的优点是，它使我们能够使用强大的数据表示，以便在图搜索方法中使用。为了简化，我们只考虑从顶部开始的 4 层。SG 由一个矩阵表示，大小为 $\text{card}(L')$。矩阵的值使用函数 $SG(r_1, r_2) = \text{level}(r_1) - \text{level}(r_2)$ 计算。为了找到头部，我们寻找只有正连接值的节点。换句话说，只有具有较低级别的子节点，如图 8 中的节点 3 和 6。

表 I 显示了图 8b 的 SG 的连接矩阵，使用 $SG(r_1, r_2)$ 计算。要找到头部，只需找到所有子节点都至少位于一个级别以下的节点。例如，表 I 中的第 3 行和第 6 行就是此类节点。

### VI. 跟踪和计数

为了在帧序列中获得更好的跟踪对象的时空关系，我们使用模型更新 [^2]。每次跟踪一个对象时，在下一帧中，SG 使用当前帧的信息进行更新。此模型更新还用于解决跟踪相关性问题，当算法有多个选项时。

对于计数算法，系统配置为使用最简单的计数边界：两个段分别模拟入口和出口。这些将场景划分为 3 个不同的部分。我们没有计算整个轨迹是否穿过两条线，而是标记了对象的入口区域，并且仅当对象的实际位置与标记的初始区域相反时，才增加计数器。

![Image](images/bcba9a5ba46601eebd260e1334072ce78a3e0ed6ee8f2d479c5cefcb383e52e5.jpg)

<div style="text-align: center;">Figure 8. The SG structure representation, where a) the blob is segmented with the top levels nodes of the SG and b) the resulting SG of the segmentation.</div>

---

<div style="text-align: center;">TABLE I. SEARCH GRAPH Connections</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Node</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>7</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>-1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>-2</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>-1</td><td style='text-align: center; word-wrap: break-word;'>-2</td><td style='text-align: center; word-wrap: break-word;'>0</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>-1</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>-1</td><td style='text-align: center; word-wrap: break-word;'>1</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>2</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>7</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>-1</td><td style='text-align: center; word-wrap: break-word;'>-2</td><td style='text-align: center; word-wrap: break-word;'>0</td></tr></table>

<div style="text-align: center;">This table describes the connections between the nodes. Rows 3 and 6 in bold and italic are the nodes that have only connected regions in lower levels; therefore their values are all positives.</div>

### VII. 结论与未来工作

我们创建了一个用于人员跟踪和计数的分布式系统，该系统使用嵌入式节点以及资源受限环境下的智能深度摄像头。

在我们的方法中，使用深度传感器可以减少传感噪声。 将系统安装在俯视方向可以最大限度地减少遮挡并提高覆盖范围。 背景模型可以节省计算时间，并考虑到不规则的可跟踪表面。 人体头部到肩膀的特征表示在搜索图中，这引入了一种轻量级的结构，用于区分人员，将搜索图发送到相邻节点，以及管理模型变形和比例变化。 结果是：安装高度估计的误差为 $\pm 2$ 厘米（与真实值相比，即使在复杂的场景中，如图 3b 所示）。 该过程在 x64 处理器上以 VGA 分辨率运行速度为 30 fps，在 ARM 处理器上为 10 fps，而在两种架构上以 320 x 280 像素的分辨率运行速度为 30 fps（使用较低的分辨率会降低精度）。 最后，该过程的准确率约为 95%。 该系统目前已由 Shopline Electronic 公司工业化并销售。

这种方法可以实现于低端嵌入式系统中，在智能 3D 摄像头的工作中实现实时处理。 整个系统具有高可靠性、远程可配置性以及易于设置。

我们的未来研究将遵循三个方向：我们将提出新的网络摄像头功能，例如多摄像头网络协议的实现、多摄像头标定以及防故障模型。 第二个方向是探索与人体形态相关的搜索图结构，以获得诸如年龄和性别等有趣的信息，从而实现更深入的人体特征描述。 最后，第三个方向是改进跟踪算法，以处理某些由遮挡引起的特殊情况，在这种情况下，无法分割两个或多个人员。 在这些情况下，该算法可以像 [^4] 中建议的那样，使用时空跟踪数据来合并/分离多个人员的轨迹。

## 参考文献

[^1]: T. Teixeira, G. Dublon, and A. Savvides, “A survey of human-sensing: Methods for detecting presence, count, location, track, and identity,” ACM Comput. Surv., vol. 5, pp. 427–450, 2010.

[^2]: Y. Wu, J. Lim, and M. Yang, “Object Tracking Benchmark,” Pattern Anal. Mach. Intell. IEEE Trans. On, vol. 37, no. 9, pp. 1834–1848, Sep. 2015.

[^3]: T. Teixeira, D. Jung, and A. Savvides, “Tasking Networked CCTV Cameras and Mobile Phones to Identify and Localize Multiple People,” in Procs. 12th ACM Int. Conf. on Ubiquitous Computing, New York, NY, USA, 2010, pp. 213–222.

[^4]: N. Kirchner, A. Alempijevic, X. Dai, P. Plöger, and R. K. Venkat, “A robust people detection, tracking, and counting system,” in International Conference on Robotics and Automation, 2014.

[^5]: K. Terada, D. Yoshida, S. Oe, and J. Yamaguchi, “A method of counting the passing people by using the stereo images,” in Image Processing, Procs. Intl Conf. on, 1999, vol. 2, pp. 338–342.

[^6]: T.-H. Chen, “An automatic bi-directional passing-people counting method based on color image processing,” in Procs. 37th Inter Carnahan Conf. on Security Technology, 2003, pp. 200–207.

[^7]: Z. Qiuyu, T. Li, J. Yiping, and D. Wei-jun, “A novel approach of counting people based on stereovision and DSP,” in The 2nd Inter. Conf. on Computer and Automation Engineering (ICCAE), 2010, vol. 1, pp. 81–84.

[^8]: M. Rauter, “Reliable human detection and tracking in top-view depth images,” in Conference on Computer Vision and Pattern Recognition Workshops, 2013, pp. 529–534.

[^9]: H. Fu, H. Ma, and H. Xiao, “Real-time accurate crowd counting based on RGB-D information,” in 19th IEEE International Conference on Image Processing (ICIP), 2012, pp. 2685–2688.

[^10]: C.-H. Chen, T.-Y. Chen, D.-J. Wang, and T.-J. Chen, "A cost-effective people-counter for a crowd of moving people based on two-stage segmentation," J. Inf. Hiding Multimed. Signal Process., vol. 3, no. 1, pp. 12–25, 2012.

[^11]: T. Teixeira and A. Savvides, “Lightweight People Counting and Localizing for Easily Deployable Indoors WSNs,” IEEE J. Sel. Top. Signal Process., vol. 2, no. 4, pp. 493–502, Aug. 2008.

[^12]: Youlu Wang, S. Velipasalar, and M. Casares, “Cooperative Object Tracking and Composite Event Detection With Wireless Embedded Smart Cameras,” IEEE Trans. Image Process., vol. 19, no. 10, pp. 2614–2633, Oct. 2010.

[^13]: H. Fu, H. Ma, and L. Liu, “Robust Human Detection with Low Energy Consumption in Visual Sensor Network,” Seventh International Conference on Mobile Ad-hoc and Sensor Networks (MSN), 2011, pp. 91–97.

[^14]: J. Liu, Y. Liu, Y. Cui, and Y. Q. Chen, “Real-time human detection and tracking in complex environments using single RGBD camera,” 20th IEEE Int. Conf. on Image Processing (ICIP), 2013, pp. 3088–3092.

[^15]: R. C. Browning, E. A. Baker, J. A. Herron, and R. Kram, “Effects of obesity and sex on the energetic cost and preferred speed of walking,” J. Appl. Physiol., vol. 100, no. 2, pp. 390–398, Feb. 2006.

[^16]: M. P. Gibbens, Caldag 2013: An Interpretive Manual and Checklist. International Code Council, 2013, pp. 138–140.

[^17]: L. Di Stefano and A. Bulgarelli, “A simple and efficient connected components labeling algorithm,” in Image Analysis and Proc., Int. Conf. on, 1999, pp. 322–327.

[^18]: A. Rakhmadi, N. Z. Othman, A. Bade, M. S. Rahim, and I. M. Amin, “Connected component labeling using components neighbors-scan labeling approach,” J. Comput. Sci., vol. 6, no. 10, 2010, pp. 1099.
