首页 > 其他分享 >论文解读|PF-Net:用于 3D 点云补全的点分形网络

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

时间:2023-07-28 11:32:47浏览次数:58  
标签:补全 特征 鉴别器 PF 点云 Net 缺失

原创 | 文 BFT机器人

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

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),获得更小尺度且更具有轮廓特征的降采样点云,如图所示。

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


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。

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


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


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


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


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


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


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


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


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


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


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


1.Multi-stage Completion Loss(Lcom):


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


论文解读|PF-Net:用于 3D 点云补全的点分形网络_深度学习_06

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


引入计算两个点云间的距离公式(公式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。


论文解读|PF-Net:用于 3D 点云补全的点分形网络_深度学习_08

05

实验分析


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


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


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


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


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


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


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


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


论文解读|PF-Net:用于 3D 点云补全的点分形网络_深度学习_11


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


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


鲁棒性测试:

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

论文解读|PF-Net:用于 3D 点云补全的点分形网络_深度学习_12

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


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

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


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


作者 | 江诚

排版 | 居居手


更多精彩内容请关注公众号:BFT机器人

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

标签:补全,特征,鉴别器,PF,点云,Net,缺失
From: https://blog.51cto.com/bftrobot/6879961

相关文章

  • WPF
    WPF官网介绍WPF的开源控件库HanyControl 可观察对象ObservableObject ObservableRecipient 继承至ObservableObject ObservableValidator继承至ObservableObject ......
  • wpf ScrollViewer 滚动动画
    wpfScrollViewer滚动动画:<Windowx:Class="WpfTest.FloatTextWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d=&qu......
  • 基于双目人脸图像ORB特征提取匹配的人脸三维点云提取和建模的matlab仿真
    1.算法理论概述      三维人脸建模是计算机视觉领域的一个重要研究方向。传统的人脸建模方法通常基于单张图像,难以准确地获取人脸的三维信息。而基于双目图像的人脸建模方法则可通过多视角的信息获取,实现更加精确的三维人脸建模。本文提出了一种基于双目人脸图像ORB特征提......
  • 使用 AppFuse 的七个理由
    [url]http://www.ibm.com/developerworks/cn/java/j-appfuse/[/url]使用AppFuse快速构建J2EE应用[url]http://www.ibm.com/developerworks/cn/java/j-lo-appfuse/[/url]AppFuse是一个开放源码的项目和应用程序,它使用了在Java平台上构建的开放源码工......
  • 2023-7-27 WPF自定义命名空间在xaml中的使用
    xaml自定义命名空间【作者】长生为啥要用自定义命名空间这是常见的几种命名空间xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:Rxsfadsf"xmlns:s......
  • 2023-7-27WPF的ContextMenu的传参绑定方式
    WPF的ContextMenu的绑定方式【作者】长生ContextMenu为何不能正常绑定在wpf中ContextMenu和ToolTip一样都是弹出层,与VisualTree已经分离了,只不过ToolTip在wpf中有进行特殊处理,所以可以正常绑定。个人觉得ContextMenu绑定的最可靠的方式首先添加BindingProxy类,继承Freezab......
  • WPF Pack URI路径访问二进制资源
    wpf在使用第三方框架时,引入资源文件有时候会遇到二进制放上引入,这里复习一下PackURI方式访问二进制文件资源二进制文件如图片文件,通过添加的方法已经添加到我们的程序中了,那么怎么访问到它们呢?wpf对二进制资源的访问有自己的一套方法,称为packURI路径。格式:pack://......
  • WPF 在ScrollViewer控件内部的Slider控件无法触摸滑动
    WPF中在ScrollViewer控件内部的Slider控件无法触摸滑动,是由于ScrollViewer控件默认设置了IsManipulationEnabled为True。<ScrollViewerx:Name="ScrollViewer1"><Slider></Slider></ScrollViewer>WPFScrollViewer的IsManipulationE......
  • WPF画导航箭头,始终指向鼠标位置
     界面:<Canvasx:Name="container"><Viewboxx:Name="player"Width="50"Height="50"RenderTransformOrigin="0.5,0.5"><Viewbox.RenderTransform><TransformGroup>......
  • 并查集-讲课内容补全(未完
    施工中......先在这里给出我的并查集模板以下为比较常用的路径压缩intf[MAXN],n,m;voidclean(){for(inti=1;i<=n;i++)f[i]=i;}intfind(intx){if(x!=f[x])f[x]=find(f[x]);returnf[x];}voidadd(intx,inty){intfx=find(x),fy=find(y......