APP下载

基于卦限卷积神经网络的3D点云分析

2022-01-13刘青山

自动化学报 2021年12期
关键词:邻点语义卷积

许 翔 帅 惠 刘青山 ,

随着自动驾驶和机器人应用技术的兴起,3D点云数据分析引起了广泛关注.近年来,由于基于深度学习的神经网络在图像分类[1-2]、目标检测[3-4]和图像分割[5-6]等任务中取得了很大的成功,基于深度学习的点云数据分析也成为了研究的热点[7].现有的基于深度学习的点云数据分析方法大体可以分为以下两类:

一类是基于无序点云规则化的深度学习方法,这类方法先将3D 点云转换为规则的体素结构[8-9]或多视图图像[10-11],然后使用卷积神经网络 (Convolutional neural network,CNN)方法来学习特征表示.由于体素化过程存在量化误差,多视图投影则压缩了数据维度,这些都会不同程度上导致3D点云中几何信息的丢失.另一类方法是直接基于点云的深度学习方法.这类方法又可以分为基于多层感知机(Multi-layer perceptron,MLP)的方法、基于卷积的方法和基于图的方法.其中基于多层感知机的方法[12-14]的核心思想是通过参数共享的MLP独立地提取每个点的特征,然后通过一个对称函数聚合得到全局特征,这类方法往往不能充分考虑到3D 点之间的关系.基于卷积的方法[15-17]的核心思想是根据邻域点之间的空间位置关系去学习点之间的权重参数,并根据学习到的权重参数自适应地聚合局部特征,这类方法已经取得了极大的成功.基于图的方法[18-20]在近年来也受到了广泛的关注,它们将每个点都作为图的顶点,通过学习顶点之间边的权重来更新顶点的特征,这类方法通常在构图的过程中会产生相当大的计算量.

在上述方法中,基于MLP 的方法是最直接简单的方法.PointNet[12]是这类方法中的开创性工作,其核心思想是通过参数共享的多层感知机独立地将每个点的坐标信息映射至高维特征空间,再通过一个对称函数聚合最终的高维特征以获得全局表示,从而解决了点云的无序性问题;此外,PointNet 还使用T-Net 网络[12]学习变换矩阵对点云进行旋转标定,从而保证点云的旋转不变性;在分割任务中,PointNet 将全局特征与每个点的局部特征级联,通过多层MLP 提取每个点的语义特征,实现对每个点的分类.虽然该方法简单有效,但是由于其是对每个点进行独立地处理,因此该网络并没有有效提取点云的局部特征.对此,PointNet++[13]提出了一种层次化的网络结构,通过在每一层级递归使用采样、分组和PointNet 网络来抽象低层次的特征;面对语义分割任务,PointNet++提出基于欧氏距离的插值法对点进行上采样,并将通过插值计算所得语义特征与低层学习的语义特征进行融合以更准确地学习每个点的语义特征.但是在每一个子区域中,PointNet++仍然独立地处理每个点的信息.PointSIFT[14]引入卦限约束来有效探索各个点周围的局部模式,其主要思想是以每个点为原点,在周围8 个卦限中找到特定范围内的最近点,然后沿着X,Y,Z轴使用三阶段2D 卷积来提取局部模式,其三阶段的卷积操作会受到因点云旋转而造成的不同卦限顺序的影响,从而使得提取的局部模式具有方向敏感性;此外,在下采样阶段,PointSIFT 沿用PointNet++的网络结构,采用可学习的方式聚合局部特征,这为其引入额外的参数,从而大大增加了其计算量.

为了克服上述问题,本文提出了一种新的卦限卷积神经网络(Octant-CNN)来提取点云的局部几何结构.该网络主要由卦限卷积模块和下采样模块两部分组成.具体来说,卦限卷积模块首先搜索每个点在8 个卦限内的最近邻点,由于点云的密度特性可以通过近邻点的距离来表征,为了使Octant-CNN 能更好地反映这一特性,本文取消了对搜索半径的限制,从而保证远离中心点的近邻点同样可以被度量.卦限卷积模块使用单阶段卷积操作同时作用在8 个卦限的近邻点,从而克服了三阶段卷积操作对卦限顺序敏感这一问题,并且配合T-Net 的使用,能够对点云旋转具有更好的鲁棒性.最后通过级联各层的特征和残差连接方式实现了多层次特征的融合.下采样模块根据空间分布对点云进行分组聚合,扩大了中间特征的感受野,构成了层次化的网络连结结构,并且该模块并没有引入额外的可学习参数,从而大大降低了Octant-CNN 的计算复杂度.通过对卦限卷积模块和下采样模块的多层堆叠,Octant-CNN 实现了从局部模式中不断抽象出全局特征.

1 Octant-CNN

Octant-CNN 的整体网络框架如图1 所示.以原始点云作为输入,首先将点云送入T-Net 中进行点云旋转,将点云标定至规范空间,接着通过卦限卷积模块(Octant convolution module)提取点云的局部几何结构,其后采用下采样模块(Sub-sampling module)来减少点的数量,以设计一种分层式的层次化网络结构,从而增加中间层特征的感受野.通过这两个模块的多层堆叠,Octant-CNN实现了对高层语义特征的抽象,为点云处理提供了一种高效的特征编码方式.

图1 网络框架图Fig.1 Illustration of network architecture

1.1 卦限卷积模块

假设具有n个点的点云为S=(X;F)⊆R3+C,其中X={x1,x2,···,xn}⊆R3表示坐标信息,F={f1,f2,···,fn}⊆RC表示点云的特征.对于每个点si,以该点为原点建立一个三维局部坐标系,可以将空间划分为8 个卦限,然后在8 个卦限中分别找到si的最近邻点,即N(si)={si1,···,si8}.在卦限卷积模块中,Octant-CNN 取消了搜索半径上限的限制,这样可以确保远离中心点的近邻点同样可以被捕获到,从而可以更好地反映点云的局部密度特性.

对于8 个最近邻点,PointSIFT[14]使用了具有三阶段操作的2D 卷积,如图2(a)所示.该卷积操作沿X,Y和Z轴分别使用卷积核大小为 1×2 的2D 卷积.这种三阶段的卷积操作存在着先后顺序,对于三维空间中的不同维度具有各向异性,而且PointSIFT 中没有采用T-Net 对输入点云进行旋转,因此不同的卦限顺序会造成不同的卷积结果.为了克服这个问题,本文采用T-Net 对点云进行旋转标定,并通过单阶段的卷积操作直接在8 个最近邻点上进行运算.如图2(b)所示,Octant-CNN 先按照卦限的顺序对8 个邻点进行排序,接着利用一个卷积核大小为 1×8 的2D 卷积直接作用在这8个邻点上.给定中心点si及其最近邻点N(si),卷积的输入通道包括中心点坐标xi,中心点及其最近邻点之间的残差坐标xi-xij,以及最近邻点的特征fij,该操作过程如下:

图2 三阶段与单阶段2D 卷积的对比Fig.2 Comparison of 2D CNN with three-stage and one-stage

其中,f(l)(si)表示点si在第l层学到的特征,concat表示级联操作,wij表示si和sij之间的可学习权重.

由于Octant-CNN 先通过T-Net 对点云方向进行预先标定,其后采用一个二维卷积同等处理各卦限内的点及其特征,使得单阶段卷积对输入点云具有各向同性,因此对于不同角度的同一点云输入,Octant-CNN 总能得到相似的特征表示,具有旋转不变性.

为了使每个点能够提取更丰富的特征,Octant-CNN 在卦限卷积模块中堆叠了多层卷积操作,并将各层的输出特征通过MLP 进行融合,以充分利用各层次特征信息,并且MLP 的输出尺寸与最后一个卷积层相同,从而可以在最后一层添加残差块以缓解梯度消失问题.整个卦限卷积模块可以表示为

卦限卷积模块的架构如图3 所示.

图3 卦限卷积模块Fig.3 Octant convolution module

1.2 下采样模块

下采样模块的目的是为了扩大每个点特征学习的局部感受野.主要思路为:从输入点集中选择一系列种子点作为聚类中心点;然后,将这些中心点周围的点的特征用对称函数聚合在一起.由于Point-SIFT[14]在下采样的过程中沿用了PointNet++[13]的结构设计,这为PointSIFT 引入了可学习的参数,从而增加了其计算量;不同于此,Octant-CNN在下采样模块中的核心操作是种子点的选择和特征聚合,而在特征聚合时仅仅通过对称函数即可实现,这并没有为Octant-CNN 带来额外的可学习参数,因此降低了Octant-CNN 的计算复杂度.

给定输入点{x1,x2,···,xn},下采样模块迭代使用最远点采样(Furthest point sampling,FPS)来选择该点集的一个子集{x1,x2,···,xm},m<n,并将该子集作为聚类中心的种子点.与随机采样相比,FPS 通过最大化采样点之间的距离来更好地覆盖整个点集[13].

对于每一个采样点,Octant-CNN 都可以在一定的半径内寻找它的邻点.为了保持一致性,本文在实际操作中设置了一个上限K.该操作可以表示为:给定一个大小为N×C的原始点集,以及通过FPS 采样得到的大小为M×C的子集,其中M和N表示集合中点的数量(M<N),C表示特征维度.对于每个采样点,都可以在一定半径内从原始点集中选取K个邻点,并输出大小为M ×K×C的数据.这些邻点的特征都可以通过一个对称函数聚合并输出大小为M×C.在实际操作中,本文使用最大值来聚合局部特征.

2 实验结果与分析

为了详细评估Octant-CNN 的性能,本文在对象分类、部件分割、场景语义分割、3D 目标检测四组任务中,对其进行了实验测试,并和相关方法进行了比较.此外,本文还通过一系列消融实验评估了卦限卷积和下采样模块的不同设置对网络性能的影响.

2.1 对象分类

首先在ModelNet40[9]分类基准上评估Octant-CNN.该数据集包含40 个人工设计的对象类别,共有12 311 个CAD 模型,其中9 843 个用于训练集,2 468 个用于测试集.参照PointNet[12],本文均匀采样1 024 个点并将其标准化到单位球体中,并仅将采样点的坐标作为模型的输入.在训练过程中,本文与PointNet++[13]一样,通过随机旋转和缩放对象并扰动对象点的位置来扩充数据.

如图1 所示,首先使用PointNet[12]设计的T-Net对点云进行旋转标定.T-Net 首先通过三层共享的MLP 提取点的特征,然后通过最大值池化以获取全局表示,最后通过两个全连接层来计算一个转换矩阵.Octant-CNN 在卦限卷积模块中学习点的局部特征,然后在下采样模块中对点进行分组聚合局部特征.在实际操作中,对于最后一个下采样模块,本文仅对原点进行采样,然后使用最大值获取全局特征,最后通过两层全连接层来输出对象的类别概率.在训练过程中,本文在全连接层中使用了dropout[21]机制,并将该比率设置为50%.在测试阶段,本文和PointNet++[13]一样,使用投票机制将点云均匀旋转12 个不同的角度后分别送入模型中预测,并对这12 个预测结果取平均获取最终的分类结果.

表1 列出了Octant-CNN 与最新一些相关方法进行的比较结果,包括PointNet[12],PointNet++[13],PAT[22]等.本文采用了整体准确率(Overall accuracy,oAcc)和平均准确率(Mean accuracy,mAcc)两种指标来衡量分类结果,它们的定义分别为

其中,pij表示真实标签为i,预测结果为j的数量,N表示类别数.为了客观分析比较,本文还实现了基于PointSIFT[14]的对象分类任务.从表1 可以看到,Octant-CNN 取得了不错的效果,这也说明了Octant-CNN 在一定程度上可以更好地学习到点云的局部几何特征.

表1 ModelNet40 分类结果(%)Table 1 Classification results on ModelNet40 (%)

2.2 部件分割

ShapeNet[28]数据集主要用于测试部件分割任务.该数据集包含16 个对象类别的16 881 个不同形状,总共被标记为50 个部件.本文参照Point-Net[12]的方法对数据集进行划分,并随机采样2 048个点作为网络输入.Octant-CNN 仅使用坐标信息作为网络的输入,而没有采用PointNet++[13]中的法线信息.

但是,对于分割任务,模型希望获得每个点的语义特征以实现每个点的分类.PointSIFT[14]首先参照PointNet++[13]的方法,先使用基于欧氏距离的插值法对点进行上采样,并将内插值与上一个卦限卷积模块中学习的特征进行级联,然后通过共享的多层感知机提取丰富的语义特征;紧接着,Point-SIFT 在此基础上使用三阶段卷积操作进一步做特征变换.该三阶段的卷积操作在原来多层感知机的基础上又引入了额外的参数.不同于此操作,考虑到计算量的问题,Octant-CNN 在上采样的过程中仅通过多层感知机来抽象高层的语义特征.

在实际操作中,我们还将对象的one-hot 标签级联到最后一层特征传播层中,以进行准确的预测.为了更好地评测Octant-CNN 在部件分割上的性能,本文还和PointNet[12],PointNet++[13]等方法进行了实验比较,表2 中给出了实验比较结果.本文采用平均交并比(Mean intersection over union,mIoU)作为衡量分割任务性能的指标,其定义为

表2 ShapeNet 部件分割结果(%)Table 2 Part segmentation results on ShapeNet (%)

其中,pij表示真实标签为i,预测结果为j的数量,N表示类别数.可以看到,本文仅将坐标信息用作输入,就可以得到比使用法线信息的PointNet++[13]更好的性能.同时,PointSIFT[14]在部件分割任务中并不能取得很好的效果,主要由于其上采样使用了三阶段的卷积操作,这带来了大量的参数,对于ShapeNet[28]这种相对较小的数据集,很容易造成模型的过拟合.

2.3 室内场景语义分割

为了进一步证明Octant-CNN 的有效性,本文还在斯坦福大学大型3D 室内空间数据集(3d semantic parsing of large-scale indoor spaces,S3DIS)[30]上评估了其性能.该数据集包含来自6 个室内区域的272 个房间.每个点都用来自13 个类别(天花板,地板,墙壁,梁和其他)的语义标签进行标注.参照PointNet[12],本文将每个房间分成面积为1 m×1 m的块,每个点都表示为9 维向量(XYZ,RGB 和归一化坐标).在训练过程中,Octant-CNN 在每个块中随机选取4 096 个点,并将所有的点用于测试.与PointNet[12]一样,本文在6 个区域上使用了6 折交叉验证的方式.

本文将Octant-CNN 与PointNet[12],Point-Net++[13],PointSIFT[14]进行了比较.由于我们无法达到PointSIFT[14]中报告的结果,因此仅显示根据作者提供的代码而获得的结果.结果总结在表3 中,本文提出的Octant-CNN 优于其他方法.图4 显示了Octant-CNN 的一些可视化结果,可以发现,Octant-CNN 可以更平滑地分割场景,这是由于Octant-CNN 在卦限卷积模块中更好地学习局部几何特征.

图4 S3DIS 可视化结果Fig.4 Visualization of results on S3DIS

表3 S3DIS 语义分割结果Table 3 Semantic segmentation results on S3DIS

2.4 3D目标检测

最后,本文将Octant-CNN 和PointSIFT[14]扩展到了KITTI[31]数据集上进行3D 目标检测.KITTI 3D 目标检测数据集由7 481 个训练图像和7 518 个测试图像以及相应的点云数据组成.它具有三个目标类别:汽车、行人和自行车.对于3D 目标检测,本文遵循Frustum PointNets[32]的检测流程,仅将PointNet 特征提取模块替换成Octant-CNN以客观比较.由于Frustum PointNets[32]仅公开了在训练集和验证集上的2D 检测框,因此本文评估的是Octant-CNN 及相关方法在验证集上的检测结果.

3D 目标检测的实验结果如表4 所示,这些方法的检测流程都是基于Frustum PointNets[32]实现的,主要不同之处在于点云的分割网络以及3D 目标检测框的回归网络,其中Frustum PointNet v1采用的是PointNet[12]的网络结构,Frustum Point-Net v2 采用的是PointNet++[13]的网络结构,可以发现,本文提出的方法要优于这些方法.尤其对于小目标的检测性能提升较为明显,图5 同时也展示了一些检测的可视化结果.

图5 KITTI 目标检测可视化结果Fig.5 Visualization of detection results on KITTI

表4 3D 目标检测对比结果(%)Table 4 Performance compression in 3D object detection (%)

2.5 消融实验

本节在ModelNet40[9]数据集上进行了实验,详细分析了网络结构中各个模块的作用,并且分析了卦限卷积中不同特征融合方式、不同近邻点选择方法和不同特征输入的效果.此外,本节还对卦限卷积与其他方法的旋转鲁棒性和计算复杂度进行了比较.

1)结构的设计.为了分析卦限卷积模块中各个部件的重要性,通过将各个部件分别加入卦限卷积模块中进行实验,结果如表5 所示.在卦限卷积模块中,首先通过堆叠多层2D 卷积以获取点云丰富的局部特征,此时该模型可以达到90.7%的准确率.为了充分利用低层的几何特征,接着将所有卷积层的输出特征级联起来,并通过一层MLP 实现多层特征的融合,此时的准确率可以提升到91.2%.考虑到多层堆叠卷积可能带来的过拟合问题,进一步以残差方式将融合特征与最后一层2D 卷积层的输出特征相加,准确率也进一步提升到91.5%.最后,为了能够客观的与PointNet++[13]等方法对比,采用了投票机制,将输入点云均匀旋转12 个不同角度并分别送入模型中预测,并取平均值作为最终的结果,最终取得91.9%的准确率.

表5 结构设计分析Table 5 Analysis of the structure design

2)特征融合方式的选择.为了比较2D 卷积和MLP 两种特征融合方法对最终结果性能的影响,本组实验对这两种特征融合的方式进行了对比,实验结果如表6 所示.可以观察到2D 卷积效果更佳,这是由于在使用MLP 时,其是对每个邻点单独处理,然后通过最大值操作聚合局部特征,该操作只保留了每个通道中最重要的信息,从而导致细节信息的丢失;而在使用2D 卷积时,其会考虑到所有邻点各个通道的信息,充分利用了细节信息.

表6 2D 卷积和MLP 的对比Table 6 Comparisons of 2D CNN and MLP

3)近邻点的选择.K 近邻(K-nearest neighbor,KNN)是最常见的一种近邻选择方式,本文提出了使用8 卦限搜索的方式来选择近邻点.对此,本组实验对这两种近邻点的选择进行了对比,实验结果如表7 所示.可以发现,本文所使用的8 卦限搜索的性能要优于KNN.这两种近邻点的区别如图6 所示,其中方框表示选择的近邻点.当使用KNN 时,选取的近邻点会受到点云密度特性的影响而偏向某一特定方向;而使用8 卦限搜索时,所选取的近邻点来自于不同的方向,从而更好地覆盖在点云上.

表7 不同邻点的比较Table 7 The results of different neighbor points

图6 K 近邻和8 卦限搜索的比较Fig.6 Comparison of KNN and 8 octant search

4)搜索半径的设置:为了分析在使用8 卦限搜索近邻点时,搜索半径的限制对模型性能的影响,通过设置几组不同的搜索半径进行实验.由于在点云分类任务中,点云首先被标准化到单位球体中,因此最大搜索半径设置为1.结果如表8 所示,我们观察到,当搜索半径越大,分类准确率也会随之提升.这是由于在设置搜索半径时,部分偏离中心点较远的近邻点会被丢弃,从而导致几何结构的不完整.因此,我们取消了搜索半径的限制.

表8 不同搜索半径的比较Table 8 Comparison of different search radius

5)不同输入特征的比较:本组实验对比了使用不同的输入特征对模型最终性能的影响,实验结果如表9 所示.从实验结果可以看出来,当仅使用邻点的特征作为卷积的输入时,由于缺少点云的空间位置信息,此时的效果不佳.随着越来越多的坐标信息,如中心点的坐标、中心点与邻点的残差坐标同时送入卷积中进行运算,精度也会得到相应的提升.

表9 不同输入通道的结果比较Table 9 The results of different input channels

6)点云旋转的鲁棒性分析:在本组实验中,将输入点云分别旋转 0°,30°,60°,90°,180°后送入Octant-CNN 和PointSIFT[14]中进行预测,通过计算由不同角度得到的准确率的均值和方差来比较这两种方法对点云旋转的鲁棒性.由于Octant-CNN在一定程度上依赖于T-Net,为了更客观地比较单阶段卷积和三阶段卷积对点云旋转的鲁棒性的影响,我们还将T-Net 加入PointSIFT 模型中,实验结果如表10 所示.可以发现,T-Net 在一定程度上提高了PointSIFT 的旋转鲁棒性,但是本文提出的单阶段卷积对点云旋转依然更具鲁棒性,这是由于三阶段卷积是存在先后顺序的,对于三维空间不同维度具有各向异性,而单阶段卷积同等处理各卦限的点,对输入点云具有各向同性.

表10 点云旋转鲁棒性比较Table 10 Comparison of robustness to point cloud rotation

7)Octant-CNN 的复杂度:最后,我们对比了Octant-CNN 和其他一些方法在语义分割任务中的参数量和每秒的浮点运算量(Floating point operations per second,FLOPs),结果如表11所示.可以观察到,相比于PointSIFT[14],Octant-CNN 的参数量和FLOPs 都得到了明显的降低,这主要来自两个方面:1)在下采样阶段,PointSIFT采用可学习的方式聚合局部特征,这为PointSIFT引入了额外的可学习参数,而Octant-CNN 直接采用最大值池化聚合局部特征,这一操作不需要额外参数;2)由于语义分割任务需要上采样以恢复点的原始数量,PointSIFT 首先使用几层MLP 抽象语义特征,紧接着使用三阶段卷积进一步丰富语义信息,这带来了大量的参数,Octant-CNN 则只使用了MLP 来抽象高层语义特征.同时可以发现,对于部件分割和目标检测这两个数据集相对较小的任务,Point-SIFT 由于参数量过大,导致模型出现过拟合的情况,因此在这两个任务上的效果不佳.

表11 点云语义分割的复杂度Table 11 Complexity in point cloud semantic segmentation

3 结论

为了有效捕获点云的局部几何信息,本文提出了Octant-CNN,并在对象分类、部件分割、语义分割和目标检测上均取得显著提升.Octant-CNN 具有三个关键点:首先,在近邻空间中定位最近邻点时,Octant-CNN 取消了搜索范围的限制,这使得远离中心点的近邻点可以被捕获,从而更好地反映点云的密度特性.其次,Octant-CNN 使用单阶段的卷积操作直接提取点的局部几何结构,这克服了三阶段卷积操作带来的对卦限顺序敏感的问题,从而对点云旋转更具鲁棒性.最后,通过下采样模块实现对原始点集的分组及特征聚合,从而增大了中间特征的感受野,并大大降低了卷积操作的计算量.

猜你喜欢

邻点语义卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
围长为5的3-正则有向图的不交圈
语言与语义
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“上”与“下”语义的不对称性及其认知阐释
特殊图的一般邻点可区别全染色
认知范畴模糊与语义模糊
笛卡尔积图Pm×Kn及Cm×Kn的邻点可区别E-全染色研究
一种基于卷积神经网络的性别识别方法