PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

总结 Pointnet

论文链接:https://arxiv.org/abs/1612.00593v2
项目链接:https://github.com/charlesq34/pointnet

基本内容:

分类网络:使用点云作为基本输入,分别通过T-net(3)(这里经过T-net预测出一个3 * 3的矩阵,然后用输入矩阵n * 3与这个矩阵相乘)再经过 mlp(64,64) T-net(64) mlp(64,128,1024) 最后进行MALPOOL成一个(1*1024)再经过mlp(512,256,k) k是分类种类数

部分分割网络: 将通过T-net(64)后的n * 64与最后预测的n*1024做一个Tf.concat级联,再通过mlp(512,256,128,128,m)生成一个n * m的分数,其中n是点数,m是对应点在各个部分上的评分。
PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation解决问题: 针对3D 分类分割提出了自己解决问题的方法,主要针对3D点云数据的特点:无序性(且点数量不固定),相互作用性(即研究的问题在于这些点之间的相互作用),刚体旋转不变性。因为这些特点,无法像2D图片一样使用CONV2D作为提取局部特征的方法,因此作者考虑使用一个对称函数与一个聚合函数来进行处理。
PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
假设 f 是满足条件的一个函数,可以从 N 个点的数据得到关于点云的分类,考虑用h(x)一个聚合函数,g(x)为一个对称函数来近似,由于万能近似性质,取H(X)为MLP,取 G(x)为最大maxpool。文章论证了MLP可以任意精度近似,只要神经元数量足够多。并且论证了这个集合函数具有抗扰动的性质,因为MAX取值仅与部分关键的点有关。

损失函数正则化加入了:
PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

优点: 提出了一个新的处理3D问题的方式 即将点云作为直接输入,通过将数量放在batch维度上,用对称函数的方式处理掉了数量不稳定的情况,用T-NET做了一个alignment 来解决刚体旋转不变性。

缺点:针对相互作用的性质处理显然不够好,使用MLP的方法显然忽略了图的拓扑结构,因此这一点是可以改进的。

项目实现Trick: 用conv2d(1*n)的卷积方式实现了MLP 提升了性能