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.mzph.cn/news/863975.shtml

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

相关文章

Apache Ranger 2.4.0 集成hadoop 3.X(Kerbos)

1、安装Ranger 参照上一个文章 2、修改配置 把各种plugin转到统一目录(源码编译的target目录下拷贝过来),比如 tar zxvf ranger-2.4.0-hdfs-plugin.tar.gz tar zxvf ranger-2.4.0-hdfs-plugin.tar.gz vim install.properties POLICY_MG…

防火墙防御体系结构类型

防火墙防御体系结构类型 防火墙是网络安全的核心组件,用于保护网络和系统免受未经授权的访问和各种网络攻击。防火墙防御体系结构类型多样化,每种类型都针对不同的安全需求和应用场景,提供不同层次的保护。以下是几种常见的防火墙防御体系结…

【车载开发系列】NXP开发环境介绍

【车载开发系列】NXP开发环境介绍 【车载开发系列】NXP开发环境介绍 【车载开发系列】NXP开发环境介绍一. 开发环境1、S32 Design Studio for S32 Platform2、S32 Design Studio for ARM3、S32 Design Studio IDE 二. NXP开发环境支持的单片机1)Kinetis系列2&#x…

力扣3152.特殊数组 II

力扣3152.特殊数组 II 满足条件为0 &#xff0c; 不满足为1 最终如果区间和为0 则为特殊数组 class Solution {public:vector<bool> isArraySpecial(vector<int>& nums, vector<vector<int>>& queries) {int n nums.size();vector<int&…

论文阅读:Simple and Efficient Heterogeneous Graph Neural Network

Yang, Xiaocheng, Mingyu Yan, Shirui Pan, Xiaochun Ye and Dongrui Fan. “Simple and Efficient Heterogeneous Graph Neural Network.” AAAI Conference on Artificial Intelligence (2022). 论文地址&#xff1a;[PDF] Simple and Efficient Heterogeneous Graph Neural…

Java集合框架性能优化与选择指南

Java集合框架性能优化与选择指南 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 Java集合框架是每位Java开发者日常工作中不可或缺的一部分。正确选择和…

Bytebase 2.20.0 - 支持为工单事件配置飞书个人通知

&#x1f680; 新功能 支持 Databricks。支持 SQL Server 的 TLS/SSL 连接。支持为工单事件配置飞书个人通知。支持限制用户注册的邮箱域名。 &#x1f514; 重大变更 将分类分级同步设置从数据库配置移至工作空间的全局配置。 SQL 编辑器只读模式下只允许执行 Redis 的只读…

着色器预热?为什么 Flutter 需要?为什么原生 App 不需要?那 Compose 呢?Impeller 呢?

依旧是来自网友的问题&#xff0c;这个问题在一定程度上还是很意思的&#xff0c;因为大家可能会想&#xff0c;Flutter 使用 skia&#xff0c;原生 App 是用 skia &#xff0c;那为什么在 Flutter 上会有着色器预热&#xff08;Shader Warmup&#xff09;这样的说法&#xff1…

【PYG】pyg里dataloader和torch中dataloader有什么不一样

torch.utils.data.DataLoader 和 torch_geometric.loader.DataLoader 是两个不同的加载器&#xff0c;它们分别用于处理不同类型的数据。以下是它们之间的主要区别&#xff1a; torch.utils.data.DataLoader torch.utils.data.DataLoader 是 PyTorch 中的通用数据加载器&…

论文1--ViT

Vision Transformer (ViT) 论文&#xff1a;https://arxiv.org/abs/2010.11929代码&#xff1a;GitHub - google-research/vision_transformer 1.背景 &#xff08;1&#xff09;transformer在NLP很强&#xff0c;但在CV的应用还非常有限&#xff0c;在此之前只有目标检测中…

【轻量化】YOLOv8 更换骨干网络之 MobileNetv4 | 《号称最强轻量化网络》

论文地址:https://arxiv.org/pdf/2404.10518 代码地址:https://github.com/tensorflow/models/blob/master/official/vision/modeling/backbones/mobilenet.py 文章速览 文章摘要 MobileNetV4引入了一个名为Universal Inverted Bottleneck (UIB) 的新搜索模块,这个模块融合…

2024年网络安全技术全景扫描:新趋势与新挑战

**# 2024年网络安全技术全景扫描&#xff1a;新趋势与新挑战 随着技术的飞速发展&#xff0c;网络安全领域在2024年迎来了新的变革。从人工智能的深入应用到零信任模型的广泛采纳&#xff0c;再到云环境、太空网络以及量子信息技术的兴起&#xff0c;这些新兴技术正在重塑网络…

民用无人机企业招标投标需要资质证书详解

一、基础资质 在民用无人机企业的招标投标过程中&#xff0c;基础资质是首要考虑的因素。这些资质通常包括企业注册资质、税务登记证、组织机构代码证等。 1.1 企业注册资质 企业应具备合法的注册资质&#xff0c;即营业执照。该执照应包含企业名称、注册地址、法定代表人、…

在Ubuntu 14.04上安装和配置Magento的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Magento 是最流行的电子商务网站内容管理系统。它被小型企业和大型企业公司广泛使用&#xff0c;并且可以通过成千上万的扩展和主…

谈谈华为国产系列

目前借着华为发布会&#xff0c;谈谈华为的软件系列 1.鸿蒙系统 鸿蒙是手机系统&#xff0c;兼容安卓软件&#xff0c;目前华为借助国内软件公司&#xff0c;适配鸿蒙&#xff0c;即将纯血。鸿蒙系统借助这一波互联网兴起&#xff0c;没有遇到之前各种系统的麻烦之中&#xf…

idea集成uglifycss压缩混淆css

Uglifycss介绍 https://www.npmjs.com/package/uglifycss 命令行 $ uglifycss [options] [filename] [...] > output 选项&#xff1a; --max-line-len n每个字符添加一个换行符&#xff08;大约&#xff09;; 表示无换行符&#xff0c;并且是默认值n0 --expand-vars扩…

【Linux】性能分析器 perf 详解(二):list、record、report、top

上一篇:【Linux】性能分析器 perf 详解(一) 1、perf命令列表 annotate 读取perf.data(由perf record生成)并结合源代码展示详细的性能分析结果,包括CPU执行热点、函数调用栈等信息。archive 使用perf.data文件中找到的带构建标识符的对象文件创建归档文件,便于后续对这…

考研数学|《660》一刷的错题,二刷还错,怎么能做对?

660这本习题册的难度不小&#xff0c;它不仅考察你对知识点的掌握程度&#xff0c;还考察你的解题思路和方法。很多题目会同时涉及多个知识点&#xff0c;而且对概念的挖掘非常深入&#xff0c;甚至在一些容易出错的地方还设置了陷阱&#xff0c;这对于基础不扎实的同学来说&am…

商城积分系统的代码实现(下)-- 积分订单的退款与结算

一、接着上文 用户在消耗积分的时候&#xff0c;需要根据一定的逻辑&#xff0c;除了扣减账户的当前余额&#xff0c;还需要依次消费积分订单的余额。 private void updatePointsOrderByUse(Integer schoolId, Long userId, String pointsType, int usingPoints) {List<Po…

Web攻防基础篇-文件上传漏洞

文件解析安全问题上&#xff0c;格式解析是一对一的&#xff08;不能jpg解析php&#xff09;&#xff0c;换句话来说有解析错误配置或后缀解析漏洞时才能实现格式差异解析。 文件上传漏洞 程序或系统未对上传文件作全面的限制&#xff0c;导致用户可以上传某些非法文件&#…