CVPR2020:点云分析中三维图形卷积网络中可变形核的学习

Convolution in the Cloud: Learning Deformable Kernels in 3D Graph Convolution Networks for Point Cloud Analysis

论文地址:

https://openaccess.thecvf.com/content_CVPR_2020/papers/Lin_Convolution_in_the_Cloud_Learning_Deformable_Kernels_in_3D_Graph_CVPR_2020_paper.pdf

代码地址Our code is publicly available at https://github.com/j1a0m0e4sNTU/3dgcn

摘要

点云是三维视觉应用中常用的几何表示形式之一。然而,如果没有像二维图像这样的规则结构,在这些无序数据点上处理和汇总信息是非常困难的。尽管已有的许多工作试图分析点云并获得有希望的性能,但是当数据变化(如移动和尺度变化)出现时,它们的性能会显著下降。本文提出了一种三维图形卷积网络(3D-GCN),用于跨尺度从点云中提取局部三维特征,并引入了平移和尺度不变性。我们的3D-GCN的新颖之处在于使用图最大池机制定义可学习内核。我们证明3D-GCN可以应用于3D分类和分割任务,消融研究和可视化验证了3D-GCN的设计。

1. 介绍

三维视觉一直是一个活跃的研究课题,与增强现实、无人机和自动驾驶车辆等应用密切相关[20,15]。现有的三维数据表示包括使用体素、网格或点云特征。体素[3,33]将三维物体描述为体素网格,但通常存在分辨率不高和存储成本高的问题。网格在动画中很常见,而这些表示与三维传感器输出没有直接关联[16,19]。最后,三维点云以描述三维物体的形状信息为中心,可以很容易地被三维传感器获取,但由此产生的三维点的无序集合可能会限制后续的分析任务。近年来,随着深度学习技术,特别是卷积神经网络(CNN)的显著发展,人们在各种计算机视觉任务中观察到了很有前途的性能[6,11]。然而,图像数据通常是以网格结构(例如,像素或单元过刻度)表示的,这使得卷积操作可行。对于不规则和非结构化数据(如三维点云),不可能在这些数据上学习和部署具有固定大小或模式的内核。为了处理这样一个非结构化/无序的点集,PointNet[21]应用多个完全连接的层对3D点云进行编码,然后进行全局max池运算,并显示了令人印象深刻的3D数据识别和分割结果。由于部署了全局池操作,可能无法正确观察到三维点云的局部结构化信息。此外,它并不像我们稍后讨论和验证的那样,被设计成对全局变换(如移位或缩放)具有不变性。为了更好地描述三维数据的局部信息,一些研究工作利用网格数据及其相应的图形结构(即顶点和相关边)来提取所需的信息。例如,[27,4]选择传播和聚合相邻顶点的特征以获得最终表示,而其他[16,2]选择具有固定模式的精细内核以观察局部信息。

在上述工作的推动下,[26,14,1,30,32]尝试构建三维点云的类图结构。由于这种方法在表示图时考虑了全局坐标,因此移位和缩放效应会降低模型的性能。本文提出了一种新的三维图形卷积网络(3D-GCN)深度学习模型,用于处理和学习三维点云的结构信息。在二维CNN的驱动下,我们的目标是得到可变形的三维核,其形状和权重在训练阶段是可学习的。此外,与标准CNN中的最大池操作类似,我们在3D-GCN中执行唯一的图最大池操作,以总结不同尺度下处理的特征。因此,我们的3D-GCN能够观察和提取任意形状和大小的无序3D点云的结构信息。如后文所述,我们的3D-GCN对3D点云移动和缩放变化保持不变,这是真实3D视觉应用的关键特性。现将主要贡献总结如下:

•我们提出了一种用于处理三维点云数据的三维图形卷积网络(3DGCN),该网络具有平移和尺度不变的特性,具有很好的分类/分割性能。

•我们的3D-GCN中每个核的形状和权重在训练期间是可学习的,这显示了从无序的3D点云描述局部结构信息的能力。

•3DGCN中还引入了一种新的图形最大池,允许在不同尺度上提取和总结点云特征,以提高性能。

2.相关工作

多视图和体素化方法。由于标准卷积神经网络不能直接应用于处理非结构化数据,如三维点云,现有的工作通常选择将点云转换为适当的表示形式,以便进一步处理。例如,[33,3,18,17,25]将点特征注册到体素网格中,或者直接使用体素化的3D形状作为模型输入,这样就可以对这些输入数据执行标准的3D CNN。尽管已经提出了基于八叉树的方法,如[24,31]来重新确定预测输出的分辨率,但是基于体素的方法通常被认为在三维体素表示中存在分辨率不足和巨大的内存消耗。或者,许多工作[28、9、22、29、1]选择在多个视图中将3D形状投影到2D平面上,然后选择2D CNN进行特征提取。虽然报告了令人印象深刻的结果,但它不容易扩展到三维数据分割或重建[11,6]。

基于点云的方法

为了处理三维点云数据,PointNet[21]有多个共享的完全连接层来处理无序的三维点输入,然后是通道最大值池来提取全局特征来表示三维点云数据。虽然PointNet能够处理三维点云数据,而不受无序特性的限制,但它本质上学习了输入对象的关键点表示,以获得最终特征。局部几何信息不直接编码,该模型对输入平移和尺度变化敏感,这一点我们稍后将进行验证。为了缓解上述问题,研究人员建议将三维点排序为有序列表,其中相邻点在三维空间中具有较小的欧氏距离。例如,[8]将所有的点按不同的维度排序,然后使用递归神经网络(RNN)从得到的序列中提取特征。[10,5]根据三维点的坐标,通过kd树将其转换成一维列表,然后用一维CNNs提取相应的特征。然而,将3D点集排序为1D列表并非易事;而且,局部几何信息可能不容易保存在这样的有序列表中。

基于几何的方法

与上述以整个三维数据为输入的工作不同,另一个方法分支选择从三维点的子集中学习局部几何信息[23、32、26、14、7、13、34、30]。通过将三维点划分为更小的组,这种方法从每个局部组中提取特征以进行表示。例如,PointNet++[23]将三维点云划分为几个球区域,并对每个球应用[21]进行局部特征提取。DGCNN[32]通过识别特征空间中3D点的最近邻来构造局部图,然后执行EdgeConv操作进行特征提取。Shen等人 [26]扩展上述思想,并在特征聚合期间额外学习几何信息。RS-CNN[14]应用邻域点特征的加权和,根据两个点之间的几何关系,用MLPs学习每个权值。这些工作试图在三维点云的局部区域内提取几何信息。然而,现有的方法通常使用点或距离向量的精确坐标作为输入特征,因此模型性能会受到移动和缩放效果的影响,这对于场景分割和多目标检测等实际应用是不可取的。本文提出了一种新的具有可学习三维图核和图最大池机制的三维几何特征网络,该网络具有跨尺度的有效几何特征,同时具有尺度不变性和平移不变性。

3. 3D Graph Convolution Networks

我们提出了一种新的三维图形卷积网络(3DGCN)来从点云数据中提取特征,并应用于视觉分类和语义分割。为了完整起见,我们将本文中使用的符号定义如下。点云实例被视为一个集合,它包含位于感兴趣对象表面上的N个点P={pn | N=1,2,…,N}。

对于分类任务,我们的3D-GCN采用点云输入,并生成每个感兴趣类别的预测输出分数c。对于语义分割,我们需要预测三维对象中每个点的区域/场景标签。因此,输出大小为N×c,这也表明3D-GCN在语义分割任务中执行逐点分类。

在标准的二维CNN模型中,学习3D-GCN中的核,核由网格中的权重参数组成,在图像块中共享相同的模式(如图1a所示)。然而,对于三维点云数据,数据点被视为无序集,并且无法观察到特定的空间三维模式。

在2dcnn中,核中的每个元素都是描述感兴趣空间模式的学习权重。在我们的3D-GCN中,我们定义了每个核点k的权重向量w(k)∈RD,因此,使用相应权重的特征f(p)的加权和将实现卷积运算。由于支撑的数量和方向可能与三维点的接收域不同,我们需要定义方向向量ks-kC=ks,s=1,2,…,s来描述学习核的模式。如图2所示,除了kC=(0,0,0),3D-GCN中的内核现在定义为{w(kC),(ks,w(ks))| s=1,2,…,s},其中每个元素都是通过训练学习的。

相似函数简单地计算了dm、n和ks之间的余弦相似性,而不考虑它们的长度。因此,我们的3D-GCN可以共同观察到尺度不变性。图3说明了3D-GCN中的3D图形卷积操作。

如图4所示,该汇集层使我们能够学习多尺度三维点云特征,并使学习和计算更加高效,这是三维深度学习模型中的关键因素。

通过三维图形核学习局部接收域内的方向信息,结合池机制,我们的3D-GCN具有很好的平移和尺度不变性。尽管像[14、21、23、26、30]这样的现有工作报告了有希望的性能,但它们通常考虑全局坐标或要求点云规范化来缓解这种数据方差,这将限制它们的不变性属性(参见图5中的示例)。我们将比较彻底的实验,以确认我们的3D-GCN的稳健性时,上述变种提出。

用于语义分割的3D-GCN的体系结构如图6b所示。

4.实验测试

网络配置

我们用于分类的3D-GCN模型结构如图6a所示。特征提取部分由5个3D图形卷积层组成,核数(32,64,128,256,1024)从低层到高层。我们为内核设置支持号S=1,为接收字段设置邻居号M=25。

结果

表1列出了我们的3D-GCN分类结果,其中我们还将我们的结果与最近的一些方法进行了比较,包括PointNet[21]、PointNet++[23]、DGCNN[32]和KPConv[30]。从该表中,我们可以看出,当试验数据没有任何位移或比例变化时,我们的3D-GCN通常与几种最新方法EL具有可比性或性能良好。

为了进一步评估模型的不变性,我们使用1024个点的三维点云数据与上述模型进行了比较,这些点云数据被规范化为一个零均值的单位球体,没有数据增加。我们在三种不同的情况下测试它们:坐标移动、形状缩放和形状旋转。结果分别如图7a、7b和7c所示。从这些图中的结果可以看出,由于从全局坐标中提取特征,随着坐标的移动,PointNet和DGCNN的性能显著下降。当尺度变量出现时,只有我们的模型能够以令人满意的性能进行识别。对于形状旋转,我们的3D-GCN显示出更好的不变性。因此,上述实验证实了我们的3D-GCN的有效性和鲁棒性。

我们使用平均交并(mIoU)来评估分割性能,mIoU是该对象类别中每个部分类型的平均IoU。请注意,每个类别的mIoU是通过平均所有形状实例的mIoU来计算的。更具体地说,类mIoU是所有16个类别中mIoU的平均值,而实例mIoU是所有实例中mIoU的平均值。局部分割结果见表2。请注意,在不使用全局坐标的情况下,我们的3D-GCN取得了与最近的方法相当或更好的结果。此外,我们通过可视化对象在不同变换下的分割结果来演示3D-GCN的健壮性,如图8所示。我们将每个对象的中心/坐标移动100,并将对象大小放大10倍,图8将我们的分割性能与其他对象进行了比较。我们发现在这两种情况下,KPConv[30]和PointNet++[23]未能正确分割相应的部分。另一方面,我们的3D-GCN显示出非常有希望的不变性能力,而不受位移和尺度变化的影响。

为了进一步评估模型的不变性,我们使用1024个点的三维点云数据与上述模型进行了比较,这些点云数据被规范化为一个零均值的单位球体,没有数据增加。我们在三种不同的情况下测试它们:坐标移动、形状缩放和形状旋转。结果分别如图7a、7b和7c所示。从这些图中的结果可以看出,由于从全局坐标中提取特征,随着坐标的移动,PointNet和DGCNN的性能显著下降。当尺度变量出现时,只有我们的模型能够以令人满意的性能进行识别。对于形状旋转,我们的3D-GCN显示出更好的不变性。因此,上述实验证实了我们的3D-GCN的有效性和鲁棒性。

结果精度见表4第一列。接下来,我们考虑并分配沿每个轴的3个单位向量(例如,沿x轴的(1,0,0))作为3个方向向量ks。由于这些向量是不可学习的,表4第二列所示的结果也不令人满意。最后,如表的最后一列所示,我们验证是否需要使用我们的可学习知识。注意,方向信息对于提取几何信息是很重要的,可学习的ks使得核可以变形并确定感兴趣的对象,这就是为什么可以提高识别性能的原因。

在图9中,我们将在3D-GCN的每一层上具有较大响应值的对象的点可视化。从低层到高层,我们可以看到响应从点到部分层发生了变化,这证明了我们在处理和汇总跨尺度的三维信息方面的能力,这相当于在描述图像数据时使用2D CNN。

另一方面,我们比较了最近三维点云模型的参数数量,并将比较结果列在表5中。从这个表中,我们可以看到我们的模型实现了与最新模型相当的识别性能,而我们的模型需要的参数最少。这证明了我们提出的3D-GCN的有效性和有效性。

CVPR2020:点云分析中三维图形卷积网络中可变形核的学习的更多相关文章

  1. CVPR2020论文解读:手绘草图卷积网络语义分割

    CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...

  2. 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv

    搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里. 先来规范表达 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核 ...

  3. 卷积网络中的通道(Channel)和特征图

    转载自:https://www.jianshu.com/p/bf8749e15566 今天介绍卷积网络中一个很重要的概念,通道(Channel),也有叫特征图(feature map)的. 首先,之前 ...

  4. OPenGL中三维图形的矩阵变换

    对于二维的图形开发,拿简单的图片显示来说,我们主要的目的:就是在一块显示buffer中,不停的把每个像素进行着色,然后就可以绘制出来了.为了速度,很多其他的加速方法,但原理基本上就是这样了. 很直观, ...

  5. 图像处理中任意核卷积(matlab中conv2函数)的快速实现。

    卷积其实是图像处理中最基本的操作,我们常见的一些算法比如:均值模糊.高斯模糊.锐化.Sobel.拉普拉斯.prewitt边缘检测等等一些和领域相关的算法,都可以通过卷积算法实现.只不过由于这些算法的卷 ...

  6. CVPR2020:点云弱监督三维语义分割的多路径区域挖掘

    CVPR2020:点云弱监督三维语义分割的多路径区域挖掘 Multi-Path Region Mining for Weakly Supervised 3D Semantic Segmentation ...

  7. 【35】单层卷积网络(simple convolution)

    今天我们要讲的是如何构建卷积神经网络的卷积层,下面来看个例子.   上节课,我们已经讲了如何通过两个过滤器卷积处理一个三维图像,并输出两个不同的4×4矩阵.假设使用第一个过滤器进行卷积,得到第一个4× ...

  8. TCN时间卷积网络——解决LSTM的并发问题

    TCN是指时间卷积网络,一种新型的可以用来解决时间序列预测的算法.在这一两年中已有多篇论文提出,但是普遍认为下篇论文是TCN的开端. 论文名称: An Empirical Evaluation of ...

  9. 全卷积网络FCN

    全卷积网络FCN fcn是深度学习用于图像分割的鼻祖.后续的很多网络结构都是在此基础上演进而来. 图像分割即像素级别的分类. 语义分割的基本框架: 前端fcn(以及在此基础上的segnet,decon ...

随机推荐

  1. 【SpringBoot】SpringBoot集成jasypt数据库密码加密

    一.为什么要使用jasypt库? 目前springboot单体应用项目中,甚至没有使用外部配置中心的多服务的微服务架构的项目,开发/测试/生产环境中的密码往往是明文配置在yml或properties文 ...

  2. Python中Selenium模块的使用

    目录 Selenium的介绍.配置和调用 Selenium的配置 Selenium的调用 Selenium的使用 定位 定位元素的使用 定位下拉标签元素 在iframe框架之间切换 上传文件 Webd ...

  3. 接口测试的N中玩法

    在我看来接口测试相对其他类型的测试是比较简单的.对于最常见的HTTP接口,只需要知道接口的 URL.方法.参数类型.返回值 ... 就可以对接口进行测试了. apifox 如果你是入门级选手,那么ap ...

  4. XCTF-ics-05

    ics-05 题目描述 其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统 解题步骤 用dirsearch和御剑扫了一下,只有index.php,尝试了一边,也只有index.php,也就是设备 ...

  5. thinkphp 连接多个数据库(tp5.1为例)

    1.config目录下添加数据库配置,内容跟原数据库配置一样就可以(数据库名改成连接的第二个数据库名) 2.连接部分代码: $db = Db::connect(config('database2.') ...

  6. JDK库rt包中常用包说明

    日常开发中的api都在rt包中,具体路径为:/jdk1.8.0_162/jre/lib中,注意是在jre中. 每个包中大致包含以下几个部分: 接口 类 枚举 异常 错误 注解 J2EE开发中常用的包 ...

  7. Vue.js源码解析-从scripts脚本看vue构建

    目录 1. scripts 脚本构建 1.1 dev 开发环境构建过程 1.1.1 配置文件代码 1.1.2 如何进行代码调试? 1.2 build 生产环境构建过程 1.2.1 scripts/bu ...

  8. X264码率控制总结1——ABR,CQP,CRF

    1.  X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF.这三种方式的优先级是ABR > CQP > CRF. if ( bitrate ) rc_me ...

  9. OCR横向评测 -- 软工案例分析

    目录 第一部分 调研&评测 使用感受 1. 使用门槛 2. 界面设计 3. 数据标注 4. 模型训练 5. 模型预测 6. 体验评价与改进建议 好的方面: 可能需要改进的方面: 7. BUG反 ...

  10. ACM基础板子

    新生赛以后就正式成为一名acmer啦 ~虽然没有打过比赛呜呜呜 要好好学算法,拿一个牌牌嘛~ 这里就记录算法学习情况,也怕自己偷懒,学一个就记录,看看长时间拖更就是在摸鱼,摸鱼和鸽子都是本质 ,加油! ...