三维物体在计算机图形学中的表达有多种多样的形式,如体素,mesh网格和点云等。不同的表达形式有各自的优点。目前由于体素表达形式更加适合神经网络进行卷积处理,因此基于体素的神经网络方法获取三维物体特征的研究较多。然而,在现实世界中,无论是传统的SFM还是用深度传感器得到的三维信息,它们得到的原始数据都是点云,因此基于点云的特征学习是一个非常重要的课题。
图1:三维物体表达形式
一、基于点云的分类与分割
斯坦福大学的研究人员提出了将点云直接输入到神经网络中从而完成点云的分类和分割的任务。该神经网络可以直接在点云上完成特征提取并运用于各种任务。
图2:Point Net点云分类分割
二、两大难题
该工作主要围绕如何解决两大难题的主题上开展,两大难题分别为如何解决点云的无序性和旋转性。
1、点云的无序性
图3:点云的顺序
图中的N表示有N个点,D代表每个点的空间坐标。对于一个包含N个点的点集来说,每个点的表述顺序并不会影响整个点集。也就是说,基于点云的特征学习的神经网络应当对不同表述顺序的点云保持不变性。对于N个点的点云,其表述顺序有N的阶乘种顺序,因此神经网络需要对这N的阶乘种顺序保持不变。
在这里,作者提出了对称函数的概念。在数学上,简单来说,对称函数就是不论输入的自变量的顺序如何,其函数值保持不变。例如取最大值函数,求和函数等都是非常典型的对称函数。
图4:对称函数
也就是说,如果整个神经网络就是一个对称函数,那么就可以保持对输入点云顺序的不变性。因此作者提出了这样的架构,即将点云坐标通过多层神经网络的学习后,输入到对称函数g中,那么只要g是对称函数,则整个神经网络为对称函数。
图5:PointNet对称函数架构
在实验中,作者证明max即可得到很好的结果,因此整个网络用了max pooling层作为对称函数。
图6:PointNet对称函数架构
2、点云的旋转性
在同一个参考坐标系下,点云的旋转会导致坐标的不一致问题,因此,所设计的神经网络也必须保持对旋转顺序的不变性。作者提出了T-Net来解决这个问题。其实T-Net相当于几何空间中的旋转矩阵,作者希望通过T-Net来实现点云的自动对齐。
图7:T-Net网络架构
三、整体网络架构
图8:整体网络架构
上图为该网络的整体架构。输入为n*3的矩阵,表示点云的n个点的空间坐标。点云先经过T-Net结构后,经过多层神经网络,再经过一个T-Net网络结构得到局部特征,之后经过多层神经网络继续encoder,最后经过max pooling对称函数结构后得到全局特征,最后将全局特征用于分类任务,将局部特征与全局特征concat进行分割任务。
四、结果
1、分类结果
图9:分类结果
在整体的准确率上,PointNet达到了最高水准。
2、分割结果
图10:分割结果
图11:分割结果(IoU)
参考文献
1. Charles R. Qi,Hao Su,Kaichun Mo,Leonidas J. Guibas, PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. CVPR 2017
2. Charles R. Qi, Hao Su, Matthias Niessner, Angela Dai, Mengyuan Yan, Leonidas J. Guibas, Volumetric and Multi-View CNNs for Object Classification on 3D Data. CVPR 2016
领取专属 10元无门槛券
私享最新 技术干货