• 论文笔记:(ICCV2019)KPConv: Flexible and Deformable Convolution for Point Clouds



    KPConv: Flexible and Deformable Convolution for Point Clouds

        Hugues Thomas     Charles R. Qi     Jean-Emmanuel Deschaud     Beatriz Marcotegui     Franc¸ois Goulette     Leonidas J. Guibas
        Mines ParisTech     Facebook AI Research     Stanford University

    论文地址:https://arxiv.org/abs/1904.08889
    代码:https://github.com/HuguesTHOMAS/KPConv

    摘要

      我们提出了核点卷积(KPConv),一种新的点卷积设计,即在没有任何中间表示的点云上运行。KPConv的卷积权值由核点在欧氏空间被定位,并应用于与核点接近的输入点。使用任意数量核点的能力使KP-Conv比固定网格更灵活。

      此外,这些位置在空间上是连续的,可以通过网络学习。因此,KPConv可以扩展为可变形的卷积,从而使核点学会适应于局部几何。

      由于采用了有规律的子抽样方法(下采样),KPConv对不同的密度也是高效和稳健的。

      无论他们对复杂任务使用可变形的KPConv,还是对简单任务使用刚性KPConv,我们的网络在几个数据集上都比先进的分类和分割方法表现得更好。

      我们还提供消融研究和可视化,以提供对KPConv学到的知识的理解,并验证可变形KPConv的描述能力。

    一、引言

      深度学习的出现以离散卷积为基础,促进了现代计算机视觉的发展。该操作将局部邻域的数据合并到一个2D网格中。由于有了这种规则结构,在现代硬件上可以高效地进行计算,但是如果没有了这种规则结构,卷积运算就没有被正确地定义,其效率与在2D网格上一样。

      随着3D扫描技术的兴起,许多依赖这种不规则数据的应用也随之发展起来。例如,三维点云分割或三维实时定位和映射依赖于非网格结构化数据:点云。点云是三维(或高维)空间中的一组点。在许多应用中,点与相应的特征相结合,比如颜色。在本工作中,我们始终将点云视为两个元素:点P∈RN * 3和特征F∈RN * D。这样的点云是一种稀疏的结构,具有无序的特性,这使得它与网格非常不同。然而,它与网格共享一个共同的属性,这对于卷积的定义至关重要:它是空间局部化的。在网格中,特征通过其在矩阵中的索引进行定位,而在点云中,特征通过其对应的点坐标进行定位。因此,将点视为结构要素,将特征视为真实数据。

      我们提出了处理这些数据的各种方法,这些方法可以分为不同的类别,我们将在相关的工作部分介绍。有几种方法属于基于网格的类别,其原理是将稀疏的三维数据投影到规则结构上,这样更容易定义卷积运算[23,28,33)。其他方法使用多层感知器(MLP)直接处理点云,遵循[47,25]提出的思想。

      最近,有人尝试设计一种直接对点进行操作的卷积[2,44,19,14。13]。这些方法利用点云的空间位置特性,用空间核来定义点卷积。他们的共同想法是卷积应该定义一组在点云中局部应用的可定制的空间滤波器。

    图1所示。KPConv在2D点上说明。具有标量特征(灰色)的输入点通过KPConv进行卷积,KPConv是由一组核点(黑色)定义的,每个点上都有过滤器权值

      本文介绍了一种新的点卷积算子——核点卷积(KPConv)。KPConv也由一组局部3D过滤器组成,但是如相关工作所示,它克服了前面的点卷积限制。KPConv的灵感来自于基于图像的卷积,但是我们使用一组核点来定义应用每个核权重的区域,如图1所示。因此核权重由点来表示,就像输入特征一样,它们的影响区域由一个相关函数来定义。核点的数量没有限制,这使得我们的设计非常灵活。尽管词汇相似,但我们的工作与[31]不同,[31]的灵感来自于点云配准技术,它使用没有任何权重的核点来学习局部几何模式。

      此外,我们提出了一个可变形版本的卷积[7],它包括学习应用于核点的局部移位(见图3)。我们的网络在每个卷积位置产生不同的移位,这意味着它可以根据输入点云的不同区域调整其核的形状。我们的可变形卷积的设计方式与它的对应图像不同。由于数据的性质不同,需要进行正则化来帮助变形的内核拟合点云的几何形状和避免空白。我们使用有效的感受域(ERF)[21]和消融研究比较刚性KPConv和可变形KPConv。

      与[40,2,44,19]相反,我们更喜欢半径邻域而不是k-最近邻(KNN)。如 [13]所示, KNN在非均匀采样条件下不健壮。通过结合半径邻域和输入点云[37]的常规下采样,确保了卷积对不同密度的鲁棒性。与归一化策略[13,14]相比,我们的方法也降低了卷积的计算代价。

      在我们的实验部分中,我们展示了KPConv可以用于构建非常深的分类和分割架构,同时保持快速的训练和推理时间。

      总的来说,刚性的和可变形的KPConv性能都很好,在几个数据集上优于竞争算法。我们发现,严格的KPConv在更简单的任务上实现了更好的性能,如对象分类,或小的分割数据集。可变形的KPConv在更困难的任务中蓬勃发展,比如提供许多对象实例和更大的多样性的大型分割数据集。

      我们还表明,可变形的KPConv对于更少的内核点更健壮,这意味着更强大的描述能力。

      最后,KPConv ERF的定性研究表明,可变形内核改善了网络适应场景对象的几何形状的能力。

    二、相关工作

      在本节中,我们将简要回顾以前分析点云的深度学习方法,特别关注那些更接近于我们定义的点卷积的方法。

    投影网络

      一些方法将点云映射到一个中间网格结构。基于图像的网络通常是多视图的,即使用一组由点云在不同视点上渲染的2D图像[34,4,17]。在场景分割中,这些方法会受到表面遮挡和密度变化的影响。[35]没有选择全局投影视点,而是提出将局部邻域投影到局部切平面上,然后用二维卷积处理它们。然而,这种方法严重依赖切线估计。

      在基于体素的方法中,点被投影到欧几里得空间的三维网格上[23,29,3]。使用稀疏结构如八叉树或哈希映射允许更大的网格和增强的性能[28,9],但这些网络仍然缺乏灵活性,因为它们的内核被限制在使用3^3 = 27或5^3 = 125体素。使用泛面体晶格代替欧几里得网格将核简化为15晶格[33],但这个数字仍然是有约束的,而KPConv允许任意数量的内核点。此外,避免使用中间结构,可以使实例掩码检测器或生成模型等更复杂的架构在未来的工作中更加直观。

    图卷积网络

      图卷积运算符的定义有不同的方法。图上的卷积可以计算为其频谱表示的乘法[8,46],或者它可以聚焦于图所表示的表面[22,5,32,24]。尽管点卷积和最近的图卷积有相似之处[38,42],但后者的滤波器学习的是边缘关系而不是点相对位置。换句话说,图卷积结合了局部曲面patch上的特征,同时不受这些patch在欧几里得空间中的变形影响。相比之下, KPConv根据3D几何形状组合局部特征,从而捕获表面的变形。

    逐点多层感知器网络

      PointNet[25]被认为是点云深度学习的一个里程碑。这个网络在每个点上分别使用一个共享的MLP,然后是一个全局最大池化。共享的MLP作为一组学习的空间编码,输入点云的全局签名被计算为对每个编码的所有点的最大响应。网络的性能是有限的,因为它没有考虑数据中的局部空间关系。在PointNet之后,一些层次结构被开发出来,用MLPs聚合局部邻域信息[26,18,20]。

      如[40,19,13]所示,由于MLP能够近似任何连续函数,所以点卷积的核可以用MLP实现。然而,使用这样的表示会使卷积运算符更加复杂,网络的收敛性也更困难。在我们的例子中,我们定义一个显式卷积核,像图像卷积,其权值是直接学习的,没有中间表示的MLP。我们的设计还提供了一个直接的可变形版本,因为偏移量可以直接应用到内核点。

    点卷积网络

      一些最近的工作也为点定义了显式卷积内核,但KPConv以独特的设计脱颖而出。

      Pointwise CNN[14]用体素容器定位核权值,因此缺乏网格网络那样的灵活性。此外,它们的归一化策略给网络带来了不必要的计算负担,而KPConv子采样策略同时减轻了不同密度和计算量。

      SpiderCNN[44]将其核定义为多项式函数族,对每个邻居应用不同权值的。应用于一个邻居的权重依赖于邻居的距离顺序,这使得过滤器在空间上不一致。相比之下,KPConv权重位于空间,其结果对点顺序不变。

      Flex-convolution[10]使用线性函数来建模它的核,这限制了它的代表性。它还使用了KNN,如上所述这是对密度变化不鲁棒的。

      PCNN[2]设计是最接近KPConv的。它的定义也使用点来携带核权重和一个相关函数。然而,这个设计是不可扩展的,因为它没有使用任何形式的邻域,使得卷积计算在点的数量上是二次的。此外,它使用高斯相关,而KPConv使用一个更简单的线性相关,这有助于梯度反向传播时,学习变形[7]。

      我们在实验部分显示KPConv网络优于所有可比网络。此外,据我们所知,以前的作品中没有一个实验过空间可变形点卷积。

    三、核点卷积

    3.1由点定义的核函数

      与之前的工作一样,KPConv可以用点卷积的一般定义来表述(Eq. 1),灵感来自于图像卷积。为了清晰起见,我们将P∈RN * 3的点和F∈RN * D的对应特征称为xi和fi。F与核g在点x∈R3处的一般点卷积定义为:

      我们站在[13]的立场上,建议采用半径邻域,以确保对不同密度的鲁棒性,因此,Nx={ xi∈P | || xi – x || ≦ r },r∈R为选择的半径。此外,[37]表明,使用半径邻域计算时,手工制作的3D点特征比使用KNN可以更好地表示。我们相信,函数g有一个一致的球形域有助于网络学习有意义的表示法。

    3.2刚性的或可变形的核

      核点的位置对卷积运算至关重要。 特别是刚性核需要被合理安排以提高效率率。正如我们所说,KPConv的优点之一是它的灵活性,我们需要为任何k找到一个规律的配置。

    如何选择内核点的位置:
      我们选择通过解决一个优化问题来放置内核点,通过解决优化问题来放置内核点,其中每个点对彼此施加排斥力。 这些点被约束以吸引力停留在球体中,并且其中之一被限制在中心位置。我们详细说明这一过程,并在补充材料中显示一些规则的细节。

      最终,将周围的点重新调整为平均半径1.5 ,保证每个核点影响区域之间的重叠度小,空间覆盖率好。

    (以上都是刚性KPConv,以下是可变形KPConv)

      有了正确初始化的内核,KPConv的刚性版本是非常有效的,特别是当给定一个足够大的K来覆盖g的球形域时。然而,通过学习核点位置,可以增加它的容量。核函数g对于xk确实是可微的,这意味着它们是可学习的参数。我们可以考虑为每个卷积层学习一个全局的{xk}集合,但它并不会比固定的、有规律的部署带来更多的描写力量。相反,网络对每一个卷积定位x∈R3产生K个平移△(x),像[7]一样,并定义可变形。

      我们将偏移量△k(x)定义为刚性KPConv将Din输入特征映射到3K值的输出,如图所示。在图3中。在训练过程中,网络同时学习产生移位的刚性内核和产生输出特征的可变形内核,但第一种内核的学习率设置为全局网络学习率的0.1倍。
    图3 可变形的KPConv在2D点上说明

      不幸的是,这种对图像的可变形卷积的直接采用并不适合点云。在实践中,内核点最终会被拉离输入点。这些核点被网络丢失了,因为当没有邻居在其影响范围内,它们的移位△k(x)梯度为零。关于这些“丢失的”内核点的更多细节在补充部分中给出。

      在使用Deformable Kernel的时候,需要在损失函数上加上正则项,用来约束kernel point和neighbor point不能离太远、kernel points之间不能太近,否则效果奇差。

      为了解决这一问题,我们提出:

    • “拟合”正则化损失:它惩罚了核点与其最近邻之间的距离。此外,在所有内核点的影响区域重叠时,
    • “排斥”正则化损失:当所有成对的kernel points之间的影响区域重叠时,添加该损失使它们不会一起崩溃。

      总的来说,对于所有的卷积位置x∈R3,正则化损失为:

      有了这个损失,网络就会产生符合输入点云的局部几何形状的移位。我们在补充材料中展示了这种效果。

    3.3核点网络层

      本节说明我们如何有效地将KPConv理论付诸实践。为了了解更多细节,我们使用Tensorflow库发布了代码。

    子抽样以处理不同密度  如引言所述,我们使用子采样策略来控制每一层输入点的密度。为了保证点采样位置的空间一致性,我们倾向于网格子采样。因此,在所有非空网格单元中,选择每一层承载特征位置的支撑点作为原始输入点的重心。

    池化层  为了创建具有多层尺度的架构,我们需要逐步减少点的数量。因为我们已经有了一个网格子采样,所以我们在每个池化层将单元大小增加一倍,以及其他相关参数,逐渐地增加KPConv的接受域。在每个新位置汇集的特性可以通过max-pooling或KPConv获得。我们在我们的架构中使用后者,并将其称为“stride KPConv”,类似于image strided convolution。

    KPConv层  我们的卷积层以点P∈RN * 3为输入,其对应的特征F∈RN * Din,邻域索引矩阵n∈[1, N]N '×nmax。N '是计算邻域的位置数,可以不同于N(在“strided”KPConv的情况下)。邻域矩阵被迫具有最大邻域nmax的大小。 由于大多数邻域包含少于nmax个邻域,因此矩阵n包含未使用的元素。 我们称它们为shadow neighbors,在卷积计算中将其忽略。

    3.4核点网络架构

      结合类比与成功的图像网络和经验研究,我们设计了两种用于分类和分割任务的网络架构。在补充材料中提供了详细描述这两个体系结构的图表。

      KP-CNN 是一个5层分类卷积网络。每一层包含两个卷积块,除了第一层外,第一个被strided。我们的卷积块设计得像bottleneck ResNet blocks [12],用KPConv替换图像卷积、批处理标准化和leaky ReLu activation。在最后一层之后,特征通过全局平均池进行聚合,并由完全连接的层和softmax层进行处理,就像在图像CNN中一样。对于可变形KPConv的结果,我们仅在最后5个KPConv块中使用可变形内核(请参阅补充材料中的体系结构详细信息)。

      KP-FCNN 是一个用于分割的全卷积网络。编码器部分与KP-CNN相同,解码器部分使用nearest upsampling 来得到最终的逐点特征。Skip links用于在编码器和解码器的中间层之间传递特性。将这些特征连接到上采样的特征上,进行一元卷积处理,相当于在图像上进行1×1的卷积,或者在PointNet上进行一个共享的MLP。可以采用与the strided KPConv相同的方式,用KPConv代替最近的上采样操作,但是不会导致性能的显着提高。

    四、实验

    4.1三维形状分类和分割

    数据  首先,我们在两个公共模型数据集上评估我们的网络。我们使用ModelNet40[43]进行分类,使用ShapenetPart[45]进行部件分割。ModelNet40包含来自40个类别的12311个网格化CAD模型。ShapenetPart是一个收集16,681点云从16个类别,每个类别有2-6个部件标签。为了进行基准测试,我们使用[26]提供的数据。在这两种情况下,我们都遵循标准的训练/测试分割,重新缩放物体以将其放入一个单位球体中(并在接下来的实验中将单位视为米)。我们忽略了法线,因为它们只能用于人工数据。

    分类任务  我们设置第一个子采样网格大小为dl0 = 2cm。我们没有添加任何功能作为输入;每个输入点被赋予一个等于1的常量特征,而不是可以认为为0的空白空间。这个常数特征编码了输入点的几何形状。与[2]一样,我们的增强过程包括缩放、翻转和扰动点。在这个设置中,Nvidia Titan Xp每秒可处理2.9批16云。由于我们的子采样策略,输入点云并不都有相同数量的点,这不是一个问题,因为我们的网络接受可变的输入点云大小。平均而言,一个ModelNet40点云在我们的框架中包含6800个点。其他训练参数在补充材料中有详细说明,以及架构细节。我们还包括了刚性的和可变形的KPConv的参数数量和训练/推理速度。

      如表1所示,我们的网络优于其他仅使用点的先进方法(我们不考虑使用法线作为额外输入的方法)。我们还注意到,刚性的KPConv性能要稍微好一些。我们怀疑这可以用任务的简单性来解释。如果可变形内核增加了更多的描述能力,它们还会增加整个网络的复杂性,从而干扰收敛或导致对形状分类这样的简单任务的过拟合。

    分割任务  对于这个任务,我们使用与分类任务相同的参数的KP-FCNN架构,将位置(x, y, z)作为附加特性添加到常量1中,并使用相同的增强过程。。数据集点云更小(平均2300点),每秒可以处理4.1个批处理的16个形状。表1显示了实例的平均值和类的平均值mIoU。我们在补充材料中详细说明了每类 mIoU。KP-FCNN优于所有其他算法,包括那些使用图像或法线等额外输入的算法。形状分割是一项比形状分类更困难的任务,我们看到KPConv在可变形内核上有更好的性能。

    4.2 3D场景分割

    数据  我们的第二个实验展示了我们的分割架构如何推广到真实的室内和室外数据。为此,我们选择在4个不同性质的数据集上测试我们的网络。

    • Scannet[6] 用于室内杂乱的场景,包含1,513个小型训练场景和100个用于在线基准测试的测试场景,并带有20个语义类。

    • S3DIS[1]用于室内大空间,覆盖了来自三个不同建筑的6个大型室内区域,总共有13个类标注了2.73亿点。与[36]一样,我们提倡使用Area-5作为测试场景,以更好地度量我们方法的泛化能力。

    • Semantic3D[11]用于室外固定扫描,是一个在线基准,它包含了不同户外场景的几个固定激光雷达扫描。在这个数据集中,超过40亿个点用8个类进行了注释,但是它们大多覆盖了地面、建筑或植被,并且比其他数据集中的对象实例要少。我们倾向于reduced-8的挑战,因为它减少了靠近扫描仪的物体的偏斜。

    • Paris-Lille-3D[30]用于室外移动扫描,包含了4个不同城市超过2公里的街道,也是一个在线基准。该数据集的1.6亿个点被注释为10个语义类。

      用于真实场景分割的流程 这些数据集中的3D场景太大,无法分割成一个整体。我们的采用KP-FCNN结构对球体中包含的小子云进行分割。训练时,在场景中随机选取球。在测试时,我们有规律的在点云中选取球,但保证每个点都被不同的球点进行多次测试。就像在模型数据集上的投票方案一样,对每个点的预测概率取平均值。当数据集着色时,我们使用三种颜色通道作为特征。我们仍然保持不变的1特征,以确保黑/暗点不被忽略。对于卷积,一个所有特征都为0的点等价于空白空间。输入球半径选择为50×dl0(根据Modelnet40实验)。

    结果  因为室外物体比室内物体大,所以我们在Semantic3D和Paris-Lille-上使用dl0 = 6cm,在Scannet和S3DIS上,3D, dl0 = 4cm。表2所示,我们的体系结构在Scannet上排名第二,在其他数据集上优于所有其他的分割体系结构。与其他点卷积结构相比[2,19,40], KPConv性能在Scannet上超过先前的分数19 mIoU,在S3DIS上超过9 mIoU。SubSparseCNN在Scannet上的得分在他们最初的论文[9]中没有报道,所以在不知道他们的实验设置的情况下很难进行比较。我们可以注意到,在相同的ShapeNetPart分割实验设置中,KPConv比SubSparseCNN高出近2 mIoU。

      在这4个数据集中,KPConv deformable kernel在Paris-Lille-3D和S3DIS上改进了结果,刚性版本在Scannet和Semantic3D上效果更好。如果我们按照我们的假设,我们可以解释低分的原因是该数据集缺乏多样性。事实上,尽管它包含了15个场景和40亿个点,但它包含了大部分的地面、建筑和植被点,以及一些真实的物体,比如汽车和行人。尽管Scannet并非如此,它包含了1500多个不同物体和形状的场景,但论文的验证研究并未反映在该基准测试的得分上。同时发现,在几个不同的验证集上,可变形的KPConv优于其刚性的对应项(请参见第5.3节)。

      综上所述,这些结果表明,可变形KPConv的描述能力对大型和多样化数据集的网络是有用的。我们相信KPConv可以在更大的数据集上效果会更好,因为它的内核结合了强大的描述能力(与其他更简单的表示相比,如[10]的线性内核),以及强大的可学习性(MLP卷积的权值,如[19,40],学习起来更复杂)。图4展示了在Semantic3D和S3DIS上分割的场景。在补充材料中提供了更多可视化结果。

    4.3 消融实验

      进行消融研究来支持我们的观点,即可变形的KPConv比刚性KPConv具有更强的描述能力。这种想法是为了揭示可变形内核的真正潜力。我们使用Scannet dataset(与之前相同的参数)并使用官方验证集,因为测试集不能用于此类评估。如图5所示,当限制到4个内核点时,可变形的KPConv只会丢失1.5%的mIoU。在相同的配置中,刚性KPConv丢失3.5% mIoU。

      如4.2节所述,我们还可以看到,可变形KPConv比具有15个内核点的刚性KPConv性能更好。尽管在测试集上不是这样,但我们尝试了不同的验证集,证实了可变形KPConv的优越性能。这并不奇怪,因为我们在S3DIS上得到了同样的结果。可变形KPConv似乎在室内数据集上效果更好,室内数据集提供了比室外数据集更多的多样性。要理解原因,我们需要超越数字,看看KPConv的两个版本有效地学习了什么。

    4.4 学习到的特征和有效感受域

      为了更深入地理解KPConv,我们提供了学习机制的两个见解。

    学习到的特征  我们的第一个想法是将我们的网络学习到的特征可视化。在这个实验中,我们用刚性KPConv在ModelNet40训练了KP-CNN。我们围绕垂直轴增加了随机旋转,以增加输入形状的多样性。然后,我们通过根据这些特征的激活程度给这些点着色来可视化每个学习到的特征。在图6中,我们选择了在第一层和第三层最大限度地激活不同特性的输入点云。为了更干净的展示,我们从下采样点层投影激活到原始输入点。我们观察到,在它的第一层,网络能够学习低层次的特征,如垂直/水平平面(a/b)、线性结构(c)或角d。在后面几层中,该网络探测到更复杂的形状,如小支撑(e)、球(f)、圆锥(g)或楼梯(h)。但是,很难看出刚性KPConv和可变形KPConv之间的区别。这个工具对于理解KPConv通常可以学习什么非常有用,但是我们需要另一个工具来比较两个版本。

    有效的感受野  为了理解刚性和变形KPConv学习到的表示的区别,我们可以计算出它在不同位置的有效感受野(ERF)[21]。ERF度量每个输入点对特定位置的kpconv层结果的影响。它被计算为KPConv响应在这个特定位置的梯度相对于输入点特征。正如我们在图7中看到的,ERF根据它所居中的对象而变化。我们看到,刚性的KPConv ERF对每种类型的对象都有一个相对一致的范围,而可变形的KPConv ERF似乎适应对象大小。的确,它覆盖了整张床,而且更多地集中在椅子上,而不是周围的地面上。当以平面为中心时,似乎也将忽略其中的大部分,并到达场景中的更多细节。这种自适应行为表明,可变形KPConv提高了网络适应场景对象几何形状的能力,并解释了在室内数据集上更好的性能。

    五、总结

      在这项工作中,我们提出了KPConv,一个在点云上运行的卷积。KPConv以半径邻域为输入,并利用一小组核点在空间上定位的权重对其进行处理。我们定义了一个可变形的卷积算子,它可以学习局部移位,从而有效地使卷积核变形以使其适合点云几何形状。根据数据集的多样性,或选择的网络配置,可变形和刚性KPConv都是有价值的,我们的网络为几乎每个测试数据集带来了新的最先进的性能。我们发布了源代码,希望能够帮助进一步研究点云卷积架构。除了提出的分类和分割网络,KPConv还可以用于CNNs处理的任何其他应用。我们相信,可变形卷积可以在更大的数据集或具有挑战性的任务中蓬勃发展,如对象检测、激光雷达流计算或点云补全。

    参考:https://zhuanlan.zhihu.com/p/83234923
    https://blog.csdn.net/Dujing2019/article/details/104178936
    https://blog.csdn.net/Dujing2019/article/details/104273287
    https://blog.csdn.net/weixin_39373480/article/details/100118359

  • 相关阅读:
    JSP详细解析
    JSP详细解析
    JAVA设计模式之单例模式
    JAVA设计模式之单例模式
    SQLite – GLOB子句
    HEXO进阶打赏
    python常用模块
    猫头鹰的深夜翻译:核心JAVA并发一
    标准规范
    题解 P1951 【收费站_NOI导刊2009提高(2)】
  • 原文地址:https://www.cnblogs.com/wangchangshuo/p/14076358.html
Copyright © 2020-2023  润新知