3D点云经典文献集速览(第一弹)

PointNet

  • Main work:提出了一种新的深度网络架构,使用原始的点云集合作为输入(视为一种无序集),而不进行体素化(类似于用Minecraft里边的方块来表示三维物体,可以应用3D CNN,但是体积巨大!)或渲染。
  • 一些relate work:
    • 手工设计的点云,利用统计特征。这些方法难以为特定任务找到最合适的组合;
    • 3D卷积方法,将点云体素化。这些方法计算代价大,并且受到分辨率的限制;
    • 将点云转为为2D数据并应用2D卷积。这些方法难以拓展到一些例如【点分类】的任务;
    • 将光谱CNN应用到流型网格(manifold meshes)上。这些方法难以拓展到非流型网格数据类型;
    • 将点云转化为tensor并进行特征提取。这些方法将受限制于模型的表征能力。
  • Method
    • 输入数据为欧拉空间中的点的子集,需要满足以下三个协议:
      1) 无序集:无序点集的输入应该与其排列无关;
      2) 点间交互:模型需要能够从附近点捕获局部结构,以及局部结构之间的组合相互作用;
      3) 变换无关:模型的输出与一些空间变换(例如旋转)无关。
    • Architecture
      在这里插入图片描述
      • 对称函数:使得输入数据与排序无关,可以选择【排序】、【视为序列数据】或者【简单的对称函数进行聚合】。经过分析,选择max pooling + MLP的组合有非常好的表现:
        [图片]
      • 全局-局部信息聚合:例如point segmentation任务需要local信息。如fig2中的segmentation network所示,每一个点的feature需要concat一个global feature来进行全局-局部融合;
      • 联合对齐网络(joint alignment network):网络应该与点云的几何变换无关,通过一个迷你网络(fig2中的T-net)预测一个仿射变换矩阵,并直接将这个变换应用到输入点的坐标上,从而对几何变换进行对齐。直接引入仿射变换矩阵会导致优化困难,因此在loss上增加一个正则项:
        在这里插入图片描述

PointNet++

  • Main Work:PointNet缺少local structure的建模,难以识别细粒度模式。本文使用循环嵌套的PointNet。同时进一步观察到点集通常以不同的密度采样,导致在均匀密度上训练的网络性能大大降低,提出了新的集学习层(set learning layers)来自适应地组合来自多个尺度的特征。

    • Local learner:PointNet
    • Generate partition:neighborhood ball,形心通过FPS(farthest point sampling)算法进行确定
  • Method

    • Architecture(N:local region数量,d:坐标dim,C:feature dim,K:local region中点的数量)
      [图片]

    • Sampling layer:采样一些点作为local region的形心,采用FPS算法选择input point的subset:https://zhuanlan.zhihu.com/p/114522377,效果相比随机选择会更好;

    • Grouping layer:为每个形心选择neighborhood,形成一个local region,相比KNN,使用ball query可以保证具有更好的空间泛化性:https://blog.csdn.net/qq_41780295/article/details/109052447;

    • PointNet layer:local region聚合,在输入进PointNet之前,每个点的坐标需要以形心为中心进行转换,这一转换非常重要,如此可以表示出local region中point-to-point的关系。

  • Problem:不同区域的点集有不同的密度非常常见,这会导致在密集区域学习到的表征难以泛化到稀疏区域中。为此,文章希望从多尺度的角度捕获不同粒度的特征,提出了以下两种方案:
    [图片]

    • (a)Multi-scale grouping (MSG):采用不同radius的ball query。在训练时引入random point dropout,提出具有不同稀疏性(由)和不同均匀性的训练集的网络;
    • (b)Multi-resolution grouping (MRG):MSG方法耗时比较大,MRG是一个可靠的方案。当local region的密度小时,粗粒度的vector重要性就较小,反之则大。
  • 对于Segmentation任务:插值上采样,并通过一个unit PointNet(没有聚合)生成特征。同时,也需要skip connection聚合local信息,类似于UNet。
    [图片]

[图片]

  • 实验
    [图片]

PointCNN

  • Main Work:对点云施加一种变换,使其可以引入形状信息并且与排列无关,则可以对点云使用常规的卷积。
    [图片]

  • Method

    • Hierarchical Convolution:与层级卷积类似,PointCNN也是一个层级卷积的结构:
      [图片]

    • Architecture
      [图片]

      • b结构的提出是为了解决a结构中最后一层隐藏层数量急剧下降导致的难以训练的问题。为了保证感受野以及网络深度,借鉴dilated conv的思想,使用了D=2的扩张率。
    • 算法伪代码:
      [图片]

      • F2上的中心点p代表其位置信息,以及它对应的特征f;

      • 中心点p的neighbor(pi,fi),注意他们的特征来自F1(即上一层):
        [图片]

      • S中的pi和fi可以被转换为:
        [图片]

      • 中心点p的特征在经过一次Conv聚合之后会变为(其中对position升维是为了匹配特征的维度):
        [图片]

[图片]

  • X-transformation的消融实验
    • X-transformation是一个关键,不是因为网络wider或者deeper导致的提点,是他本身可以提点:
      [图片]

    • X-transformation matrix与点集的order有关,从而可以用以消除点集与order的有关性,保持其无序集的特点,相较于PointNet的对称函数(会损失部分信息)有更好的效果:
      [图片]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值