让CNN更好地处理不规则和无序的点云数据

猛戳图片,抢先了解2018国家智能产业峰会详细内容!

本文转载自“机器之心”,版权归原作者所有。

卷积神经网络的成功自不必多言,但CNN在点云上的应用还存在诸多短板。山东大学近日公布的一项研究提出的PointCNN可以让CNN在点云数据的处理上取得更好的表现。

空间上的局部相关性(spatially-local correlation)是各种类型的数据都具有的一种性质,并且与数据的表示方法无关。对于可以表示在图像等规则域中的数据,卷积算子已经证明在探索这种相关性上十分有效,并且也是CNN在多种任务上取得成功的关键 [LeCun et al. 2015]。

对于本身维度就比环境空间少的数据(比如3D空间中的面或2D空间中的线)而言,如果将这些数据表示为环境空间中的点云(point cloud)而非整个空间的一个密集网格,那么效果还会更好。不仅如此,3D点云可能也是3D传感器最常见的原始输出,正变得越来越容易获取。但是,点云不规则且无序,会使得卷积算子难以利用数据中的空间局部相关性。

图 1:来自规则网格(i)和点云(ii、iii 和 iv)的卷积输入。在规则网格中,每个网格单元都与一个特征关联。在点云中,点是从局部近邻中采样得到的;类比于规则网格中的局部块,每个点关联了一个特征、一个顺序索引以及它的坐标。但是,缺乏规则网格使得我们难以将这些点按规范顺序排列。

我们在图1中说明了在点云上应用卷积的问题和难点。假设在图1中所有情况下的C维输入特征的无序集合是一样的,并且我们有一个形状为4×C的卷积核。在 (i) 中,通过遵循规则的网格结构给出的规范顺序,在局部的2×2块中的特征可以被投射进形状为4×C的中;然后和K进行卷积,得到,其中Conv(·,·) 就是在元素层面进行求积后再求和。在 (ii)、(iii) 和 (iv) 中,这些点是从局部近邻中采样得到的,因此可以是任意顺序。通过遵循如图给出的顺序,输入特征集F可以被投射进中(ii 和 iii 的情况)和中(iv 的情况)。基于此,如果直接应用卷积算子,那么这三种情况的输出特征可以按如下方式计算:

注意,在所有情况下都成立,在大多数情况下都成立。现在,可以清楚看到:直接进行卷积会导致形状信息丢失(即),也会因为顺序而不同(即)。

在这篇论文中,我们提出使用多层感知器 [Rumelhart et al. 1986] 根据K个输入点 (p1,p2, ...,pK) 的坐标来学习K×K的X变换,即X=MLP(p1,p2, ...,pK),然后将其用于对输入特征同时进行加权和重新排列,最后再将典型的卷积应用在这个变换后的特征上。我们将这个过程称为X-Conv,这是我们的PointCNN的基本构建模块。图1中ii、iii和iv的X-Conv可以描述为:

其中X是4×4的矩阵,因为在图1中K=4。注意,因为Xii和Xiii是从不同形状的点学习到的,因此它们相应的给输入特征加权的方式可能不同,所以。对于Xiii和Xiv,如果学到的它们满足(其中Π是将 (c,a,b,d) 重新排列成 (a,b,c,d) 后所得到的重排矩阵),那么可以实现。

根据图1给出的案例分析,可以清楚看到理想的X变换X-Conv有能力考虑到点的形状,同时又不依赖于点的顺序。在实际情况下,我们发现学习到的X变换远不理想,尤其是在重新排列的等价方面。尽管如此,使用X-Conv构建的PointCNN仍然显著优于直接在点云上应用典型的卷积,并且也可媲美或胜过之前最佳的用于处理点云数据的非卷积神经网络,比如PointNet++ [Qi et al. 2017b]。

图 2:来自规则网格(上)和点云(下)的分层卷积。在规则网格中,卷积算子是被递归式地应用到局部网格块上,这通常会降低网格的空间分辨率(4×4→3×3→2×2),同时还会增加它们的通道数量(图中用点的大小表示)。类似地,在点云中,X-Conv被递归式地用于将来自近邻的信息「投射」或「聚合」成越来越少的代表点(9→5→2),但每一个点都具有更加丰富的信息(同样用点的大小表示)。

PointCNN

卷积算子的分层应用对CNN学习分层表征而言至关重要。PointCNN具有同样的设计,并且将其泛化用在了点云上。在这一节,我们首先介绍PointCNN中的分层卷积,并与图像CNN进行了类比;然后我们会详细解释核心的X-Conv算子;最后我们还会给出用于分类和分割任务的PointCNN架构。

算法 1:X-Conv算子

图 3:将点坐标转换为特征的过程。代表点的近邻点被变换成代表点的局部坐标系(a和b)。然后每个点的局部坐标都被单独提取到特征中,再与相关联的特征结合起来(c)。

图 4:用于分类(a和b)和分割(c)的PointCNN架构,其中N和C分别表示输出代表点的数量和特征维度,K是每个代表点的近邻点的数量,D是X-Conv的扩张率(dilation rate)。

实验

表 1:在ModelNet40 [Wu et al. 2015b] 和ScanNet [Dai et al. 2017] 上的分类准确度(%)比较。

表 2:分割表现比较。在 ShapeNet Parts [Yi et al. 2016] 上比较的是部分平均 IoU(%),在 S3DIS [Armeni et al. 2016] 上比较的是均值 IoU(%),在 ScanNet [Dai et al. 2017] 上比较的是每体素的准确度(%)。

表 3:在Tu-Berlin [Eitz et al. 2012] 和Quick Draw [Ha and Eck 2017] 分类上的准确度(%)比较。

表 5:在MNIST和CIFAR 10上的分类准确度。

图 8:PointCNN model zoo,其中(a)用于ModelNet40和ScanNet分类,(b)用于TU-Berlin素描分类,(c)用于Quick Draw素描分类,(d)用于ScanNet和S3DIS分割,(e)用于ShapeNet Parts分割。

论文:PointCNN

论文地址:https://arxiv.org/abs/1801.07791

摘要:我们为基于点云的特征学习提出了一种简单且通用的框架。CNN成功的关键是要能利用数据中以网格形式密集表示的空间上的局部相关性(比如图像)。但是,点云是不规则和无序的,因此在这些点关联的特征上直接求核的卷积会导致形状信息的丢失,同时还会因顺序不同而不同。为了解决这些问题,我们提出根据输入点学习一种X变换,然后将其用于同时加权与点关联的输入特征和将它们重新排列成潜在隐含的规范顺序,之后再在元素上应用求积和求和运算。我们提出的方法是典型CNN向基于点云的特征学习的泛化,因此我们将其称为PointCNN。实验表明,PointCNN能在多种有挑战性的基准数据集和任务上实现与之前最佳方法媲美或更好的表现。

往期文章推荐

人工智能名人堂第49期 | 斯坦福研究院名人堂成员:Peter E. Ha

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180130B1CEJC00?refer=cp_1026

扫码关注云+社区