PointNet++

PointNet++

标签(空格分隔): 论文


点云应用

AR VR RobotPerception ShapeDesign FaceID

点云任务

  • Object classification | 物体分类
  • Parts segmentation | 部件分割
  • Object detection | 物体检测
  • Semantic segmentation | 场景语义分割

主要存在的挑战

不规则: 距离激光雷达近的点云数据密集,反之稀疏。

无结构化: 点与点之间是独立的,点与点之间的距离不是固定的。

无序:无序带来置换不变性(Invariance to permutations)

顺序一致但点云结构不同,顺序不一致但点云结构相同、

3D Representations

点云: 通过很多的点构成的一个3D图形

Mesh: 用很多三角形/正方形的面片拼成的一个图形

Volumetric: 很多栅格去拼成一个3D图形

Projected View(RGBD):通过图片在不同的角度构成的3D图像。

thread local 内存泄漏

RGB VS. RGBD VS. Points Clouds

RGB: [r,g,b]
RGBD:2.5D [r,g,b,d]
Points Clouds:pos[x,y,z] color[r,g,b]

PointNet和PointNet++

PointNet: 在将所有的输入数据经过相同的MLPS之后得到抽象的特征, 再将其过一遍最大池化层,得到特征。

  • 很明显PointNet没有考虑到局部上下文信息

PointNet++: 通过Sampling和Grouping获取局部上下文信息对其做出补充。

点云数据非常接近原始雷达数据具有丰富的几何信息。在PointNet出现之前,点云数据在fed to神经网络之前需要转化为其他数据表达形式。

  • 例如:使用VoxNet的时候需要将其数据3D栅格化,然后使用3D CNN进行卷积。
ID Conversion Deep Net 补充
1 Voxelization 3D CNN 卷积时会丢失信息
2 Projection 2D CNN 投影得到2D信息, 然后2D CNN
3 Feature extraction Fully Connected 直接特征抽取、上全连接层

对于VoxNet网络而言,从输入到输出主要经历一下几步:

  1. 获取到输入的点云网络
  2. 把点云填充的网格当中
  3. 32通道 555的卷积核 步长为5
  4. 32通道 333的卷积核, 之后进行222
  5. 128的全连接层 - n全连接层输出

对于ID为2的来说,我们使用Multi-view CNN来举例。

  1. 将多视角得到的照片进行CNN
  2. 将上一步得到的信息进行View Pooling
  3. 继续CNN

PointNet 提出的想法

  • Can we achieve effective feature learing directly on point clouds ?
  • End-to-end learing for scattered, unordered point data
  • Unified frameword for various tasks

Challenges

  • Unordered point set as input

  • Model needs to be invariant to \(N!\) permutations

  • Invariance under geometric transformations

  • Point cloud rotations should not alter classification results.

主要需要解决无序点集作为输入的时候Model 应该对\(N!\)排列保持不变。在进行几何旋转的时候不应该改变分类结果。这两点。

上一篇:飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!


下一篇:3维点云学习笔记--斯坦福大学在读博士生祁芮中台讲解pointnet系列