Cylinder3D论文阅读

news2025/1/11 8:00:37

Cylindrical and Asymmetrical 3D Convolution Networks for LiDAR Segmentation(2020年论文)
作者:香港中文大学
论文链接:https://arxiv.org/pdf/2011.10033.pdf
代码链接:https://github.com/xinge008/Cylinder3D

摘要

为什么做这件事(why):
● 目前用于自动驾驶场景的最好的点云分割算法常见的做法是将3D点云投射到2D空间,从而使用2D卷积进行处理,但是这种做法会损失掉一些3D信息。
● 三维体素化和三维卷积网络在室外点云中获得的改进相当有限。
● 究其原因是:sparsity and varying density,即室外开发环境的点云的稀疏性和密度不均匀性
作者做了什么(what):
● 提出了一种新的框架,用于室外激光雷达点云分割
作者怎么做的(how):
● 圆柱形分区(3D cylindrical partition)
● 非对称三维卷积网络(asymmetrical 3D convolution)
● 引入了一个point-wise细化模块:
减轻基于体素的标签编码的损失干扰
作者做的怎么样(result):
● 在SemanticKITTI 1的排行榜上名列第一
● 在nuScenes上比现有方法高出约4%
● 所提出的3D框架也很好地推广到了激光雷达全景分割和激光雷达3D检测中

引言(Introduction)

提出问题:

● 激光雷达在自动驾驶中很重要
● 深度学习在图像分割算法上效果明显
● 目前的一些做法是将点云投射到2D空间(range-image方法、bev方法),但是会损失3D信息
● 三维体素化和三维卷积网络在室外点云中获得的改进相当有限

作者的论文:

提出了一种新的框架,用于室外激光雷达点云分割(3个创新点)
● 3D圆柱分区:这个组件涉及将3D点云数据分成圆柱形区域。它根据点离原点的距离动态进行分割。这种方法的理论依据是离传感器远的点通常具有较稀疏的数据,因此对这些区域使用较大的单元格。这有助于创建更平衡的点分布。
● 非对称3D卷积网络:这个部分指的是专门设计用于处理3D点云数据的卷积神经网络(CNN)。这些网络是“非对称的”,因为它们具有水平和垂直核,这些核被调整以匹配室外环境中的点分布。这种调整有助于使网络对稀疏数据更加稳健。
● point-wise模块:为了解决由于基于体素的编码而导致的信息丢失问题,引入了一个点级模块。这个模块可能对单个点执行操作,以refine从基于体素的网络获得的特征。它有助于保留重要的细节和点之间的区别。
在这里插入图片描述

相关工作

室内场景点云分割

室内场景特点

● uniform density
● small number of points
● small range of the scene

常用的方法

基于原始点进行处理:
● 基于PointNet,并通过改进采样、分组和排序等技术来提高性能
● 利用聚类算法来提取点的分层特征

缺点

这些方法在应对室外点云的问题时存在限制,因为室外点云通常具有不均匀的密度和更大的场景范围,而且点的数量较多,导致从室内到室外的部署时面临计算困难

室外场景点云分割

室外场景特点

● sparsity
● varying density

常用方法

大多数现有的室外场景点云分割方法侧重于将3D点云转换为2D网格,以便使用2D卷积神经网络
● SqueezeSeg、Darknet、SqueezeSegv2和RangeNet++等方法利用球面投影机制,将点云转换为前视图图像或范围图像,并在伪图像上采用2D卷积网络进行点云分割(range image)
● PolarNet则采用鸟瞰图投影,将点云数据投影到极坐标下的鸟瞰图表示

缺点

从3D到2D的投影方法不可避免地会损失和改变3D拓扑结构,并且无法模拟几何信息

3D Voxel Partition

● 将点云转换为3D体素,可以保留3D几何信息,但对于室外LiDAR点云的改进仍然有限。
● OccuSeg、SSCN和SEG-Cloud等方法采用了这种方法。
● 问题是这些方法忽视了室外LiDAR点云的固有特性,即稀疏性和不均匀密度。

Network Architectures for Segmentation

分割使用的一些深度学习网络架构:

  1. Fully Convolutional Network (FCN): FCN是深度学习时代的基础工作之一。许多工作都建立在FCN的基础上,旨在通过探索扩张卷积、多尺度上下文建模和注意力建模等方法来改进性能。这些工作包括DeepLab和PSP等。
  2. U-Net: U-Net是一个对称的神经网络架构,用于图像分割任务。它特别适用于保留低级特征,并在2D基准上取得了巨大的成功。最近,许多研究也将U-Net的思想应用到了3D点云分割领域。

方法论

整体框架

在这里插入图片描述
图2上半部分是整体框架。
● LiDAR点云首先被输入到MLP(多层感知器)中,以获得点级特征,
● 然后根据圆柱划分重新分配这些特征。
● 接下来,使用非对称3D卷积网络生成逐体素的输出。
● 最后,引入了一个点级模块,用于改进这些输出。这一过程有助于在室外LiDAR点云中执行语义分割任务,提高了分割的准确性和效果。
图2下半部分详细阐述了四个组件,包括非对称下采样块(AD)、非对称上采样块(AU)、非对称残差块(A)和基于维度分解的上下文建模(DDCM)。这些组件是框架的重要部分,用于处理和改进室外LiDAR点云的语义分割任务。以下是对这些组件的简要解释:

  1. 非对称下采样块 (AD):这是一个用于下采样(减小分辨率)的块,通常在卷积神经网络中用于降低数据维度和提取特征。在这个框架中,非对称下采样块用于降低点云数据的复杂性,以便更有效地进行处理。
  2. 非对称上采样块 (AU):这是一个用于上采样(增大分辨率)的块,通常在卷积神经网络中用于还原分辨率并生成高分辨率特征图。在这个框架中,非对称上采样块用于还原点云数据的分辨率,以便更准确地进行分割。
  3. 非对称残差块 (A):残差块是一种神经网络块,它有助于网络学习残差信息,从而提高网络的性能。在这个框架中,非对称残差块用于改进和优化特征表示,以更好地执行语义分割任务。
  4. 基于维度分解的上下文建模 (DDCM):这是一种上下文建模方法,用于捕获点云数据中的上下文信息。通过维度分解,DDCM可以更好地理解点云数据中的特征和结构,从而提高分割的准确性。
    这些组件共同构成了该框架的底部部分,用于处理和优化LiDAR点云数据,并执行室外语义分割任务。每个组件在提高模型性能和准确性方面都发挥着关键作用。

3D圆柱分区

在这里插入图片描述
上图展示了在不同距离下,圆柱形分区和立方体分区之间的非空单元格比例(结果是在SemanticKITTI的训练集上计算的)。可以看到,圆柱形分区在更大的距离下具有更高的非空比例和更均衡的点分布,特别是对于远处的区域。这表明圆柱形分区在处理不均匀密度的点云时具有明显的优势,特别是在远距离区域。这种优势有助于提高语义分割的准确性和效果。
在这里插入图片描述
图4中详细展示了工作流程。
● 首先,将笛卡尔坐标系中的点转换为圆柱坐标系。这一步将点(x,y,z)转换为点(ρ,θ,z),其中半径ρ(到原点的距离在x-y轴上)和方位角θ(从x轴到y轴的角度)被计算出来。
● 然后,圆柱形分区对这三个维度执行划分,需要注意的是,在圆柱坐标系中,距离较远的区域具有较大的单元格。从MLP获得的点级特征根据此划分的结果重新分配,以获得圆柱形特征。
● 完成这些步骤后,从0度开始展开圆柱体,得到3D圆柱形表示R ∈ C × H × W × L,其中C表示特征维度,H、W、L表示半径、方位角和高度。
● 接下来的非对称3D卷积网络将在这个表示上执行。这个工作流程有助于更好地处理LiDAR点云数据,并为后续的语义分割任务提供更好的数据表示。

非对称3D卷积网络

由于驾驶场景点云具有特定的物体形状分布,包括汽车、卡车、公共汽车、摩托车和其他立方体状物体,因此旨在根据这一观察来增强标准3D卷积的表示能力。此外,最近的文献 [40, 11] 也表明,在方形卷积核中,中央的十字交叉权重更重要。因此,设计了非对称残差块,以增强水平和垂直响应,并匹配对象点的分布。基于提出的非对称残差块,进一步构建了非对称下采样块和非对称上采样块,用于执行下采样和上采样操作。此外,引入了一种基于维度分解的上下文建模方法(称为DDCM),以在分解-聚合策略中探索高阶全局上下文。在图2的底部详细介绍了这些组件。
这些组件的设计和使用旨在提高网络对驾驶场景点云的表示能力,特别是对于包括汽车、卡车、公共汽车、摩托车等立方体状物体在内的对象的分布。非对称残差块、非对称下采样块、非对称上采样块和维度分解上下文建模(DDCM)是用于实现这一目标的关键组件。

Asymmetrical Residual Block(A)

在这里插入图片描述
非对称残差块增强了水平和垂直卷积核,以匹配驾驶场景中物体的点分布,并明确地使卷积核的骨架更强大,从而增强了对室外LiDAR点云稀疏性的鲁棒性。以汽车和摩托车为例,在图5中展示了非对称残差块的结构,其中3D卷积操作是在圆柱形网格上执行的。此外,与常规的正方形卷积核3D卷积块相比,所提出的非对称残差块还节省了计算和内存成本。通过整合非对称残差块,设计了非对称下采样块和上采样块,通过堆叠这些下采样和上采样块来构建非对称3D卷积网络。这些设计有助于提高网络的性能,并在处理室外LiDAR点云时提供了计算和内存的有效利用。

Dimension-Decomposition based Context Modeling (DDCM)

基于维度分解的上下文建模是为了捕获大范围上下文变化而设计的,因此全局上下文特征应该是高秩的,以具有足够的容量来捕获大范围的上下文信息 [49]。然而,直接构建这些高秩特征是困难的。因此,遵循张量分解理论 [8] 来构建高秩上下文,将其构建为低秩张量的组合,其中使用三个秩-1的核来获取低秩特征,然后将它们聚合在一起以获得最终的全局上下文。这种方法有助于提高网络对大范围上下文信息的建模能力。

Point-wise Refinement 模块

基于分区的方法通常会为每个单元格预测一个标签。虽然基于分区的方法可以有效地探索大范围的点云,但包括基于立方体和基于圆柱体的这一组方法不可避免地会遭受有损的单元格标签编码,例如,不同类别的点被分为同一单元格,这种情况会导致信息丢失。进行了一项统计来展示不同标签编码方法的效果,如图6所示,其中“majority encoding”表示使用单元格内点的主要类别作为单元格标签,而“minority encoding”表示使用次要类别作为单元格标签。可以观察到,它们都无法达到100%的mIoU(理想编码),并且不可避免地会有信息丢失。因此,引入了点级改进模块,以减轻有损的单元格标签编码的影响。
首先,将体素级特征基于点-体素映射表投影到点级特征。然后,点级模块将3D卷积网络之前和之后的点特征作为输入,并将它们融合在一起以改进输出。这种方法有助于提高语义分割的准确性,特别是在处理不同类别的点云时,避免了信息损失。
在这里插入图片描述
使用不同的标签编码方法(即,多数编码和少数编码)时,mIoU的上限。可以发现,无论采用什么编码方法,信息丢失总是会发生,这也是点级改进的原因。即使使用不同的编码方法,也无法达到理想的100% mIoU,因此点级改进模块的引入是为了减轻这种信息损失并提高语义分割的性能。

Objective Function(损失函数)

总损失函数由两个部分组成,包括体素级损失和点级损失。可以表示为 L = L_voxel + L_point。
对于体素级损失(L_voxel),遵循现有的方法 [10, 16],使用加权交叉熵损失和lovasz-softmax [4] 损失来最大化点准确度和交并比分数。
对于点级损失(L_point),只使用加权交叉熵损失来监督训练。
在推理时,point-wise refine 模块的输出用作最终输出。
对于优化器,使用Adam,初始学习率为1e-3。这些设置有助于训练和优化的模型,以获得更好的语义分割性能。

实验

实验设置

参数设置

For both two datasets, cylindrical partition splits these point clouds into 3D representation with the size = 480 × 360 × 32, where three dimensions indicate the radius, angle and height, respectively.

数据集

● SemanticKITTI
● nuScenes

评测方式

mIoU,定义如下:
在这里插入图片描述
whereT P i , F P i , F N i represent true positive, false positive, and false negative predictions for class i and the mIoU is the mean value of IoU i over all classes.

实验结果

在这里插入图片描述

消融实验

在这里插入图片描述
在这里插入图片描述

Generalization Analyses(泛化分析)

Generalize to LiDAR Panoptic Segmentation

在这里插入图片描述

generalize to LiDAR 3D Detection

在这里插入图片描述

结论

在这篇论文中,提出了一种用于LiDAR分割的圆柱形和非对称3D卷积网络,它有助于保持3D几何关系。具体而言,设计了两个关键组件,即圆柱形分区和非对称3D卷积网络,旨在有效而稳健地处理室外LiDAR点云中的固有困难,即稀疏性和变化密度。进行了广泛的实验和消融研究,在这些研究中,该模型在SemanticKITTI中获得第一名,在nuScenes中达到了最新水平,并在其他基于LiDAR的任务中具有良好的泛化能力,包括LiDAR全景分割和LiDAR 3D检测。
这些结果表明,所提出的方法在处理LiDAR点云分割任务方面表现出色,不仅在竞赛中取得了卓越的成绩,还在实际应用中具有广泛的应用前景,对于处理室外场景的LiDAR数据的挑战有良好的应对能力。

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

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

相关文章

基于Springboot的课程答疑系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的课程答疑系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

e2studio开发磁力计LIS2MDL(2)----基于中断信号获取加速度数据

三轴加速度计LIS2DW12开发.2--轮基于中断信号获取加速度数据 概述视频教学样品申请源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user_uart_callback …

如何计算指标波动贡献率?(附Pandas实现)

大家好,我是阿粥 “为什么这个月销售额提升了30%?” “为什么转化率又降了,同比竟然降低了42%,什么原因导致的呢?” 这些都是数据分析师在工作中经常会遇到的问题,甚至有些基础岗的数据分析师要花80%以上的…

FineBI实战项目一(14):订单销售总数分析开发

点击添加组件按钮,打开组件页面。 设置组件的属性,比如图标样式,指针值,目标值、颜色、大小、标签等。 点击下方切换到仪表盘。 点击仪表板中的左上方组件,添加组件到仪表盘。 编辑标题 第一个组件成功添加到仪表板。

一包多语言——使用FontForge合并字体

大家好,我是阿赵。   比较多游戏做了一个游戏包里面包含了多种语言,可以游戏内切换。这里分享一个合并多种语言字体的方法。 一、遇到的问题 假设我们游戏需要同时显示简体中文、泰文、老挝文三种语言。 解决方案有多种: 1、准备多种字体 …

Linux学习记录——삼십구 数据链路层协议

文章目录 1、了解数据链路层2、认识以太网3、认识MAC地址4、以太网报文5、局域网通信原理1、基本原理2、数据碰撞3、交换机4、ARP协议5、RARP协议6、局域网中间人 6、DNS(简单介绍)7、ICMP协议1、报文2、traceroute命令 7、NAT技术1、基本过程2、NAPT3、…

springboot基于Web的社区医院管理服务系统源码和论文

在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括社区医院管理服务系统的网络应用,在外国线上管理系统已经是很普遍的方式,不过国内的管理系统可能还处于起步阶段。社区医院管理服务系统具有社区医院信…

你了解计算机网络的发展历史吗?

1.什么是计算机网络 计算机网络是指将一群具有独立功能的计算机通过通信设备以及传输媒体被互联起来的,在通信软件的支持下,实现计算机间资源共享、信息交换或协同工作的系统。计算机网络是计算机技术与通信技术紧密结合的产物,两者的迅速发展…

Vue3组件库 -- element plus 树形选择器组件怎样显示已有的树形菜单?

<el-tree-selectv-model"form.topmneu":data"tableData":props"{ label: title, value: id }":render-after-expand"false"style"width: 100%"check-strictly/> 添加 :props "{ lable : 字段名 , value: 字段…

【计算机网络】TCP原理 | 可靠性机制分析(三)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程、计算机网络的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目…

讲讲关于跨域的问题,什么是跨域?怎么办?

文章目录 什么是跨域如果非同源&#xff0c;共有三种行为受到限浏览器客户端和向服务器跨域请求的判定流程 跨域问题演示参考 以下内容为我结合他人知识进行的自我总结, 如有错误欢迎指出~ 什么是跨域 跨域就是不同的域名下的资源访问&#xff0c;会被浏览器的本地安全策略阻…

清晰讲解Cookie、Session、Token、JWT之间的区别

文章目录 什么是认证(Authentication)什么是授权(Authorization)什么是凭证(Credentials)什么是Cookie什么是SessionSession的痛点 Cookie 和 Session 的区别什么是Token(令牌)Acesss TokenRefresh Token Token 和 Session 的区别Token 与 Cookie什么是 JWT生成JWTJWT 的原理JW…

rime中州韵小狼毫 词组注释 滤镜

在rime中州韵小狼毫 联想词组 滤镜一文中&#xff0c;我们通过Filter滤镜功能配置了联想词组的功能&#xff0c;这使得我们在输入一些关键词汇时&#xff0c;可以联想补充一些附加的词组&#xff0c;例如我输入“手机”&#xff0c;就可以联想补充对应的手机号&#xff0c;如下…

C语言通过ODBC函数操作Access数据库(mdb和accdb格式)(char字符数组)

编译环境&#xff1a;Windows XP Visual Studio 2010 数据库&#xff1a;Access 2010&#xff0c;accdb格式 本例程只使用char[]字符数组&#xff0c;不使用wchar_t[]字符数组&#xff0c;更适合C语言初学者。 如果读取字符串时&#xff0c;提供的字符数组空间小了&#xff0c…

Airtest-Selenium实操小课:爬取新榜数据

1. 前言 最近看到群里很多小伙伴都在用Airtest-Selenium做一些web自动化的尝试&#xff0c;正好趁此机会&#xff0c;我们也出几个关于web自动化的实操小课&#xff0c;仅供大家参考~ 今天跟大家分享的是一个非常简单的爬取网页信息的小练习&#xff0c;在百度找到新榜网页&am…

【C初阶——指针4】鹏哥C语言系列文章,基本语法知识全面讲解——指针(4)

本文由睡觉待开机原创&#xff0c;转载请注明出处。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言&#xff0c;共同进步&#xff01; 这里写目录标题 前言1.回调函数2.qsort函数的使用3.qsort函数的模拟实现 思路大纲&#xff1a; 前言 本节博…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第十天-Linux下mplayer音乐播放器练习题(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

【每日一题】2696. 删除子串后的字符串最小长度-2024.1.10

题目&#xff1a; 2696. 删除子串后的字符串最小长度 给你一个仅由 大写 英文字符组成的字符串 s 。 你可以对此字符串执行一些操作&#xff0c;在每一步操作中&#xff0c;你可以从 s 中删除 任一个 "AB" 或 "CD" 子字符串。 通过执行操作&#xff0c…

Element|Upload结合Progress实现上传展示进度条

背景 &#xff1a; 项目里的 附件上传 题型组件&#xff0c;用户在上传过程中&#xff0c;如果文件较大&#xff0c;上传过程较慢&#xff0c;而又没有一个类似 Loading... 的加载过程的话&#xff0c;会显得干愣愣的&#xff0c;用户体验较差&#xff0c;所以需要添加一个进度…

Springboot+vue的毕业论文管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的毕业论文管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的毕业论文管理系统&#xff0c;采用M&#xff08;model&…