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
网络而言,从输入到输出主要经历一下几步:
- 获取到输入的点云网络
- 把点云填充的网格当中
- 32通道 555的卷积核 步长为5
- 32通道 333的卷积核, 之后进行222
- 128的全连接层 - n全连接层输出
对于ID为2的来说,我们使用Multi-view CNN来举例。
- 将多视角得到的照片进行CNN
- 将上一步得到的信息进行View Pooling
- 继续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!\)排列保持不变。在进行几何旋转的时候不应该改变分类结果。这两点。