论文解读|PF-Net:用于 3D 点云补全的点分形网络

news2024/11/23 7:54:15

原创 | 文 BFT机器人

图片

01

背景

从激光雷达等设备中获取的点云往往有所缺失(反光、遮挡等),这给点云的后续处理带来了一定的困难,也凸显出点云补全作为点云预处理方法的重要性。

点云补全(Point Cloud Completion)用于修补有所缺失的点云(Point Cloud),从缺失点云出发估计完整点云,从而获得更高质量的点云。点云有助于用较小的数据量描述三维物体,在三维物体的检测识别领域应用广泛。

02

相关工作

传统的点云补全方法基于一定的物体基础结构的先验信息,如对称性信息或语义类信息等,通过一定的先验信息对缺失点云进行修补。这类方法只能处理一些点云缺失率很低、结构特征十分明显的缺失点云。

在 PointNet 和 PointNet++ 使用深度学习网络实现了点云分割和点云分类之后,点云深度学习逐渐成为热门研究领域。

如 LGAN-AE,PCN, 和 3D-Capsule 等,这些工作以不完整点云作为输入,输出完整点云,造成网络过于关注到物体的整体特征而忽略了缺失区域的几何信息。

另一方面,这些网络会生成偏向于某类物体共性特征的点云,而失去某个物体的个体特征。(这些工作更注重于学习属性或者类别的一般特征,而不是学习某一特定对象的局部细节)容易改变原有物体的特性(位置错误、几何特征丢失、形状扭曲等)。

03

简介

文章提出一种基于深度学习的点云分形网络PF-Net。PF-Net采用了一些自己的思路和方法来改善现有的问题:

1.以不完整点云作为输入,仅输出缺失部分点云,可保留物体点云的空间结构,对物体的局部特性感知更好;

2.提出了更优的点云特征提取器:多分辨率编码器(Multi-Resolution Encoder),多尺度的方法提升了高低层次点云语义信息提取的效率;

3.提出了点云金字塔解码器(Point Pyramid Decoder)用于生成点云,利用多阶段补全损失加粗样式 (Multi-stage completion loss) 监督其中关键点云的生成,从而减少了几何结构瑕疵。

4.利用 GAN*结构的鉴别器(Descriminator)优化网络,改善了同一类别不同物体间的特征会相互影响的现象(Genus-wise Distortions Problem)。

04

PF-Net网络结构

4.1 MRE(多分辨率编码器)


对输入点云做迭代最远点采样(FPS),获得更小尺度且更具有轮廓特征的降采样点云,如图所示。

图片

MLP(CMLP)主要采用MPL(多层感知机)的处理方式。不同的是,分别对最后四层网络(output_dim=128,256,512,1024)的输出做maxpooling。

再将这四层pooling后的输出拼接(concat)形成Latent Vector F (dim=1920x1),如图4。该方式能更充分的利用高层和底层特征。

拼接三个不同尺度点云的CMLP输出,获得Final Latent Map M(dim=1920x3)将M通过多层感知机MLP从(1920x3)变换成(1920x1),获得Final Feature Vector V。

图片

4.2 PPD(点云金字塔解码器)

PPD 的主要思想是监督每一阶段的点云,提升关键点的生成质量,在关键点的基础上不断生成新的点云。

借鉴图像处理中经典的SIFT算法,采用特征金字塔加粗样式的方式,对编码出的特征,进行多尺度的解码,生成不同尺度的点云。

现有方法大都利用最后一个输出层的结果来做预测,导致只保留了全局特征而丢失了局部特征。为了更好地保留细节,网络中设计多层的特征解码,使不同粒度的特征更好地保留。

图片

将上一步获得的Final Feature Vector V通过三个FC(全连接)层,产生三个不同尺度的点云特征。

以此为例,经过一系列操作(linear, reshape, convolution)生成与采样后的Ground Truth点云数相同的生成点云,用于后续Loss部分的构建。

4.3 损失函数(包含GAN鉴别器)

损失函数由两部分组成:Multi-stage Completion Loss 和 Adversarial Loss

图片

1.Multi-stage Completion Loss(Lcom):

该损失衡量输出点云与真值之间的差别。

图片

图片

引入计算两个点云间的距离公式(公式1)其中,S1可以表示生成的点云,S2可以表示Ground Truth,对于S1中的每个点,找到其与S2中距离最近的点,计算欧氏距离后求和取平均,作为距离公式的第一部分;第二部分相似,对于S2中的每个点,找到其与S1中距离 最近的点,计算欧氏距离后求和取平均。

在PDD解码器中,生成了三个不同尺度的点云,将三个对应的值取不同权重相加,作为总体损失的一部分(公式2)

2.Adversarial Loss(Ladv):

该损失优化MRE和PPD,使输出看起来更加真实。

GAN鉴别器:GAN鉴别器是一个分类器,其结构与CMLP类似:对一个多层MLP[64−64−128−256]的最后三层的输出进行maxpool得到feature vector f_i, i= 1, 2, 3.将f_i连接得到F,F通过全连接层 [256,128,16,1]以及Sigmoid函数得带最终的预测值。

假设GAN 鉴别器的输出为D(), 其输入为残缺部分点云的预测值y’或对应真值y。

3.Joint Loss

将以上两部分的Loss以不同权重相加,获得完整的Loss Function。

图片

05

实验分析

实验结果显示PF-Net大部分对比中都是占优的,达到了 SOTA:

图片

可以看出PF-Net细腻地输出与GroudTruth最接近。

从上图的桌子、椅子中可以看出,PF-Net 没有学习桌子椅子这些类别的一般(共性)特征,可以输出个体差异,比如特殊的缺角的桌子和背靠5根的椅子。

图片

1.Pred→GT error误差用于衡量预测与真实情况之间的差异。

2.GT→Pred error表示真值表面被预测的点云覆盖的程度。

3.PF-Net(vanilla)是指没有GAN鉴别器模块的版本。

图片

对GAN鉴别器(Discriminator)的分析:

鉴别器的功能是区分预测形状与缺失区域的真实轮廓,并优化网络以生成更“真实”的配置。上图两个表明,Discriminator可以帮助最小化Pred→GT error。如上所述,Pred→GT衡量的是预测与实际情况之间的差异。因此,Discriminator使PF-Net生成与地面实况更相似的点云。

鲁棒性测试


作者以三个分别损失了25%,50%和75%的不完整点云作为输入。注意,三个输入的Pred→GT误差和GT→Pred误差基本上是相同的,这意味着当处理具有不同缺失程度的不完整输入时,我们的网络具有很强的鲁棒性。实验结果如表所示。

图片

图片

实验证明PF-Net可以准确地“识别”不同类型的飞机,即使在大规模不完整的情况下,也可以保留原始点云的几何细节。

图片

注意第二个两个机翼都缺失的情况下仍然可以补全。

作者 | 江诚

排版 | 居居手

更多精彩内容请关注公众号:BFT机器人
(公众号后台回复“优惠活动”查看BFT机器人年终钜惠福利内容)

本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。

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

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

相关文章

Drools用户手册翻译——第四章 Drools规则引擎(七)规则执行模式和线程安全

甩锅声明:本人英语一般,翻译只是为了做个笔记,所以有翻译错误的地方,错就错了,如果你想给我纠正,就给我留言,我会改过来,如果懒得理我,就直接划过即可。 drools的规则执…

HighTec 工程属性介绍2

目录 首先需要创建或导入一个工程,如下图: 有两种方式可以进入工程的属性面板: 选中工程,右键点击 Properies . 选中工程,按键 Alt Enter. 进入工程属性面板之后,左侧是书签标记,右侧是该书…

How to choose WIFI7 IPQ9554- WIFI6 IPQ8072? Who has the better performance?

How to choose WIFI7 IPQ9554- WIFI6 IPQ8072? Who has the better performance? The Wi-Fi standard is Wi-Fi 6, also known as 802.11ax. Wi-Fi 6 brings significant speed, capacity and performance improvements over the previous Wi-Fi 5 (802.11ac) standard. It p…

如何做好项目管理?年薪百万项目大佬一直在用这11张图!

日常工作中,我们会遇到各种大大小小的工作项目,如何能让项目保质保量的完成,就需要项目管理。项目管理是什么?一句话解释:在有限的时间内,在约束的范围中,集合有限资源来完成项目目标。 本周小编…

如何安装mmcv?官网解答

pip install -U openmim mim install mmcv

什么是宏变量和宏替换?

在Java中,宏变量和宏替换通常是与C/C预处理器相关的概念,而不是Java本身的特性。在Java中,我们通常不使用预处理器指令(例如宏定义)来进行代码替换。Java使用的编译器并不支持预处理器指令,因此没有宏替换的概念。 然而&#xff0…

移动硬盘文件或目录损坏且无法读取

早上插上硬盘,拔的时候不太规范,再插进去就显示无法读取了 搜了很多方法,很多让使用什么软件进行恢复 还参考了这个方法,但是我的属性打开跟博主的完全不一样 最后,参考移动硬盘“文件或目录损坏,无法读取…

[NOIP2007 普及组] 守望者的逃离

[NOIP2007 普及组] 守望者的逃离 题目背景 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。 题目描述 守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。 为了杀死守望者,尤迪安开始…

把一个列表拆成N个子列表的四种方法

编程的方法往往不止一种,比如怎么把一个Python种的列表拆成N个子列表,我们可以很容易找到N种方法,也许这就是编程的魅力所在。 一、列表表达式法 这种方法最为简洁,不过可读性差一些 这个方法中,即使原始列表的数量无…

途乐证券:美联储第11次加息 年内降息预期下降

7月26日,美国联邦储藏委员会主席鲍威尔在华盛顿到会记者会。新华社发 当地时刻7月26日,美国联邦储藏委员会一如预期加息25个基点。商场对美联储未来是否会持续加息尚未彻底构成共识,但对年内美联储将敞开降息周期的预期下降。 抑通胀 美联储…

24考研数据结构-队列2

目录 数据结构之队列:链式存储结构与循环队列链式存储结构链式队列的结构链式队列的操作 循环队列循环队列的结构循环队列的操作 链式队列与循环队列的比较结论3.2.3 队列的链式存储结构3.2.3.1定义3.2.3.2链式队列的基本操作——带头结点3.2.3.3 不带头结点的相关操…

PLC自学是否可行?

plc编程的关键是模拟原操作流程,通过运行程序完成控制过程。所以核心内容就是程序对流程的描述。因此,掌握PLC编程语言和基本功能实现是很有必要的。 PLC语言分为梯形图、语句和功能图。常用梯形图,适合基本逻辑描述,语句表适合数…

计算机网络(1) --- 网络介绍

目录 1.介绍协议 基础知识 协议 协议分层 OSI七层模型 2.TCP/IP五层模型 3.网络传输的基本流程 1.基本知识 协议报头 2.局域网通信的基本流程 3.网络传输流程 局域网分类 跨路由器传输 数据包封装和分用 4.网络中的地址管理 1.IP地址 2.MAC地址 3.区别 1.介绍…

商品分类子类新建,手机云进销存,扫码入库出库盘点开单打印

商品分类子类新建,手机扫码开单打印进销存,商贸批发生产企业仓库条码管理软件系统,超市便利店五金茶叶烟酒鞋帽门店零售手机收银管理软件APP_哔哩哔哩_bilibili商品分类子类新建的操作步骤。, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚数 …

Java基础---final 关键字

目录 定义: 用途: 使用注意事项: final 变量 final 方法 final 类 小结 定义: Java中,final 表示最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思 用途&#xff…

springboot+mybatis多数据源的事务问题

1.springbootmybatis实现多数据源后,针对单个数据源我们可以使用Transactional(name"xxxTransactionManager") 来指定使用的事务管理器,但是如果被注解的方法需要同时支持两个事务管理器呢,这个时候如果用Transactional注解就不 …

设备数字化平台在制药行业数字化转型的思考与实践

近年来,全球制药行业正面临着数字化转型的浪潮。制药4.0的概念正引领着工业物联网、机器人流程自动化和人工智能等先进技术在制药行业的广泛应用。然而,尽管数字化转型在许多行业已经取得了巨大成功,制药行业仍然面临一些挑战。数据孤岛、人才…

git撤销上一次的commit

一行命令 git reset --soft HEAD^如果在vscode上面,就可以

路灯防雷测试标准方案

路灯作为城市照明的重要组成部分,不仅影响着城市的美观和安全,也涉及到城市的节能和环保。因此,路灯的质量和性能是非常重要的。而路灯由于其安装位置和工作环境的特殊性,很容易受到雷击的影响,导致路灯的损坏或故障。…

Sanic 是什么?从原理到实践,全面解析 Sanic 框架的奥秘

在 Python 中,有许多 Web 框架可以帮助开发者构建高性能的异步 Web 应用程序。其中,Sanic 是一款基于 Python 的异步 Web 框架,它提供了快速、简洁和灵活的方式来构建高性能的 Web 应用程序。本文将介绍 Sanic 框架的基本概念、特点和优势&am…