百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

对于激光雷达全景分割的传统点云聚类方法的技术总结与评测

bigegpt 2024-08-07 17:44 2 浏览

1

摘要


激光雷达全景分割是一项新提出的自动驾驶技术任务。与流行的端到端深度学习解决方案相比,我们提出了一种结合现有用于提取语义信息的语义分割网络的和一种传统的激光雷达点云聚类算法用于分割每个实例对象的混合方法。我们认为,在SemanticKITTI 数据集的全景分割排行榜上,基于几何信息的传统聚类算法相较于所有已发表的端到端深度学习解决方案达到SOTA性能值得考虑。据我们所知,我们是第一个尝试用聚类算法进行点云全景分割。因此,本文对四种典型的聚类方法进行了全面的技术调查,以及其在基准上的性能。这四种聚类方法是最具有代表性的、具有实时运行能力的方法。它们在本文中使用C++实现,然后包装为一个python函数,与现有的深度学习框架无缝集成。我们为同行研究人员开源了代码,代码地址 https://github.com/placeforyiming/ICCVW21-LiDAR-PanopticSegmentation-TradiCV-Survey-of-Point-Cloud-Cluster


2

主要贡献


我们提出了一种新的激光雷达全景分割框架。我们首次演示了用语义网络和传统的聚类方法来求解激光雷达全景分割的可行性。此解决方案优于最近发布的所有端到端神经网络解决方案。经典的聚类方法在CPU上以毫秒级运行,减轻了实例部分的标记工作,并有机会更好地适应全新的未训练过的场景,因为它对训练集没有偏好。作为一种传统的方法,它不是一个网络风格的黑盒,因此可以让人们清楚地知道该方法何时表现好或坏。


我们建立了一个激光雷达聚类算法的基准。以往关于激光雷达聚类方法的一个研究问题是,由于存在大的非物体表面,比如墙壁和地面,所以对于这些物体存在评价度量模糊。在这篇文章,我们通过使用具有已发布代码和检查点的语义模型框架来过滤掉所有这些非对象点。因此,聚类算法只会关注属于对象的点。我们进一步使用公认的全景分割的评价指标来直接评估和比较不同聚类方法的有效性。感谢SemanticKITTI数据集和排行榜,未来关于激光雷达聚类主题的研究可以遵循我们的基准作为实际的比较基线。


3

方法概述


Selected Reviewed Methods


现有的点云聚类方法可以被大致总结为四种类型,基于3D欧式空间的方法,使用超栅格或者超点来聚类点云的方法,在深度图上的改进单通道连通域标记方法,和在深度图上的的改进两通道连通域标记方法。在这个方法回顾部分,我们在每种算法中选取最具代表性的算法并且基于更加详细的介绍。


Euclidean Cluster


欧式聚类是一种简单的聚类方法。首先在整个点云上构造kd树,然后将半径阈值内的所有邻点聚类成为一个实例。



Supervoxel Cluster


Supervoxel(SLIC)是一种著名的传统图像处理操作,它将局部像素分组为具有类似特征的更大像素。超体素被设计在RGB-D点云上,相对应于二维图像上的超像素。与超像素相比,超体素有三个主要的差异。第一个是关于初始化的种子点。在超体素中,聚类的种子点是通过三维空间分割得到的,而不是投影的图像平面。第二个区别是一个额外的约束,即在考虑聚类点的迭代聚类算法中,对被占用的体素采取严格的空间连通性约束。第三个是在k-means算法中使用的距离定义。在超体素中,不再考虑二维图像上的距离,而是进一步考虑法向量的角度以及颜色的相似性。请注意,点云库(PCL)中超体素距离的定义与原论文不同。我们选择了原论文在PCL中实现的一种。距离D在下式中定义。空间距离D_s通过种子点的分辨率进行归一化,颜色距离D_c为归一化RGB空间中的欧氏距离,法向距离Dn用于测量表面法向量之间的夹角。w_c、w_s和w_n分别为颜色权重、空间权重和法向权重。



在本文中,我们研究的是没有RGB颜色信息的激光雷达点云,因此我们将所有点的颜色距离D_c设置为零。剩余的迭代k-means算法与二维图像上的超像素SLIC相同。上式的公式能够有效平衡局部法向量和局部欧氏距离的平衡。


Depth Cluster


Depth Cluster算法是激光雷达深度图上的一种快速单通CCL(连通域标记)算法。二进制图像上的CCL算法需要检查两个相邻像素是否都有相同强度。但是,激光雷达深度图上的CCL需要确定两个相邻点是否来自同一对象的条件。在深度聚类算法中,通过使用图中所示的神奇角度β来定义该条件。作者认为,如果β大于一个角度阈值θ,那么点a和点B来自同一个对象。在本文中,我们选择θ=10o作为阈值。



Scan-line Run Cluster


Scan-line Run(SLR)聚类是一种基于点云或深度图的逐行快速扫描算法。该方法是激光雷达深度图上基于图像的双通连通域标记(CCL)算法的对应方法。在SLR中,所有从相同的水平角度发出的点都被识别为一条扫描线。在一条扫描线中,所有更接近阈值Th_run的临近点都被聚类在一起,称为一个run。


一开始,SLR从第一行开始,然后将欧氏距离小于阈值Th_run的所有临近点分组在一起作为一个run。每个run都被分配一个唯一的标签作为初始聚类。接下来,SLR移动到第二行,重复运行分割,并检查第二行中的新run是否符合用新的阈值Th_merge定义的合并条件。如果两个run满足合并条件,则它们将被合并在一起。该标签也将被传递。如果第二行中的新run不符合以前任何运行的合并条件,则将分配一个新的聚类标签。对于这种情况,如果两个集群在一个新的线中相遇,SLR将把它们与较小的聚类标签合并。此过程将保持逐行移动,直到处理完所有激光雷达扫描线。我们在下图中可视化了这个过程。

该算法在下图中进行了总结。其中的查找最近邻函数的目标是在前一个扫描线中搜索最近的点。最初的论文提供了几种查询最近邻的方法。



4

实验结果


对于传统方法效果比较



对于使用Cylinder3D + SLR的方法和其它方法的比较



对于在SemanticKITTI数据集上使用Scan-line方法的一个可视化



最后是作者在其电脑上对于传统方法运算时间的比较



Abstract

LiDAR panoptic segmentation is a newly proposed technical task for autonomous driving. In contrast to popular end-to-end deep learning solutions, we propose a hybrid method with an existing semantic segmentation network to extract semantic information and a traditional LiDAR point cloud cluster algorithm to split each instance object. We argue geometry-based traditional clustering algorithms are worth being considered by showing a state-of-the-art performance among all published end-to-end deep learning solutions on the panoptic segmentation leaderboard of the SemanticKITTI dataset. To our best knowledge, we are the first to attempt the point cloud panoptic segmentation with clustering algorithms. Therefore, instead of working on new models, we give a comprehensive technical survey in this paper by implementing four typical cluster methods and report their performances on the benchmark. Those four cluster methods are the most representative ones with real-time running speed. They are implemented with C++ in this paper and then wrapped as a python function for seamless integration with the existing deep learning frameworks. We release our code for peer researchers who might be interested in this problem.

相关推荐

【Docker 新手入门指南】第十章:Dockerfile

Dockerfile是Docker镜像构建的核心配置文件,通过预定义的指令集实现镜像的自动化构建。以下从核心概念、指令详解、最佳实践三方面展开说明,帮助你系统掌握Dockerfile的使用逻...

Windows下最简单的ESP8266_ROTS_ESP-IDF环境搭建与腾讯云SDK编译

前言其实也没啥可说的,只是我感觉ESP-IDF对新手来说很不友好,很容易踩坑,尤其是对业余DIY爱好者搭建环境非常困难,即使有官方文档,或者网上的其他文档,但是还是很容易踩坑,多研究,记住两点就行了,...

python虚拟环境迁移(python虚拟环境conda)

主机A的虚拟环境向主机B迁移。前提条件:主机A和主机B已经安装了virtualenv1.主机A操作如下虚拟环境目录:venv进入虚拟环境:sourcevenv/bin/active(1)记录虚拟环...

Python爬虫进阶教程(二):线程、协程

简介线程线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能...

基于网络安全的Docker逃逸(docker)

如何判断当前机器是否为Docker容器环境Metasploit中的checkcontainer模块、(判断是否为虚拟机,checkvm模块)搭配学习教程1.检查根目录下是否存在.dockerenv文...

Python编程语言被纳入浙江高考,小学生都开始学了

今年9月份开始的新学期,浙江省三到九年级信息技术课将同步替换新教材。其中,新初二将新增Python编程课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法按照教材...

CentOS 7下安装Python 3.10的完整过程

1.安装相应的编译工具yum-ygroupinstall"Developmenttools"yum-yinstallzlib-develbzip2-develope...

如何在Ubuntu 20.04上部署Odoo 14

Odoo是世界上最受欢迎的多合一商务软件。它提供了一系列业务应用程序,包括CRM,网站,电子商务,计费,会计,制造,仓库,项目管理,库存等等,所有这些都无缝集成在一起。Odoo可以通过几种不同的方式进...

Ubuntu 系统安装 PyTorch 全流程指南

当前环境:Ubuntu22.04,显卡为GeForceRTX3080Ti1、下载显卡驱动驱动网站:https://www.nvidia.com/en-us/drivers/根据自己的显卡型号和...

spark+python环境搭建(python 环境搭建)

最近项目需要用到spark大数据相关技术,周末有空spark环境搭起来...目标spark,python运行环境部署在linux服务器个人通过vscode开发通过远程python解释器执行代码准备...

centos7.9安装最新python-3.11.1(centos安装python环境)

centos7.9安装最新python-3.11.1centos7.9默认安装的是python-2.7.5版本,安全扫描时会有很多漏洞,比如:Python命令注入漏洞(CVE-2015-2010...

Linux系统下,五大步骤安装Python

一、下载Python包网上教程大多是通过官方地址进行下载Python的,但由于国内网络环境问题,会导致下载很慢,所以这里建议通过国内镜像进行下载例如:淘宝镜像http://npm.taobao.or...

centos7上安装python3(centos7安装python3.7.2一键脚本)

centos7上默认安装的是python2,要使用python3则需要自行下载源码编译安装。1.安装依赖yum-ygroupinstall"Developmenttools"...

利用本地数据通过微调方式训练 本地DeepSeek-R1 蒸馏模型

网络上相应的教程基本都基于LLaMA-Factory进行,本文章主要顺着相应的教程一步步实现大模型的微调和训练。训练环境:可自行定义,mac、linux或者window之类的均可以,本文以ma...

【法器篇】天啦噜,库崩了没备份(天啦噜是什么意思?)

背景数据库没有做备份,一天突然由于断电或其他原因导致无法启动了,且设置了innodb_force_recovery=6都无法启动,里面的数据怎么才能恢复出来?本例采用解析建表语句+表空间传输的方式进行...