PointNet++阅读笔记

(PointNet++是PointNet结构的改良,它增强了对点云模型细节的捕捉能力)

摘要:PointNet并没有捕捉到点云的局部结构,而本文介绍了一种分层神经网络,用于捕捉点云的局部特征。

Introduction

背景:几何点集,即点云,是欧几里得空间中点的集合,通常由3D扫描仪获得。点云的处理需要有排列不变性(不同顺序的输入有相同输出)。此外,距离度量定义了点云局部区域的不同性质。如不同位置不同的密度定义了局部点不同的属性。

现有缺陷:PointNet不捕获局部结构特征。但是,CNN的成功证明了学习过程中利用局部结构信息对学习也非常重要。

本文概述:引入一种分层神经网络,被称为PointNet++,它以分层的形式处理点云。PointNet++的总体思想很简单。首先通过底层空间的距离度量将点集划分为重叠的局部区域。与CNN类似,我们从小邻域中提取捕捉精细几何结构的局部特征;这样的局部特征被进一步分组为更大的单元并且被处理以产生更高级别的特征。重复这个过程,直到我们获得整个点集的特征。

需要解决的两个问题:如何分区,如何通过局部特征学习器提取局部特征以及整个点云。

分区的过程需要使各个分区的结构相同,以便共享局部特征学习器的权重。本文使用PointNet作为局部学习器,它能将局部点集抽象为特征向量。

球形邻域进行分区,参数包括质心位置和半径。通过最远点采样(farthest point sampling,FPS,FPS的核心思想是使得所有采样点之间的距离尽可能的远,也就是数据尽可能的离散均匀。详细算法可见最远点采样(Farthest Point Sampling,FPS)算法详解_生信小兔的博客-CSDN博客)选择质心。

半径的选择要考虑到两个问题:一个是点云中不同位置的点密度是不同的,另一个是较小的半径反而可能会由于无法捕获局部特征而导致效果较差。

重要贡献:PointNet++在多个尺度上利用邻域来实现鲁棒性和细节捕获。在训练过程中随机输入丢失的辅助下,网络学习自适应地加权在不同尺度上检测到的模式,并根据输入数据组合多尺度特征。

Method

该工作是PointNet的扩展,在PointNet的基础上增加了层次结构,使其在非均匀点云结构下也能学习点云特征。

回顾PointNet:给定一个点集{x1,x2,x3,...,xn},PointNet所拟合的函数f可表示如下图。h可以被解释为对某一点的空间编码。f则由于MAX的存在因此具有输入点排列不变性。PointNet缺乏捕获局部特征的能力,这也是本文所改进的。

(需要了解PointNet是什么的话可以看我的前一篇文章)

 PointNet++的结构

用分层的方式学习点集的特征

构建了点的分层分组,并沿着分层架构逐渐抽象出越来越大的局部区域(就是每一层都将上一层的几个特征抽象成了一个特征,有些像CNN)。

抽象层由三个关键层组成:采样层,分组层和PointNet层采样层从输入点中选择一组质心点。分组层通过查询质心点相邻点构造局部区域集。PointNet层使用迷你PointNet将每个局部区域集抽象为特征向量。通过几个抽象层的叠加最终生成一组稀疏点及对应的特征向量。用数学的方式讲,即集合抽象级别以N×(d+C)矩阵作为输入,该矩阵来自具有d-dim坐标和C-dim点特征的N个点。它输出N0个次采样点的N0×(d+C0)矩阵,该矩阵具有d-dim坐标和总结局部上下文的新的C0-dim特征向量。

· 采样层使用最远点采样(FPS)来选择点的子集,并作为一组质心。这种方式与随机采样相比能对点集有更高的覆盖率。

· 分组层输入是一个大小为N×(d+C)的点集(d为坐标,C为每个点的特征)和一组大小为N0×d的质心的坐标。输出是N0×K×(d+C)的多组点集,其中每组对应于一个局部区域,K是质心点附近的点数。该层通过查询点半径范围内的所有点来分组。该方法与KNN相比更能保证局部区域特征的可推广性(对固定区域内的特征进行学习能保证学习结果的合理性)。每组的K是不相同的(但实验中设置了K的上限),但PointNet能将最后输出的长度统一化。

· PointNet层输入为大小为N0×K×(d+C)的点的N0个局部区域。输出则是对每个局部区域的抽象结果,数据大小为N0×(d+C0)。需要将局部区域中的点的坐标转换为相对于质心点的相对坐标(公式如下截图),通过使用相对坐标的方式,可以更好地捕获局部特征。

采样密度非均匀情况下的鲁棒性特征学习

问题:在密集数据中学习的特征可能不会推广到稀疏采样的区域。

解决方案:问题的关键在于不同密度区域的所需的采样范围不同,高密度区域适合小范围的密集采样,而低密度区域则应使用大范围的稀疏采样。为了实现这一目标,文章提出了密度自适应PointNet层。该层学习组合来自不同尺度区域的特征。将具有该层结构的神经网络称为PointNet++;

在PointNet++中,每个抽象层提取多个尺度的局部特征,并根据局部点密度将其组合。文章提出了MSGMRG两种组合方式。

Multi-Scale Grouping(MSG):

应用具有不同尺度的分组层,然后根据PointNets提取每个尺度的特征。不同尺度的特征被连接在一起以形成多尺度特征。文章训练网络学习一种优化的策略来组合多尺度特征。而训练集则是通过以随机概率随机丢弃每个实例的输入点来获得的,这被称之为随机输入丢弃。

对于每个训练点集,我们选择从[0,p]均匀采样的丢弃率θ,其中p≤1。对于每个点,我们随机丢弃一个概率为θ的点。在实践中,我们设置p=0.95以避免生成空的点集。在这样做的过程中,我们为网络提供了各种稀疏性(由θ引起)和变化均匀性(由丢弃的随机性引起)的训练集。在测试期间,我们保留所有可用点。

Multi-Resolution Grouping(MRG):

上面的MSG方法在计算上是昂贵的,因为它在每个质心点的大规模邻域中运行局部PointNet。而由于质心的数量级较大,因此计算时间通常很长。MRG则是一种降低了这种昂贵计算成本,同时又能根据点的分布特性自适应聚合信息的方法。该方法将某一区域的特征视为两个特征向量的级联。一个通过使用集合抽象级别汇总较低级别Li−1的每个子区域的特征获得,另一个通过使用单个PointNet直接处理局部区域中的所有原始点获得。当局部区域密度较低时,由于子区域包含信息不足,因此第二向量更加可靠。这种情况下第二向量权重会更高。相反,若局部区域点密度较高,则第一向量能提供更精细的信息。与MSG相比,该方法在计算上更高效,因为避免了在最低级别的大规模邻域中进行特征提取。

用于点云分割的点特征传播

分割任务本质是给每一个点分配语义标签。一种解决方案是始终将所有点采样为所有集合抽象级别中的质心,然而这会导致高计算成本。另一种方法是将特征从子采样点传播到原始点。文章通过基于距离差值和跳跃连接结合的分层传播策略(具体结构可以看看上面的PointNet结构图)。简单来说,就是将高层的特征通过插值的方式传播到下一层。使用基于knn的逆距离加权平均,然后将该层点上的插值特征与抽象层中对应层的对应点特征连接起来,并将连接后的特征输入到一个unit PointNet中进行处理。该unit PointNet应用几个共享的完全连接层和ReLU层来更新每个点的特征向量。重复该过程,直到将特征传播到原始点集。加权公式如下图。

Experiments

评估对象:在2D对象(MNIST)、3D对象(ModelNet40刚性对象、SHREC15非刚性对象)和真实3D场景(ScanNet)四个数据集上进行了评估。分类评估标准是准确率。通过体素分类的平均准确性来评估语义场景标记效果。

欧几里得空间下的点云分类

对模型集通过采样获得点云,并分别测试了加入和不加入点法线信息的效果。所有点集都被标准化为零均值,并且在一个单位球内(指的应该是把各坐标值规范到了-1~1之间)。使用了带三个全连接层的三级分层网络进行测试。将该方法与之前的PointNet和其他先进成果进行比较,结果如下表。从表中可以看出,在二维图像的处理上,该方案相比于PointNet错误率更低,且效果逼近成熟的针对二维图像处理的CNN架构。而在三维模型的分类上,该方案在输入相同的情况下,分类效果明显强于PointNet,是结果最佳的分类网络。

同时,文章还测试了该网络模型面对不规则采样时的鲁棒性。在测试期间随机丢弃点,并测试不同神经网络准确率的变化。测试结果如下图。

我们看到MSG+DP(训练期间具有随机输入丢弃的多尺度分组)和MRG+DP。MSG+DP性能从1024个测试点下降到256个测试点,降幅不到1%。此外,与替代方案相比,它在几乎所有采样密度上都实现了最佳性能。PointNet vanilla[20]在密度变化下相当稳健,因为它专注于全局抽象,而不是精细细节。然而,与我们的方法相比,细节的丢失也使其功能减弱。SSG(在每个级别中具有单尺度分组的烧蚀PointNet++)未能推广到稀疏采样密度,而SSG+DP通过在训练时间中随机丢弃点来修正该问题。

点云分割测试

该测试目标是预测室内扫描中的点的语义对象标签。该测试完全依赖于扫描几何体本身特征,而不使用RGB信息。为了进行公平的比较,在所有实验中RGB信息均被删除,并将点云标签预测转换为体素标记。结果如下图。可以看出该方法的效果远优于其他方法。与PointNet相比,该方法引入了分层特征学习,并捕获了不同尺度的几何特征。这对于理解多个级别的场景和标记各种大小的对象非常重要。

非均匀密度点云上的鲁棒性分析:如黄条部分所示,本文的方法中,SSG的性能易受点云密度影响。而MRG和MSG方法鲁棒性较强,尤其是MSG方法。

 非欧几里得空间中的点云分类

一个好的分类应该能考虑到非刚性形状(即会变化但有一定特征)的分类,即能够考虑到姿态差异问题,学习对象的内在结构。如下图,a和c应该被分类为一种。

(数据提取这部分没大看懂,大概讲的是获得模型上的数个固有点的多种特征作为输入,并根据它们在空间中的位置进行采样分组。值得注意的是,使用XYZ坐标作为特征输入并非最佳方案。提取的特征有WKS,HKS 和 multi-scale Gaussian curvature.)

由下表可以看出,该方案在以内在特征作为输入时,结果要优于该领域的先进方法。

比较我们方法的第一个和第二个设置,我们发现内在特征对于非刚性形状分类非常重要。XY Z特征不能揭示内在结构,并且受姿态变化的影响很大。比较我们方法的第二个和第三个设置,我们发现与欧几里得邻域相比,使用测地线邻域是有益的。欧几里得邻域可能包括远离表面的点,当形状提供非刚性变形时,该邻域可能会发生显著变化。这给有效的权重分配带来了困难,因为局部结构可能会变得组合复杂。另一方面,曲面上的测地邻域消除了这个问题,提高了学习效率。

有关测地邻域的说明(来自chatGPT):Geodesic neighborhood(地球拓扑邻域)是一种在三维模型上定义邻域的方法,它使用了地球的曲面拓扑结构来计算距离和邻域。在地球表面上,两点之间的最短路径是沿着大圆弧线(geodesic)连接它们。同样,对于一个三维模型的表面,geodesic neighborhood 指的是在曲面上沿着最短路径连接到某个点的所有相邻点的集合。通常,geodesic neighborhood 是通过计算从中心点到所有其他点的最短距离来确定的。在三维模型中,这需要计算每个点与其所有相邻点之间的距离,并将这些距离转换为曲面上的最短距离。可以使用各种算法来计算 geodesic neighborhood,如 Dijkstra 算法、Fast Marching 算法等。

有关多尺度高斯曲率的说明(来自chatGPT):多尺度高斯曲率(Multiscale Gaussian Curvature)是一种计算曲面上曲率的方法,它可以在不同的尺度上对曲面进行分析。高斯曲率是描述曲面弯曲和形状的一个重要的几何量,它定义了曲面在某个点处的弯曲程度。在多尺度高斯曲率中,计算曲率的过程被分解为多个尺度,每个尺度下的曲率都被计算并组合在一起形成一个多尺度曲率图。

Conclusion

本文重点:递归地总结局部特征;通过两种抽象层来解决非均匀点采样的问题。

未来研究:在未来,值得思考的是如何通过在每个局部区域共享更多的计算来加快网络的推理速度,特别是对于MSG和MRG层。而如何应用得到的高维向量也是有趣的研究方向。

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

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

相关文章

云平台网络——应用部署(一)

(可有可无的)引言 昨天完成了对学校集群的相关鉴权以后,大致理解了如何使用SSH登入教学集群,今天则是在此基础上进一步完成相关应用的部署,包括但不限于conda以及torch等和机器学习建模相关的软件安装,由于是第一次成功在云计算平…

用小学数学带你感受人工智能的魅力

AI因你而升温,记得加个星标哦! 大家好,我是泰哥。在ChatGPT火爆出圈后,越来越多的人对人工智能、深度学习、神经网络等名词更加好奇,身边的朋友最近也频繁的问我,AI究竟为什么如此强大? 偷个懒&…

精选| 2023年1月R新包推荐(第72期)

译:黄小伟,目前就职于杭州有赞 知乎专栏:中国R语言社区 |30,000关注、300万阅读 2023年1月,165个R包收录于CRAN,环比增长42.4%,本月Top 40 R包分为14个类别,详细介绍如下&#xff1a…

我用Echarts图表分析巴西队历年战绩,预测卡塔尔世界杯能否夺冠

🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…

陶哲轩甩出调教GPT-4聊天记录,点击领取大佬的研究助理!

Datawhale干货 方向:GPT-4高级调教,来源:量子位 鹅妹子嘤,天才数学家陶哲轩搞数学研究,已经离不开普通人手里的“数学菜鸡”GPT了! 就在他最新解决的一个数学难题下面,陶哲轩明确指出自己“使用…

ESP8266还可以这样玩

作者:晓宇,排版:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 01 巨型ESP8266 ESP8266几乎无人不知,无人不晓了吧,相当一部分朋友接触物联网都是从ESP8266开始的&#xff…

笑死!推特限流,微博赢麻了;使用ChatGPT撰写简历;SD电脑配置推荐;斯坦福67门AI课程学习路径 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 因 Twitter 限流,大量海外画师涌入微博哈哈哈哈 7月3日,马斯克突然发推宣布用户浏览数量限制,新账…

想要成为 NLP 领域的大牛?从 ChatGPT 的 5 大自然语言模型开始了解吧(LM、Transformer、GPT、RLHF、LLM)——小白也能看得懂

目录 前言ChatGPT基础科普——知其一点所以然1. LM2. Transformer3. GPT4. RLHF5. LLM 参考资料其它资料下载 前言 如果想在自然语言处理(Natural Language Processing,NLP)领域内脱颖而出,那么你一定不能错过 ChatGPT 的 5 大自然…

浏览器工作原理和实践

1.介绍 见正文3 2.应用背景 参透了浏览器的工作原理,可解决80%的前端难题. 帮助高效快速安全开发web前端项目. 3.学习 课程目录 开篇词 (1讲) 开篇词 | 参透了浏览器的工作原理,你就能解决80%的前端难题 宏观视角下的浏览器 (6讲) 01 | Chrome架构…

SpringBoot自动配置的模版引擎

文章目录 目录 一、Thymeleaf 1.什么是Thymeleaf? 2.什么是模版引擎? 3.JAVA中的SPI(Service Provider interface)机制? 4.META-INF目录是干嘛用的? 总结 前言 一、Thymeleaf 1.什么是Thymeleaf? hymeleaf是试用于Web和独立环境的现代服务器端Java模版引擎 目的:…

chatgpt赋能Python-python_lirc

Python-LIRC:让Python与遥控器无缝连接 介绍 Python-LIRC是一个Python语言的模块,它提供了一种接口,用于与Linux Infrared Remote Control(LIRC)系统进行通信。有了Python-LIRC,你可以轻松地将红外线遥控…

重磅!牛客笔试客户端可防ChatGPT作弊

上线俩月,月活过亿。 爆火的ChatGPT能代写文,撕代码,善玩梗,秒答题,几乎“无所不能”,争议也随之而来。 调查显示,截至2023年1月,美国89%的大学生利用ChatGPT应付作业,53…

学生用ChatGPT拿下全班最高分,教授惊呆

【导读】ChatGPT爆火两个月,整个教育系统都被颠覆了。学生用得不亦乐乎,而老师们迫不得已,纷纷打响了ChatGPT反击战。 ChatGPT已经让大学老师们受到惊吓了。 摸出门道的学生们,开始使用ChatGPT生成论文,得到了A的分数…

自然语言处理(NLP)之跳字(元)模型<skip-gram>与连续词袋模型<continuous bag of words>

自然语言处理(Natural Language Processing, NLP)是AI里的一个非常重要的领域,比如现在很火爆的ChatGPT,首先就需要很好的理解输入内容的意思才能够做出合理的回复。 自然语言处理应用非常广泛,比如机器翻译、问题回答、文本语义对比、语音识…

DeepMind:用 GNN 学习通用推理算法

文 | 智商掉了一地 小孩子才做选择,我的模型全!都!要! 近年来,基于深度神经网络的机器学习系统取得了巨大进步,尤其是在以感知为主的任务上。这一领域表现突出的模型通常要在分布中进行泛化,意味…

GPT-4发布:人工智能新高度,以图生文技术震撼,短时间内挤爆OpenAI模型付费系统

“GPT-4,起飞!”今日凌晨1点,OpenAI正式推出史上最强大的GPT-4文本生成AI系统 GPT-4:人工智能的新里程碑 你可能已经听说过GPT-3,它是一种能够生成自然语言文本的强大模型,可以用来回答问题、写文章、编程…

从BERT到ChatGPT,9大研究机构全面综述:「预训练基础模型」

来自:新智元 编辑:LRS 【导读】2023年了,还有人从头开始训模型吗?追踪一下从Bert以来的那些预训练模型。 ChatGPT在few-shot和zero-shot场景下展现出的惊人性能,让研究人员们更坚定「预训练」是一条正确的路线。 预训练…

【AI项目实战】某语言模型-stable diffusion-vits-cqhttp 实现能对话能语音能绘画的Q群机器人

好久没写文章了,终于想起来我有个博客账号系列。。 项目已开源在github上。 文章已滤敏,一切涉及语言模型名字的内容都以某语言模型代替 提示:AI绘画部分建议6G显存以上。 cqhttp 用于接收群友消息,并回复消息。 某语言模型 基于…

微信PC端各个数据库文件结构与功能简述 - 根目录

异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复;本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告。本人所有文章仅在CSDN、掘金和个人博客(一定是异想之旅域名)…

springboot+vue集成websocket实现聊天功能

1、添加pom依赖 <!-- websocket --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency> 2、创建一个config文件夹&#xff0c;在config文件夹中创建…