专栏首页机器之心学界 | 山东大学提出 PointCNN:让 CNN 更好地处理不规则和无序的点云数据

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

选自arXiv

作者:Yangyan Li, Rui Bu, Mingchao Sun, Baoquan Chen

机器之心编译

参与:Panda

卷积神经网络的成功自不必多言,但 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 能在多种有挑战性的基准数据集和任务上实现与之前最佳方法媲美或更好的表现。

本文为机器之心编译,转载请联系本公众号获得授权。

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 改进卷积神经网络,你需要这14种设计模式

    选自Topbots 作者:Mariya Yao 机器之心编译 参与:马亚雄、吴攀 深度学习领域近来已经发展出大量的新架构,而如何选择使用这些新架构提升卷积神...

    机器之心
  • 解读 | 如何用进化方法优化大规模图像分类神经网络?

    机器之心原创 作者:Angulia Chao 参与:Joni、侯韵楚、高振 让机器具备生物一样的进化能力一直是计算机科学的一个热门研究领域,今年三月份,谷歌的...

    机器之心
  • 现场 | 上海纽约大学青年学者论坛:五大单元探究AI前沿

    机器之心
  • 从Vulbhub-djinn靶机学习命令注入和Python input() 漏洞

    靶机描述:Level: Beginner-Intermediate flags: user.txt and root.txt Description: The ...

    7089bAt@PowerLi
  • 如何在 Windows 下像 Mac 一样优雅开发

    起因:之前一直用 Mac 开发,换了家公司,只许用 Windows 下开发,说实话,一开始我是拒绝的,可自从看到了这几个工具以后...... 下文大标题说明:(...

    非著名程序员
  • H5技术正在崛起 2016拥有无限可能

    早在2010年时,乔布斯就曾提出,“没有人愿意使用Flash,全球已经开始步入H5时代。”下面是7k7k小编带来的最新消息。 2014年, Htm...

    李海彬
  • Unity AI 感知侦探

    视觉感知一般会有一个视野范围,这个范围与角色的朝向有关,只有在视觉范围内角色才有可能感知得到,这个范围与一个扇形接近,可以直接用半径和角度来控制。

    汐夜koshio
  • 从Vulbhub-djinn靶机学习命令注入和Python input() 漏洞

    靶机描述:Level: Beginner-Intermediate flags: user.txt and root.txt Description: The ...

    用户5878089
  • 亲,这位虚拟女友,请查收!

    VRPinea
  • 「基础编程学习」 「PHP7数组详解」:第1章 (8)数组和对象

    举一个例子,比如说一个班级,有一个班级号,班级名,描述,房间号,教导员,班级人数。可以存到一个数组内,这样写:

    程序员小助手

扫码关注云+社区

领取腾讯云代金券