点云深度学习下的室内三维对象识别

2023-11-28 11:41高瑞贞李树楠张京军
机械设计与制造 2023年11期
关键词:特征提取架构准确率

高瑞贞,李树楠,张京军

(河北工程大学机械与装备工程学院,河北 邯郸 056000)

1 引言

随着近几年的智能设备的发展,直接获得3D数据的传感器越来越普遍。点云数据的获取越来越简单,计算机的硬件基础和运算速度大大提升,使得深度学习以及计算机视觉取得了快速的进步。在室内场景的识别中[1-3],由于室内场景包括很多复杂的物体,给识别任务带来了很大的难度。

大多数研究都是将其转化为多视图[4-5]和体素化网格[6-7]的形式,应用2D卷积或3D卷积提取几何特征进行识别的,虽然识别的效果很好,但是数据量大幅增加。基于点云的深度学习研究相对较少,这是因为点云数据和二维图像的像素不同,点云数据是无序的,而且受噪声的影响较大。

这里采用的网络架构是一个直接消耗点云数据进行特征提取的系统的体系,通过输入n个点的(x,y,z)三个通道信息来进行识别分类。经过训练得到和现有准确率相当的结果,可以稳健的学习深度点集的特征,并且训练和测试的准确率曲线更加接近的效果,避免过拟合现象。最后通过对采集到的点云数据进行准确性的验证。

2 点云数据的识别任务

点云是来自欧式空间中表达对象表面和空间分布的点的集合,点云数据包括位置、法向量、颜色、反射强度等多通道信息。点云数据具有无序性、各点之间的相关性和旋转平移不变性。点云的深度学习网络架构是对输入的每个点直接进行特征提取以识别对象,而不需要转换成其他的数据格式。文献[8-15]都是将原始点云作为输入,不需要转换成其他格式的数据形式。文献[8]的基本思想是将输入的点云进行特征提取,聚合各个点的特征得到全局特征,但是由于其架构是针对全局特征的,所以不捕获由于度量空间所引起的局部特征。文献[9]通过利用多尺度邻域进行细节捕获来稳健的学习,并且通过组合多尺度特征,使用分层网络结构改进了PointNet中不能捕获局部特征的缺点。文献[12]是一种新型的深度学习架构,该架构是专门为3D模型识别任务而设计的,适用于非结构化点云,并通过K-d tree 来共享学习参数。文献[13]利用卷积算子,从输入点学习χ变换来同时加权和置换与点相关的特征,这个方法在当时分类分割场景中达到了非常好的效果。文献[14]提供了一系列函数在集合上使用,并且对各种场景都具有适用性。文献[15]提出了一种对3D点云的卷积运算,在局部点坐标训练多层感知机来近似卷积滤波器的权重和密度函数,使点云保持置换不变和平移不变,在3D点云上直接构造深度卷积网络。

3 深度学习网络架构

3.1 理论方法

为了解决点云的无序输入问题。在高维度的空间中实际上是并不存在规范的排序,所以排序不能完全解决点云无序的问题。这里使用对称函数来近似点集上定义的一般函数[8]:

式中:f—集合函数;h—多层感知机(MLP);g—对称函数,应用最大池化(max pooling)。

通过多层感知机来近似h,并通过最大池化组合来近似f。给定一组无序的点集{x1,x2,…,xn}属于R,可以定义一组函数f:x→R,它将一组无序的点映射到向量:

式中:γ、h—多层感知机(MLP)。

对于输入点的排列是不变的,并且可以近似任意的连续集合函数。h的响应可以解释为点的特征编码。

为了解决旋转和平移不变性问题。有一种常规的解决方法就是将所有输入在特征提取之前对齐到规范空间,这里将采用调整网络来预测仿射变换矩阵。然而,特征变换矩阵是高维度矩阵,增加了优化的难度。因此在softmax训练损失中加入正则化将特征变换矩阵近似成正交矩阵:

式中:A—调整网络的特征矩阵;Lreg—正则损失。

通过调整网络解决旋转和平移不变性的问题,近似正交矩阵变换的同时不会丢失原有的信息,使模型的效果变得更好,避免过拟合。

3.2 调整网络

调整网络是用来预测仿射变换矩阵解决点云旋转或平移不变性的问题。它可以从输入的点云中学习出和特征空间有相同维度的变换矩阵。利用预测好的变换矩阵与原始点云数据的矩阵相乘得到一个近似正交矩阵。该结构由3个卷积层(convolution),一个最大池化层(max pooling),两个全连接层(fully connected),如图1所示。

图1 调整网络结构图Fig.1 Adjust Network Structure Diagram

3.3 网络架构

这里的网络结构,如图2所示。将输入层和采样层之间加入调整网络,增加一组抽象集进一步进行抽象提取特征。该网络架构是一个分层神经网络,有4个抽象集,在每个抽象集中都会处理一组点来产生元素更少的新集合。抽象层内有三个关键层组成,分别是采样层,分组层和特征提取层。

图2 整体网络架构图Fig.2 Overall Network Architecture Diagram

首先,采样层从输入点中选择一组点来确定局部区域的质心。该网络架构使用迭代最远点采样(FPS)对输入的点云进行采样[9],在给定输入点的集合{x1,x2,…,xn}中,定义一个新的子集使得在集合的度量距离内关于其他点是最远点。选取作为第一个查询点,从其他剩余n-1个点的集合中选取与距离最远的点;继续选取剩下的n-2个点计算到子集{}各点的距离,将最短的距离作为该点到子集的距离d,计算出剩余各点到点集的距离后,选择距离最远的点作为直到子集的元素个数达到需要的点个数N'为止。与随机采样相比,在给定相同采样点的情况下,FPS可以很好地覆盖整个输入点的集合。将点云数据采样为64个质心点并可视化采样后结果,如图3所示。

图3 采样前(上)和采样后(下)Fig.3 Before Sampling(Top)and After Sampling(Bottom)

然后,分组层通过查询相邻点来构成局部点集。使用球查询在给定半径的范围内搜索质心邻域的点个数K,K在各个分组中是不同的。它保证局部邻域的尺度,使局部区域特征在空间内更通用。

最后,用特征提取层将局部点集进行特征提取,编码成特征向量。将每个局部邻域都进行特征提取,在该质心的邻域内进行编码。

将局部区域内的点坐标转换成相对质心的局部坐标的公式为:

4 数据预处理

将获取到的模型进行预处理,该网络架构是通过消耗点云进行分类的,因此,先将模型进行点云化处理,并且将点云化后的模型进行采样,如图4左,图5左所示。采样点的个数为n个。为了很好地保留模型的全部特征,这里采用蒙特卡罗随机采样方法进行采样。点云将随机的分布在采样的模型上,采样点的个数越多,结果就越接近真实的值,表达模型的特征就越多。

图4 飞机模型处理前后对比Fig.4 Comparison of Airplane Model Before and After Processing

图5 椅子模型处理前后对比Fig.5 Comparison of Chair Model Before and After Processing

该网络架构需要的点的个数为1024个点,所以模型采样的点的个数n为1024个点。点云化采样后再将点云的n个点进行中心化和归一化处理,如图4右,图5右所示。将点云模型调整为中心在坐标原点位置,点云的坐标位置调整为[-1,1]范围内。将所得到的模型处理成这样的统一的标准格式,再将模型输入到提前训练好的网络架构中。

在神经网络中,中心化和归一化可以改善网络模型的效果,对点云数据进行中心化处理,能够增加基向量的正交性,归一化处理,加快了梯度下降的速度,能够加速权重的收敛,否则神经网络模型很难收敛甚至不能收敛。如果直接使用没有经过处理的原始的点云数据,将对结果有着不同程度的影响。

5 实验

5.1 训练过程

这里使用ModelNet40数据集来训练网络架构,这个数据集中包含了40个类别的12311个CAD模型,每一个类别都有相应的标签。将这些文件输入到网络中进行训练和测试。实验结果表明,经过改进的网络可以实现和现有模型准确率相当,训练曲线和测试曲线更加接近的效果。这里用一台配有Intel Core i7-6850K CPU 处理器,32G 内存,2 块NVIDIA GTX 1080Ti GPU 来并行训练网络,并运行在Ubuntu 18.0,Python 3.6,TensorFlow1.8.0,CUDA 9.0 深度学习环境下。在该计算机下运行3h14min,经过77310步迭代,随着迭代步数的增加,准确率逐渐增大,在训练集下准确率达到96.88%,如图6所示。交叉熵损失随着迭代步数的增加,交叉熵损失越来越小,如图7、图8所示。交叉熵损失越小表示预测的结果与实际的偏差越小。随着训练步数的增加,学习率以一定的衰减率逐渐减小,如图9、图10所示。

图6 准确率Fig.6 Accuracy

图7 GPU0交叉熵损失Fig.7 GPU0 Cross Entropy Loss

图8 GPU1交叉熵损失Fig.8 GPU1 Cross Entropy Loss

图9 衰减率Fig.9 Decay Rate

图10 学习率Fig.10 Learning Rate

5.2 实验结果及分析

这里使用ModelNet40数据集中的测试集评估该网络,评估结果,如表1所示。评估各类别的准确率,如表2所示。

表1 评估结果Tab.1 Evaluation Results

表2 室内模型的准确率Tab.2 Accuracy of Indoor Model

在ModelNet40数据集下,点的个数对这里网络架构的准确率影响不大,在128个点以上可以将准确率保证在0.8以上,表明该网络架构的鲁棒性很好,有较强的学习能力,可以稳健的学习,如图11所示。

图11 不同点的个数准确率(鲁棒性)Fig.11 Number Accuracy of Different Points(Robustness)

这里通过识别自建的CAD三维模型进行数据处理后得到以下的点云和识别结果,如图12所示。汽车、飞机和椅子的标签分别为7,0,8,当预测标签和当前标签一致说明准确的识别。

图12 数据的分类效果Fig.12 Data Classification Effect

6 结论

这里采用了直接消耗点云在欧式空间中进行深度学习的网络架构,该网络架构与其他方法相比降低了数据的计算量,降低计算的时间复杂度。经过调整,此架构通过分层神经网络,利用变尺度邻域捕获更多细节来解决局部捕获能力。实验结果表明,调整后的网络架构在准确率相当的情况下,训练曲线和测试曲线的准确率更加接近,拟合程度更好。并且,该网络架构对点的数量不敏感,具有较好的鲁棒性,可以稳健的学习点云的特征,对获取到的点云数据测试也达到了预期的效果。

猜你喜欢
特征提取架构准确率
基于FPGA的RNN硬件加速架构
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
功能架构在电子电气架构开发中的应用和实践
基于Daubechies(dbN)的飞行器音频特征提取
高速公路车牌识别标识站准确率验证法
LSN DCI EVPN VxLAN组网架构研究及实现
Bagging RCSP脑电特征提取算法
一种基于FPGA+ARM架构的μPMU实现