0%

三维场景点云理解与重建

三维场景点云理解与重建

点云特征提取与匹配

三维卷积能够处理规则化的体素数据,但是相较于二维图像,处理体素这种表示方式需要的计算资源呈指数级增长。并且,三维结构是稀疏的,这导致体素这一类表示方式会造成大量的计算资源浪费。面对大场景分析任务时,体素将不再适合。

相反,点云这种无规则表征能够简单有效地表示稀疏的三维数据结构,以下是对点云特征提取相关研究的介绍。

传统点云特征提取

传统点云特征提取借助三维点云的局部几何信息进行编码生成几何算子,作为点云局部几何特征。

一个好的三维算子应该具备:

  • 可描述性:能够提供充足的可描述内容来区分两个不同的表面
  • 鲁棒性:对模型引入的噪声和变化不敏感
  • 紧密性

常见方式:

  • 利用局部几何统计量来表示局部表面不同的性质,如通过累计特定域(例如点坐标,几何属性)当中,几何的或者拓扑的量化值(例如点的数量)构建统计直方图,用于表示几何特征。
    • 空间分布统计算子,统计局部区域内点云分布状态
    • 几何属性统计算子,计算局部表面上点的几何属性(如法向量,曲率)统计直方图来表示特征

点云深度学习

由于点云是离散且不规则的,需要将点云转换到三维体素网格或者多视角图像来间接使用卷积提取特征,但这一过程会生成大量冗余数据并引入了量化计算,改变了数据原本所包含的信息。

  • Volumetric CNNs:对体素应用3DCNN。缺点是点云的坐标空间的稀疏性导致转成体素后的分辨率问题,以及3D卷积带来的开销
  • Multiview CNNs:将点云或者shape渲染成视图,使用传统的图像卷积来做特征学习。这种方法确实取得了不错的效果,但是缺点是应用非常局限,像分割、补全等任务就不太好做

PointNet

参考

PointNet提出直接对点云进行特征提取,以点云数据的三维坐标作为输入,可以预测完整点云的类别标签用于点云分类任务,还能够输出逐点的语义标签用于物体部件分割以及场景语意分割等任务。

针对点云的几个特点PointNet做了对应的设计:

  1. 无序性:对称函数设计用于表征
  2. 点不是孤立的,需要考虑局部结构:局部全局特征结合
  3. 仿射变换无关性:alignment network

image-20230917154122404

  • 分类网络提取global feature,分割网络提取point-wise feature
  1. Symmetry Function for Unordered Input:实现点云点排列不变性
  • 思路1:直接将点云中的点以某种顺序输入(比如按照坐标轴从小到大)

    为什么不这样做?(摘自原文)in high dimensional space there in fact does not exist an ordering that is stable w.r.t. point perturbations in the general sense.简单来说就是很难找到一种稳定的排序方法

  • 思路2:作为序列去训练一个RNN,即使这个序列是随机排布的,RNN也有能力学习到排布不变性

    为什么不这样做?(摘自原文)While RNN has relatively good robustness to input ordering for sequences with small length (dozens), it’s hard to scale to thousands of input elements, which is the common size for point sets. RNN很难处理好成千上万长度的这种输入元素(比如点云)。

  • 使用一个简单的对称函数去聚集每个点的信息

    $f\left(\left\{x_{1}, \ldots, x_{n}\right\}\right) \approx g\left(h\left(x_{1}\right), \ldots, h\left(x_{n}\right)\right)$

    左边$f$是我们的目标,右边$g$是我们期望设计的对称函数。由上公式可以看出,基本思路就是对各个元素(即点云中的各个点)使用$h$分别处理,在送入对称函数$g$中处理,以实现排列不变性。

    在实现中$h$就是MLP,对称函数$g$就是max pooling

image-20230917160030503

  1. Local and Global Information Aggregation:
  • 分割任务需要point-wise feature, 添加了每个点的local和global特征的拼接过程,以此得到同时对局部信息和全局信息感知的point-wise特征,提升表征效果
  1. Joint Alignment Network:
  • 点云经过一定的几何变换,如刚性变换,,点云对应的语义标注必须是不变。因此,作者期望从点集中学习到的特征表示对于这些变换是不变的

  • 直接的思路:将所有的输入点集对齐到一个统一的点集空间

  • PointNet中对齐到统一点集空间的方式:由T-Net直接预测一个变换矩阵(3*3)来处理输入点的坐标。因为会有数据增强的操作存在,这样做可以在一定程度上保证网络可以学习到变换无关性。

  • 对于特征空间的alignment network,由于特征空间维度比较高,因此直接生成的alignment matrix会维度特别大,不好优化,因此这里需要加个loss约束一下, 使得特征空间的变换矩阵A尽可能接近正交矩阵

    add a regularization term to our softmax training loss:

    $L_{r e g}=\left|I-A A^{T}\right|_{F}^{2}$

PointNet++

参考

PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

PointNet的问题:

  1. point-wise MLP,仅仅是对每个点表征,对局部结构信息整合能力太弱 —> PointNet++的改进:sampling和grouping整合局部邻域
  2. global feature直接由max pooling获得,无论是对分类还是对分割任务,都会造成巨大的信息损失 —> PointNet++的改进:hierarchical feature learning framework,通过多个set abstraction逐级降采样,获得不同规模不同层次的local-global feature
  3. 分割任务的全局特征global feature是直接复制与local feature拼接,生成discriminative feature能力有限 —> PointNet++的改进:分割任务设计了encoder-decoder结构,先降采样再上采样,使用skip connection将对应层的local-global feature拼接

image-20230917180741359

  • encoder-decoder结构

  • encoder为降采样过程,通过多个set abstraction结构实现多层次的降采样,得到不同规模的point-wise feature,最后一个set abstraction输出可以认为是global feature。其中set abstraction由sampling,grouping,pointnet三个模块构成

    • sampling layer: 使用FPS(最远点采样)对点集进行降采样,将输入点集从规模$N_1$降到更小的规模$N_2$。FPS可以理解成是使得采样的各个点之间尽可能远,这种采样的好处是可以降采样结果会比较均匀。

      FPS实现方式如下:随机选择一个点作为初始点作为已选择采样点,计算未选择采样点集中每个点与已选择采样点集之间的距离distance,将距离最大的那个点加入已选择采样点集,然后更新distance,一直循环迭代下去,直至获得了目标数量的采样点

  • decoder根据分类和分割应用,又有所不同。分割任务decoder为上采样过程,通过反向插值和skip connection实现在上采样的同时,还能够获得local+global的point-wise feature,使得最终的表征能够discriminative

点云卷积

PointNet++提供了分层和多尺度提取点云局部特征的范式。不过与二维卷积操作相比,其特征提取方式与二维卷积操作仍存在差异。传统卷积操作针对邻域中不同区域赋予了相互独立的权重用于区分各自的相对位置。PointNet++对局部邻域当中的每一个点都赋予相同的权重进行特征提取,而并未区分各自点的在邻域当中的相对位置。后续一系列研究均利用该信息进一步改进,并提出了点云的卷积操作。

稀疏卷积

由于三维数据的稀疏性,完整的三维物体体素表示并不适合作为三维特征提取的输入。稀疏卷积网络仅对空间当中非空的体素进行卷积操作,从而避免了传统三维卷积在非空体素上浪费大量的计算和存储资源

点云旋转不变特征提取

点云旋转不变特征提取大致可以分为三类:

  • 第一类利用旋转不变几何特征作为模型的输入,来代替受旋转变换影响的坐标输入,比如计算输入点云
    点之间的相对距离和角度作为特征来代替点坐标作为网络结构的输入
  • 第二类寻找表示点云旋转不变的局部参考系来避免旋转变化带来的影响;
  • 第三类则是估计输入点云的姿态并将其调整到标准姿态再提取特征。