Wenxuan Wu、Zhongang Qi、Li Fuxin作者

PointConv:在点云上高效实现卷积操作

3D 点云是一种不规则且无序的数据类型,传统的卷积神经网络难以处理点云数据。来自俄勒冈州立大学机器人技术与智能系统(CoRIS)研究所的研究者提出了 PointConv,可以高效的对非均匀采样的 3D 点云数据进行卷积操作,该方法在多个数据集上实现了优秀的性能。如将 CIFAR-10 数据转换成点云,使用 PointConv 实现例如 AlexNet 和 VGG 结构的网络,可以达到与传统 CNN 相似的性能。

一、背景

在机器人、自动驾驶和虚拟/增强现实应用中,直接获取 3D 数据的传感器日趋普遍。由于深度信息可以消除 2D 图像中的大量分割不确定性(segmentation ambiguity),并提供重要的几何信息,因此具备直接处理 3D 数据的能力在这些应用中非常宝贵。但 3D 数据通常以点云的形式出现。点云通常由一组无排列顺序的 3D 点表示,每个点上具有或不具有附加特征(例如 RGB 信息)。由于点云的无序特性,并且其排列方式不同于 2D 图像中的常规网格状像素点,传统的 CNN 很难处理这种无序输入。

本文提出了一种可以在非均匀采样的 3D 点云数据上高效进行卷积操作的方法。我们称这种操作为 PointConv。PointConv 能够在 3D 点云上构建多层深度卷积网络,其功能与 2D CNN 在栅格图像上的功能类似。但该结构可实现与 2D 卷积网络相同的平移不变性,以及点云中对点顺序的置换不变性。在实验中,PointConv 可以在分类问题上的效果达到当前最佳水平,同时,在 3D 点云的语义分割上能够给出远超论文提交时的最优的分割结果。为了说明 PointConv 可以实现真正的卷积操作,我们还在图像分类数据库 CIFAR-10 上进行了测试。实验表明,PointConv 能够达到类似于传统 CNN 的分类精度。

该研究的主要贡献包括:

  • 提出密度重加权卷积操作 PointConv,它能够完全近似任意一组 3D 点集上的 3D 连续卷积。

  • 通过改变求和顺序,提出了 PointConv 的高效实现。

  • 将 PointConv 扩展到反卷积(PointDeconv),以获得更好的分割结果。

二、PointConv

两个连续函数 f(x) 和 g(x) 关于一个 d 维向量 x 的卷积操作可以用下式表示: 

由于图像一般以固定的网格状的矩阵形式存储,因此在图像上,卷积核通常在 3x3,5x5 的固定网格上实现。在 CNN 中,不同的邻域采用同一个卷积核进行卷积,从而实现平移不变性。由此可见,图像上的卷积操作是连续卷积操作的一种特殊的离散化表示。

3D 点云数据的表达方式与图像完全不同。如图 1 所示,不同于图像,3D 点云通常由一些 3D 点组成。3D 点之间没有前后顺序之分,因此,在 3D 点云上的卷积操作应具有排列不变性,即改变 3D 点集中点顺序不应影响卷积结果。此外,点云上的卷积操作应适应于不同形状的邻域。 

为满足这些要求,在 3D 空间中,可以把连续卷积算子的权重看作关于一个 3D 参考点的局部坐标的连续函数。如下式所示: 

其中,W 和 F 均为连续函数,(x, y, z) 是 3D 参考点的坐标,(δx,δy,δz) 表示邻域 G 中的 3D 点的相对坐标。(2) 式可以离散化到一个离散的 3D 点云上。同时,考虑到 3D 点云可能来自于一个不均匀采样的传感器,为了补偿不均匀采样,我们提出使用逆密度对学到的权重进行加权。PointConv 可以由下式表示,

其中,S 表示逆密度系数函数。连续函数 W 可以用多层感知器(MLP)近似。函数 W 的输入是以 (x, y, z) 为中心的 3D 邻域内的 3D 点的相对坐标,输出是每个点对应的特征 F 的权重。S 是一个关于密度的函数,输入是每个点的密度,输出是每个点对应的逆密度系数。这个非线性的函数同样可以用一个多层感知机近似。

图 3 展示了在一个由 K 个 3D 点组成的邻域上进行 PointConv 的流程。图中,C_in 和 C_out 表示输入和输出的特征的维度,k, c_in, c_out 表示索引。对于 PointConv 来说,输入由三部分组成:3D 点的相对坐标 P_local,密度 Density 和特征 F_in。3D 点的相对坐标 P_local 经过连续函数 MLP1 之后可以得到对应的每一个点的特征的权重 W;而密度 Density 经过 MLP2 之后得到逆密度系数 S;在得到权重 W, 逆密度系数 S 以及输入的特征 F 之后,可以利用下式进行卷积,以得到输出特征 F_out: 

PointConv 通过学习连续的卷积核函数,适应了 3D 点云的不规则的特性,实现了置换不变性,使得卷积操作由传统的图像扩展到了 3D 点云领域。

三、高效 PointConv

最初版本的 PointConv 实现起来内存消耗大、效率低。为了解决这些问题,我们提出了一种新型重构方法,将 PointConv 简化为两个标准操作:矩阵乘法和 2D 卷积。这个新技巧不仅利用了 GPU 的并行计算优势,还可以通过主流深度学习框架轻松实现。由于逆密度尺度没有这样的内存问题,所以下面的讨论主要集中在权重函数 W 上。

1. 内存问题的产生

具体来说,令 B 为训练阶段的 mini-batch 大小,N 为点云中的点数,K 为每个局部区域的点数,C_in 为输入通道数,C_out 为输出通道数。对于点云,每个局部区域共享相同的权重函数,这些可以通过 MLP 学习得到。但不同点处的权重函数计算出的权重是不同的。由 MLP 生成的权重参数张量的尺寸为 B×N×K×(C_in×C_out)。假设 B = 32,N = 512,K = 32,C_in = 64,C_out = 64,并且权重参数以单精度存储,一层网络则需要 8GB 的内存。如此高的内存消耗将使网络很难训练。[31] 使用非常小的网络和少数的滤波器,这显著降低了其性能。

2. 高效的 PointConv

为了解决前面提到的内存问题,我们提出了一个基于 Lemma 1 的内存高效版 PointConv,这也是本文最重要的贡献。

具体的证明可以参考原论文。根据 Lemma 1 重新实现 PointConv,可实现完全相同的卷积操作,但大大减少内存消耗。采用 1 中相同的配置,单层卷积操作的内存占用将由 8G 缩小为 0.1G 左右,变为原来的 1/64. 图 5 展示了高效的 PointConv 卷积操作。

 四、反卷积操作

在分割任务中,将信息从粗糙层传递到精细层的能力非常重要。由于 PointConv 可以实现标准卷积操作,因此将 PointConv 扩展为 PointDeconv 是很顺理成章的。PointDeconv 由两部分组成:插值和 PointConv。首先,使用一个线性插值算法来得到精细层的特征的初始值,再在精细层上进行一个 PointConv 进行优化特征,从而获得较高精度的特征值。图 4 展示了反卷积操作的具体流程。

五、实验

为了说明 PointConv 的有效性,我们在常用的 3D 点云数据库上进行了测试,包括 ModelNet40,ShapeNet 和 ScanNet. 同时,为了说明 PointConv 是可以和图像 CNN 进行等价,我们在 CIFAR10 上进行了测试。这里我们重点介绍在 ScanNet 上的测试结果,更多实验结果请参考论文原文。如表 3 所示,仅使用 4 层 PointConv 网络,即可在场景的的语义分割测试中达到远好于其他算法的效果,达到了当前最优水平。图 7 给出了室内场景语义分割的一些可视化结果。 

为了说明 PointConv 可以等价于图像上的 CNN,我们在 CIFAR10 上进行了测试。首先,将 CIFAR10 的图像像素转变为网格状排列的点云,再使用 PointConv 进行分类。表格 4 给出了 PointConv 与其他 3D 点云算法和图像 CNN 的分类精度对比。可以看到,5 层的 PointConv 可以达到和 AlexNet(5 层 CNN)相似的精度,同时,PointConv(VGG) 也可以达到和 VGG 相似的分类精度。与此同时,其他的 3D 点云算法,如 PointCNN 等,则仅能取得 80% 左右的分类精度。这项实验说明了 PointConv 可以取得与图像 CNN 同等水平的学习效果。 

论文:PointConv: Deep Convolutional Networks on 3D Point Clouds

摘要:与使用常规密集网格表示的图像不同,3D 点云是不规则且无序的,因此对它们执行卷积存在困难。在本文中,我们将动态滤波器扩展为一个名为 PointConv 的新型卷积操作。PointConv 可以在点云上构建深度卷积网络。我们将卷积核看作 3D 点局部坐标的非线性函数,该函数由权重和密度函数组成。对于给定点,利用多层感知器网络学习权重函数,通过核密度估计学习密度函数。为了高效地计算权重函数,我们提出了一种新型计算方法,使网络规模显著扩大,性能显著提高。学习到的卷积核可用于计算 3D 空间中任何点集上的平移不变卷积和置换不变卷积。此外,PointConv 还可以用作反卷积算子,将从子采样点云中提取的特征传递回原始分辨率。在 ModelNet40、ShapeNet 和 ScanNet 上的实验表明,基于 PointConv 构建的深度卷积神经网络在 3D 点云上执行操作时能够在具有挑战性的语义分割基准上实现当前最优结果。此外,将 CIFAR-10 转换为点云的实验表明,基于 PointConv 构建的网络性能堪比在类似结构的 2D 图像中执行操作的卷积网络。

理论点云采样卷积神经网络
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

增强现实技术

增强现实,是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与互动的技术。这种技术于1990年提出。随着随身电子产品运算能力的提升,增强现实的用途也越来越广。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

多层感知机技术

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

核函数技术

核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量函数。最常应用于SVM支持向量机中

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

插值技术

数学的数值分析领域中,内插或称插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。求解科学和工程的问题时,通常有许多数据点借由采样、实验等方法获得,这些数据可能代表了有限个数值函数,其中自变量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

推荐文章
暂无评论
暂无评论~