基于立体感知的行人姿态估计
摘要
本文提出了一种在高级驾驶辅助系统(ADAS)背景下使用立体视觉系统进行行人姿态估计的算法。该方法通过分离行人点云,并利用基于可见性的行人三维模型提取行人姿态。该模型能够准确预测可能的自遮挡,并将其作为检测过程的组成部分。算法生成多个姿态假设,并采用类似蒙特卡洛技术的评分机制对其进行打分和排序。该技术从头部位置到下肢,执行对人体姿态的分层搜索。在道路安全背景下,算法应尽可能快速地感知行人姿态,以避免潜在的危险情况,而行人姿态有助于更好地预测行人的意图。为此,采用单一的行人模型来检测所有相关姿态,且该算法能够基于单个立体深度点云和最少的方向信息提取出行人姿态。该算法已在工业标准动作捕捉系统采集的数据上进行了测试,获得了准确的结果,能够以可接受的精度正确估计行人姿态。立体设置的使用使得该算法可应用于多种不同场景,包括所提出的ADAS场景、监控系统乃至人机交互。
1 引言
行人是最脆弱且最不可预测的道路使用者之一。行人突然开始移动或改变方向的能力可能会造成危险情况。在高级驾驶辅助系统(ADAS)背景下,对行人意图的预测有可能防止事故和可能的伤害。例如,检测行人是否打算在人行横道处横穿马路或停下。能够尽早感知行人运动的系统将提高道路使用者的安全性。在[1]中,作者研究了人类如何检测行人横穿马路的意图。作者向参与者展示了行人在自然交通状况下穿越马路的视频。作者得出结论:肢体语言的参数,如腿部或头部动作,对于一致的行为预测至关重要。仅靠行人轨迹不足以实现正确且稳健的预测。在此背景下,行人姿态的估计对于实现快速响应系统具有至关重要的意义。
本文提出了一种用于估计行人身体姿态的技术;通过该姿态估计,后续系统可据此解读姿态以实现动作识别。为实现上述目标,该系统不依赖于任何先前的手动初始化步骤或多帧跟踪系统。因此,所提出的系统能够仅基于单帧和最少的先验方向信息来估计姿态。该系统在分割后的行人点云上采用仿人体约束采样方案,进行分层自上而下的几何搜索,以检测身体部位和四肢。
人体姿态估计是一项具有大量潜在应用的复杂任务;鲁棒的交互式人体跟踪可应用于游戏、人机交互、安全、远程呈现和医疗保健[2]。由于搜索空间维度高、姿态之间频繁出现歧义以及存在大量局部极小值,该问题十分复杂。已有大量研究致力于仅基于单目视觉系统检测人体姿态(综述见[3]);由于许多不同的姿态会产生相同的图像投影,这一问题尤其难以求解。本文提出采用立体系统,该系统利用先进的立体匹配算法生成稠密三维点云。点云所提供的额外深度信息,相较于单目系统,显著缓解了姿态估计中的诸多歧义。现有的高性能深度感知系统大多依赖于结构光传感器[2];这些传感器具有高精度、高帧率和高分辨率,但由于传感器易饱和且测距受限,不适用于户外环境,因此无法应用于高级驾驶辅助系统(ADAS)场景。相比之下,立体设置因其低成本和低复杂度,在ADAS场景中仍然是最具吸引力的方案,尤其是与主动激光系统[4]相比。
在第2节中介绍了无标记姿态检测的相关工作。所提出的系统在第3节中进行了描述,其中身体部位的检测在第3.4节中介绍。实验结果在第4节中给出,最终结论在第5节中给出。
2 相关工作
如上所述,以往关于人体姿态的无标记检测与跟踪的研究主要集中在使用强度图像。在[3]中,作者们对所采用的不同技术进行了综述。作者区分了基于模型(生成式)和无模型(判别式)的方法,其中基于模型的方法利用了人体的先验信息。
在[5]中,作者提出了一种用于行人检测和关节姿态估计的通用模型。作者训练了解剖学定义的身体部位的检测器,并将其用作生成模型中的似然。作者采用基于图示结构的灵活的运动学树先验来建模身体部位的构型。在[6]中,作者将先前的工作扩展到包含多帧的证据。他们使用分层高斯过程潜变量模型(hGPLVM)结合隐马尔可夫模型(HMM)对时间先验进行建模,以扩展行人轨迹片段。他们的方法从二维身体模型生成自下而上的证据,因此构成了一种混合生成/判别方法。
在[7]中提出的工作将姿态估计视为一个非线性回归问题,并提出直接从轮廓图像估计身体姿态。他们采用身体部位的判别学习方法,并将该算法嵌入跟踪框架中,以帮助消除姿态之间的歧义。由于不需要预先的模型,该技术可以轻松适应不同的人、外观或三维身体姿态的表示。
当前的单目系统由于所使用数据的局限性而存在姿态模糊性问题。这些系统采用跟踪架构来解决姿态模糊性,但跟踪意味着需要使用多帧,从而增加了这些系统的响应时间。
也有研究使用多个单目相机来帮助解决姿态模糊性问题。在[8]中,作者提出使用多视角摄像来进行三维人体上半身姿态估计。他们的系统利用概率分层形状匹配算法在单个视图上生成多个三维姿态假设。这些假设被重投影到其他相机视图中,并根据其似然进行排序。他们的系统还应用了一种跟踪机制,在最大似然方法中融合了运动模型和观测结果。对多个视角的需求严重限制了这些系统的适用性。
最近,实时深度相机的引入极大地简化了姿态估计问题,与单目系统相比具有明显优势。在[9]中提出的研究利用飞行时间相机以视频帧率估计人体姿态。作者采用自下而上的方法来检测身体姿态,首先使用兴趣点检测器,随后结合分类系统。
立体视觉先前已被用于估计人体姿态,[10, 11]。在[12]中,作者将姿态跟踪问题视为两组三维点的配准问题。作者将迭代最近点(ICP)与无迹卡尔曼滤波相结合,提出一种能够跟踪关节体的配准算法。在[13]中,作者提出了一种使用立体视觉和肤色滤波器的系统。该肤色滤波器用作分割方法以提取属于人体的点云。该方法使用多种不同姿态的模型,并计算误差度量以识别正确姿态。该工作在室内环境中进行,专注于上身姿态。
文中提出的算法[14]还利用了ICP算法的一种变体来匹配简化人体模型。作者采用基于卡尔曼滤波器的跟踪架构,并结合后续基于隐马尔可夫模型的姿态分类。所有提出的系统要么基于跟踪算法,要么不适用于高级驾驶辅助系统场景。
在高级驾驶辅助系统(ADAS)背景下预测行人意图的研究中,[15]提出了一种能够预测行人走到道路路边时是否会穿越道路或停下的一种系统。除了分类之外,该系统还利用带有自我运动补偿的立体相机稠密光流,获取行人上躯干和腿部的运动线索。通过主成分分析(PCA)进行降维,生成方向运动直方图(HOM)特征。当前运动通过基于四元数的旋转不变最长公共子序列(QRLCS)相似性度量与数据库进行匹配。
在同一主题上,[16]提出了一种可早期检测行人穿越车道意图的系统。该系统将肢体语言作为穿越意图的早期指标。他们的系统使用基础设施单目视觉系统提取运动轮廓方向梯度直方图(MCHOG)特征描述符,并应用线性支持向量机(SVM)系统来识别行人开始进入车道的时刻。
这些研究都将受益于对行人运动感知更准确和完整的理解。通过增加细节,可以更准确且更早地推断出行人的意图。使用立体视觉技术使得在户外环境中进行姿态估计成为可能。该系统对姿态模糊性(单目系统中的严重问题)的敏感性较低,并且在具有理想作用范围的户外环境中表现良好。所提出的系统重点关注高级驾驶辅助系统(ADAS)背景下的关键姿态,尤其关注腿部姿态。以往的研究未聚焦此问题,也未提出具备所需特性的解决方案:一种能够在户外环境中快速、无需初始化即可估计人体下肢在正常步行周期中姿态的方案。
3 立体视觉姿态估计
利用立体相机的三维点云获取人体姿态,如图1所示。姿态估计通过将立体相机点云的可见性与姿态假设的预期可见性进行比较的方法来实现。每个点的可见性定义为以下三种可能值之一:自由空间、占据或遮挡。自由空间分类表示该点从相机视角可见,但未被占据。占据点是从相机可见并被三维点占据的点。最后,遮挡点是指由于前方存在占据点而无法被相机看到的点。
稠密体素云被创建并与提取的行人点云重叠。一组三维射线穿过该稠密体素云,每条光线所截取的体素根据其可见性进行分类,其中以行人点云作为遮挡元素。分类后,该稠密体素云将成为计算不同假设得分的基础元素。
对于每个身体部位假设,使用一组三维射线来计算可见性。通过比较光线拦截点的分类与原始稠密体素云的相应分类,计算假设得分。
在计算身体部位假设的可见性时,先前检测到的身体部位被用作遮挡元素,例如:检测到的第一条腿会遮挡第二条腿的假设。该方法能够估计被遮挡的腿的位置。
本研究使用工业标准动作捕捉系统提供的数据作为真实值。该动作捕捉系统能够提供一组红外反射标记点的毫米级精确位置,如图1所示。为了进行直接比较,姿态估算法使用了一组与动作捕捉标记相对应的虚拟标记。
3.1 预处理
提取行人点云需经过三个步骤:地面平面估计、背景减除和欧氏聚类。地面平面估计采用RANSAC算法,有助于去除靠近脚部的点。背景减除算法去除了大部分不属于行人的点。最后,根据点之间的欧氏距离以及指定的阈值对前两个步骤得到的点进行聚类,最大聚类被视为行人。
该行人提取方案在所使用的数据集中效果良好,但在更复杂的场景中,可以采用其他先进的行人检测算法来分割行人点云。所开发的算法不需要将行人与背景进行完美的分割。
3.2 可见性计算
所提出的姿态估计算法假设已预先获得一个点云,该点云主要由属于单个行人的点构成。同时假设行人处于直立姿态,这是行人检测中常见的假设。
如前所述,使用光线追踪来计算哪些体素是自由的、占据的或遮挡的,见图2。该算法利用原始行人点云和传感器位置定义一组光线。对于每条光线,截取的体素被分类。最终结果是一个稠密体素云,其中每个体素包含上述分类,Vpedestrian。此过程对每个姿态假设重复进行。每个身体部位姿态假设由该部位的三维模型组成,见第3.3节,在某一假设姿态下。针对每个假设计算其可见性。通过将假设的可见性与原始点云的可见性进行比较,得到一个得分。
在图2中展示了两个躯干样本。每个样本代表相同的三维模型,但姿态不同。左侧假设对传感器可见的区域更大,因此被遮挡的体积也更大。左侧样本与行人对齐,因此其可见性将非常相似。右侧样本的得分将远高于左侧样本。
设 V={v1,…, vN}表示假设中的所有体素,每个假设的得分i通过计算每个体素得分的总和得到,即公式(2),其中每个体素的得分由公式(1)给出。
$$
\forall v \in V, s(v)=
\begin{cases}
P1 & \Leftarrow (v= v_{\text{pedestrian}}) \land (v= \text{free}) \
P2 & \Leftarrow (v= v_{\text{pedestrian}}) \land (v= \text{occluded}) \
P3 & \Leftarrow (v= v_{\text{pedestrian}}) \land (v= \text{occupied}) \
P4 & \Leftarrow (v= \text{occluded}) \land (v_{\text{pedestrian}}= \text{occupied}) \
P4 & \Leftarrow (v= \text{occupied}) \land (v_{\text{pedestrian}}= \text{occluded}) \
0 & \Leftarrow \text{otherwise}
\end{cases}
$$
$$
\mathbf{i} = \frac{\sum_{n=1}^{N} s(v_n)}{N}
$$
公式(1)中不同的权重(P1,…,P4)使算法能够补偿每种分类所对应的体素百分比的差异。
应用了几项性能优化。由于光线追踪的计算开销可能非常大,因此仅对 Vpedestrian云执行一次光线追踪。对于每个姿态假设,重复使用光线和被截获的体素位置。样本在变换后与 Vpedestrian云几何对齐,从而能够重复利用光线。样本的几何对齐还实现了两片点云的快速索引,避免了进行耗时的最近邻搜索。
光线追踪并非针对行人点云中的每个点进行。光线从传感器位置出发,构建一个具有特定垂直和水平分辨率的方形角度网格,分别为RV和RH。网格边界根据点云确定,以避免生成不必要的光线。垂直和水平分辨率是该算法的关键参数。更精细的网格能够提供更高的细节度,但受限于传感器自身的角度分辨率;而较粗糙的网格则对应更少的光线数量,从而提升计算性能。
3.3 三维模型
提出的算法将姿态假设的可见性与当前行人点云的可见性进行比较。为此,使用了一个逼真的几何三维模型来表示行人。该三维模型定义了用于计算每个不同姿态假设可见性的形状。该方法是分层且顺序的,首先检测的部位是躯干,然后是头部和上腿部,最后是下腿部。因此,该三维模型被分割为不同的身体部位以供单独使用。
设 P={p1,…,pN}表示由N个点构成的行人点云。P的整体包围盒为行人高度提供了粗略的高度估算。该高度估算可用于估计不同身体部位的尺寸。原始三维模型将被缩放以匹配此测量值。
3.4 检测身体部位
首先检测的身体部位是躯干。躯干姿态通过三个步骤提取。枢轴位置直接由质心位置和穿透因子定义。穿透因子用于在传感器方向上校正质心,使躯干枢轴位于身体内部而非表面。
第二步估计躯干方向 θtorso 在垂直方向 ˆz。为此,创建一组具有不同方向角的样本。每个样本进行评分,并获得如图3所示的图形。从该图形中可以明显看出,存在两个具有 180◦ 偏移的主要峰值。由于躯干形状在前侧和后侧相似,导致姿态模糊,因此出现这两个峰值。为解决这种模糊性,需要更多信息。在所提出的方法中,θtorso 使用最接近先前估计方向的最大值。
第三步估计躯干前倾角 φtorso,以及在垂直于垂直方向和由躯干方向导出的方向的轴上的旋转 φˆ= ˆz × θˆ。当行人快速移动或奔跑时,这种旋转尤为重要。
在估计躯干姿态之后,再估计头部姿态。头部枢轴直接由躯干姿态导出,并生成一组样本以检测头部在垂直轴 ˆz 上的旋转 θhead。
在估计头部姿态后,开始估计腿部位置。该算法首先根据预测距离确定哪条腿更朝向传感器。该预测距离基于躯干姿态的髋部距离。优先估计更朝向传感器一侧的腿部姿态。每条腿分为两个部分:大腿和小腿。大腿包含从髋部到膝盖的距离,小腿包含从膝盖到脚的距离。
大腿样本通过两个自由度创建,即在 ˆφ 轴上的旋转和在 θ 轴上的旋转。大腿以髋关节为支点,髋关节由躯干姿态确定。通过组合这两个自由度的旋转生成一组样本,并使用上述方法对样本进行评分。
小腿样本以膝关节为支点,并在相同的两个轴上旋转。所有旋转均受人体形态约束限制。
第二条腿姿态仅在第一条腿姿态之后进行估计。第一条腿姿态会影响第二条腿的可见性。在计算第二条腿的可见性时,第一条腿将被用作障碍物。该方法允许在腿部被遮挡时仍能估计其位置。生成的样本将反映出前方存在障碍物的情况,并且被遮挡的样本将被正确分类。
4 结果
提出的算法与高精度工业标准动作捕捉系统进行了比较。测试试验包含模拟行人过街,如图4所示。在试验中,获取了多个行人轨迹。测试包括与传感器平行、垂直以及成一定角度的行人轨迹。测试中包含了行人在模拟道路入口处停止的轨迹,也包含了行人奔跑的轨迹。该试验共包含1588帧,其中使用了1053帧。在立体相机中行人未完全可见的帧被丢弃。此外,动作捕捉系统并非总能在一帧中获取所有标记点,如果某个特定标记点未被找到,则该姿态估计标记点被丢弃。
获得了定量结果。通过在三维身体部位上定义类似于动作捕捉标记的虚拟标记,实现了直接比较。图5展示了整个试验中从动作捕捉标记到姿态估计标记的欧氏距离直方图。三维身体部位上的标记放置会影响结果。错误的放置将在图5中表现为误差,已尝试尽量减小该误差。表1列出了试验中使用的参数值。
| 参数 | 值 |
|---|---|
| P1 | 10 |
| P2 | 50 |
| P3 | 100 |
| P4 | 1 |
| RV | 1.5° |
| RH | 0.5° |
可以观察到,大部分结果(72%)小于0.1米,94%的结果小于0.2米。人体自身的遮挡带来了一些严重挑战,通常只有一侧肩膀可见,且腿部经常相互遮挡。所提出的方法即使在高度遮挡的情况下也能估计人的方向。由于该方法具有层次性,下身部位会受到上身部位误差的影响。为应对这一情况,下身部位的样本采用了比正常更宽的限制范围。图6展示了姿态方向的结果。该方向是通过将肩膀标记投影到 X−Y 平面上计算得到的。该图展示了算法的身体方向误差直方图。
姿态方向被准确地估计出来。当行人奔跑时,误差最大。所使用的立体设置在低光照条件下表现较差,例如在动作捕捉实验室中。快速运动由于较长的曝光时间导致图像模糊。这反过来降低了立体匹配算法的质量。
所使用的立体数据质量良好,但仍然存在一些明显的噪声;立体噪声是提出的方法精度的主要限制因素。
我们的算法缺乏强先验,这带来了一些优势,但也存在劣势。如果有良好的先验知识,每个身体部位的搜索空间可以大大减少,从而提高估计精度。当前方案可以扩展以使用此类跟踪器。所提出的算法本身可用于初始化跟踪器,以及从失败中恢复。
5 结论
提出了一种能够利用立体点云检测人体姿态的算法。该算法能够使用单帧点云和最小运动朝向来估计姿态,以减轻左右姿态之间的歧义。所提出的方法采用基于分层可见性的姿态估计算法。该算法重点关注腿部位置,腿部运动将为试图进入或横穿道路的行人的早期意图提供线索。
该算法使用毫米级精度的工业动作捕捉数据进行了测试,数据来源于模拟可能的行人过街行为。所呈现的结果表明,即使在含噪声的立体数据情况下,该算法仍具有准确恢复姿态的潜力。与传统的单目系统甚至结构光系统相比,该立体设置具有一些显著优势。点云数据比单目系统具有更低的姿态模糊性,并且能够在户外环境中远距离工作。
我们提出的算法不需要任何姿态初始化或复杂的姿态跟踪算法。这一特点具有明显的优势,能够在行人进入场景时直接估计其姿态,而无需依赖会延迟得出结论的长时多帧跟踪系统。然而,后续应用跟踪算法将有助于提升计算性能以及在遮挡情况下的表现。该提出的算法可用于跟踪器的初始化步骤,或用于从跟踪失败中恢复。
未来的工作将集中于实现一个概率姿态跟踪器,最终构建一个将姿态检测与行人意图估计相结合的先进行人安全系统。
242

被折叠的 条评论
为什么被折叠?



