基于点密度加权的多尺度分层点云识别网络

2022-07-13 01:51秦鑫宇沈学利
计算机工程与应用 2022年13期
关键词:局域尺度分组

秦鑫宇,韩 帅,沈学利,杨 莹

1.辽宁工程技术大学 软件学院,辽宁 葫芦岛 125105

2.中国科学院 海西研究院 泉州装备制造研究所,福建 泉州 362216

近年来,随着虚拟/现实、机器人技术、自动驾驶等领域的快速发展以及各种直接获取3D数据的扫描设备(如:深度相机、LiDAR扫描仪、雷达等)的普及,3D点云的应用已越来越广泛。3D 几何数据可以提供3D 空间信息,并且受照明强度的影响较小,比RGB(红色、绿色、蓝色)图像信息更鲁棒。点云通常代表3D空间(R3)中的一组无序的3D 点,每个点都有x、y、z三个坐标,并且可能具有其他特征(如:RGB信息、法向信息等),它是3D 几何数据最常见的表示形式。深度相机、LiDAR扫描仪和雷达的原始数据通常是点云,此外,几何数据的其他3D 表示(例如网格、体素和深度图像)也可以很容易地被转换为点云[1]。因此,对点云数据的识别具有重要的意义。

在2D图像领域,卷积神经网络(convolutional neural network,CNN)取得了重大突破,极大地改善了大多数视觉任务的结果。在点云的深度学习中,希望将CNN在常规栅格数据(例如图像)分析上的非凡成功应用到不规则3D点云的处理上。然而与具有规则像素排列的2D 图像不同,通常点云数据的几何形状是由一组稀疏且无序的3D 点表示的,这样的数据格式使得点云难以应用常规的CNN 进行卷积,因此对具有不规则结构的3D点云的分析更具有挑战性[2]。

对此有不少学者针对点云数据的识别与分类提出了自己的改进方法,大致分为基于体素的方法、基于视图的方法和基于几何的方法。文献[3]提出VoxNet,以实现对3D 对象可靠的识别。考虑到体素数据的高存储、高计算成本和3D网格的分辨率通常较低等因素,利用体素网格的方法来处理大规模点云存在一定的问题。文献[4]提出MVCNN,首次提出了基于视图的方法,将多个视图的特征最大池化为一个全局特征。文献[5]首先获得3D 形状在不同尺度及视点下的深度图和阴影图,然后使用全卷积网络对其进行特征学习。二维投影可能会由于自我遮挡而导致形状信息丢失,并且通常需要大量视图才能获得良好的性能。文献[6-7]采取手工提取特征并采用传统机器学习的方法实现点云分类,此类方法未能获取全部点云信息且特征的提取需要耗费较长时间[8]。文献[9]提出了PointNet 网络,可以直接对原始点云进行分类和分割,但由于PointNet无法获取局部信息的缺点使它难以应对复杂场景的分析。文献[10]对原始点云数据进行预处理和k-means聚类分析,并对处理后的数据通过PointNet网络进行并行特征提取,以减少冗余的点云数据,提高训练效率,但该方法的最终分类精度受k-means算法的k值影响较大。文献[11-13]将PointNet作为特征提取器,递归地应用到多尺度的嵌套分区上以提取局部特征,并组合来自不同比例尺度的学习到的特征。该方法虽然可以对提取到的局部特征进行整合,但仍然仅会分别处理局域点集中的每个点,并且不会提取该点及其邻居之间的关系,例如距离和边缘向量。

为此,本文提出一种针对原始3D 点云进行卷积的新的卷积方式。在3D 空间中,可将此卷积运算符的权重视为相对于3D 参考点的局域3D 点坐标的连续函数,可以通过多层感知器(multi-layer perceptron,MLP)进行近似[14-16]。考虑到点云的非均匀采样,本文使用高斯核函数进行核密度估计(kernel density estimation,KDE)[17],经过由MLP 近似的密度函数以学习密度尺度,并结合点云中点的相对位置进行加权。此外,使用多尺度采样分组方法对不同尺度范围内的样本进行细粒度识别,并在原始点集中引入了法向特征作为方向信息,以实现网络性能的进一步提升。

1 相关算法

1.1 局域内K个点的点云卷积操作

卷积是分析数学中一种重要的运算,有着广泛的运用。在2D图像的处理中,常用的是2D卷积。对于函数f、g在(x,y)位置处的卷积的定义,通常如等式(1)、(2)所示[18]。

对2D 图像的卷积过程可以解释为等式(2)中的离散函数,整个卷积过程就是使用滤波器在2D 图像表示的网格状矩阵中滑动的过程。由于图像的不同像素之间的相对位置始终是固定的,使得对于局部区域内的每个位置,滤波器都可以很容易地对图像中每个像素的邻域进行加权求和,进而得到该像素点的输出值。

与图像不同的是,点云具有更灵活的形状。点云中点的位置坐标不在固定网格上,而是可以取任意连续值,因此每个局域内的不同点的相对位置是不同的,这时无法将传统2D 图像的离散卷积滤波器直接应用于点云。

图1 显示了图像和点云之间的差异,如图1(a)所示,在一个7×7 的图像的局域范围内,点之间是呈规则排列分布的,点与点间的距离只能获得非常小的离散值,而如图1(b)所示,在整个点云中不同的局部区域内,点云顺序和相对位置可能有很大的不同。

图1 栅格图像与点云的对比Fig.1 Comparison between raster images and point clouds

为了使卷积与3D 点集兼容,本文提出了一种排列不变的卷积运算,首先将2D 离散卷积扩展至3D 空间,可以写为如下形式:

图2 局域内点云2D分布及对应权重Fig.2 2D point cloud distribution and corresponding weights in local region

如图3 展示了局域内K个点的点云卷积操作,其中,Cin、Cout、Cmid分别代表输入、输出和中间层通道的尺寸,k代表第k(1 ≤k≤K)个邻近点的索引。P∈RK×3,Plocal∈RK×3分别代表局域内点的相对位置和局域位置,其中,Plocal可以通过点的位置坐标减去局域中点的质心坐标来计算。使用到的MLP 网络(包括密度网络、权重网络)均由1×1 的卷积实现。F∈RK×Cin、F͂∈RK×Cout代表局域中点的输入特征和经过MLP 网络

图3 局域内K 个点的点云卷积操作Fig.3 Point cloud convolution operation of K points in local region

1.2 改进的FPS算法

最远点采样(farthest point sampling,FPS)在点云研究中有着很关键的作用,在很多流行的点云模型中,都用到了该算法[20]。假设有n个点,从中按照FPS算法采样出S个点(S

算法假设点pB是集合B里面的一个点,分别计算出pB到集合A中当前所有点的距离值,从计算出的距离值中选取最小值作为点pB到A的最短距离值。对于集合B里面的每个点piB{1 ≤i≤n−len(A)},都可以计算一个最短距离值,从中选出最大的最短距离值对应的点作为新选中的点,移动到集合A中。按此方式,直到选出S个点为止。

步骤6 重复步骤5的流程,从集合B中依次采样出所有满足步骤5 条件的点,将其加入集合A中,直到集合A中包含S个点为止。

复杂度分析:

时间复杂度。每次选一个点,需要计算n个距离,选k个点,时间复杂度可以认为是O(kn),由于k和n有一个常数比例关系,所以也可以认为是O(n2)。

空间复杂度。需要一个长度为n的数组,来记录、更新每个点的距离值,所以复杂度为O(n)。

1.3 球域内点云的搜索与分组

通过改进的FPS 算法求得要采样的S个中心点之后,需要对所有中心点周围给定半径所形成的球域内的K个最近邻点(以及它们的特征)进行搜索并分组,文献[21]提出一种query_ball_point方法,用于寻找二维局域内待查找点在给定半径内的所有点。本文将其搜索空间维度由二维扩展至三维,即允许在S个中心点周围给定半径R的三维球域空间内对满足条件的点云进行采样并分组,此外,对给定半径R内不足K个近邻点的样本点进行补齐,具体过程如下:

步骤1 计算每个采样中心点与所有点的欧式距离dij(0

步骤2 将上一步中计算所得的dij分别与给定局域半径R的平方进行比较,若dij小于等于R2,则搜索并返回每个采样中心点周围满足条件的前K个最邻近点所在的索引。特别地,假如出现不足K个最邻近点的情况,则将不足的部分用第一个最邻近点所在索引补齐。

步骤3 根据步骤2 所得的索引从原始点中分别采样出S个采样中心点周围给定半径R的局域内对应的K个最邻近点(如图4)。

图4 采样中心点周围给定半径局域内的K 个最邻近点Fig.4 K nearest points within given radius of sampling center

1.4 非均匀采样密度下的多尺度学习

通常,不同半径区域中点集的密度可能不均匀,这种不均匀性为点云的特征学习带来了重大挑战,从密集区域中学到的特征可能无法推广到稀疏采样的区域,进而导致在稀疏点云数据训练好的模型可能无法识别细粒度的局部结构。因此,为了捕获密集采样区域中的最佳细节,防止因局部区域采样不足而造成模型性能的下降,在采样分组的过程中,本文采用了多尺度方法[22],以实现在更大的范围内寻找更大的比例模式。

如图5(b)所示,在训练网络时结合多尺度采样分组的优化策略,具体过程如下:

图5 两种不同尺度的采样分组方式Fig.5 Two grouping sampling methods with different scales

首先将降采样后的点云数据划分为具有不同尺度的分组层,分别为:低尺度s1、中等尺度s2和高尺度s3;然后分别使用其对应的点云卷积网络(图3)提取不同尺度下输入的点云数据对应的深层抽象特征表示形式,提取到的s1、s2和s3对应深层抽象特征分别为Fs1、Fs2和Fs3;最后将不同尺度下学习到的特征Fs1、Fs2和Fs3进行特征拼接,以形成多尺度特征。

另外,对于训练点集中的每个点,均以概率θ∈[0,0.95]随机删除,以保证用于训练网络的训练集具有不同稀疏性(由θ确定)和不同均匀性(由dropout 的随机性确定),以避免模型过拟合。在测试期间,均保留所有可用点。

2 基于点密度加权的多尺度分层点云识别网络

由于PointNet[9]使用单个最大池化操作来聚合点云的全局特征,不能捕获度量空间中点云的局部结构特征,限制了该网络对细粒度点云的识别和泛化到复杂场景的能力,因此本文借鉴了PointNet++[13]的思路,设计了多尺度分层学习的网络结构。如图6所示,多尺度分层学习网络主要由不同尺度下的多层抽象的3D点云卷积层构成,对于单尺度下单层抽象层来说,主要由采样、分组、点云卷积3个操作组成,具体如下:

图6 网络的整体结构Fig.6 Overall network structure

输入 点云集合P={xi,i=1,2,…,S},其中,S为P中所包含的点云数目,xi={x1i,x2i,…,xC+D i}为P中第i个点对应的特征向量,其中,C+D为特征数目,C为点的坐标维度,D为点的特征维度;采样中心点数S′;局域半径R;每个子采样中心点所形成的局域内包含的点数K。

输出 具有S′个C维点的坐标和新的D′维点的特征维度的特征向量的点构成的一组子采样点集P′={x′i,i=1,2,…,S′},x′i={x1i,x2i,…,xC+D′i}为P′中第i个点对应的特征向量。

步骤1 采样操作。对于给定大小为S×(C+D)的点集P,使用改进的FPS算法(1.2节)进行降采样,采样出S′个采样点的集合{xi1,xi2,…,xiS′}作为采样中心点集,其中xir是相对于其余点集{xi1,xi2,…,xir-1}而言在度量距离中最远的点。

步骤2 分组操作。将大小为S×C的点集P的位置、大小为S′×C的采样中心点集的位置、K值和R值作为输入,在采样中心点附近使用球域搜索算法(1.3节)给定半径R的球域内进行搜索,找到与采样中心点距离最近的前K个点的索引,并按其索引在点集P内进行划分,找到每个采样中心点所在局域内的K个点,输出是大小为S′×K×(C+D)的分组后点集。

需要注意的是,每个组中采样中心点对应局域内的点数K的密度是不同的,但是后续的3D点云卷积操作能够将灵活数量的点转换为固定长度的局域特征向量。

步骤3 点云卷积操作。使用3D点云卷积操作(1.1节)对每个局域内的点集进行精细特征提取,产生更高层次的抽象特征。具体来说,将分组后大小为S′×K×(C+D)的S′个局部区域的点集输入到点云卷积网络(图3)之中进行细粒度特征提取,输出大小为S′×(C+D′)的新的特征点集P′。

以上描述了单尺度下单层抽象层下特征提取的过程。在实验过程中,对每层抽象层使用多尺度方法对降采样后不同尺度的组内学习到的特征进行特征融合(1.4 节),以减少不同半径局域内由点密度的不均匀性可能造成的模型性能下降。并采用分层学习架构,随着局域尺度的逐层增大,每个点对应的特征越来越抽象,所对应的感受野也将越来越大。这个过程被重复,直到获得整个点集的特征。

此外,加入法向特征作为方向信息,以进一步提高网络性能。

3 实验及结果分析

实验环境如下:操作系统为CentOS 7,CPU 为i7-6850K CPU @ 3.60 GHz,GPU为带有cuDNN库的GTX 1080Ti,开发工具为Pycharm,编程语言为Python,在Pytorch(神经网络库,版本为1.3.1)和Open3D(3D 数据处理库,版本为0.7.0)上执行,优化器为Adam。

3.1 在ModelNet10/40上的分类

本节分别在ModelNet40和ModelNet10两个形状分类基准库上评估了本文提出的网络模型。ModelNet40包含了40 个类别,12 311 个CAD 模型,其中9 843 个用于训练,2 468 个用于测试[23]。而ModelNet10 仅有其中的10个类别,是一个小型数据集,数据集中部分CAD模型效果如图7所示。

图7 ModelNet数据集中部分CAD模型的效果图Fig.7 Renderings of some CAD models in ModelNet dataset

表1 展示了本文提出的网络模型与其他网络模型在ModelNet40 和ModelNet10 数据集上的分类准确率对比。如表1 所示,在同为1 024 点的情况下,网络在ModelNet40 上的整体分类准确率达到了92.8%,在ModelNet10上的整体分类准确率达到了94.7%,在以上两个数据集上分类性能均优于先前研究人员提出的网络模型。

表1 ModelNet10/40数据集上分类准确率的比较Table 1 Comparison of classification accuracy on ModelNet10/40 dataset

3.2 在Mnist和Cifar10上的分类

为了证明网络中所提到的针对3D原始点云的卷积操作(1.1 节)等效于传统的2D 卷积操作,在本节中,分别使用MNIST 和CIFAR-10 两个图像数据集为比较基准,与其他2D 和3D 网络模型进行比较。对于MNIST图像,首先将所有像素归一化到[0,1]范围内,选择强度大于0.5 的所有像素作为有效像素,然后将图像中的数字像素转换为以图像中心作为原点,坐标在[−1,1]范围内的具有x、y坐标和灰度值特征的2D点,图8描述了以MNIST 数据集上的数字“7”为例的图像与点云数据间的格式转换。对于CIFAR-10 图像,将每张图片的像素转换为具有x、y坐标和RGB 特征的2D 点。最后,对经过处理后的点输入到网络之中,进行特征提取与模型预测。

图8 图像与点云数据间的格式转换Fig.8 Format conversion between image and point cloud

表2、表3 分别展示了模型在CIFAR-10 和MNIST数据集上的分类结果,如表2、表3所示,对于CIFAR-10数据集,本文提出的网络模型具有与其他网络模型相媲美的性能,且精度远高于PointCNN等3D网络模型给出的结果。对于MNIST 数据集,虽然网络模型与主流的网络模型间仅存在有些许差距,但仍具有较高的识别精度。因此,通过本节实验可以看出,网络中所用到的卷积操作在图像上的性能可以基本等效于传统的2D卷积网络。

表2 在MNIST数据集上的分类准确率Table 2 Classification accuracy on MNIST dataset

表3 在CIFAR-10数据集上的分类准确率Table 3 Classification accuracy on CIFAR-10 dataset

3.3 不同模块的有效性

在本节中,主要通过消融研究的方式对网络结构中使用到的不同模块进行分析,以验证本文所提出的方法的有效性。

首先,为了验证改进的FPS 算法的有效性,将随机采样算法和改进的FPS采样算法进行对比,分别使用随机采样算法和改进的FPS 采样算法对原始点集进行采样,采样效果如图9 所示,通过图9(b)和图9(c)的比较可以发现,FPS 采样相对随机采样来说更加均匀,采样范围可以更好地覆盖整个点集。

图9 随机采样与FPS采样的比较Fig.9 Comparison of random sampling and FPS sampling

改进的FPS算法用在点云的采样中,可以更好地对CAD 物体模型的轮廓进行捕获,进而学习到更好的特征(如图10)。

图10 改进的FPS算法在不同点的采样效果Fig.10 Sampling effect of improved FPS algorithm at different points

除此之外,本节对法向特征和多尺度采样分组方法的有效性进行验证,通过采用法向特征和多尺度采样分组前后对最终分类准确率的影响来衡量模块的有效性,如表4所示。

表4 加入不同模块前后的分类准确率对比Table 4 Comparison of classification accuracy before and after adding different modules

从表4可以看出,采用多尺度采样分组相比于单尺度采样分组而言,分类准确率提高了0.26个百分点。另外,采用法向特征特征比不采用法向特征提高了0.57个百分点,可以证明,引入多尺度采样分组方法和法向特征可以进一步提升网络的性能。

3.4 单个类别的分类准确率测试

表5 展示了在ModelNet40 训练集上训练好的模型对测试集中每个物体类别进行分类测试的准确率结果。从表5可以看出,分类准确率在90%~99%这个区间的物体类别较多,80%~89%这个区间的物体类别次之。飞机(airplane)、床(bed)、碗(bowl)、笔记本电脑(laptop)、显示屏(monitor)这5个类别在测试集上的分类准确率最高,达到了100%。花盆(flower_pot)、床头柜(night_stand)、衣柜(wardrobe)这3个类别在测试集上的分类准确率均低于80%,其中花盆的分类准确率最低,仅有25%,误分率最高。

表5 ModelNet40数据集上每个类别的分类准确率Table 5 Classification accuracy for each category on ModelNet40 dataset

如图11展示了部分被误分类的物体的三视图。图11(a)中花盆和花瓶(vase)在形状上相似,容易将花盆误分类为花瓶。图11(b)中某些种有植物的花盆由于植物的特征更为明显,会将其误分类植物(plant)。图11(c)中瓶子的外形与花瓶也较为相似,在分类的过程中同样会造成一定程度的误分类。可以看出,物体形状上的相似是造成误分类的关键因素。

图11 部分被误分类的物体的三视图Fig.11 Three views of partially misclassified object

4 结束语

本文提出一种融合多尺度与法向特征的3D点云卷积网络,将传统的2D卷积方法扩展到3D点云的卷积上来。通过使用MLP 来近似权重函数,使用高斯核密度估计和MLP来近似密度函数,使得3D点云在局域范围内能够保持其排列不变性和平移不变性,可以直接构建针对原始3D点云的深度卷积网络。并融合多尺度方法和法向特征,使用分层学习架构进行点云的采样、分组与特征提取,使得网络能够进行更细粒度的点云识别。本文提出的网络模型在ModelNet40和ModelNet10点云数据集上分别取得了92.8%和94.7%的准确率,较之前的网络模型在点云识别精度上有了一定的提升。此外,将MNIST、CIFAR-10 数据集中的图像数据转为点云数据并进行测试的实验也证明了本文提出的网络的性能能够基本等效于传统的2D卷积网络。

考虑到当前网络在运行时会消耗较多的GPU 资源,在以后的工作中,希望可以将网络设计的更加轻量化,在保持精度变化不大的情况下,能够在3D点云上实现较为高效的卷积。

猜你喜欢
局域尺度分组
薄膜型局域共振声子晶体低频隔声特性研究
由超辐射引起的迁移率边和重返局域化*
一类树型量子网络的非局域性
财产的五大尺度和五重应对
基于Hardy-type佯谬的混合态高概率量子非局域关联检验*
分组搭配
怎么分组
分组
宇宙的尺度
9