学界 | 山东大学提出 PointCNN:让 CNN 更好地处理不规则和无序的点云数据

原标题:学界|山东大学提出pointcnn:让cnn更好地处理不规则和无序的点云数据
选自arxiv
作者:yangyanli, ruibu, mingchaosun, baoquanchen
机器之心编译
参与:panda
卷积神经网络的成功自不必多言,但cnn在点云上的应用还存在诸多短板。山东大学近日公布的一项研究提出的pointcnn可以让cnn在点云数据的处理上取得更好的表现。机器之心对该研究论文进行了简单的编译介绍。
空间上的局部相关性(spatially-localcorrelation)是各种类型的数据都具有的一种性质,并且与数据的表示方法无关。对于可以表示在图像等规则域中的数据,卷积算子已经证明在探索这种相关性上十分有效,并且也是cnn在多种任务上取得成功的关键[lecunetal.2015]。
对于本身维度就比环境空间少的数据(比如3d空间中的面或2d空间中的线)而言,如果将这些数据表示为环境空间中的点云(pointcloud)而非整个空间的一个密集网格,那么效果还会更好。不仅如此,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的情况)。基于此,如果直接应用卷积算子,那么这三种情况的输出特征可以按如下方式计算:
注意,在所有情况下都成立,在大多数情况下都成立。现在,可以清楚看到:直接进行卷积会导致形状信息丢失(即),也会因为顺序而不同(即)。
在这篇论文中,我们提出使用多层感知器[rumelhartetal.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++[qietal.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的扩张率(dilationrate)。
实验
表1:在modelnet40[wuetal.2015b]和scannet[daietal.2017]上的分类准确度(%)比较。
表2:分割表现比较。在shapenetparts[yietal.2016]上比较的是部分平均iou(%),在s3dis[armenietal.2016]上比较的是均值iou(%),在scannet[daietal.2017]上比较的是每体素的准确度(%)。
表3:在tu-berlin[eitzetal.2012]和quickdraw[haandeck2017]分类上的准确度(%)比较。
表5:在mnist和cifar10上的分类准确度。
图8:pointcnnmodelzoo,其中(a)用于modelnet40和scannet分类,(b)用于tu-berlin素描分类,(c)用于quickdraw素描分类,(d)用于scannet和s3dis分割,(e)用于shapenetparts分割。
论文:pointcnn
论文地址:
投稿或寻求报道:editor@jiqizhixin.com
广告&商务合作:bd@jiqizhixin.com