PointNet是斯坦福大学发表在2017年CVPR上的一篇处理点云数据的论文。相较于之前其他处理点云数据的论文,其最大的不同是,对于点云数据,会直接进行处理,而非将点云数据进行格式化处理,从而避免了将点云数据格式化后,产生的unnecessarily voluminous以及像素点失真的问题。从这一点上来说,PointNet具有极其重要的意义。
从传统思路来讲,通过将点云数据转换成3D像素数据后,可以将3D像素数据像处理2维图像一样,进行卷积,权值共享等,而显而易见,对于无序的一些点的集合,是无法直接像和处理2D数据一样进行处理,在原文中,当直接使用点云数据不加处理时,作者提出了以下3个可能产生的问题,以及主要就这3个问题,进行的网络结构的设计以及相关的证明和实验:
1、输入无序性问题
从数据结构的角度来讲,点云数据知识一组无序的向量集合,若不考虑其他诸如颜色等因素,只考虑点的坐标,则点云数据只是一组n * 3的点集合。那么当对这n个点进行不同顺序的读入时,无论是图像分类抑或是部分分割,都必须输出相同的结果,在2D图像中,因为点的位置是固定的,所以不存在这样的问题,但是在点云数据中,点的输入组合中共有n!种,所以必须进行处理。
在论文中,处理的方式也比较简单,使用了最大池化,在对n个点进行卷积等操作后,生成n * 1024维的矩阵,1024维的1024个整体特征,对于每个维度,求其最大值,即解决了输入无序性的问题。此处可举例有max(a,b,c,d,e,f,g) = max (a,d,b,e,c,f,g) = ...
在论文的4.3部分,作者就使用最大池化进行证明,当特征维数足够大时,最大池化可以对模拟论文中所述的任意对称函数f,同时在此基础上论述了模型的稳定性。对于任意数据集S,Cs表示critical set,Ns表示upper-bound set,即对于相同全局特征f(s),所可能的最大点云集,此时有f(Ns) = f(S), 故而当添加的点属于Ns - S时,对于整体点云特征并无影响,故而满足稳重所述的robust to small pertubation of input points。此处其实与svm中的支持向量有点类似,以及凸包中,被包住的点。最终作者的结论是网络