Fast Cylinder and Plane Extraction from Depth Cameras for Visual Odometry

一、摘要

本文介绍了CAPE,一种从有组织的点云中提取平面和圆柱段的方法,该方法通过在平面单元格上运行,在单个CPU内核上以平均300 Hz的频率处理640×480深度图像。 尽管与最先进的平面提取相比,CAPE的延迟更一致,并且速度要快4-10倍,但具体取决于场景,我们还根据经验证明,将CAPE应用于视觉里程表可以改善由圆柱表面构成的场景的轨迹估计(例如, 隧道),而使用无法感知曲线的飞机提取方法会降低这些场景的性能。

为了在视觉里程表中使用这些几何图元,我们建议将基于点,线和平面的概率RGB-D里程表框架扩展为圆柱图元。 在此框架下,CAPE在融合的深度图上运行,并对圆柱体的参数进行概率建模,以解决不确定性和权重,从而优化姿态优化残差。

二、介绍

人造环境主要由平面组成,因此,针对结构化环境的SLAM [1-5]的最新趋势是利用平面图元来减少漂移,重建紧凑的地图并提高视觉里程表(VO)的鲁棒性。 这种基于RGB-D摄像机的系统通常是通过使用诸如图1所示的平面分割算法从深度图提取平面段开始的。此方法[6]在大多数环境中都可以实现良好的精度,同时显着 比其他选择[7,8]更快,这是实时应用程序的要求。 但是,通过使用贪婪聚类算法,它无法正确地将平面线段拟合为平滑的曲面。 这样的平面段是不稳定的,并且因此可能使相机姿态估计的性能恶化。 在工业和地下环境中,此问题更为严重,因为这些环境往往是由圆柱形表面制成的。

为了解决这些环境,我们首先提出了一种名为CAPE的圆柱和平面提取方法,该方法通过执行以细胞法线直方图为指导的细胞方向区域生长,然后使用模型拟合方案,在平面细胞网格上有效地进行操作。 根据主成分分析(PCA)对线段的形状进行分类,并使用基于线性最小二乘方圆柱拟合的嵌入式解决方案,嵌入顺序RANSAC。 此外,通过再次利用单元格网格,细分的边界得以大致确定。 我们认为,在这种应用中,确保低延迟比精确获取确切的段边界更为重要。

其次,我们建议通过扩展已经使用点,线和平面的概率RGB-D Odometry框架[5],将CAPE给出的圆柱体图元以及其他功能用于相机姿态估计。 按照此框架,可以对圆柱体参数进行概率建模,以解决不确定性,并通过对齐圆柱体轴来估算姿态。 实验是在有圆柱面(例如隧道)和没有圆柱面的环境中捕获的RGB-D序列上进行的。 我们的结果表明,将CAPE提取的圆柱应用于VO可以改善由圆柱表面构成的场景的性能,而仅使用PEAC [6]给出的平面会降低这些场景的基线性能。 此外,根据场景的不同,CAPE平均比PEAC快4-10倍,并具有更一致的延迟,大约3毫秒。 CAPE的源代码位于:https://github.com/pedropro/CAPE。



三、相关工作

从点云中提取形状基元时经常使用三种技术:RANSAC,霍夫变换和区域增长。 RANSAC已广泛用于平面提取[2、9、10],并在[11]中进一步用于提取球体,圆柱体,圆锥体和花托。 然而,RANSAC算法不利用空间(即,连通性)信息,因此这些方法通过约束采样区域来强制局部性。 最初提出用于2D线检测的霍夫变换通过使用高斯映射在[12,13]中应用于平面和圆柱体提取。 在[14]中提出了一种更有效的霍夫变换投票方案,投票是由八叉树给出的平面簇来进行的。

与这些方法相反,区域增长利用连通性信息。例如,在[15]中,通过在每次迭代中递归地添加一个相邻点,拟合一个新平面并检查相应的均方误差(MSE)是否足够低以接受该点,来逐点地增长平面段。尽力例如通过使用优先搜索队列来有效地实现这一点,但是合并尝试仍然需要昂贵的数量,因为除了最近的邻居搜索之外,合并尝试还涉及用于飞机拟合的特征分解。为了降低合并尝试的成本,[7]建议仅通过平均点法线来近似更新平面参数。这需要点法线计算,这被认为是昂贵的,但是,对于有组织的点云,[16]通过利用图像结构提出了一种有效的解决方案。在[8]中使用了此方法,并使用了连接的组件标签来进行平面分割,并且为了实现实时性能(30 Hz),正常估计和平面分割需要并行处理。通过对点(像素)簇进行操作而不是逐点操作,可以显着降低这些方法的计算成本:[6]中提出了一种称为PEAC的实时解决方案,该解决方案可实现最新的分割结果通过对图像补丁图进行操作。由斑块形成的平面段使用分层聚类聚类方法进行生长,然后使用逐像素区域生长进行细分。我们的方法通过操作平面网格上的网格来遵循这种方法,但是通过避免逐像素区域增长和聚类算法来实现更高的效率。这种聚类方法的局限性和[15]帽子平面适合于任何光滑的曲面,而例如在[8]中,通过分析片段协方差来丢弃片段。

最近出现了几种使用平面图元的SLAM系统[1-5]。 [1]展示了如何通过使用平面段压缩密集的重建模型,而在[3,4]中通过在地图优化框架中使用平面地标减少了漂移。 最近,我们在[5]中也证明了将平面与其他几何实体(即点和线)组合可以提高VO的鲁棒性,特别是对于低纹理表面。 这项工作[5]引入了一个基于特征的RGB-D里程表框架,该框架使用概率模型拟合和深度融合来推导并建模不确定性,以进行帧间姿势估计。 这项工作将该概率框架扩展到圆柱体。

尽管语义SLAM方法[17,18]在地图优化中使用高级特征(例如椅子,门)作为地标,但除了鱼眼单眼VO和地图中的贴图以外,仍未明确开发用于VO或SLAM的圆柱模型的几何形状。 [19]将管道作为几何约束合并到稀疏束调整中。

四、 CAPE: CYLINDER AND PLANE EXTRACTION 

我们的方法的工作流程如图2所示。给定一个以图像格式组织的点云,即深度图加上反投影的X和Y坐标,我们的方法首先尝试将平面拟合到像素块(网格单元),根据指定的网格分辨率进行分布。然后通过在这些平面单元上执行区域生长来找到光滑表面,然后根据先验​​建立的法线直方图选择种子。然后,通过具有平面和圆柱模型的级联方案的模型拟合算法来处理每个具有足够单元的分段。在此过程中,可以分割片段,因为可以通过区域增长来合并物理连接的基元。另一方面,如果平面段共享相似的模型参数并且连接了单元,则可以随后合并它们。最后,在通过形态学运算选择的细胞内,以像素为单位细分了片段的边界。这些模块的详细信息在以下各节中给出。

1、平面单元拟合

此步骤也由[6]中的图形初始化的第一阶段执行。 给定不重叠补丁的统一网格,我们评估每个补丁的平面度。 首先,具有明显缺失点或不连续深度的单元格被迅速分类为非平面单元(图2中为黑色单元格),因为这些单元上的平面拟合会产生较小的平面残差,尤其是具有较小斑块的残差。 具体来说,我们检查缺失点的分数是否大于一定的公差,而仅检查沿穿过补丁中心的垂直线和水平线的深度像素的不连续性,例如,如果任何相邻有效像素之间的深度差, 如果此交叉内的值大于某个值,则该单元格被认为是非平面的。 与[6]中一样,使用这种近似搜索所需要的检查要比查看每个像素邻域的深度差少。

然后,通过使用主成分分析(PCA)对通过这些条件的每个像元执行平面拟合,其中,特征向量最低的特征向量给出了平面法线,而特征值给出了平面的均方误差(MSE)。 如[6]中所述,如果MSE小于(σz+)2,则将单元分类为平面,其中σz是单元平均深度的估计标准不确定性,并且是公差系数。 到后来,在合并的单元格上最有效的平面上,单元格只需要存储3D点的第一和第二原始矩,因为可以使用König-Huygen公式方便地检索协方差矩阵。

2、法线直方图

为了进行区域生长,根据平面细胞法线的主要方向选择细胞种子。 为此,我们使用以球坐标角表示的法线的动态2D直方图。 建立直方图包括将平面单元的法线向量转换为极角和方位角,并使用图3所示的结构对其进行量化。为避免坐标奇异性,将小于极角量化步骤的极角分配为0°方位角 。

在区域增长期间,迭代地检索分配给最频繁的直方图bin的单元格,并通过删除区域增长找到的单元格来更新直方图。

3、细胞区域生长

算法1中显示了区域增长循环。通过函数GrowSeed(G,L,s)实现的区域增长自身使用4邻域搜索,其过程如下:将当前种子s的单元邻域c添加到该区域 如果(i)它包含在剩余细胞列表L中,(ii)细胞法线的点积大于TN,并且(iii)c的质心到种子的点到平面的距离,则返回R 平面小于Td(s),其预先计算为:lp(1-T2 N),其中l是单元s角处3D点之间的距离。 然后,必须进一步截断Td。 如果我们考虑arccos(TN)的法线之间的角度恒定,则此自适应阈值可以补偿以下事实:单元质心之间的距离随深度而增加,点到平面的距离也随距离而增加。


4、平面和气缸配件

我们的模型拟合方法遵循分阶段方案,如算法2所示。首先,对于每个由平面单元组成的分段,由区域增长提供,使用每个单元的原始弯矩来拟合平面,如本节所述。 III-A,以获得段中所有点的协方差。 通过检查此协方差的第二大特征值与最小特征值之比(在第3行中完成)来评估平面度。如果足够大,则将线段标记为平面,并存储网格分段及其平面参数 。 否则,我们检查表面是否被挤压,即在一个方向上不变,这是敞开圆柱体的特性。


具体而言,这可以通过分析表面法线的分布来完成,因为在无噪声的挤压曲面中,法线协方差的最小特征值始终为零。因此,如第6行所示,给定一组单元法线N,我们对堆叠矩阵[N,-N]执行PCA,以补偿仅检测到一部分圆柱表面的事实。另外,该区域的跨度将影响第二个特征值,因此我们选择第一个λmax与最后一个λmin特征值之比(称为条件编号)作为接受处理曲面的标准。例如,一个球体将无法通过该测试,而包含多个平面或圆柱体的线段可以通过该测试。这很重要,因为在区域增长中可能会发生过度细分。这也是为什么在此阶段采用遵循[20]方法的顺序RANSAC算法来拟合多个圆柱模型的原因。这意味着圆柱体可以拟合到实际平面,这不是问题,因为圆柱体可以看作是平面的泛化,因为无限平面对应于无限半径的圆柱体。从RANSAC过程中获得一个或多个R子段后,要确定它们是否属于一个平面圆柱体,将每个平面细分为一个平面,并将各个MSE与圆柱体的MSE相比较,这由点对轴距离给出。根据RANSAC的实现,每次迭代都会选择三个像元,尽管最小的情况是两个,并使用下面说明的解决方案来找到圆柱参数。





5、模型段修正

图2中的网格段相当粗糙,因此它们的边界得到了修正。在PEAC中,通过使用像素区域生长来完善这些条件。不幸的是,正如[6]中的计时结果所揭示的那样,此步骤在计算上是昂贵的,而且它不能保证准确的结果,如图1左上方所示,因为由于像素法线是不考虑。因此,我们提出了一种基于对细胞网格进行形态学操作的细胞界搜索:首先,使用3×3核(搜索元素)腐蚀每个网格段,以去除边界细胞。第一步也由[6]中的优化算法执行。在这项工作中,我们丢弃完全腐蚀的线段,并使用破坏性小于8邻域内核的4邻域侵蚀内核。然后,使用8个邻居的3×3内核对原始段进行扩展,以扩展我们的段。有效的细胞由膨胀段和侵蚀段之间的差给出。这些像素在图2中显示为白色单元格。计算了段模型与这些单元格中每个点之间的距离,因此,如果每个像素的平方距离小于模型MSE乘以常数(k = 9(在这项工作中),如果它是与共享精炼单元的任何模型之间的最小距离。因此,在细分时需要存储距离。

五、RGB-D杂物筒

为了利用VO提取的平面和圆柱体原语,我们将[5]中的RGB-D里程表框架方法扩展到圆柱体。原始系统已经允许在概率框架内使用点,线和平面特征,该框架对深度和特征参数的不确定性进行建模和传播。但是,与完整的SLAM系统和复杂的VO方法相反,姿势估计使用基本的帧到帧方案,该方案易于漂移。为了解决传感器深度噪声问题,该框架还结合了一个概率深度过滤器,用于基于时空深度融合的高斯混合模型,该模型明确地对深度不确定性进行建模。图5突出显示了本文对该框架的扩展,而在[5]中可以找到带有点,线段的更详细的模型。在提取平面和圆柱段及其参数之后,使用概率模型拟合解决方案来精炼参数并推导其不确定性,然后在最后一帧和当前帧之间试探性地匹配圆柱和平面,然后通过基于迭代加权最小二乘法。然后在给定估计姿势的情况下执行时间深度融合,但是不幸的是,如该图所示,要利用此框架中的深度融合的好处,CAPE必须每帧运行两次,从而进一步提高了特征提取的速度要求。下面将详细介绍这些用于圆柱体基元的新颖模块。


1、概率圆柱拟合

为了通过考虑分段像素(而不是像元)及其深度不确定性来定义最终圆柱分段的参数,我们在此提出一种基于非线性加权最小二乘的迭代概率圆柱拟合,如图6所示。 


实际上,每段的点数太多,因此我们使用步长为5像素的网格对这些点进行二次采样。 尽管比第III-D节中的直接解决方案慢得多,但是使用解析雅可比行列式和LevenbergMarquardt求解器可以收敛约4次迭代,而数字雅可比行列式求解则需要约50次迭代。

2、气缸匹配

为了在连续帧之间匹配两个圆柱,我们首先检查两个圆柱形成的最小角度圆柱轴小于指定的阈值(30°),并且如果半径之间的马哈拉诺比斯半径(r1-r2)2σ2r1 +σ2r2小于最大值,则启发式设置为2000。 (6)。 如果匹配通过这些条件,我们将检查它们的图像片段重叠是否大于最小片段尺寸的一半,如[5]中针对平面片段的建议。

3、基于圆柱体的姿势估计


六、实验内容

我们已经在有或没有圆柱表面的场景上进行了实验。 对于非圆柱表面,我们从结构光Kinect捕获的TUM RGB-D数据集[23]和合成ICL-NUIM数据集[22]中评估了几个序列的性能,而对于捕获圆柱表面,我们收集了3 图7所示为带有枕形结构传感器的序列以及补充视频(见图1)。 使用标记板来测量姿势地面真相。 虽然较短的Yoga_mat序列在许多帧中都包含基本事实,但其他两个仅在轨迹的开头和结尾包含基本事实,因为这些是在闭环中捕获的。 第V-B节报告了特征提取的时序结果,第V-B节评估了VO的性能。


1、实验细节

所有结果都是在使用Intel i5-5257U CPU的PC上使用单核获得的。 深度图以VGA分辨率处理。 CAPE和PEAC均使用了20×20像素的贴片大小。 PEAC的其余参数保留为默认值,而CAPE参数则明智地设置为:TN = cos(π/ 12),plane_min_score = 100,extrusion_min_score = 100,k1 = 5,k2 = 5以及直方图has400bins.IntermsofVO,我们使用深度融合 除非另有说明,否则最大滑动窗口为5帧,并且特征点与CAPE或PEAC给出的特征组合在一起。 (9)中的比例因子在本节中进行了微调。

2、处理时间

图8中显示了来自三个不同数据集的三个序列的特征提取时序。 CAPE在整个序列中的性能一致,平均耗时3毫秒,spiral_stairway序列显示的圆柱段开销可忽略不计。 相比之下,PEAC除了平均要慢4到10倍之外,还表现出较大的方差和沉重的尾巴。 有趣的是,PEAC在客厅中的运行速度明显慢,并且还可以看到双峰分布。 通过仔细检查,我们观察到较大的差异是由于聚类和精细化步骤导致的,并且当相机紧贴一面墙时聚类会变慢,这增加了聚类算法的合并尝试次数。 根据这一观察,我们将CAPE和PEAC都设置在无噪声的合成墙上,并分别获得:20×20色块分别为2.6和34 ms,10×10色块为5.8和300 ms。

3、视觉里程表性能

首先,在图9中总结了瑜伽垫序列的VO的轨迹估计误差,同时基于网格搜索改变了平面和圆柱对姿势估计的影响,即,(9)中的特征类型权重。在给出图10所示的轨迹地面真实性的情况下,这被证明为绝对轨迹误差(ATE)。将所有因子设置为零意味着VO仅使用点特征。直到αplane= 0.05,使用PEAC提取的平面的性能得以改善,但此后性能严重下降。相反,仅具有平面的CAPE无法改善性能,因为这会丢弃圆柱面。这表明最好将此表面建模为根本不建模的平面。但是,当我们引入通过CAPE提取的圆柱体时,所有平面重量的误差都会不断减小,明显优于PEAC。基于图9和其他序列的性能,我们将剩余实验固定为αplane= 0.01和αcylinder= 0.1。

在图11中显示了针对其他两个序列估计的轨迹,并在表I中报告了各自的最终误差。我们发现,仅将特征点与在这些环境中表现不佳的平面和圆柱体相结合,因为它们由均匀的曲面主导 ,因此,在这里,我们像原始系统一样采用线段。 使用PEAC时,会降低基线的性能,带有圆柱体图元的CAPE能够改善性能,尤其是在螺旋楼梯上,用户在同一楼梯上上下走,因此轨迹应为图11中两条紧密对齐的线。



表II中报告了无圆柱场景的结果。 尽管在几个序列上性能相似,但在fr1_360中我们可以看到PEAC的性能优于CAPE。我们注意到,通过指定的参数,PEAC可以比选择性CAPE提取更多距离相机的平面,这对于摆姿势可能是有利的 如图9所示,在特征数量极低时进行估计。



七、结论与局限性

我们展示了一种一致的快速平面和圆柱体提取方法,该方法可以提高在圆柱表面制成的场景上的VO性能。我们相信,这种贡献对于完整的SLAM和模型跟踪系统可能会进一步有益。在图像单元而不是点上进行操作是提高效率和处理传感器噪声的关键,但是这会牺牲分辨率,即会筛选出小于贴片大小的表面。尽管在VO中这并不严重,因为我们更关心的是较大的稳定表面而不是较小的对象(可以使用特征点捕获),但这对于机器人抓取应用而言可能是个问题。因此,此处使用的参数需要针对其他应用程序进行进一步的微调。进一步承诺可以实现多尺度搜索。另一个限制是,也去除了由区域生长给定的,形成更复杂形状(即未挤压)的段。因此,合并其他基本体(例如球体和圆锥体)仍然是未来值得发展的方向。

你可能感兴趣的:(Fast Cylinder and Plane Extraction from Depth Cameras for Visual Odometry)