文章链接

Abstract

3D视觉中通常采用point cloud或者mesh的形式来存储数据,而传统用于解决3D视觉问题的CNN模型选择将point cloud转化为voxel来处理,这个量化过程会导致精度上的损失和偏差。作者提出的PointNet直接将point cloud作为输入,从而可以有效的处理point cloud数据。

PointNet

image.png

PointNet直接将point cloud数据的3个坐标作为输入,因此结构非常简单高效。作者基于PointNet设计了分类子网络和分割子网络,分别用于解决分类和分割(part segmentation,semantic segmentation)问题。分割问题的结果还被用于解决3D object detection问题。

Point cloud的性质

  1. Unordered
  2. Interaction among points:point直接不是隔离的,而是相互联系的
  3. Invariance under transformation:point cloud整体经过某些变换(旋转、平移等),其所表示的label不发生改变。

PointNet Architecture

PointNet的结构包括了3个核心因素:

1. 用于处理无序输入的对称函数。

PointNet使用了maxpool来实现这个对称函数,用来消除输入序列的顺序对结果的影响。用于处理无序输入的常用方法有三种:排序、不处理+MLP、RNN。排序方法本身具有不稳定的特点,很多序列是无法进行稳定的排序的;不处理+MLP也难以学习到point cloud直接的无序关系;输入序列的顺序也对RNN的结果有重要的影响。作者提出的对称函数的key idea如下:

image.png

其中h函数将N-d的输入转化为K-d的特征,g是一个对称函数,用来得到一个全局的feature vector。对应到网络中,h是maxpool之前的一系列mlp,g是maxpool。

image.png

2. Local and Global Information Aggregation

在解决per point问题时,如segmentation等,仅仅使用global feature是不够的。PointNet将point feature和global feature进行了concat,并用于segmetation问题。

3. Joint Alignment Network

Point cloud的语义标签对某些几何变换具有不变性,因此,通过PointNet学习到的representation也应该具有这种不变形。因此,在point cloud进入PointNet之前,设计了一个affine transformation network用于进行坐标变换。相同的思想也用于feature space,PointNet在网络中间部分使用了feature transformation network用于进行特征维度的变换。但是,FTN维度较高,因此难以训练,作者又加入了一个regularization term,将feature transformation matrix限制为一个正交矩阵:

image.png

ATN和FTN的模型设计:
ATN: MLP(64, 128, 1024) + maxpool + MLP(512, 256, 3x3)
FTN: MLP(64, 128, 1024) + maxpool + MLP(512, 256, 64x64)

image.png

实际上ATN和FTN都没什么用。

理论分析

image.png

定理1说明了,对于Hausdorff距离上的任意连续集合函数f,PointNet在maxpool层有足够多的神经元的条件下都可以进行有效的拟合。

image.png

定理2(a)说明了如果Cs中的点都被保留,那么f(S)的值不会随输入点的减少而变化;如果只有Ns的点被加入到输入中,那么f(S)的值也不会随输入点的增多而变化。Cs是critical point set,Ns是upper-bound shapes。
定理2(b)说明了Cs的大小不超过maxpool中的神经元个数K。

Experiment

image.png
image.png
image.png

标签: 3D视觉

添加新评论