PoseFusion:动态人类环境中的密集RGB - D SLAM
1. 引言
同时定位与地图构建(SLAM)的任务是同时估计视觉传感器的位姿并重建三维(3D)静态背景。除了一些特殊应用外,大多数SLAM方法都假设机器人在静态环境中工作。动态环境对视觉SLAM来说是一个具有挑战性的问题,因为前景动态对象会遮挡静态背景特征,导致特征匹配失败或错误。在室内环境中,人类常被视为移动障碍物,特别是在人机交互过程中,他们可能会遮挡视觉特征。
一般来说,SLAM框架可分为前端和后端两部分。前端的任务是提取环境特征,用于图像或点云对齐;后端则负责维护图结构、保存关键帧信息、查找回环并处理相机位姿漂移。
为了解决动态环境下的SLAM问题,提出了一种基于人体运动分割和静态环境重建的新型密集RGB - D SLAM方法——PoseFusion。该方法将OpenPose集成到前端算法中以检测移动对象,使用Min - Cut分割去除动态点云,最后将静态环境点云输入到ElasticFusion框架进行静态环境重建。
2. 相关工作
2.1 动态SLAM方法
- EF和Kintinous :它们是从KinectFusion扩展而来的早期密集RGB - D重建框架,在静态环境中表现出色。EF是专门为静态环境中略有动态场景设计的先进方法,能处理小规模环境变化。
- Co - Fusion(CF) :是一种使用EF框架跟踪和重建多个移动物体的先进方法,但需要先在静态环境中重建地图,然后才能在该地图中启用动态对象检测和跟踪功能。
- The joint visual odometry and scene flow(SF) :通过将强度点云分割成多个簇,将簇分为移动前景和静态背景,最后将静态背景点云用于相机位姿跟踪。
- StaticFusion(stF) :将SF的结果扩展到环境重建,结合背景分割和EF的密集环境重建,实现了鲁棒且快速的动态分割和静态重建。
PoseFusion与CF和stF一样基于EF,与SF的思路相似,都是将相机运动与移动人体运动解耦。不同的是,SF通过比较所有片段的移动速度来分离前景和背景,而PoseFusion使用OpenPose分离移动人体片段。
2.2 人体检测方法
OpenPose可以从单张RGB图像中实时估计人体关节(如手腕和肩膀)的位置。它通过训练的卷积神经网络推导部分置信图来估计每个关节的位置,还能估计连接两个关节之间的向量场,使其对自我遮挡和多人遮挡都具有鲁棒性。OpenPose为我们提供了2D RGB图像中人体关节的可能位置,从而能够快速标记3D点云数据(PCD)中人体的位置。
3. 动态环境中的多人检测
PoseFusion的流程图如下:
graph LR
A[输入RGB和深度图像对] --> B[使用OpenPose检测人体关节]
B --> C[将关节点投影到PCD]
C --> D[使用Min - Cut分割去除前景]
D --> E[将静态背景输入重建]
PoseFusion以RGB和深度图像对作为输入。首先,使用OpenPose对RGB图像进行人体关节估计。当给定输入图像f时,通过CNN网络提取特征图并输出数据:
[ [h \times w]_f ]
其中,h表示检测到的人体数量,最多为15个,即OpenPose在一帧中最多可检测15个人;w是估计的关节列表,它在RGB图像平面上呈现一个概率图,表示最多18个人体关节的存在可能性。矩阵中的每个元素有三个分量:u、v、p,分别是图像像素坐标(u, v)和人体关节的存在可能性(p ∈ (0, 1])。
然后,使用针孔相机模型将估计的关节点从2D转换为3D,并用于标记PCD中人体的位置。接着,将带有这些关节点的PCD输入到Min - Cut点前景分割中。
Min - Cut是一种基于图割的点云分割方法。图割将每个点视为一个顶点,顶点与其邻居通过边连接。给定一些顶点作为前景先验,通过计算边的权重将前景对象从背景点中分割出来。在应用Min - Cut时,使用人体关节作为前景先验,并分配两个边权重:边平滑成本C和背景惩罚P。
- 边平滑成本C的计算公式为:
[ C = e^{-( \frac{len}{\sigma} )^2} ]
其中,len是边的长度,σ是用户定义的参数。顶点距离越远,边被切断的概率越大。
- 背景惩罚P的计算公式为:
[ P = \frac{\sqrt{(x - J_x)^2 + (y - J_y)^2}}{r} ]
对于关节点J(Jx, Jy, Jz),设置输入参数rad作为前景物体的最大水平(X - Y平面)半径。对于J的邻居点(x, y, z),计算其背景惩罚。
设置前景rad为20 cm,σ为0.25时,能获得良好的分割性能。经过Min - Cut分割后,背景片段被转换为静态深度图像,与原始RGB图像一起作为后续静态环境重建的输入。
4. 实验设置与结果
使用Freiburg SLAM基准测试集(包含动态SLAM系列fr3)对PoseFusion(PF)方法进行评估。该基准广泛用于动态场景比较。以fr3/walk xyz数据集为例,每个fr3数据集包含数百对彩色(RGB)和深度(D)图像,可转换为RGB - D PCD帧。
实验中,第一行显示重建的地图,第二行显示相应的输入RGB图像及其前景 - 背景分割结果。随着帧数的增加,重建逐渐完成,RGB视角随相机移动而变化,点云分割也在改变。当人走出相机视野时,第二行的图像中就没有前景簇了。
将PoseFusion方法与三种先进的动态SLAM方法进行比较:Scene Flow(SF)、ElasticFusion(EF)和Co - Fusion(CF)。通过比较它们的绝对轨迹误差(ATE)和相对位姿误差(RPE)来评估性能。ATE适用于测量视觉SLAM系统的整体性能,RPE适用于测量视觉里程计系统的漂移。
| 动态数据集 | SF | EF | CF | PF |
|---|---|---|---|---|
| fr3/sit static | 8.67 | 3.18 | 2.93 | 3.18 |
| fr3/sit xyz | 7.65 | 0.90 | 1.49 | 0.90 |
| fr3/sit halfsphere | 50.21 | 30.18 | 27.58 | 2.31 |
| fr3/walk static | 81.07 | 25.13 | 18.77 | 6.87 |
| fr3/walk xyz | 65.31 | 67.78 | 37.11 | 3.21 |
| fr3/walk halfsphere | 79.97 | 47.90 | 21.23 | 4.65 |
| 动态数据集 | SF | EF | CF | PF |
|---|---|---|---|---|
| fr3/sit static | 2.71 | 1.12 | 0.81 | 1.19 |
| fr3/sit xyz | 9.61 | 3.90 | 4.93 | 3.97 |
| fr3/sit halfsphere | 41.10 | 29.19 | 23.80 | 5.19 |
| fr3/walk static | 27.77 | 20.33 | 18.79 | 3.77 |
| fr3/walk xyz | 35.32 | 21.78 | 37.11 | 2.11 |
| fr3/walk halfsphere | 69.74 | 77.91 | 31.32 | 4.50 |
从实验结果可以看出,在高动态场景中,PF方法的估计误差最小;在低动态场景中,EF方法表现最佳,因为它是为静态环境设计的。
例如,在fr3/walk xyz数据集上,PF的平均轨迹误差仅为3.21 cm,而EF的轨迹误差较大。PF的RPE约为EF的十分之一。从重建结果来看,EF由于大的轨迹误差导致地图重建明显错误,而PF重建的地图对齐良好,其动态性能与EF在静态环境中的性能相当。
5. 结论
提出了一种用于动态人类环境的新型密集RGB重建方法。该方法结合了先进的基于深度学习的人体检测方法和静态密集SLAM方法,利用密集RGB - D数据解决动态环境问题。与其他先进方法相比,PoseFusion显著降低了对齐误差,在TUM基准测试中平均ATE为3.21 cm,而EF的ATE为67.78 cm。
此外,该方法不仅为特定的动态环境设置提供了解决方案,还为解决SLAM的“第二类错误”提供了一个框架。根据该方法,还可以集成先进的基于学习的目标识别方法来处理不同的动态环境,如在高速公路场景中引入车辆识别方法,在家庭和办公室场景中为服务机器人引入语义标注方法。
PoseFusion:动态人类环境中的密集RGB - D SLAM
5. 结论(续)
PoseFusion方法的优势在于其创新性的结合了人体检测与静态环境重建技术。在动态人类环境中,传统的SLAM方法往往会受到移动人体的干扰,导致特征匹配错误和轨迹估计不准确。而PoseFusion通过OpenPose准确检测人体关节,再利用Min - Cut分割去除动态点云,有效地解决了这些问题。
从实验结果来看,在高动态场景下,PoseFusion的表现明显优于其他对比方法。例如在fr3/walk xyz数据集中,其平均ATE仅为3.21 cm,而EF达到了67.78 cm。这表明PoseFusion能够更准确地估计相机轨迹,重建出更精确的静态环境地图。
在低动态场景中,虽然EF由于其专门为静态环境设计的特性表现最佳,但PoseFusion的性能也十分接近。这说明PoseFusion在不同动态程度的场景下都具有较好的适应性。
6. 技术优势分析
- 人体检测的精准性 :OpenPose作为先进的深度学习人体检测方法,能够实时准确地估计人体关节位置,即使在人体被遮挡的情况下也能保持较高的检测精度。这为后续的动态点云去除提供了可靠的基础。
- 动态点云分割的有效性 :Min - Cut分割方法通过合理设置边平滑成本C和背景惩罚P,能够有效地将动态的人体点云从静态环境中分离出来,保证了输入到重建框架的点云数据的纯净性。
- 与现有框架的结合性 :PoseFusion将OpenPose与ElasticFusion相结合,充分利用了ElasticFusion在静态环境重建方面的优势,同时弥补了其在动态环境下的不足。这种结合方式既保证了重建的效率,又提高了重建的准确性。
7. 应用场景展望
PoseFusion方法在多个领域具有广泛的应用前景:
-
服务机器人
:在家庭、办公室等环境中,服务机器人需要在动态的人类环境中进行导航和操作。PoseFusion能够帮助机器人准确地构建静态环境地图,避免受到移动人体的干扰,提高机器人的导航精度和操作安全性。
-
增强现实(AR)/虚拟现实(VR)
:在AR/VR应用中,需要实时准确地跟踪相机的位置和姿态,以实现虚拟内容与真实环境的融合。PoseFusion在动态环境下的高精度轨迹估计能力,能够为AR/VR应用提供更稳定、更真实的体验。
-
智能监控
:在公共场所的监控系统中,需要对动态场景进行实时分析和处理。PoseFusion可以帮助监控系统准确地识别和跟踪移动目标,同时重建静态背景,提高监控系统的性能和效率。
8. 总结与未来工作
PoseFusion方法为动态人类环境下的密集RGB - D SLAM提供了一种有效的解决方案。通过结合先进的人体检测和静态环境重建技术,该方法在高动态场景下显著降低了对齐误差,提高了重建的准确性。
未来的工作可以从以下几个方面展开:
-
算法优化
:进一步优化OpenPose和Min - Cut分割算法,提高人体检测和动态点云分割的速度和精度。
-
多传感器融合
:结合其他传感器(如激光雷达、惯性测量单元等)的数据,提高系统在复杂环境下的鲁棒性和准确性。
-
大规模场景应用
:将PoseFusion方法扩展到大规模场景中,研究如何处理大规模点云数据和长距离的相机轨迹估计问题。
以下是一个简单的mermaid流程图,展示了PoseFusion方法的整体流程和主要技术环节:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([输入RGB - D数据]):::startend --> B(OpenPose人体关节检测):::process
B --> C(关节点投影到PCD):::process
C --> D(Min - Cut动态点云分割):::process
D --> E{是否完成分割?}:::decision
E -->|是| F(静态点云输入ElasticFusion重建):::process
E -->|否| D
F --> G([输出静态环境重建结果]):::startend
以下是一个对比不同动态SLAM方法在不同场景下性能的表格总结:
| 场景类型 | 方法 | 绝对轨迹误差(ATE) | 相对位姿误差(RPE) | 重建效果 |
| — | — | — | — | — |
| 低动态场景 | PoseFusion | 较小 | 较小 | 接近EF静态性能 |
| | EF | 最小 | 较小 | 最佳 |
| | SF | 较大 | 较大 | 一般 |
| | CF | 较大 | 较大 | 一般 |
| 高动态场景 | PoseFusion | 最小 | 最小 | 最佳 |
| | EF | 较大 | 较大 | 较差 |
| | SF | 较大 | 较大 | 一般 |
| | CF | 较大 | 较大 | 一般 |
通过以上的总结和分析,我们可以看到PoseFusion方法在动态人类环境下的SLAM问题上具有显著的优势和广阔的应用前景。未来的研究和改进将进一步提升其性能,使其在更多领域得到应用。
超级会员免费看
1154

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



