Real-Time Plane Segmentation using RGB-D Cameras
1、Fast computation of local surface normals
直接计算x和y图像空间中相邻像素的法向量:
- 我们方法的基本原理是计算2个在点 p i p_i pi上与局部曲面相切的向量;
- 从这两个切向向量,我们可以很容易地用外积计算法向量;
- 计算法线最简单的方法是计算左右相邻像素之间和上下相邻像素之间的法线,如图1.a所示;
- 因为有噪声的数据和没有深度信息的区域(使用的相机的一个特殊特性),因此得到的法线也会受到很大的影响。为此,我们通过计算某邻域内的平均向量,对切向向量进行平滑处理。为了有效地进行平滑,我们使用了积分图像。
- 我们首先创建两个切向向量映射,一个用于x方向,一个用于y方向(同样是在图像空间中)。
- 对于每个映射的每个通道(笛卡尔x, y和z),我们计算一个积分图像,这导致总共6个积分图像;
- 使用这些积分图像,我们只需要2 × 4 × 3的内存访问就可以计算平均切向向量,且与平滑区域的大小无关;
总体运行时复杂度与计算法线的点数成线性关系
补充:积分图像
2、Fast plane segmentation
分两步分割局部表面法线:
- 对法线空间 ( n x , n y , n z ) T (n^x, n^y, n^z)^T (nx,ny,nz)T中的点进行聚类,得到候选平面聚类
- 在距离空间(平面与原点的距离)中聚类局部表面法向相似的平面
2.1、Initial segmentation in normal space
在最初的聚类步骤中,我们在法向空间或使用球坐标构造体素网格。使用球坐标允许在二维 ( φ , θ ) (φ, θ) (φ,θ)空间中进行聚类,但需要在合并聚类的后续处理步骤中使用更大的邻域。
对于法线空间的聚类,我们计算一个三维体素网格,并将局部表面法线映射到相应的网格单元
w
.
r
.
t
w.r.t
w.r.t.的大小。表面法线落入同一网格的点,形成具有相同法线方向的初始簇和平面集合。要么所有非空单元格,要么只有那些具有最小点数的单元格被认为是初始簇。
为了补偿相关的离散化效应,我们在三维网格结构中检查网格的邻居。如果两个相邻网格单元的平均表面法线方向低于聚类大小(和所需的精度),则合并相应的聚类。
为了能够合并多个集群,我们跟踪所进行的合并。如果集群a应该与集群b合并,且集群b已经与集群c合并,我们检查是否可以合并a和c,或者a + b是否比a + c是更好的合并。
2.2、Segmentation refinement in distance space
- 在假设集群中所有点都在同一平面上的前提下,我们使用相应的平均归一化曲面法线,计算原点到平面的距离
- 自然地,这些距离对于不同平行平面上的点是不同的,我们可以在距离空间中拆分集群
- 为了补偿距离传感器越远的测量值受不同误差和噪声源的影响越强的事实,我们计算了一个对数直方图。
- 同样地,那些距离落入同一个bin的点形成初始簇。然后通过检查邻近的bin来细化这些簇,就像在法线分割的细化中一样。
如图3所示