登山第二十三梯:有序点云平面快速分割——35Hz帧速前进

文章目录

一 摘要

二 资源

三 内容


一 摘要

        3D 点云中的实时平面提取对于许多机器人应用至关重要。作者提出了一种新颖的算法,用于在从 Kinect 传感器等设备获得的有组织的点云中实时可靠地检测多个平面。通过在图像空间中将这样的点云均匀地划分为不重叠的点组,我们首先构建了一个图,其节点和边分别代表一组点及其邻域。然后,在此图上执行凝聚分层聚类,以系统地合并属于同一平面的节点,直到平面拟合均方误差超过阈值。最后,使用像素级区域增长来优化提取的平面。实验表明,所提出的算法可以可靠地以超过 35Hz 的帧速检测场景中的所有主要平面,对于 640×480 个点云,比最先进的算法要快得多。

二 资源

文章: Fast plane extraction in organized point clouds using agglomerative hierarchical clustering

代码:GitHub - qq625924821/peac: [ICRA2014] Fast Plane Extraction Using Agglomerative Hierarchical Clustering (AHC)

日期:2014年

三 内容

1)摘要

        3D 点云中的实时平面提取对于许多机器人应用至关重要。作者提出了一种新颖的算法,用于在从 Kinect 传感器等设备获得的有组织的点云中实时可靠地检测多个平面。通过在图像空间中将这样的点云均匀地划分为不重叠的点组,我们首先构建了一个图,其节点和边分别代表一组点及其邻域。然后,在此图上执行凝聚分层聚类,以系统地合并属于同一平面的节点,直到平面拟合均方误差超过阈值。最后,使用像素级区域增长来优化提取的平面。实验表明,所提出的算法可以可靠地以超过 35Hz 的帧速检测场景中的所有主要平面,对于 640×480 个点云,比最先进的算法要快得多。

2)创新点

①提出了一种基于组织点云的凝聚聚类的高效平面提取算法。

②分析了聚类算法的复杂性,并表明它在初始节点的数量上是对数线性的。

③展示了实时性能,其准确性可与最先进的算法相媲美。

3)算法结构

3.1快速平面粗提取

        快速平面提取算法包括三个主要步骤,如上图所示:该算法首先初始化一个图形,然后执行 AHC 以提取粗平面,最后进行细化。如果应用程序只需要对平面区域进行粗略分割,例如,检测点云中的对象,则可以跳过最后的优化步骤,这可能会将 640 × 480 个点的帧速率增加到 50Hz 以上。

        首先,我们澄清我们的符号。F 表示由 M 行和 N 列组成的有序点云的完整帧。B、C 分别表示粗细分割,即 B/C 的每个元素 Bk/Cl 都是一个段——一组 3D 点 pi,j 。同时 Π、Π0 分别是对应于 B、C 的平面方程组。另请注意,图 G 的每个节点 v 都是一组 3D 点,每个无向边 uv 表示图像空间中线段 u、v 的邻域。

A 图初始化

        我们的算法需要非重叠节点初始化,如算法 2 的第 3 行到第 5 行所示。此步骤在图像空间中将点云均匀划分为一组大小为 H × W 的初始节点。这个要求导致我们的算法失去了自动检测平面边界的优势。为了在此限制下使用 AHC 正确分割平面,我们从图中删除以下类型的节点和相应的边缘,如下图中的示例所示:

        1)具有高 MSE 的节点:非平面区域会导致高平面拟合 MSE,我们只需将其删除即可。

        2)包含缺失数据的节点:由于传感器的限制,可能无法正确感知场景的某些区域,从而导致数据丢失(例如,百叶窗后面的玻璃窗)。

        3)包含深度不连续性的节点:这些节点包含两组点,它们位于两个表面上,这两个表面在 3D 中并不接近,但在图像空间中很接近(通常一个表面部分遮挡了另一个表面,例如,显示器遮挡了后面的墙壁)。如果在属于该节点的点上执行主成分分析 (PCA) 以进行平面拟合,则拟合平面将几乎平行于视线方向,因此仍然具有较小的 MSE。将此“异常值”节点与其相邻节点合并将对平面拟合结果产生不良影响,因为在最小二乘法中存在众所周知的过度加权异常值的问题。

        4)两个平面之间边界处的节点:这些节点包含两组在 3D 中彼此靠近但位于两个不同平面上的点(例如,房间的角落),如果它们合并到其中一个平面,将降低平面拟合精度。

算法 2 中的函数 REJECTNODE 和 REJECTEDGE 旨在减少这四种不良初始节点的影响。REJECTNODE 函数从图形中删除前三种类型的坏节点(以及其中的点),而 REJECTEDGE 函数用于减轻第四种坏节点的影响。有趣的是,这种不重叠的 “劣势 ”的好处是避免了每点的正常估计。我们的初始化步骤可以看作是将节点内的所有点视为具有公共平面法线。与其他最先进的方法相比,这是我们速度提高的一个重要原因,这些方法通常花费大量时间对每个点进行正常估计。

B Agglomerative Hierarchical Clustering

        如算法 3 所示,我们算法中的 AHC 与线回归中的 AHC 几乎相同,只是它是在图而不是双链表上做的。我们首先构建一个最小堆数据结构,以有效地找到具有最小平面拟合 MSE 的节点。然后,我们重复查找一个节点 v,该节点当前在图中的所有节点中具有最小平面拟合 MSE,并将其与它的一个相邻节点 u_best 合并,从而产生最小合并 MSE(回想一下,图中的每个节点都是一组点;因此合并的 MSE 是两组 umerge 的并集的平面拟合 MSE)。如果此最小合并 MSE 超过某个预定义的阈值 TMSE(不一定是固定参数),则找到一个平面段 v 并从图中提取;否则,合并后的节点 umerge 将通过 v 和 ubest 之间的边收缩添加回图中。

3.2平面分割结果细化

        对于许多应用程序,在上一节中获得的粗平面分割可能还不够,特别是如果应用程序使用平面的边界或需要更高精度的估计平面方程。因此,我们对粗略分割 B 执行细化。

        粗略分割中预计会出现三种类型的伪影,如上图所示:

        • 锯齿波:通常位于两个连接平面之间的边界处。

        • 未使用的数据点:通常位于遮挡或缺失数据节点的边界处。

        • Over-Segmentation:通常在两个对象的遮挡边界之间

        锯齿伪影会导致估计中包含少量异常值,而未使用的数据点和过度分段会导致使用的异常值较少。所有伪影都会产生不准确的平面边界,并略微降低估计平面方程的精度。

        我们对它们的解决方案在算法 4 中进行了描述。由于锯齿伪影几乎总是在 B 的边界区域观察到,因此每个段边界区域的侵蚀可以有效地消除它们(第 5 行至第 13 行)。然后,从所有新的边界点开始像素级区域增长,将所有未使用的数据点分配给之前提取的最近平面(第 14 行到第 27 行)。在区域增长期间,将为每个段 Bk 发现 4 个连接的邻域,从而形成一个新的图形 G0 。最后,在这个非常小的图形(通常少于 30 个节点)上再次应用 AHC 可以修复过度分割伪影(第 28 行)。

4)实验

A 仿真数据

        在模拟深度图上测试了算法的鲁棒性,该深度图具有 20 个不同级别的均匀分布噪声,幅度为 E = 10l、l = 0、. . . 、20(噪声单位:mm;真实深度范围为 1396mm 至 3704mm)。将噪声添加到深度图后,我们将其转换为有组织的点云并输入到我们的算法中 (W = H = 20,TMSE = 502 )。如下图所示,我们的算法可以可靠地检测 l = 0, . . . , 14 的所有 4 个平面,并在此之后开始过度分割。然而,即使 E = 200 毫米,我们的算法也能够检测到场景中的主要平面。

B Kinect采集实际数据

        为了测量算法的处理速度,在室内场景中收集了 2102 帧 640 × 480 像素的真实 Kinect 数据,部分如上图所示。然后使用 12 种不同的初始节点大小(TNUM = 800,α = 0.02,e= 8mm,TANG 从 z = 500mm 的 15◦ 线性增加到 z = 4000mm 的 90◦)。如下图所示,初始节点大小为 10 × 10,即使经过细化,我们的算法平均只需 27.3 ± 6.9 毫秒即可处理一帧 640×480 像素的 Kinect 数据,实现了超过 35Hz 的帧速率。据我们所知,这比其他最先进的算法要快得多。

C 分割数据集

        使用 SegComp 数据集评估了算法的准确性。对平面场景的 ABW (W = H = 4,TMSE = 1,TANG = 60◦ ,TNUM = 160, α = 0.1) 和感知器 (W = H = 8,TMSE = 2.1,TANG = 45◦ ,TNUM = 240, α = 0.03) 数据集进行了实验。ABW 和 PERCEPTRON 测试数据集的典型分割结果如上图所示。使用 SegComp 提供的评估工具的详细基准测试结果如下表所示。可以看出,该算法在分割精度和平面方向估计方面的性能与最先进的算法相当,特别是考虑到帧速率要高得多

5)结论

        作者提出了一种新颖的有点云快速平面提取算法,在 640 × 480 个点云上实现了超过 35Hz 的帧速率,同时提供了准确的分割。将来,希望将该算法扩展到无组织的点云以及球体和圆柱体等其他基元的快速提取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【北京盈达科技】GEO优化:引领AI时代内容霸权,重塑行业生态

盈达科技GEO优化:引领AI时代内容霸权,重塑行业生态 在人工智能飞速发展的今天,生成式AI已经深刻改变了人们获取信息的方式。从ChatGPT到文心一言,再到各种智能问答系统,AI生成的内容正在成为信息传播的新主流。然而&a…

安卓端智能耗材柜系统可行性方案(基于uniapp + Vue3)

一、系统架构设计 1. 技术栈: 前端框架:uniapp Vue3 TypeScript状态管理:Pinia(分层设计,模块化Store)硬件交互:Android原生插件(Java/Kotlin封装)通信协议&#xff…

Java交互协议详解:深入探索通信机制

解析Java中各类交互协议的设计原理与实战应用,涵盖TCP/UDP自定义协议、HTTP/RESTful、WebSocket、RPC等主流方案。 一、交互协议核心概念 交互协议是系统间通信的规则集合,包含: 消息格式:数据序列化方式(JSON/XML/P…

k8s上运行的mysql、mariadb数据库的备份记录

文章目录 前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作2.手动备份3.定时任务自动备份 总结 前言 记录一下在k8s运行的数据库的备份步骤。 我的思路是新建一个数据库的容器作为工具容器,通过工具容器执行mysqldump命令进行备份,最后通过定…

宝塔面板部署python web项目详细教程

最近在学langchain,写了一个小案例出来,我刚好有一台服务器,就尝试自己部署一下项目,结果很幸运一遍过,现在记录一下。我的系统是OpenCloudOS 9 目录 1.安装python解释器版本 2.上传项目文件到宝塔面板 3.添加项目…

IT选型指南:电信行业需要怎样的服务器?

从第一条电报发出的 那一刻起 电信技术便踏上了飞速发展的征程 百余年间 将世界编织成一个紧密相连的整体 而在今年 我们迎来了第25届世界电信日 同时也是国际电联成立的第160周年 本届世界电信日的主题为:“弥合性别数字鸿沟,为所有人创造机遇”,但在新兴技术浪潮汹涌…

OAuth协议中的Token、Ticket

OAuth协议中的核心概念(如Token、Ticket等)可以通过日常生活中的类比来形象理解: 1. 门票(Ticket) vs 令牌(Token)类比 概念现实类比OAuth中的表现Ticket电影院纸质票🎫短期有效的临…

80x86CPU入栈与出栈操作

一、栈操作:入栈push,出栈pop 栈操作:FILO(先进后出机制) 栈顶的指针:ss:sp决定,任意时刻栈顶指针指向SS:SP的位置 对于8086CPU 入栈时:sp-2 出栈时:sp2 assume cs…

最优控制:从变分法到庞特里亚金原理

典型问题 根据系统的建模可以划分为: 线性系统: x ˙ A x B u \mathbf{\dot{x}} \boldsymbol{A}\mathbf{x}\boldsymbol{B}\mathbf{u} x˙AxBu非线性系统 x ˙ ( t ) f ( x ( t ) , u ( t ) , t ) \dot{\mathbf{x}}(t) \mathbf{f}(\mathbf{x}(t)…

DeepSeek 提示词大全

目录 前言一、提示词基础理论 什么是提示词提示词的类型提示词的基本结构 二、提示词设计原则 明确指令结构化表达情境化需求渐进式引导边界与限制 三、场景化提示词模板 写作创作类角色扮演类信息提取类代码编程类教育学习类商业营销类生活助手类 四、提示词优化技巧 迭代式优…

安科瑞Acrelcloud-6200系统:智慧路灯安全用电监控平台架构解析

安科瑞顾强———Acrelgq 智慧路灯作为智慧城市与新基建的核心载体,集成了大量异元异构电子设备,其供电安全与能效管理面临电压多样、权属分散、扩展性不足等挑战。本文提出一种融合统一供电、分路计量、智能防护与远程监控的解决方案,通过构…

DMBOK对比知识点对比(1)

1.CDGP各章活动 章节一级

css设置动态数值:clamp函数

CSS 的 clamp() 函数是一个强大的工具,用于创建响应式且范围可控的动态值。它结合了min() 和max() 的逻辑,允许你定义一个值在最小值和最大值之间动态调整。 语法为: clamp(最小值, 首选值, 最大值); 工作原理: 当 …

数值计算与数据相关参数剖析:保障模型训练稳定与准确

一、计算类型:以BF16为例 1.1 核心作用 BF16 是一种计算方式,它能让模型训练更快,还省内存。比如训练模型时,用普通方式可能很慢,占内存也多,而 BF16 就像给模型开了 “加速键”,训练起来更高…

数据库读写分离解决方案

数据库读写分离解决方案 一、读写分离核心概念 读写分离(Read/Write Splitting)是通过将数据库的读操作和写操作分离到不同的数据库节点来提升系统整体性能的架构模式。 核心原则:写操作集中在主库(Master),读操作分散到从库(Slave),通过数据复制保持主从一致性 二、技术实…

小白的进阶之路系列之七----人工智能从初步到精通pytorch自动微分优化以及载入和保存模型

本文将介绍Pytorch的以下内容 自动微分函数 优化 模型保存和载入 好了,我们首先介绍一下关于微分的内容。 在训练神经网络时,最常用的算法是反向传播算法。在该算法中,根据损失函数相对于给定参数的梯度来调整参数(模型权重)。 为了计算这些梯度,PyTorch有一个内置…

【图像处理基石】立体匹配的经典算法有哪些?

1. 立体匹配的经典算法有哪些? 立体匹配是计算机视觉中从双目图像中获取深度信息的关键技术,其经典算法按技术路线可分为以下几类,每类包含若干代表性方法: 1.1 基于区域的匹配算法(Local Methods) 通过…

《Map 到底适合用哪个?HashMap、TreeMap、LinkedHashMap 对比实战》

大家好呀!今天我们来聊聊Java中超级重要的Map集合家族 🎢。Map就像是一个神奇的魔法口袋,可以帮我们把东西(值)和标签(键)一一对应存放起来。不管你是Java新手还是老司机,掌握Map都是…

TencentOSTiny

开放原子开源基金会 腾讯物联网终端操作系统 _物联网操作系统_物联网OS_TencentOS tiny-腾讯云 GitHub - OpenAtomFoundation/TobudOS: 开放原子开源基金会孵化的物联网操作系统,捐赠前为腾讯物联网终端操作系统TencentOS Tiny 项目简介 TencentOS Tiny 是腾讯…

使用 Selenium 进行自动化测试:入门指南

在现代软件开发中,自动化测试已经成为不可或缺的一部分。它不仅提高了测试效率,还减少了人为错误的可能性。Selenium 是一个强大的开源工具,广泛用于 Web 应用程序的自动化测试。本文将详细介绍如何使用 Selenium 进行自动化测试,…