PointNet++论文导读

PointNet++论文导读

    • 主要改进
    • 网络结构:
    • 非均匀采样下的特征学习的鲁棒性
    • 利用点特征传播处理数据集分割

论文链接:https://arxiv.org/abs/1612.00593

主要改进

PointNet的基本思想是学习每个点的空间编码,然后将所有单个点的特征聚合成一个全局点云标签,这种设计,导致PointNet不会获取点云集合的局部特征;

针对局部特征提取,PointNet++先通过空间欧氏距离将点集划分为重叠的局部区域,从小领域中提取局部特征,然后向前递归将局部特征进一步组成更大的单元,组成更高层次的特征,重复这一过程直到得到整个点集的特征;

Pointnet++中关键的两个问题:如何划分子集,以及如何设计局部特征提取层来抽象子集得到局部特征;论文中给出的方法为通过PointNet网络来实现局部特征的提取,通过基于欧式距离作为半径的领域聚类来划分neighborhood ball(邻域球),然后通过最远点采样(FPS)算法得到子集中的骨干点(centroids);

点云密度较低的地方,可能会导致骨干点提取不足够,进而导致局部特征无法提取;论文中还对比了CNN网络中小的卷积核更有助于提取局部特征,有助于提高CNN网络的能力,但是在点云数据中,由于采样不足,小邻域可能包含的点太少,导致PointNet不能够获取正确的特征;

论文的一个重要贡献是PointNet++在多个尺度上利用邻域来实现鲁棒性和细节捕获。在训练过程中借助于随机输入dropout,网络根据输入数据学习自适应地对不同尺度检测到的模式进行加权,并结合多尺度特征。实验表明,PointNet++能够高效、鲁棒地处理点集。特别是,在具有挑战性的3D点云基准测试中获得了明显优于最先进的结果;

网络结构:

在这里插入图片描述PointNet++的层次结构由许多抽象层次组成;在每个层次上,一组点被处理和抽象,以产生一个元素更少的新集合。集合抽象层由三个关键层组成:采样层、分组层和PointNet层。采样层从输入点中选择一组点,定义局部区域的质心。分组层然后通过寻找质心周围的“邻近”点来构建局部区域集。PointNet层使用mini-PointNet将局部区域模式编码为特征向量;

集合抽象层以N × (d + C)矩阵作为输入,该矩阵由N个坐标为d-dim、点特征为C-dim的点组成。它输出一个N0 × (d + c0)矩阵,包含N0个子采样点,坐标为d-dim,新的c0 -dim特征向量总结了局部上下文;

采样层:使用最远点采样法(FPS)提取骨干点,相较于随机采用,在采样数目相同的情况下可以更好的覆盖数据集;

分组层:该层的输入是一个大小为N × (d + C)的点集和一组大小为N0 × d的质心的坐标。输出是大小为N0 × K × (d + C)的点集组,每组对应一个局部区域,K为质心点的邻域点数。注意,K在组之间是不同的,但是后续的PointNet层能够将灵活数量的点转换为固定长度的局部区域特征向量;球查询查找在查询点半径内的所有点(在实现中设置了K的上限)。另一种范围查询是K个最近邻(kNN)搜索,它可以找到固定数量的3个相邻点。与kNN相比,球查询的局部邻域保证了固定的区域尺度,从而使局部区域特征在空间上更具可泛化性,这对于需要局部模式识别的任务(如语义点标记)是首选;

PointNet层:在这一层中,输入是数据大小为N0×K×(d+C)的N0个点的局部区域;输出中的每个局部区域由其质心和编码质心邻域的局部特征抽象。输出数据量为N0 × (d + c0);首先将局部区域内点的坐标转换为相对于质心点的局部坐标系,使用PointNet作为局部模式学习的基本构建块。利用相对坐标与点特征相结合的方法可以捕获局部区域的点对点关系;

非均匀采样下的特征学习的鲁棒性

点集在不同区域的密度不均匀是很常见的。这种不均匀性给点集特征学习带来了巨大的挑战。在密集数据中学习到的特征可能无法推广到稀疏采样区域。因此,稀疏点云训练的模型可能无法识别细粒度的局部结构。

理想情况下尽可能仔细地检查一个点集,以捕获密集采样区域中最精细的细节。然而,在低密度地区,这种近距离检查是被禁止的,因为采样不足可能会破坏局部模式。在这种情况下,应该在更大的范围内寻找更大规模的模式。为了实现这一目标,提出了密度自适应的PointNet层,当输入采样密度发生变化时,这些层学习组合来自不同尺度区域的特征。把具有密度自适应点网层的分层网络称为PointNet++。

每个抽象级别包含单个尺度的分组和特征提取;在PointNet++中,每个抽象层提取局部模式的多个尺度,并根据局部点密度智能组合。在局部区域分组和不同尺度特征组合方面,我们提出了以下两种类型的密度自适应层:
在这里插入图片描述

多尺度分组(MSG):如图3 (a)所示,捕获多尺度模式的一种简单而有效的方法是应用不同尺度的分组层,然后根据PointNets提取每个尺度的特征。将不同尺度的特征串联起来,形成多尺度特征;

训练网络学习一种结合多尺度特征的优化策略。这是通过随机放弃每个实例的随机概率输入点来完成的,称之为随机输入Dropout。具体来说,对于每个训练点集,从[0;P],其中P≤1。对于每个点,以概率θ随机丢弃一个点。在实践中,设置p = 0:95以避免产生空点集。在这样做的过程中,为网络提供了各种稀疏性(由θ引起)和不同均匀性(由dropout中的随机性引起)的训练集。在测试期间,保留所有可用的分数。

多分辨率分组(MRG):上面的MSG方法在计算上是昂贵的,因为它在每个质心点的大规模邻域上运行本地PointNet。特别是,由于质心点的数量通常在最低水平相当大,时间成本是显著的。

提出了一种替代方法,避免了这种昂贵的计算,但仍然保留了根据点的分布特性自适应聚合信息的能力。在图3 (b)中,某一级Li区域的特征是两个向量的串联。通过使用集合抽象级别从较低级别Li−1总结每个子区域的特征,得到一个向量(图左)。另一个向量(右)是通过使用单个PointNet直接处理局部区域中的所有原始点而获得的特征。

单尺度分组(SSG):每层单尺度分组的精简PointNet++,不能推广到稀疏采样密度,而SSG+DP通过在训练时间随机剔除点来修正这个问题

当局部区域的密度较低时,第一个向量的可靠性可能不如第二个向量,因为计算第一个向量的子区域包含更稀疏的点,并且更容易受到采样缺陷的影响。在这种情况下,第二个向量的权重应该更高。另一方面,当局部区域的密度很高时,第一个向量提供了更精细的细节信息,因为它具有在较低水平上以更高分辨率递归检查的能力。与MSG相比,该方法避免了在最低层次上对大规模邻域进行特征提取,计算效率更高。

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

这里对比论文中给出的处理ModelNet40分类和Shapenet部件分割的结果可以看出:MSG+DP的处理效果无论分类还是分割都取得了最好的效果;

利用点特征传播处理数据集分割

在集合抽象层,对原始点集进行次采样。然而,在语义点标注等集合分割任务中,需要获得所有原始点的点特征。一种解决方案是在所有的抽象层中抽取所有的点作为质心,但是这样会导致较高的计算成本。另一种方法是将特征从下采样点传播到原始点。

采用基于距离的插值和跨层跳过链接的分层传播策略。在特征传播层中,将点特征从Nl × (d + C)点传播到Nl−1点,其中Nl−1和Nl (Nl≤Nl−1)是集合抽象层l的输入和输出的点集大小。通过在Nl−1点的坐标处插值Nl点的特征值f来实现特征传播。在许多插值选择中,使用基于k个最近邻的逆距离加权平均(默认情况下使用p = 2, k = 3)。然后将Nl−1个点上的插值特征与来自集合抽象级别的跳过链接点特征连接起来。然后将连接的特征通过“单位点网”传递,这类似于cnn中的一对一卷积。几个共享的全连接层和ReLU层被应用于更新每个点的特征向量。重复这个过程,直到将特征传播到原始的点集。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

模块化编程(二)

模块的导入 经常有这样一句话:“不要重复造轮子”,知道别人已经造好了轮子,并且轮子也好用,那就直接拿别人的轮子来用,此处的“模块导入”就是“拿别人的轮子过来”。前文提到模块化编程的好处之一就是“代码复用性高…

【6.26更新】Win10 22H2 19045.4598镜像:免费下载!

当前微软已经发布了六月最新的KB5039299更新补丁,用户完成升级后,系统版本号将更新至19045.4598。此次更新解决了任务栏上应用跳转列表失败、可能导致系统无法从休眠状态恢复等多个问题,推荐大家升级。如果您不知道去哪里才能下载到该版本&am…

mac|tableau public 仪表盘使用

对华东地区的利润进行仪表盘可视化 选择下面的功能表的新建仪表盘,把上面的表1表2放入其中 通过下图操作将两个表联合起来,即上图使用筛选器时下面的表随之改变 将上图设置为筛选器,可以通过点击地区查看数据

防护用品穿戴自动监测摄像机

随着技术的不断发展,防护用品穿戴自动监测摄像机作为现代安全监控领域的创新应用,正逐渐成为各类工作场所和特定环境中的重要设备。这种摄像机不仅能够实时记录和监控员工的工作状态和安全情况,还能提供数据支持和预警功能,显著提…

第四十篇——系统论:如何让整体效用大于部分之和?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 系统论,又从一个大的生态的角度去考虑,我们应该如…

贪心问题(POJ1700/1017/1065)(C++)

一、贪心问题 贪心算法 贪心算法(greedy algorithm),是用计算机来模拟一个「贪心」的人做出决策的过程。这个人十分贪婪,每一步行动总是按某种指标选取最优的操作。而且他目光短浅,总是只看眼前,并不考虑…

CSS 背景添加白色小圆点样式

css也是开发过程中不可忽视的技巧 此专栏用来纪录不常见优化页面样式的css代码 效果图: 未添加之前: 代码: background: radial-gradient(circle at 1px 1px, #3d3c3c 2px, transparent 0);background-size: 20px 25px;

在AvaotaA1全志T527开发板上烧录AvaotaOS固件

烧写到 TF 卡上 材料准备 首先需要准备的材料有: SD-Card Formatter:balenaEtcherAvaota Pi - A1开发板 x1TF-Card ( 不小于4Gb ) x112V-DC电源适配器 x1TF读卡器 x1USBTTL Splitter x1(可选)HDMI 采集卡 x1 (可选)…

体验升级:扫描全能王智能高清滤镜2.0全面测评

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

MSPM0G3507——串口

配置: 主函数: #include "ti_msp_dl_config.h"volatile uint8_t gEchoData 0; int main(void) {SYSCFG_DL_init();NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN); //先清除中断,防止直接进中断NVIC_EnableIRQ(…

手机数据恢复篇:如何在恢复出厂设置后的 iPhone 恢复短信

您可能会认为,在恢复出厂设置iPhone后恢复短信时,一切都会丢失,但是仍然有一些方法可以检索您的重要对话。截至 2024 年,数据恢复技术的进步使得从备份甚至直接从设备内存中抢救消息变得更加容易。无论是通过 iCloud、iTunes 还是…

【Linux】虚拟机安装openEuler 24.03 X86_64 教程

目录 一、概述 1.1 openEuler 覆盖全场景的创新平台 1.2 系统框架 1.3 平台框架 二、安装详细步骤 一、概述 1.1 openEuler 覆盖全场景的创新平台 openEuler 已支持 x86、Arm、SW64、RISC-V、LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持&…

密码学:对称加密算法、非对称加密算法、哈希算法

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需…

为PPT加密:如何设置和管理“打开密码”?

在保护演示文稿的内容时,给PPT文件设置“打开密码”是一个简单而有效的方法。今天一起来看看如何设置和管理PPT文件的“打开密码”吧! 一、设置PPT“打开密码” 首先,打开需要加密的PPT文件,点击左上角的“文件”选项卡&#x…

leetCode.96. 不同的二叉搜索树

leetCode.96. 不同的二叉搜索树 题目思路 代码 // 方法一:直接用卡特兰数就行 // 方法二:递归方法 class Solution { public:int numTrees(int n) {// 这里把 i当成整个结点,j当成左子树最左侧结点,并一次当根节点尝试// f[ i ] f[ j - 1…

如何屏幕录制?这3款软件轻松实现!

随着科技的不断发展,屏幕录制成为了人们日常生活中越来越常见的需求。无论是录制游戏过程、分享教程、还是保存重要的在线会议,屏幕录制都是一个非常实用的工具。然而,很多用户却不知道如何屏幕录制。本文将详细介绍3款屏幕录制软件&#xff…

centos 7.9 离线环境安装GPU服务环境

文章目录 centos 7.9 离线环境安装GPU服务环境系统配置更新 gcc更新内核安装显卡驱动安装cuda安装docker 和 nvidia-container-runtime验证 centos 7.9 离线环境安装GPU服务环境 基于centos 7.9 离线安装gpu 服务基础环境,用于在docker 中运行算法服务 系统配置 …

详细分析Oracle修改默认的时间格式(四种方式)

目录 前言1. 会话级别2. 系统级别3. 环境配置4. 函数格式化5. 总结 前言 默认的日期和时间格式由参数NLS_DATE_FORMAT控制 如果需要修改默认的时间格式,可以通过修改会话级别或系统级别的参数来实现 1. 会话级别 在当前会话中设置日期格式,这只会影响…

ThreeJS-3D教学十二:ShaderMaterial

一、首先 Shader 是做什么的 Shader 可以自定义每个顶点、每个片元/像素如何显示,而控制顶点和片元显示是通过设置 vertexShader 顶点着色器和 fragmentShader 片元着色器,这两个着色器用在 ShaderMaterial 和 RawShaderMaterial 材质上。 我们先看一个例…

Web后端开发之前后端交互

http协议 http ● 超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本到本地浏览器的传送协议 是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程。 HTTP是一个基于TCP/IP通信协议来传递数据. HTT…