PointNet

论文:CVPR 2017 Open Access Repository (thecvf.com)

前人的贡献

传统的目标检测算法中对于数据格式有着严格的要求,将点云数据转换为符合要求的数据格式会使得数据规模扩大,影响计算效率。

点云数据由无序的数据点构成一个集合来表示。因此,在使用图像识别任务的深度学习模型处理点云数据之前,需要对点云数据进行一些处理。目前采用的方式主要有两种:

1、将点云数据投影到二维平面。此种方式不直接处理三维的点云数据,而是先将点云投影到某些特定视角再处理,如前视视角和鸟瞰视角。同时,也可以融合使用来自相机的图像信息。通过将这些不同视角的数据相结合,来实现点云数据的认知任务。比较典型的算法有MV3D和AVOD。

2、将点云数据划分到有空间依赖关系的voxel。此种方式通过分割三维空间,引入空间依赖关系到点云数据中,再使用3D卷积等方式来进行处理。这种方法的精度依赖于三维空间的分割细腻度,而且3D卷积的运算复杂度也较高。

点集的性质

  1. 无序:三维N个点的数据需要N!个排列组合
  2. 点之间相互作用:点云中的点不是独立存在的,模型需要提取局部信息
  3. 转换不变性:作为一个几何物体,对物体进行变换不应该改变物体的某些特征

论文概述

image-20220105165859553

PointNet主要用于点云数据分类问题,即在点云数据中找到属于一个物体的所有点云。

该分类网络以n个点作为输入,进行输入和特征转换,然后通过最大池法对点特征进行聚合。输出是k个类别的分类分数。分割网络是分类网络的延伸。它连接全局和局部特征,并输出每个分数。” mlp “表示多层感知器,括号中的数字表示层大小。Batchnorm用于所有带有ReLU的层。在分类网的最后一个mlp中使用了Dropout层。

PointNet更多的是为CV领域提供了一种新的研究方向,拓展了对于原始数据处理的思路,后续的Frustum PoinNet等是对于PointNet在目标检测方面的特定研究,以及其他网络会将其作为网络设计的一部分充分的发挥其网络结构简单,计算简单的特点。

网络结构

作用于无序输入的对称函数

不改变模型的输入排序有三种方法:将输入按正则序排序(在高维空间中很难实现);将输入作为序列来训练RNN(会增加训练数据);使用一个对称函数来聚合每个点的信息(如+、*)

作者的主要思想是通过对一个点集中的变换
元素应用一个对称函数来逼近一个定义在点集上的一般函数:
$$
f({x_1,x_2,…,x_n})\approx g(h(x_1),…,h(x_n))\
f:2^{\mathbb{R}^N}\rightarrow \mathbb{R} ,h:\mathbb{R} ^N\rightarrow \mathbb{R} ^K,g:\mathbb{R} ^K\times …\times\mathbb{R} ^K\rightarrow \mathbb{R} (g为对称函数)
$$
根据经验,使用一个多层感知器网络近似h(mlp),使用一个单变量函数和一个最大池化函数组合近似g。通过h,可以学习到f中的不同性质,最后输出一个k维向量,表示数据的全局特征。

局部全局的数据增强

根据上面网络得到的k维向量,可以训练SVM或是多层感知分类器对具有全局特征进行分类。

在计算全局点云特征向量后,通过连接全局特征和每个点的特征,将其反馈给每个点。接着基于集合的点特征提取每个点的新特征(此时每个点特征同时拥有局部特征与全局特征)。

之后,网络可以基于局部几何特性和全局语义预测每个点的数量。

联合定位网络

作者通过一个微型网络T-Net预测一个仿射变换矩阵并且直接将这种变换应用到输入点的坐标上。

这种思想同时适用于特征空间的对齐,通过在点特征上插入另一个对齐网络,并预测一个特征转换矩阵来对齐来自不同输入点云的特征。但是特征空间中的变换矩阵比空间变换矩阵的维数高很多,这会增加优化难度。因此在softmax训练损失中增加一个正则化项,将特征变换矩阵约束为接近正交矩阵,以获得了较好的效果。
$$
L_{reg}= \Vert I-AA^T \Vert^2_F(A是由T-Net预测的特征对齐矩阵)
$$

理论研究

  1. PointNet神经网络对于连续集函数具有很好的逼近能力。即输入点集的小扰动不会对函数数值造成很大的改变。所以即使在最坏的情况下,网络也可以通过将空间划分为等大小的voxel来探索空间。

    image-20220105165859553
  2. 即使输入有数据被损坏或是带有噪声,模型都具有鲁棒性;关键集的数据多少由maxpooling操作输出数据的维度K给出上界

因此,该网络通过稀疏的关键点集合来总结一个形状。

关键流程

  1. 输入为一帧的全部点云数据的集合,表示为一个n×3的二维 tensor,其中n代表点云数量,3对应xyz坐标。
  2. 输入数据先通过和一个T-Net学习到的转换矩阵相乘来对齐,保证了模型的对特定空间转换的不变性。
  3. 通过多次mlp对各点云数据进行特征提取后,再用一个T-Net对特征进行对齐。
  4. 在特征的各个维度上执行maxpooling操作来得到最终的全局特征。
  5. 对分类任务,将全局特征通过mlp来预测最后的分类分数;对分割任务,将全局特征和之前学习到的各点云的局部特征进行串联,再通过mlp得到每个数据点的分类结果。

实验结果

image-20220105165859553

做出的贡献

  1. 设计一种新的深度网络结构,适用于三维空间中的无序点集
  2. 展示这样的网络如何执行三维形状分类、形状部分分割和场景语义解析任务
  3. 对这种方法的稳定性和有效性进行深入的实证和理论分析
  4. 举例说明网络中选定的神经元三维特征,研究其性能的直观解释
谢谢你请我吃糖果
0%