1. 引言
点云(Point Cloud)是由一组三维点坐标构成的数据集合,用于描述物体或场景的三维形状和几何特征。相比于二维图像,三维点云包含更丰富的空间结构信息,已被广泛应用于诸多领域。点云分类是三维点云处理的重要环节,也是目前研究的热点方向。
在点云分类问题中,使用有效的分类器对基于三维点云提取的特征进行分类是关键。基于机器学习的点云分类方法首先需要通过法线估计、体素化或三维特征描述子等方法提取点云特征,然后选择分类模型学习点云特征并进行分类。方莉娜等 [1] 首先提取道路标线点云特征,然后使用支持向量机(Support Vector Machines, SVM)进行道路标线点云粗分类,最后使用图匹配方法对粗分类结果进行优化,完成了道路标线点云的精确分类。Raktrakulthum等 [2] 采用低成本视觉系统获取车辆点云,并提取其视点特征直方图(Viewpoint Feature Histogram, VFH)特征作为分类器的学习特征,然后使用SVM和kNN进行车辆点云分类。胡海瑛 [3] 等分别提取地物点云的点基元特征和对象基元特征,并结合点云色彩信息,得到多基元融合特征向量,然后采用随机森林(Random Forest, RF)进行地物点云分类。Bassier等 [4] 从点云中预分割出一组平面基元,在保持准确性的同时显著减少了数据量,然后提取平面基元的上下文特征和几何特征,并采用RF完成建筑目标点云分类。
具有判别性的点云特征能够提高点云分类精度的上限,而使用有效的分类器能够逼近这个上限。单一模型的分类性能有限,并且泛化能力较弱。相反的,集成模型具有较强的泛化性能,其通过结合多个基分类器的分类结果来降低误差,从而获得比单一模型更可靠和精确的分类结果。
基于此,本文首先使用三维点云预处理技术进行三维工件点云预处理,以获得目标工件点云,然后提取工件点云特征,最后使用随机森林对工件点云进行分类,并获得了较优的分类结果。
2. 由深度图像和彩色图像获取彩色三维工件点云
本文使用T-LESS数据集 [5] 进行三维工件点云分类实验。该数据集由Kinect v2采集,提供了对齐后的训练集和测试集多视角的工件深度图像、工件彩色图像以及相机内参矩阵。该数据集中的工件没有明显的纹理和颜色区别,并且部分工件在形状或大小上具有相似性,使得三维工件点云分类具有一定的难度。
本文由深度图像获取三维工件点云,其中涉及到像素坐标系到相机坐标系的转换过程。假设深度图像中的某个像素点p的坐标为
,其对应的相机坐标为
,转换关系如下:
(1)
式中,等式右侧的系数矩阵为相机内参矩阵,
,
,f是相机焦距,
和
是像素的实际物理大小,
和
是图像的中心像素坐标与原点像素坐标之间相差的横向和纵向像素数。整理公式(1)可得:
(2)
如图1所示,根据公式(2)可由深度图像获得无色工件点云,进一步根据深度图像与彩色图像的像素对应关系可以获得彩色工件点云。
3. 三维工件点云预处理
获得工件点云后,需要进行点云预处理工作。本文的工件点云预处理流程如图2所示。
![](//html.hanspub.org/file/6-2610410x23_hanspub.png?20240514083341148)
Figure 2. Preprocessing process of workpiece point cloud
图2. 工件点云预处理流程
3.1. 去除无关点云
训练集和测试集工件点云中包含与分类无关的背景点云和载物平台点云。如图1(c)所示,训练集工件点云与载物平台点云颜色差异较大,本文通过设置颜色阈值去除训练集中的载物平台点云。假设原始点云为P,去除载物平台点云后的训练集工件点云
如公式(3)所示:
(3)
式中,
,
,
为点
的颜色分量,C为颜色阈值。通过对每个点的颜色分量进行求和,从而保留总和大于阈值C的点。训练集无关点云去除结果如图3所示,图3(b)中的红色点云为需要去除的载物平台点云。
![](//html.hanspub.org/file/6-2610410x31_hanspub.png?20240514083341148)
(a) 原始点云 (b) 去除结果
Figure 3. Training set irrelevant point cloud removal results
图3. 训练集无关点云去除结果
测试集工件点云中除了包含载物平台点云外,还包含背景点云。由于背景点云距离载物平台点云主体较远,本文使用直通滤波算法去除背景点云。直通滤波算法通过设置三个空间坐标轴上的阈值,以保留阈值内的点,如公式(4)所示:
(4)
式中,x,y,z为点的坐标值,xmin,xmax,ymin,ymax,zmin,zmax是三个空间坐标轴上的阈值。
测试集载物平台点云的颜色不一致,部分区域与工件点云颜色差异较小。本文首先使用随机抽样一致性(Random Sample Consensus, RANSAC) [6] 算法拟合载物平台点云平面,从而去除载物平台点云,然后结合点颜色信息去除未拟合到平面内的无关点。
随机抽样一致性(RANSAC)算法的主要思想是寻找模型去拟合数据。该算法使用满足条件的少量数据去获取一个初始解并使用一致性数据去扩大他。算法具体步骤如下:
步骤1:在测试集点云中随机选择n个点,计算这n个点所在平面的近似方程
,并通过公式(5)计算点
到该平面的距离
,
,N为点云中点的数量;
(5)
步骤2:设置距离阈值d,并将
的点视为平面内的点,反之为平面外的点;
步骤3:重复上述步骤,得到包含点数量最多的点云平面;
步骤4:对于包含点数量最多的点云平面重新进行平面拟合,得到最终拟合的点云平面。
测试集无关点云去除结果如图4所示,图4(b)中的蓝色点云为背景点云,图4(d)中的绿色点云为未拟合到载物平点云平面内的无关点。
![](//html.hanspub.org/file/6-2610410x40_hanspub.png?20240514083341148)
(a) 原始点云 (b) 背景点云去除结果
(c) 载物平台点云去除结果 (d) 载物平台点云去除结果
Figure 4. Test set irrelevant point cloud removal results
图4. 测试集无关点云去除结果
3.2. 基于半径滤波和统计滤波算法的三维工件点云去噪
由于设备精度等影响,工件点云中存在噪声点,从而影响特征提取过程,降低分类精度。本文结合半径滤波算法和统计滤波算法进行工件点云去噪。
半径滤波算法通过设置邻域半径r和邻域内点的数量n两个阈值,将邻域半径r内点的数量小于n的点视为离群点并去除。半径滤波后的点云
如公式(6)所示:
(6)
式中,
为点
邻域半径r内点的个数。
统计滤波算法假设所有点距其k近邻点距离总和的均值服从高斯分布,通过公式(7)计算点云中每个点距其k个近邻点距离和的均值
,通过公式(8)计算
的均值
与标准差
,将
的值在
范围外的点视为离群点并去除,s表示剔除尺度。
(7)
(8)
本文结合半径滤波算法和统计滤波算法进行工件点云去噪,去噪效果如图5所示。
3.3. 基于DBSCAN算法的测试集三维工件点云分割
本文的三维工件点云分类在分割的基础上完成。由于测试集场景由多个工件点云组成,本文采用应用于具有噪声的基于密度的空间聚类(Density Based Spatial Clustering of Application with Noise, DBSCAN) [7] 算法对测试集工件点云进行分割,以得到目标工件点云。
DBSCAN算法的主要思想是在点云中任选一点
作为初始聚类点,若该点邻域半径r内点的数量不小于阈值n,则点
被定义为核心点,通过不断搜索核心点邻域半径r内的点来丰富该簇,直到没有新的点加入该簇,然后遍历点云中未被访问的点来完成其他簇的聚类,直到所有点均被访问,则聚类结束,完成点云聚类分割。测试集工件点云分割结果如图6所示,不同颜色代表分割出来的不同簇。
![](//html.hanspub.org/file/6-2610410x59_hanspub.png?20240514083341148)
![](//html.hanspub.org/file/6-2610410x58_hanspub.png?20240514083341148)
(a) 原始点云 (b) 半径滤波结果 (c) 统计滤波结果
Figure 5. Workpiece point cloud denoising results
图5. 工件点云去噪结果
![](//html.hanspub.org/file/6-2610410x61_hanspub.png?20240514083341148)
(a) 测试集工件点云 (b) 分割结果![](//html.hanspub.org/file/6-2610410x63_hanspub.png?20240514083341148)
(c) 测试集工件点云 (d) 分割结果
Figure 6. Test set workpiece point cloud segmentation results
图6. 测试集工件点云分割结果
3.4. 三维工件点云精简及特征提取
为了提高特征提取算法的运行速度,对于每个训练集工件点云和分割后的测试集工件点云,本文随机保留其中的1024个点,以缩小点云数据量。
完成点云精简后,本文提取工件点云的形状函数集合(Ensemble of Shape Functions, ESF) [8] 特征作为基分类器的学习特征。ESF特征共640维,由3种不同的形状函数组合而成,用于描述点云的距离、角度和面积等属性,具有较强的判别性。
4. 实验及结果分析
本文在T-LESS数据集中的10个测试集场景上进行工件点云分类实验。首先提取训练集和测试集工件点云的ESF特征,然后使用随机森林(RF)学习训练集工件点云特征,最后使用RF对测试集工件点云进行分类。
为了验证随机森林模型的分类性能,本文采用支持向量机(SVM)进行对比分析。两种分类模型分别在训练集工件点云特征上进行5折交叉验证网格调参。评价指标为分类总体精度(Overall Accuracy, OA),总体精度是被正确分类的样本数和样本总数的比值,可以直观体现模型的分类性能。分别采用RF和SVM对10个测试集场景的三维工件点云进行分类,分类总体精度如图7所示。
![](//html.hanspub.org/file/6-2610410x64_hanspub.png?20240514083341148)
Figure 7. Accuracy of workpiece point cloud classification (%)
图7. 工件点云分类准确率(%)
图7对比了随机森林和SVM两种模型在10个测试集场景上的分类总体精度。除了场景4外,随机森林的总体精度均高于SVM,平均每个测试集场景,随机森林的总体精度比SVM高3%。此外,随机森林在5个测试集场景的工件点云分类总体精度高于90%,最高可达95.1%,而SVM仅有3个测试场景的分类总体精度高于90%。综上所述,在三维工件点云分类问题中,集成学习模型更具优势。
5. 结论
针对三维工件点云分类问题,本文首先由深度图像和彩色图像获取彩色三维工件点云;然后,对工件点云进行预处理:1) 采用直通滤波算法和随机抽样一致性算法(RANSAC)去除无关点云。2) 结合半径滤波算法和统计滤波算法进行工件点云去噪。3) 采用应用于具有噪声的基于密度的空间聚类(DBSCAN)算法对测试集工件点云进行分割。4) 随机保留工件点云中不重复的1024个点,以减少数据量。5) 提取工件点云的形状函数集合(ESF)特征;最后,使用随机森林进行工件点云分类。将随机森林与SVM进行对比实验。实验结果表明,相比于单一模型,集成模型工件点云分类性能更优,分类总体精度更高。
基金项目
辽宁省高等学校优秀科技人才支持计划(LR15045);辽宁省教育厅科学研究经费面上项目(LJKZ0139)。