PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation ——论文阅读笔记
文章主要内容:
本文设计了一种新的直接消耗点云的神经网络,它很好地尊重了输入点的排列不变性。我们的网络名为PointNet,为从对象分类、部件分割到场景语义分析的应用程序提供了一个统一的体系结构。
1.什么是点云:
点云是某个坐标系下的点的数据集。
点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等等,不一一列举。
在我看来点云可以将现实世界原子化,通过高精度的点云数据可以还原现实世界。
2.分割网络
分割网络是分类网络的扩展。它将全球和本地特征以及每分得分的输出连接起来
3.dropout层
作用:用于减少过拟合
指深度学习训练过程中,对于神经网络训练单元,按照一定的概率将其从网络中移除,注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。
我们的网络有三个关键模块:以聚合所有点信息为对称函数的最大池化层,一个局部和全局信息组合结构,以及两个对齐输入点和点特征的联合对齐网络。
疑问点:
T-Net: 提取1024个全局特征并转换为3×3的线性变换矩阵,学习如何对点云做线性变换。具体过程:三层卷积(stride=1),相当于利用一个MLP对每个点分别做非线性变换,升维至1024,获得1024×N的张量,最大池化获得长1024的全局特征向量,MLP降维至9。
利用最大池化构造对称函数。
1. PointNet直接利用点云数据进行计算。
2. 利用最大池化构造对称函数。
3. 使用T-Net提取全局信息,对点云施加线性变换,矫正刚性变化。(特征空间中的变换矩阵具有比空间变换矩阵高得多的维度,这极大地增加了优化的难度。因此,我们在softmax训练损失中增加了一个正则化项。)
我们的方法的关键是使用一个单一的对称函数,最大池。网络有效地学习一组优化函数/标准,这些优化函数/标准选择点云中感兴趣的或有信息性的点,并对其选择的原因进行编码。最终的网络全连接层将这些学习到的最优值聚合成上面提到的整个形状的全局描述符(形状分类)或用于预测每个点标签(形状分割)。
局部特征和全局特征
局部特征 (local features),是近来研究的一大热点。大家都了解全局特征(global features),就是方差、颜色直方图等等。如果用户对整个图像的整体感兴趣,而不是前景本身感兴趣的话,全局特征用来描述总是比较合适的。但是无法分辨出前景和背景却是全局特征本身就有的劣势,特别是在我们关注的对象受到遮挡等影响的时候,全局特征很有可能就被破坏掉了。而所谓局部特征,顾名思义就是一些局部才会出现的特征,这个局部,就是指一些能够稳定出现并且具有良好的可区分性的一些点了。这样在物体不完全受到遮挡的情况下,一些局部特征依然稳定存在,以代表这个物体(甚至这幅图像),方便接下来的分析。我们可以看下面这个图,左边一列是完整图像,中间一列是一些角点(就是接下来我们要讲的局部特征),右边一列则是除去角点以外的线段。不知道你会不会也觉得你看中间一列的时候能更敏感地把他们想象成左边一列的原始物品呢?一方面说,如果我们用这些稳定出现的点来代替整幅图像,可以大大降低图像原有携带的大量信息,起到减少计算量的作用。另一方面,当物体受到干扰时,一些冗余的信息(比如颜色变化平缓的部分和直线)即使被遮挡了,我们依然能够从未被遮挡的特征点上还原重要的信息。
体素化
体素化(Voxelization)是将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性。表示模型的空间体素跟表示图像的二维像素比较相似,只不过从二维的点扩展到三维的立方体单元,而且基于体素的三维模型有诸多应用。
本地和全球信息聚合
(如上图Segmentation Network)在计算出全局点云特征向量后,通过将全局特征与每个点特征连接起来,将其反馈给逐点特征。然后,我们基于合并的点特征提取新的逐点特征-这一次每点特征同时感知局部和全局信息。