登山第九梯:稀疏点云实例分割——又快又准

news2024/12/24 6:50:02

文章:Fast Range Image-Based Segmentation of Sparse 3D Laser Scans for Online Operation

代码:https://github.com/PRBonn/depth_clustering

1)摘要

        从 3D 距离数据中分割对象是移动机器人领域的一个重要主题。在动态环境中导航的机器人需要注意可能发生变化或移动的物体。将激光扫描分割成单个对象通常是执行进一步分析之前的第一个处理步骤。在本文中,我们提出了一种快速方法,该方法将 3D 范围数据分割成不同的对象,在线运行,并且计算需求很小。该方法避免了 3D 点云的显式计算,而是直接在 2D 距离图像上执行所有计算,从而可以对每次扫描进行快速分割。该方法的另一个相关方面是,即使 3D 数据稀疏,也可以分割对象。这对于新型 Velodyne Puck 等扫描仪非常重要。在 C++ 和 ROS 中实施了该方法,并使用不同的 3D 扫描仪对其进行了全面测试。实验表明,该方法可以在单个内核的移动 CPU 上以超过 100 Hz 的频率运行 64 光束 Velodyne 扫描仪,同时产生高质量的分割结果。

2)创新点

提出一种不依赖时间信息帧稀疏点云对象分割算法

提出一种能够描述相邻之间深度变化角度特征给予特征实现了聚类

方法能够处理相离很近对象比如并排走的两个

3)算法结构

A 距离图像生成

        这项工作侧重于快速 3D 距离扫描分割,以便在配备旋转扫描仪的移动机器人上进行在线处理,例如具有 16、32 或 64 个光束的三种流行的 Velodyne 扫描仪之一。传感器的分辨率,尤其是垂直传感器的分辨率,会影响分割问题的难度。对于每对相邻点,基本上必须确定激光束是否从同一物体反射。

        然而,在作者的方法中,避免了显式创建 3D 点云,而是使用激光距离图像进行计算,例如,Velodyne 扫描仪是圆柱形图像。这有两个优点:首先,可以直接在 2D 图像范围内利用明确定义的邻域关系,这使得分割问题更容易。其次,避免了 3D 点云的生成,这使得整体方法的计算速度更快。

        大多数激光测距扫描仪将每束激光的单独测距读数作为原始数据,并带有时间戳和光束方向。这允许直接将数据转换为距离图像。图像中的行数由垂直方向的光束数定义,即 Velodyne 扫描仪的 16、32 或 64。列数由扫描仪水平扫描视场角度读数给出。这种虚拟图像的每个像素都存储了从传感器到物体的测量距离。为了加快计算速度,甚至可以考虑将水平方向的多个读数合并为一个像素。但是,作者并未对本文报告的所有时间进行此操作。

        在整个工作中,作者假设车辆在地面上移动,并且知道传感器相对于车轮的方向。因此,可以通过分析距离图像的列来快速获得地平面的估计值,这可以看作是接地平面估计的近似值。然后,从范围图像中删除地面。

B 特征计算

        文中方法的关键组成部分是能够估计任意两个激光束的哪些测量点来自同一物体。下图 的顶部图像显示了一个示例场景,其中两个人在骑自行车的人前面走得很近,骑自行车的人从他们和停放的汽车之间经过。此场景是使用 Velodyne VLP-16 扫描仪记录。左下角的图像显示了从位于 O 处的扫描仪测量的两个任意点 A 和 B 的插图,插图中的激光束 OA 和 OB。在不失去通用性的情况下,作者假设 A 和 B 的坐标位于一个坐标系中,该坐标系以 O 为中心,y 轴沿两个激光束中较长的一方定向。作者将角度β定义为激光束与在离扫描仪较远的点(在示例中为 A)连接 A 和 B 的线之间的角度。直观地说,角度β将同一对象上的两个点可能具有的深度距离与到扫描对象的距离相关联,这允许在单个参数中优雅地捕获此信息。在实践中,角度 β 提供了有价值的信息,以确定点 A 和 B 是否位于同一对象上。

鉴于激光距离测量的性质,已知距离 ||OA||,||OB||,因为它们对应于对应扫描距离d1和d2。

其中α相邻激光束角度激光雷达叫分辨率

        角度β背后的逻辑是,对于大多数对象来说,它保持相对较大,并且只有在给定距离图像的相邻点之间的深度差大大大于它们在通过扫描仪的角度分辨率定义的图像平面中的位移时,它才会采用较小的值。这种逻辑使作者能够定义一个参数 θ,作为角度β的阈值。此阈值能够决定是将距离图像中的任意两个点分离到单独的群集中,还是将它们合并为一个。如果 β 小于用户定义的值 θ,则认为深度变化太大,并决定将点分成不同的段。否则,这些点将被视为位于同一对象上。

        基于阈值的 β 标准显然是一种启发式方法,虽然能够适用大多数情况。但是,在扫描仪靠近墙壁的情况。对于远离扫描仪但仍在墙壁上的端点,角度β会很小,因此墙壁可能会被分成多个段。这基本上意味着,如果 β 小于 θ,那么我们很难推断我们是看到源自两个不同物体的点,还是只是位于几乎平行于光束方向的墙壁上。然而,尽管存在这个缺点,作者的实验表明该方法在实践中仍然有用,并且上述行为很少发生,如果是这样,通常只会导致特别倾斜的平面物体的过度分割。

        考虑到分离阈值,我们直接在范围图像中进行分割。如果两个端点是深度图像中的邻居,并且它们之间的β角大于 θ,则将它们视为源自相同对象的邻居。鉴于邻域的定义,我们可以将分割问题视为利用深度图像的结构和对β的约束找到连接的 2D 分量的问题。

        算法1 描述了作者用来查找连通分量的算法。使用复杂度为 O(N) 的直通滤波器的变体,其中 N 是像素数。该算法保证最多访问范围图像中的每个点两次。

        作者从距离图像的左上角开始,从上到下、从左到右遍历每个像素(第 4-5 行)。每当遇到未标记的像素(第 6 行)时,都会从该像素开始广度优先搜索(第 7 行)。此搜索的目标是标记此组件的每个像素。为此,广度优先搜索 (BFS) 使用一个队列(第 10-12 行)和一个由左、右、下和上像素组成的 N4 邻域(第 14 行)。鉴于处理图像的顺序,这里不需要考虑上部像素。是否应将 N4 邻域中的某个点添加到 BFS 队列的决定是根据相邻点和当前点生成的角度β(第 15-18 行)做出的。此过程可保证整个连接的分量将收到相同的标签。一旦 BFS 队列为空,我们将继续按顺序遍历范围图像,直到到达新的未标记点。

4)实验

移动设备桌面设备处理效率

上图是使用文章方法和来自 PCL 的欧几里得分割,从 64 束 Velodyne 数据集中分割大约 2,500 次扫描的时间

上图:使用 64 光束 Velodyne 拍摄的室外场景的点云(显示仅用于说明)。中:文章方法的分割,即使对于远处的对象也能提供正确的分割,同时不会对近处的对象进行低分割。底部:由基于网格的方法提供的分割,单元格大小设置为 0.2。有许多汽车位于离传感器较远的地方,缺少传感器,并且有一辆汽车与灌木丛合并。

左上:对使用 16 光束 Velodyne 拍摄的示例户外场景的分割。文中的方法能够找到基于网格的方法遗漏的对象,同时正确分割彼此靠近的人。左下:基于网格的分割结果。一些对象丢失,左下角的人物分段不足。右图:使用 16 光束 Velodyne 录制的室外场景,表明文中的方法能够分割多个小物体(如自行车)彼此非常靠近的复杂场景。

5)结论

        在本文中,作者提出了一种快速且易于实现的 3D 距离数据分割方法。该方法直接对距离图像进行操作,不需要在 3D 空间中显式计算点云。这简化了单个范围扫描的分割,因为可以利用距离图像给出的邻域关系。这使得算法能够成功地分割稀疏的激光扫描,例如从 16 光束 Velodyne 扫描仪记录的激光扫描。该方法利用了连通分量的高效计算,并且只有一个参数,该参数甚至具有物理动机。作者在不同的数据集上实施和评估了该方法,并提供了与其他现有技术的比较。在移动 i5 CPU 上,作者以 116 Hz 到 416 Hz 的平均帧速率以及 i7 CPU 上高达 667 Hz 的平均帧速率获得分割结果。

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

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

相关文章

C51单片机-单按键输入识别,键盘消抖

【实验目的】 独立按键的识别方法、键盘消抖等。 【实验现象】 每按一次独立键盘的S2键,与P1口相连的八个发光二极管中点亮的一个往下移动一位。 【实验说明】 关于按键去抖动的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为的因…

NR PDSCH/PUSCH支持的maxMIMO layers

这里不考虑UE支持的具体MIMO能力,仅仅讨论协议上定的maxMIMO layers。 PDSCH 根据上面38.331中的结构,PDSCH max MIMO layers 为8 layers,进行8 layers传输时 要enable two codewords,因为 one codeword只能支持4 layers传输&…

【信创】Linux系统如何配置USB存储禁用及例外 _ 统信 _ 麒麟 _ 方德

原文链接:【信创】Linux系统如何配置USB存储禁用及例外 | 统信 | 麒麟 | 方德 Hello,大家好啊!今天给大家带来一篇关于如何在Linux系统中配置USB存储禁用及例外的文章。禁用USB存储可以有效防止未经授权的人员从系统中复制数据或注入恶意软件…

CSS——盒子模型

首先CSS将所有的元素都看成一个盒子 盒子的组成: content —— 内容区域padding —— 内边距(边框与内容间的距离)border —— 边框线margin —— 外边距(盒子盒子间的距离) 这里着重说一下margin: 水平方向&#xff…

Kafka 基础与架构理解

目录 前言 Kafka 基础概念 消息队列简介:Kafka 与传统消息队列(如 RabbitMQ、ActiveMQ)的对比 Kafka 的组件 Kafka 的工作原理:消息的生产、分发、消费流程 Kafka 系统架构 Kafka 的分布式架构设计 Leader-Follower 机制与…

新品|瑞芯微RK3588工控机IPC8801适用AI算力、边缘计算、工业视觉

深圳触觉智能重磅推出旗舰级工控机IPC8801,搭载瑞芯微RK3588 ⼋核处理器;全铝紧凑机身、支持无风扇被动散热低噪音,确保设备在恶劣工业环境下稳定运行。 作为AI算力、边缘计算及工业视觉领域的高性能工控机,在国产化智能硬件与系统…

Axure PR 9 标签 设计交互

大家好,我是大明同学。 这期内容,我们将深入探讨Axure中可编辑标签元件设计与交互技巧。 可移除标签元件 创建可移除标签所需的元件 1.打开一个新的 RP 文件并在画布上打开 Page 1。 2.在元件库中拖出一个文本框元件。 3.选中文本框元件&#xff0c…

视频服务器:GB28181网络视频协议

一、前言 某项目中需要集成视频管理平台,实现分布在各省公司的摄像及接入,对视频进行统一管理。本项目中视频管理平台采用GB/T28181实现的监控设备接入管理平台,支持在开放互联网和局域网对监控设备进行远程接入、远程管理、远程调阅、录像回…

【文件包含】——日志文件注入

改变的确很难,但结果值得冒险 本文主要根据做题内容的总结,如有错误之处,还请各位师傅指正 一.伪协议的失效 当我们做到关于文件包含的题目时,常用思路其实就是使用伪协议(php:filter,data,inpput等等)执行…

【NOI-题解】1407. 图像相似度1330. 求最大梯形的面积1384. 靶心数1398. 奇偶统计

文章目录 一、前言二、问题问题:1407. 图像相似度问题:1330. 求最大梯形的面积问题:1384. 靶心数问题:1398. 奇偶统计 三、感谢 一、前言 欢迎关注本专栏《C从零基础到信奥赛入门级(CSP-J)》 本章节主要对…

优秀的安防视频监控平台应该具备怎样的视频编解码能力?

随着安防技术的飞速发展,监控平台作为保障公共安全、维护社会秩序的重要工具,其性能与效率日益成为行业关注的焦点。其中,监控平台的视频编码能力在视频监控系统中扮演着至关重要的角色,视频编码技术作为监控系统的核心组成部分&a…

200美元/月的ChatGPT Pro版上线?OpenAI草莓模型曝两周内发布,但模型表现要打个问号?

夕小瑶科技说 原创 作者 | 海野 现在看到“草莓”两个字,我已经条件反射了,已经不再是之前单纯的香香甜甜的草莓了。 一早醒来,又发生了两件“大事”: 一个是OpenAI的草莓(strawberry)被曝要提前了&#xf…

Xorbits Inference(Xinference):一款性能强大且功能全面的大模型部署与分布式推理框架

大模型部署与分布式推理框架Xinference Xinference的基本使用概述安装启动服务模型部署模型参数配置说明 API接口概述对话接口模型列表嵌入模型Rerank模型使用Xinference SDK使用OpenAI SDK 命令行工具概述启动模型引擎参数其他操作 集成LoRA启动时集成LoRA应用时集成LoRA 部署…

Stable Diffusion绘画 | ControlNet应用-Tile(分块)—tile_resample(分块-重采样)

要想使用 SD 生成高品质图片,放大增加分辨率是必不可少的环节。 tile_resample(分块-重采样) 主要是将图片切分成很多个分块,并识别每个分块的信息,最终通过特定算法把分块的信息重组起来。 能有效避免直接对一整张图片统一处理&#xff0c…

TensorFlow深度学习框架改进K-means聚类、SOM自组织映射算法及上海招生政策影响分析研究...

全文链接:https://tecdat.cn/?p37652 分析师:Chen Zhang 在教育政策研究领域,准确评估政策对不同区域和学生群体的影响至关重要。2021 年上海市出台的《上海市初中学业水平考试实施办法》对招生政策进行了调整,其中名额分配综合…

LSS可视化分析

1 完整 2 去掉plt.imshow(img_show) 3 去掉plt.axis(‘off’) 4 去掉plt.annotate(cams_text[img_id].replace(‘_’, ’ ), (0.01, 0.92), xycoords=‘axes fraction’)

3C电子胶黏剂在手机制造方面有哪些关键的应用

3C电子胶黏剂在手机制造方面有哪些关键的应用 3C电子胶黏剂在手机制造中扮演着至关重要的角色,其应用广泛且细致,覆盖了手机内部组件的多个层面,确保了设备的可靠性和性能。以下是电子胶在手机制造中的关键应用: 手机主板用胶&…

【蓝桥杯省赛真题52】Scratch猪八戒落地 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解

scratch猪八戒落地 第十五届青少年蓝桥杯scratch编程省赛真题解析 一、题目要求 编程实现 1)点击绿旗,猪八戒在空中踩着一朵云,如图所示; 2)1秒后,猪八戒踩着云向地面移动,如图所示; 3)猪八…

海外问卷调查有其他方式赚美金吗?

大家好,我是梦蝶问卷,专注于海外问卷调查项目。 大家应该都了解,做海外问卷项目填写问卷能赚美金,那除此之外,还有其它盈利模式吗?答案当然是肯定的。 有创业过的朋友应该都知道,一个项目的每个…

spring项目期间的学习9/11

核心:需要计算具体要求字段出现的数量使用count,需要返回出现字段的数量需要使用AS,需要避免重复需要使用distinct,需要具体体现在8月份需要使用like 代码如下: selectcount(distinct device_id) as did_cnt,count(question_id) …