Robust Plane Detection Using Depth Information From a Consumer Depth Camera(论文阅读)

1、摘要

提出了一种鲁棒的基于深度平面检测(DPD)算法,该算法由两部分组成:基于区域增长平面检测和两阶段细化。

2、DEPTH-DRIVEN PLANE DETECTION

在这里插入图片描述

2.1 Valid Seed Patches Generation

  1. 为了确保生长过程建立在可靠的种子点上,大小为 L × L L×L L×L像素的滑动方形在整个深度图上以一个像素为单位滑动,并在检查窗口内所有点;
  2. 窗口内所有的像素格有深度值被视为有效的种子patch,用 ψ i ψ_i ψi表示, i i i是种子生成指数;
  3. 对每个有效的patch,用最小二乘进行平面拟合。patch内的点集 P P P,patch内均方根拟合误差:
    在这里插入图片描述
  4. 均方根误差表示每个patch的平面度,平面度越高,误差越小;

2.2 Region Growing Process

声明一些符号意义:

  • j j j用作上标,表示生长过程的迭代指数比如:一个平面 S i S_i Si在第 j j j次的增长,表示为 S i j S^j_i Sij ;
  • S i j ( f i j , δ i j ) S^j_i(f^j_i,δ^j_i) Sij(fijδij),其中 f i j f^j_i fij δ i j δ^j_i δij是分别平面的估计方程和拟合误差

具体步骤:

  1. 将上一步中每个有效的patch按照RMSE大小排序;记为种子列表 Ψ 1 \Psi_1 Ψ1, Ψ 1 = { ∀ ψ n , ψ m ∈ Ψ 1 : δ n < = δ m ; n < m } \Psi_1 = \{\forall \psi_n , \psi_m \in\Psi_1: \delta_n <= \delta_m ; n < m\} Ψ1={ ψn,ψmΨ1:δn<=δm;n<m} , 若两个patch的RMSE相等,则较早的patch排在前面;
  2. 列表中第一个patch作为种子开始迭代增长,知道满足一下停止条件其中一个:
    (a)集合 N i j N^j_i Nij邻域为空
    (b)没有合适的点加入当前的 N i j N^j_i Nij平面
  3. 种子列表更新为 Ψ 2 \Psi_2 Ψ2,去除检测平面中所有被吞没的种子patch,更新过程在每个平面的生长过程结束时进行,以生成新的生长种子列表 Ψ i + 1 = { ∀ ψ m ∈ Ψ i : ψ m ∉ S i } \Psi_{i+1} = \{\forall \psi_m \in\Psi_i: \psi_m \notin S_i \} Ψi+1={ ψmΨi:ψm/Si},其中i是检测到的平面索引。
  4. 重复此平面增长过程,直到更新的种子列表为空。

增长的策略:

  • 平面 S i S_i Si增长之前初始值为 S i 0 ( f i 0 , δ i 0 ) = s m S^0_i(f^0_i,δ^0_i)=s_m Si0(fi0δi0)=sm, s m s_m sm是当前列表中第一个patch最佳拟合平面;

  • 领域点分别代入平面方程 f i 0 f^0_i fi0,得到相应的拟合误差
    (1)如果拟合误差高于阈值T,则相应的相邻点被视为当前增长平面的异常值,否则,该点将并入该平面。

  • 在第一个生长阶段之后,平面方程 f i 0 f^0_i fi0将使用LLS平面拟合方法在新的点集上优化为 f i 1 f^1_i fi1 δ i 0 δ^0_i δi0通过公式(2)更新为 δ i 1 δ^1_i δi1

其他生长阶段也会重复类似的过程,可以总结为:
在这里插入图片描述
其中 T ( d , j ) T(d,j) T(dj)是阈值,它是深度值 d d d和增长数 j j j的函数。
阈值函数:
一个同时考虑噪声模型和平面尺寸的阈值函数:
在这里插入图片描述
式中, τ τ τ是平面的最大允许粗糙度; λ λ λ决定阈值的变化速度; H H H W W W表示深度图的大小; α α α κ κ κ是两个常数。
因此,对于每个平面, T ( d , j ) T(d,j) T(dj) j = 1 j=1 j=1初始化,最大阈值由j决定。可以调整参数 τ τ τ,以适应不同的物体反射率,并使平面检测对深度图噪声更加鲁棒。
同时,参数λ允许设置不同情况下初始生长阶段阈值的增长速度。

2.3 Refinement of Detected Planes

检测完平面后,进行细化。解决过增长和欠增长的问题。

2.3.1 Over-Growing Correction:

在这里插入图片描述
在图3中, S ‾ i \overline{S}_i Si S ‾ u \overline{S}_u Su是真实平面,而 S i S_i Si错误地侵入了Su并遭受了过度增长。
为了解决这个问题,在先前检测到的平面上依次执行三个步骤:

  • 1.确定相交线;
  • 2.检测过度生长区域;
  • 3.重新分配该区域

确定相交线:
假设当前要处理的平面是 S i S_i Si,只有当 S i S_i Si与其相邻 S u S_u Su的交线在图像边界内有一部分时,才进行过生长检查。因为相交线可以用两个平面的方程表示为关于 t t t的参数化形式:
在这里插入图片描述
其中“×”表示两个矢量的叉积运算,相交线上的点 p 0 p_0 p0可以通过计算得出
在这里插入图片描述
检测过度生长区域:
在这里插入图片描述
为了检测过度生长区域,采用一个线型扫描元件沿相交线段垂直扫描。过度生长区域的程度取决于几个因素,例如两个相交平面之间的角度、深度数据的精度和阈值 T T T
S i S_i Si S u S_u Su之间的角度 θ θ θ:
在这里插入图片描述
过生长区域的宽度由下式给出:
在这里插入图片描述
其中, T T T T ( d , j ) T(d,j) T(dj)的最大值。
因此,从(9)可以得到 S 0 S_0 S0的理论宽度。为了确保在扫描过程中能够完全覆盖生长过度区域的像素,扫描元件的实际宽度选择为 [ w ] ( 1 + ϵ ) [w](1+\epsilon) [w](1+ϵ) , [ w ] [w] [w]是想上取整, ϵ > 0 \epsilon > 0 ϵ>0,因此,实际宽度始终比理论宽度宽,这保证了当扫描元件的一侧位于相交段时,另一侧始终被 S u S_u Su包围。扫描从相交线段的一个端点开始,直到扫描元素到达另一个端点。在图4(b)和(c)中,检测到的过度生长区域So以橙色显示,可描述为:
在这里插入图片描述
其中 p p p表示属于过度增长区域 S 0 S_0 S0的点,且拟合误差小于两个平面增长阈值。

重新分配该区域:
这些点离相交线段越远,它们相对于 S i S_i Si的拟合误差就越大,将 S 0 S_0 S0中的边缘点 P E P_E PE代入两个平面方程可以确定 S 0 S_0 S0应该分配到哪里。用于重新分配过度增长区域的标准可以表示为:
在这里插入图片描述
在这里插入图片描述

2.3.2 Under-Growing Correction

在这里插入图片描述

该算法通过估计方程利用两个平面的空间关系,从而只合并平行、共面和相邻的平面。
由于,平面越大,平面方程假设越准确。

  1. 将所有检测到的平面按大小降序排列在列表 S S S S = { S u ; 1 ≤ u ≤ N } S=\{S_u;1≤ u≤ N\} S={ Su1uN} ,其中 N N N是检测到的平面总数。

  2. 然后,评估每两个平面之间的角度组合,并将其排列在上三角组合矩阵 Θ \Theta Θ中,具体如下:
    在这里插入图片描述理论上,如果两个平面(例如 S u S_u Su S k S_k Sk)平行,则它们之间的角度为零。然而,考虑到平面方程的估计误差和深度噪声,将并行条件修改为:
    在这里插入图片描述
    其中 θ u , k = ∣ a r c c o s ( n u k u ^ ⋅ n u j ^ ) ∣ \theta_{u,k} = |arccos(\hat{n^{k_u}_u} \cdot \hat{n^j_u})| θu,k=arccos(nuku^nuj^) , 是平面 S u S_u Su S k S_k Sk之间的夹角, △ θ u \triangleθ_u θu是平面 S u S_u Su的法向量与其增长期间最差估计值之间的角度:
    在这里插入图片描述

  3. 假设 S u S_u Su是最大的平面,我们通过 △ θ u \triangleθ_u θu筛选出与其平行的平面,根据大小顺序排列。为了进一步确定 S u S_u Su及其平行平面(例如 S k S_k Sk)的共面关系,计算 S k S_k Sk上每个点相对于 S u S_u Su的相对距离。同时,还计算了 S u S_u Su上各点的拟合误差。

  4. 利用直方图来表示这些误差,如果这两个直方图的Hellinger距离小于阈值 T h T_h Th S u S_u Su S k S_k Sk是共面平面。为了正确测量Hellinger距离,这两个直方图应具有(1)相同的起点和终点;(2) 相同数量的bin。通过将直方图转换为概率分布,可以将Hellinger距离写入

在这里插入图片描述其中 p u p_u pu p k p_k pk S u S_u Su S k S_k Sk拟合误差的概率分布, u i u_i ui k i k_i ki是第i个箱子的概率,n是箱子的总数
5. 大多数平面可以可以根据上述方法判断,但两平面尺寸相差过大时,即使共面得出Hellinger距离也很大,这是因为小平面的误差分布比大平面的更紧凑。
6. 为了消除尺寸偏差造成的负面影响,仅使用小平面点相对于大平面的最小拟合误差,即可判断一个超大平面(尺寸大于图像尺寸的六分之一)和一个小平面之间的共面关系。当最小误差小于 T m T_m Tm时,这两个平面被定义为共面平面。
7. 对于两个共面和相邻平面,相对较小的平面合并为较大的平面,即 S k S_k Sk合并为 S u S_u Su。则 S k S_k Sk从平面列表中删除。与 S k S_k Sk平行的平面也被视为与更新后的平面Su平行,并添加到Su的平行平面组中。
8. 重复此过程,直到无法合并更多对平行平面。

值得注意的是,在合并过程中,较大尺寸的平面始终具有优先权,因为它们具有较高的平面方程精度,这可以确保所提方法的有效性。平面合并过程如图7中的流程图所示。

相关知识:Hellinger距离

猜你喜欢

转载自blog.csdn.net/qq_43200940/article/details/127344536