
# 面向多人姿态估计的三维空间头部分割与头部朝向 $*$

Sangho Park 和 J. K. Aggarwal

计算机与视觉研究中心

电气与计算机工程系

美国得克萨斯州奥斯汀市得克萨斯大学奥斯汀分校，邮编 78712

{sh.park, aggarwaljk}@mail.utexas.edu

## 摘要

本文提出了一种用于确定三维空间中多人头部朝向的算法。该算法利用灰度图像中的多种特征（即二值团块、轮廓剪影和强度分布），分别完成前景分离、头部分割和头部朝向分类。随后将所有信息结合，构建出多人头部在三维空间排布方式的集成表示，用于描述头部的相对位置。该算法采用基于矩的方法，将水平平面上0至360度旋转范围内的头部朝向划分为八个类别。该算法可轻松扩展至视频序列帧，用于描述场景中每个人的头部姿态随时间的变化规律。本文给出了实验结果并进行了示例说明。

### 1. 引言

在监控、人体动作解读、人机交互等涉及人类的应用中，对视频数据中的人类行为进行解读至关重要。对人类进行视觉解读是一项极具挑战性的任务，因为它需要检测易形变的人体形态、识别关节运动，还要理解人与人之间的交互。由于这些任务的复杂性$^{[1]}$，大多数研究都聚焦于特定身体特征的部分子集，将其作为视觉解读的输入，面部和头部是最常用的身体部位。

人类头部图像提供的信息十分有用，可帮助我们识别人脸、解读情绪、识别特定个体、跟踪头部运动。目前大多数人体图像研究都局限于单独的单一个体，针对多人之间相互关系的研究还处于新兴阶段。

我们的总体目标是构建一个识别系统，用于解读多个交互人员的空间构型。在多人场景中，解读人与人之间在时空维度的相对关系十分重要，这样视觉系统才能“理解”人们如何相互行为，以及当前场景正在发生什么。要理解人与人之间的相对行为，不仅需要从相机中心视角，还需要从目标中心视角理解图像。例如，一个人可能面向另一个人而非相机站立，其手势也是针对该人而非相机。因此，我们需要考虑相机下的所有观察方向，包括人体的正面、侧面和背面视角。

现有的与头部检测或头部朝向分类相关的研究在多个方面都存在局限性。Haritaoglu等人[^5]利用轮廓图像的直方图投影检测多个人的头部，将每个头部表示为二维空间中的一个单点。Horprasert等人[^6]通过对眼睛、鼻尖等面部特征位置进行三维到二维的投影，从单目图像序列中检测三维头部朝向。他们的算法仅适用于正面和半侧面人脸，因为算法依赖于对这些面部特征的定位。Baluja[^2]提出了一个可覆盖从左轮廓到右轮廓全朝向范围的系统，但他的算法需要手动对图像尺寸进行归一化处理。Darrell等人[^3]提出了一个可跟踪人脸并估计人脸姿态的系统，他们的算法是基于视角的，不依赖面部特征，但同样对人脸图像的观测范围有限制。

---

且需要多组不同的特征空间来适配不同的图像尺寸。Shirohey$^{[9]}$将椭圆模型应用于图像的边缘图，以实现人脸分割和识别，但他的算法仅适用于正面头部图像。大多数研究要么受观测方向限制（即仅能处理侧脸或正脸），要么要求归一化的图像尺寸，要么依赖人脸图像中面部特征的相对位置，而这需要高分辨率且可靠的面部特征检测。

本文提出了一种用于头部分割、头部朝向分类以及三维空间中多头部构型的新方法。我们的目标包括：检测水平旋转0度到360度范围内的多种头部朝向，实现与图像尺寸无关的处理，以及利用立体视觉完成三维空间中的多头部构型。如果没有三维信息，仅从二维头部图像得到的头部朝向会给建立由头部朝向索引的视觉注意力相对关系带来歧义，因为我们没有头部在三维空间中的位置信息。因此，我们需要确定头部在三维空间中的空间位置，才能判断场景中的人们是否真的能够看到彼此。立体视觉算法还能提供人与人之间实际距离的相关信息。我们的目标要求我们结合图像中由二值色块、轮廓和强度信息得到的多个处理结果，来解读人与人之间的相对关系。

图1展示了本文提出的系统的示意图。该系统受生物视觉启发[^7]，基于多个相互独立的处理流程。我们首先获取背景图像和输入图像。在预处理阶段，我们提取前景区域的二值色块、轮廓和强度信息。这些结果分别输入立体视觉模块（S.V.）、头部分割模块（H.S.）和头部朝向分类器（H.O.）进行处理，分别得到人员三维位置、头部分割结果和头部朝向结果。融合这些信息后，即可得到人们在空间中的相对位置和头部朝向的完整整合描述。

本文结构安排如下：第2节介绍提取多特征的预处理步骤；第3节介绍用于计算人体定位所需三维深度信息的立体算法；第4节给出头部分割算法，第5节给出头部朝向分类算法；第6节展示实验结果；最后，在第7节中我们讨论研究结果并展望未来研究方向。

![Image](images/dafbb2e208db2084de3cbfec77aa69a7afc4b567f602f628c17ac183953ad182.jpg)

<div style="text-align: center;">Figure 1. System Diagram (SV: Stereo vision module; HS: Head segmentation module; HO: Head orientation classifier)</div>

### 2. 多特征提取的预处理

为了使用背景减除法实现前景/背景分割，我们需要为背景图像建立背景模型。我们利用10帧背景图像，假设每个像素的强度变化在各帧之间服从正态分布，对每个像素位置计算均值和标准差以完成背景建模。对于背景模型中的每个图像点$(i,j)$，平均强度$MB(i,j)$和标准差$SdB(i,j)$计算如下：

 $$ MB(i,j)=\frac{1}{N}\sum_{k=1}^{N}B_{k}(i,j) $$

 $$ S d B(i,j)=\frac{1}{\sqrt{N-1}}\sqrt{\sum_{k=1}^{N}(B_{k}(i,j)-M B(i,j))^{2}} $$

---

其中$B_{k}(i,j)$是第k张背景图像在像素位置$(i,j)$处的强度，N为背景图像的数量（N = 10）。

利用背景模型对每个像素执行前景分割的步骤如下：在每个图像点$(i,j)$处，前景像素值$F(i,j)$的计算方式为，用给定输入图像对应点$MB(i,j)$的像素值减去背景图像的平均像素值$I(i,j)$。

 $$ F(i,j)=I(i,j)-MB(i,j) $$

通过应用由$F_b$和阈值T组成的多阈值方案，得到二值图像$S_dB$：

 $$ \begin{aligned}&F b(i,j)=0{~i f~}\left|F(i,j)\right|\leq2S d B(i,j)+T\\&F b\left(i,j\right)=1\quad{o t h e r w i s e}\\ \end{aligned} $$

SdB反映了受天气或自然光条件影响的开放区域的光照变化，T在整个处理过程中保持恒定。在整体光照无明显变化的封闭区域，T对二值化结果起主要作用。我们对前景二值图像$F_{b}$应用形态学操作以减少噪声，得到可靠的二值连通块；再对二值连通块应用`Canny`边缘检测器得到轮廓图像；最后将前景二值连通块$F_{b}$作为掩码作用于原始输入图像I，得到强度图像。

## 3 用于人体定位的立体视觉

立体视觉模块采用基于针孔相机模型的平行轴立体相机系统，生成前景二值连通块的粗深度图。图像中每个前景连通块的深度d计算如下：

 $$ d=B\frac{f}{D} $$

其中B为基线长度，f为焦距，D为视差。

通过计算图像帧中前景连通块的深度，我们将每个人的位置表示为空间中的一个点。深度图在左右顺序和连通块大小约束下通过三角测量计算得到。在一维极线约束下，将二值连通块的投影直方图作为对应点匹配计算的输入。立体视觉模块可输出空间中多个人的相对位置结构。深度的有效范围为2至10米，在此范围内多个人可被包含在同一图像帧中，且头部区域可获得满足实用要求的分辨率。图2展示了二值连通块、它们的投影直方图以及立体视觉模块的输出结果。

![Image](images/65cfa388b7c501e747b9c5bba4cf9acac0bfbf93ba0814fc467ca422ae4f866a.jpg)

<div style="text-align: center;">Figure 2. 3D depth of multiple persons A: Bob information from left and right camera. B: Projection histograms. C: Depth plot (top view)</div>

### 4. 头部分割

头部分割对于头部朝向分类是必要的。由于我们的头部朝向分类器是基于视角的，不采用特定头部模型，因此从输入图像中可靠裁剪出头部区域十分重要。我们提出了一种用于头部分割的部分椭圆拟合算法。普通椭圆（下文公式6）更适用于边缘图$^{[9]}$，与之不同的是，部分椭圆更适合轮廓图——在轮廓图中头部轮廓与肩部轮廓相连。我们通过极角30度的幅度移除普通椭圆的底部部分（公式7），构建出一个包含该部分椭圆的感兴趣区域（ROI），并在椭圆拟合计算中排除肩部像素。如果不进行这一步移除，最终拟合得到的椭圆通常会向图像的颈部和肩部区域偏移。

 $$ 1=\left(\frac{X-a}{R_{x}}\right)^{2}+\left(\frac{Y-b}{R_{y}}\right) $$

 $$ X=\cos(L+\pi/6),Y=\sin\left(L+\pi/6\right),\forall L\in\left[0,\frac{5}{3}\pi\right] $$

椭圆拟合作为优化过程执行，目标是最小化距离度量D：

 $$ D=\min_{k}\left[\sum_{i}^{I}Ds_{ik}+\sum_{j}^{J}De_{,},~+~PC,\Bigg\vert\quad\forall k\in\left[1,K\right]\right. $$

---

式中，$D_{S_{ik}}$是第i个轮廓点到最近椭圆点的距离，$De_{jk}$是第j个椭圆点到ROI中最近轮廓点的距离，PCk是应用第k个椭圆时，轮廓点总数与拟合点数量的比值。我们引入了一条针对人体的约束条件：头部位于上半身图像的极端位置，可大致由投影直方图的最高位置索引[^5]确定。该约束缩小了椭圆拟合的搜索空间。

图3展示了拟合椭圆叠加在前景图像上的示例。请注意，图像C中拟合得到的头部实际大小约为图像B中头部大小的一半。

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

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

![Image](images/dfbd32eb3e00aaeb07edbd9addc26040772533118a32886ffb3b63f5bb2dd8d6.jpg)

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

![Image](images/fb57b4bc319731b5c77c389197a3d6d7e43dc3e28928d7dc8a4d2f15b2bbb626.jpg)

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

<div style="text-align: center;">Figure 3. Head segmentation using contour A: Silhouette contour: B, C: Fitted ellipses overlaid on foreground image.</div>

### 5. 头部朝向分类

我们的头部朝向分类器是基于视角的，不采用特定头部模型或人脸模型，因此可以处理水平面上任意朝向的图像。依赖面部特征的算法[6, X]无法应用于任意头部朝向，包括缺乏面部特征的后脑勺视角和侧面视角头部。与依赖像素的算法[^2] [^3]不同，我们的分类器通过在头部图像上覆盖$3 \times 4$网格，利用像素强度分布的矩（见图4）。这种基于矩的算法让分类器不受图像尺寸影响，并且对椭圆拟合不完善或背景分割不完善导致的像素丢失具有鲁棒性。我们分别对12个网格单元，利用网格内的非零像素计算矩。对于因眼镜、耳环等产生的极亮异常像素，我们会使用基于训练数据中头部图像整体强度分布计算得到的阈值，将其排除在计算之外。$3 \times 4$网格生成了由12个矩值组成的特征向量X：

 $$ \boldsymbol{X}=(\boldsymbol{W}_{1},\boldsymbol{W}_{2},\ldots,\boldsymbol{W}_{12}) $$

式中每个$W_{i}$的计算方式如下：

 $$ W=\frac{\left((\frac{1}{N_{i}}\sum_{j,k}I_{i}(j,k))-M\right)}{\mathcal{SD}} $$

![Image](images/54162c8583eabdf1ffd328dd8ad7ecf79223cfa6d73ea5ac0ba5aec59c58d622.jpg)

<div style="text-align: center;">Figure 4. Moments feature extraction using a 3 x 4 grid after excluding outlier pixels in head image</div>

式中，$I_{i}(j,k)$是网格的$(j,k)$窗口中像素位置$W_{i}$处的像素强度，Nk是Wk中非零像素的数量。M和SD分别是裁剪得到的输入头部图像中所有非零像素的均值和标准差。

头部朝向分类使用K近邻分类器完成[^4]。我们从32个训练样本中选取7个最近邻进行分类。K近邻分类器将特征向量X分配给类别$\Omega_i$，条件是该特征向量在7个最近邻中拥有最多属于类别i的近邻。判别函数$g_k(X) = -d(X, X_k), k \in \{1, 32\}$用于衡量X与训练集中特征向量$X_k$之间的距离，距离函数$d(X, X_k)$被选定为$L_2$范数：

 $$ d\left(X,X_{k}\right)=\left\|X-X_{k}\right\|=\sqrt{\left(X-X_{k}\right)^{\prime}\left(X-X_{k}\right)} $$

图5展示了对图3中分割得到的头部的分类结果。结果表明，该分类器能够成功对尺寸各异、缺失面部特征和/或存在像素损失的头部进行分类。

![Image](images/36e40d1e4266d2f60ad4edaa6ff7e81b86d99163dd5509bf071e59044300b563.jpg)

<div style="text-align: center;">Figure 5. Examples of classification results with different-sized images.</div>

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Training Samples</td><td style='text-align: center; word-wrap: break-word;'>Test Samples</td><td style='text-align: center; word-wrap: break-word;'>Correct</td><td style='text-align: center; word-wrap: break-word;'>Incorrect</td><td style='text-align: center; word-wrap: break-word;'>%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>32</td><td style='text-align: center; word-wrap: break-word;'>64</td><td style='text-align: center; word-wrap: break-word;'>53</td><td style='text-align: center; word-wrap: break-word;'>11</td><td style='text-align: center; word-wrap: break-word;'>82.8</td></tr><tr><td colspan="5"></td></tr><tr><td rowspan="2">Type of Error</td><td style='text-align: center; word-wrap: break-word;'>Adjacent class (Error &lt; 45)</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>15.6</td><td style='text-align: center; word-wrap: break-word;'></td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Other classes (Error ≥ 45)</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>1.6</td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

<div style="text-align: center;">Table 1. Experimental results and the type of erors</div>

### 6. 实验结果

表1展示了实验的成功率。实验使用32张图像作为训练数据，另外64张图像作为测试数据。训练数据中每个头部朝向类别包含4张图像，测试数据中每个类别包含8张图像。表1显示，82.8%的测试图像得到了正确分类。在17.2%的错误分类样本中，15.6%的实际分类结果与正确方向相邻（头部朝向误差≤45"）。测试数据中仅有1.6%存在大误差（4.5" ≤ 误差 ≤ 90°）。

### 7. 结论

本文提出了一种检测三维空间中多人相对构型的新方法，该方法结合使用了立体视觉系统、头部分割方法和头部朝向分类器。我们的系统可处理缺失眼睛、鼻子、嘴唇等可分辨面部特征的低分辨率图像。该系统能够检测多个人的三维位置，成功分割图像中的头部区域并对头部朝向进行分类。通过结合三维位置、头部分割和头部朝向这三项输出，我们可以得到描述多人头部在三维空间中如何排布的简洁表示。

这种组合描述可用于推断交互过程中多人之间如何相互分配视觉注意力。由于任何人类交互都需要相互关注，该信息为“理解”场景中发生的交互类型提供了有用的先验知识。此外值得一提的是，不同的交互模式会对应不同的视觉注意力模式，相应地也对应不同的头部朝向模式。因此，将现有研究扩展到分析头部位置和朝向的连续变化，将为我们提供更多关于当前交互模式的详细信息，这将是我们下一步的研究方向。

## 参考文献

[^1]: J. K. Aggarwal and Qin Cai. Human Motion Analysis: A review. Computer Vision and Image Understanding, 1998, pp. 428-440.

[^2]: S. Baluja. Probabilistic Modeling for Face Orientation Discrimination: Learning from Labeled and Unlabeled Data. Advances in Neural Information Processing Systems I I, 1999.

[^3]: T. Darrell, B. Moghaddam, and A. P. Pentland. Active face tracking and pose estimation in an interactive room, Proc. CVPR 1996.

[^4]: R. O. Duda and P. E. Hart. Pattern Classification and Scene Analysis. New York: Wiley, 1973.

[^5]: 1. Haritaoglu, D. Harwood, and L. S. Davis. Hydra: Multiple People Detection and Tracking Using Silhouettes. Proc. Visual Surveillance, 1999.

[^6]: T. Horprasert, Y. Yacoob, and L.S. Davis. Computing 3-D Head Orientation from a Monocular Image Sequence. IEEE Proc. Int'l Conf. Automatic Face and Gesture Recognition. 1996.

[^7]: M. S. Livingstone, and D. H. Hubel. Segregation of form, color, movement, and depth: anatomy, physiology, and perception. Science, 240: 740-749,1988.

[^8]: H. A. Rowley, S. Baluja, and T. Kanade. Rotation invariant neural network-based face detection. Tech. Report, Department of Computer Science, Carnegie Mellon University, CMU-CS-97-201, 1997.

[^9]: S. Shirohey. Human face segmentation and identification. MS. Thesis. University of Maryland, 1993.
