摘 要:批量再制造加工过程中废旧机械零件种类繁多,同类零件区分度低且损伤状态不确定,导致对其在线识别与分类的精度较低,为此本文提出一种结合聚类算法和深度学习网络的废旧机械零件三维点云模型分类方法。首先提取废旧机械零件的三维点云空间特征,根据距离函数计算样本点与中心点的距离,并建立基于K-Means聚类的废旧机械零件簇三维点云分类模型;然后构建空间变换网络和多层感知器,采用Point-Net网络建立同簇废旧机械零件的三维点云精细分类模型。实例验证结果表明,本文方法对废旧机械零件簇的分类准确率为100%,对盘盖、箱体、轴等3种废旧机械零件的精细分类准确率分别为97.78%、98.24%和97.11%,并且与K-Means聚类算法以及基于其他3个主流深度学习网络的分类模型相比,本文方法在同簇废旧机械零件精细分类的精度上具有明显优势。
关键词:废旧机械零件;三维点云;模型分类; K-Means; Point-Net;深度学习;再制造;
Remanufacturing oriented classification method for 3D point cloud models of retired
mechanical parts
Xia Xuhui Xia Tian Zhang Zelin Yan Xuguo Wang Lei
Key Laboratory of Metallurgical Equipment and Control of Ministry of Education, Wuhan University
of Science and Technology Hubei Key Laboratory of Mechanical Transmission and Manufacturing
Engineering, Wuhan University of Science and Technology Precision Manufacturing Institute,
Wuhan University of Science and Technology
Abstract:
In the process of batch remanufacturing, there are a large variety of retired mechanical parts, and the accuracy of online recognition and classification of similar parts is low due to their low discrimination and uncertain damage state. Therefore, this paper presented a 3 D point cloud model classification method for retired mechanical parts using clustering algorithm and deep learning network. Firstly, the 3 D point cloud spatial characteristics of retired mechanical parts were extracted, and the distance between sample point and center point was calculated according to the distance function, and the 3 D point cloud classification model of retired mechanical part families based on K-Means algorithm was established. Then spatial transformation network and multi-layer perceptron were constructed, and the 3 D point cloud classification model of mechanical parts in the same family was established by using Point-Net network. Experimental results show that the accuracy of this method is 100% for the clustering of mechanical part families, and 97.78%, 98.24% and 97.11% for the precise classification of three types of retired mechanical parts, i.e. disk cover, box body and shaft, respectively. Compared with the classification models based on K-Means clustering and other three popular deep-learning networks, the proposed method has obvious advantage in classification precision of retired mechanical parts in the same family.
Keyword:
retired mechanical part; 3D point cloud; model classification; K-Means; Point-Net; deep learning; remanufacturing;
我国机械产品及其零部件的应用量大且面广,目前很多产品已进入报废高峰期,对其进行再制造是实现节能、环保、可持续发展的重要途经[1]。为了提高废旧机械零件的再制造效率和效益,批量化流水线再制造加工是必然发展趋势,而其前提是对废旧机械零件的精确识别与分类。废旧机械零件种类繁多,同类零件外形相似、区分度较低,且损伤区域、类型和程度具有不确定性,导致批量化在线识别与分类精度达不到生产要求,亟需探索适用于流水线加工的高效、高精度废旧机械零件分类方法。
目前机械零件的自动分类主要采用机器视觉技术[2],根据零件的二维图像[3]和三维模型[4]等进行。近年来,三维点云技术在目标轮廓信息实时获取、分析、识别与分类领域应用广泛[5,6,7],且众多研究表明,基于三维点云模型的分类精度普遍优于根据二维图像的分类精度[8,9,10],因此三维点云技术是提高再制造加工流水线上废旧机械零件分类精度的有效手段。现有研究中三维点云分类技术主要包括以下3类:①截取多视角三维点云模型视图,提取特征参数并建立目标分类模型。例如,佟国峰等[11]针对室外大场景提出一种兼顾快速性与准确性的三维点云分类算法,通过提取不同物体点云的垂直方向切片采样直方图和质心距直方图以及点云的二维投影图像方向的梯度直方图特征实现室外点云分类;Balado等[12]将点云转换为图像,使用卷积神经网络对城市对象进行自动分类,但该方法依赖于对目标二维图像有效特征的提取和筛选,其适应性较差。②采用聚类算法直接提取三维点云模型特征进行分类。例如,李真等[13]通过计算高度和强度直方图确定K值和初始聚类中心点,用高度距离做聚类分析,实现单株树木原始三维点云数据聚类;马京晖等[14]提出一种改进的K-Means算法,对密集的点云进行冗余数据去除,对稀疏的点云数据则进行三角形插值计算,使分类更精确,该方法分类速度快,适用于差异性较大的目标分类任务。③利用深度学习方法直接提取三维点云模型的全局特征进行分类。例如,任永梅等[15]采用密度网格法将点云图像转换为体素网格图像作为3DCNN的输入对象,然后设计了6层3DCNN来提取体素网格图像的高级特征以捕获结构信息,并利用Softmax函数得到最终分类结果;孙一珺等[16]提出了加权点云分类网络WDGCNN,利用特征拼接来优化网络结构,实现多级特征融合,通过设计合适的权重函数来削弱远点的干扰并相对加强近点特征,并将最大池化和平均池化相结合以弥补单独使用最大池化造成的全局信息损失;王旭娇等[17]在Point-Net模型中插入一个KNN图层,通过在点云空间构造k近邻图,利用图结构有效获取点云的局部信息,从而提高整体点云分类准确率,该方法分类精度较高且适用较广。
针对再制造加工流水线中批量废旧机械零件种类繁多、形状各异等特性,本文提出一种结合K-Means聚类和Point-Net深度学习网络的三维点云分类方法。首先采用K-Means算法对差异性较大的废旧机械零件簇进行三维点云分类,以提高分类效率;然后针对同簇废旧机械零件因外形相似故而区分度较低并且损伤区域、类型和程度不确定等问题,采用Point-Net网络对同簇零件进行三维点云深度分类,以提高分类精度和适应性。
1 三维点云模型分类方法设计
本文方法的技术路线如图1所示。
1.1 基于K-Means聚类的废旧机械零件簇三维点云分类
1.1.1 三维点云模型的获取
点云是目标表面海量三维点的集合,包含了丰富的目标信息,如三维坐标(X,Y,Z)、颜色、分类值、强度值、时间等。点云的获取有3种方式:①通过三维激光扫描仪获取;②通过二维影像进行三维重建,在重建过程中获取;③通过三维模型的计算来获取。点云数据作为三维扫描的结果,储存格式包括LAS、ASCII、PCD等。本文所用的点云数据是通过三维激光扫描仪对废旧机械零件扫描所得,并使用PyCharm软件对数据格式进行转换及保存。
1.1.2 废旧机械零件簇的三维点云模型分类
零件簇是指结构或工艺过程相似的零件集合,每一个零件都是该结构的具体实例,也是对结构的扩展。机械零件在服役过程中,因各种原因会受到不同程度的损伤,通过拆卸退役产品可得到废旧机械零件,对零件之间客观存在的相似性进行标识,按相似性准则分类而形成不同废旧机械零件簇。
面对特征差异性较大的废旧机械零件簇,K-Means聚类算法能以较少的时耗实现高精度分类。K-Means作为一种无监督分类算法,是将数据集聚类成k个簇C={C1,C2,…,Ck},最小化损失函数为:
E=∑ki=1∑x∈Ci∥x−μi∥2 (1)
式中:μi为簇Ci的中心,即μi=1|Ci|∑x∈Cix。
基于K-Means的三维点云模型聚类算法具体步骤如下:
(1) 定义目标聚类数k;
(2) 随机初始化k个聚类中心{μ1,μ2,…,μk};
(3) 计算所有样本点与各个簇中心之间的距离dist{x(i),μi},然后把样本点划入最近的簇中x(i)∈μnear;
(4) 根据簇中已有的样本点,重新计算各簇中心μi;
(5) 重复步骤3、步骤4,直至达到某个终止条件(最大迭代次数、最小误差变化等)。
本文通过轮廓系数确定k值,轮廓系数计算方法如下:
(1) 计算样本i到同簇内其他样本的平均距离ai,该值越小,表明样本i越应被聚类到该簇中,可以称ai为样本的簇内不相似度。簇C中所有样本的ai均值被称为簇C的簇不相似度。
(2) 计算样本i到其他簇Cj中所有样本的平均距离bij,称为样本i与簇Cj的不相似度。定义样本i的簇间不相似度为:
bi=min(bi1,bi2,⋯,bik) (2)
bi越大说明样本i越不属于其他簇。
(3) 根据样本i的簇内不相似度ai和簇间不相似度bi,定义样本i的轮廓系数:
s(i)=b(i)−a(i)max[a(i),b(i)] (3)
式(3)也可表示为:
s(i)=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪1−a(i)b(i),若a(i)<b(i)0,若a(i)=b(i)b(i)a(i)−1,若a(i)>b(i) (4)
根据式(4)可以判断:s(i)越接近1,则样本i聚类越合理;s(i)越接近-1,则样本i更适合聚到其他类;s(i)越接近0,则说明样本i在两个簇的边界上。
在固定的k值上多次执行聚类,求取轮廓系数的均值,再依据上述判断准则选出合理的k值。
本文以废旧机械零件点云数据为输入,在选定k值后,通过不断提取每个点的空间特征,计算样本点与各个簇中心之间的距离,构建基于K-Means聚类的分类模型,完成废旧机械零件簇的分类。
1.2 基于Point-Net网络的同簇废旧机械零件三维点云分类
1.2.1 Point-Net网络结构及参数设计
随着深度学习技术的快速发展,出现了很多成熟的卷积神经网络模型,如LeNet、ResNet、AlexNet、VGG、Inception等,这些网络能从二维图像中提取相关特征信息以完成不同的学习任务。然而,面对点云这种无序、无规则的数据结构,以上网络难以直接进行卷积等操作,因此在数据处理过程中,研究人员通常会将点云数据转换为规则的数据结构,但这样不仅计算量大、耗时长,还会损失部分有效特征。Point-Net网络则开创性地将深度学习直接用于三维点云任务,与ResNet等网络的不同之处在于Point-Net网络可以直接处理无序点云数据,不需要将数据预处理为规则的格式,输入点云的顺序对网络的输出没有影响,并且其还可以处理旋转和平移后的点云数据。
Point-Net网络结构如图2所示,其主要部分包括:
(1)T-Net网络
Point-Net网络中共有两个T-Net网络:第一个T-Net网络是微型网络,用于生成一个仿射变换矩阵,对点云的旋转、平移等进行规范化处理;第二个T-Net网络主要完成特征空间的对齐和变换处理。
(2)多层感知器(multilayer perceptron, MLP)
MLP是通过共享权重的卷积实现的,第一层卷积核大小是1×3,之后的每一层卷积核大小都是1×1,即特征提取层只是将每个点连接起来。
(3)Max pooling对称函数
设计Point-Net网络时,需要使其能够根据点云数据以不同顺序提取相同的空间特征,即具有置换不变性,能实现该功能的是最大池化层:Max pooling。
Point-Net网络输入均匀采样后的点,在第一个空间变换网络和多层感知器中对齐点云并提取64维特征,在第二个空间变换网络和多层感知器中对齐64维特征并提取1024维特征,然后通过Max pooling函数变换成1×1024的全局特征,再经过一个感知器进行学习,得到每个类别的得分。
超参数的设定对神经网络的训练以及分类结果有较大影响,本文总体调参过程分为以下几个部分:①根据神经网络的机理确定激活函数的种类,然后确定代价函数种类、权重初始化的方法和输出层的编码方式;②根据“宽泛策略”先大致搭建一个简单的结构,确定神经网络中隐层的数目以及每一个隐层中神经元的个数;③对于剩下的超参数先随机给定一个可能的值,在代价函数中先不考虑正则项的存在,调整学习率得到一个较为合适的学习率阈值,取阈值的一半作为学习率初始值;④通过实验确定小批量数据的大小;⑤调整学习速率,根据确定的学习速率用验证数据来选择合适的正则化参数,返回再重新优化学习速率。学习的回合数则在上述实验后进行整体观察再确定。
本文构建Point-Net网络模型完成废旧机械零件的精细分类,根据其在训练集上的分类效果以及上述调参方法选择出最合适的超参数:初始学习率为0.001,学习回合数为100,批量大小为16,衰减率为0.8,正则化参数为0.5,激活函数为Relu函数,代价函数为交叉熵函数,权重初始化方法为批量标准化,输出层采用Softmax函数,编码方式为向量式。
1.2.2 同簇废旧机械零件三维点云模型分类
综上,基于Point-Net的同簇废旧机械零件三维点云分类方法如图3所示。将零件点云数据作为网络输入,首先进行T-Net仿射变换(即乘以3×3的转换矩阵),之后通过卷积层进行特征提取,对每一个点均提取1024维特征(n×1024),再经过最大池化(Max pooling)变成1×1024的全局特征,然后分别连接3个全连接层,输出节点个数依次为512、256、k;最后使用Softmax函数得到分类结果。
2 案例分析
2.1 废旧机械零件簇分类实验
本文所用实验平台为配置2.60 GHz CPU、8 GB内存、Windows10操作系统的PC机。废旧机械零件点云数据通过SIMSCAN便携式三维扫描仪获得,并采用软件PyCharm编程实现点云数据空间特征的提取,通过不断计算欧氏距离完成三维点云模型初步分类。
选定常用的盘盖、箱体、轴这3种废旧机械零件簇作为实验对象,同时将各零件簇进一步细分为3小类。盘盖零件簇细分为齿轮、端盖和法兰盘;箱体零件簇细分为齿轮泵体、传动箱体和阀体;轴零件簇细分为阶梯轴、曲轴和凸轮轴。每小类包含400个零件,共计3600个模型,所有数据分别保存于对应文件夹中,部分零件的三维点云数据如图4所示。
为实现废旧机械零件簇的快速准确分类,将以上数据集输入基于K-Means聚类的分类模型中,根据轮廓系数选取k=3,重复测试5次,计算得到盘盖、箱体、轴这3种废旧机械零件簇的平均识别精度均为100%,表明采用K-Means聚类方法可准确识别具有较大差异的废旧机械零件簇的三维点云模型。
2.2 同簇废旧机械零件分类实验
同一簇内的废旧机械零件在外形和尺寸上具有一定的相似性,对其在线识别的难度有所提高。从每种同簇废旧机械零件中随机选取80%点云模型作为训练集,20%点云模型作为测试集,重复进行10次,将得到的数据集分别输入基于Point-Net的三维点云分类模型进行实验,结果如表1所示,可以看到,3种零件的测试集分类准确率平均值都在97%以上。
2.3 与其他分类方法的比较
为验证本文方法在同簇废旧机械零件分类上的优越性,将其与K-Means聚类方法以及采用其他深度学习模型的3种方法进行对比分析,以分类准确率和平均总时耗作为评价指标,其中平均总时耗包括数据集制作时间和模型运行时间。
2.3.1 K-Means聚类方法
采用1.1.2节提出的K-Means聚类模型以及2.2节实验数据集进行对比实验,将同簇废旧机械零件的点云数据分别输入K-Means模型中,通过轮廓系数选定k=3,然后提取点云的空间特征,不断计算样本点与中心点的距离,实现对同簇废旧机械零件的细分类,重复实验5次,统计评价指标平均值。
2.3.2 基于其他深度学习模型的分类方法
选用3种主流深度学习模型(AlexNet、Inception-v3和LeNet-5)[18],通过CATIA软件截取每个废旧机械零件三维点云模型的10个不同视角的图像,共计有3600个点云模型、36 000张图像作为对比实验数据集,采用1.2.1节中神经网络超参数调整方法确定3种模型的超参数。
AlexNet深度学习模型共有8层网络结构,前5个为卷积层,后3个为全连接层,其中前2层卷积和第5层卷积后均连接池化层,每个卷积层都采用ReLU激活函数。
Inception-v3深度学习模型先设置3个卷积层,连接1个池化层;再设置2个卷积层,连接1个池化层;最后连接11个混合层。使用2个3×3卷积核代替5×5卷积核、3个3×3卷积核代替7×7卷积核,以减少参数量、加快计算速度。
LeNet-5深度学习模型由输入层、2个卷积层、2个池化层和3个全连接层构成,每层都包含不同数量的训练参数。
3种深度学习模型均采用迁移学习的方法,通过ImageNet数据集训练好模型,保留参数,替换最后一层全连接层,再对同簇废旧机械零件图像数据集进行分类测试。
2.3.3 对比实验结果分析
对比实验结果如表2所示。K-Means模型处理特征差异性较大的废旧机械零件簇时能实现高效而精确的分类,但处理特征差异性较小的同簇废旧机械零件时表现较差,分类准确率最高为80.12%、平均为77.14%,虽然总时耗较低,但分类准确率无法达到要求;采用主流深度学习模型时,Inception-v3的分类精度较高,平均准确率为97.06%,AlexNet次之,LeNet-5相对较差,但分类准确率均达到了90%以上,这些方法出现分类错误的主要原因是在截取多视角图像过程中容易损失零件的有效特征,从而影响分类结果,另外,采用Inception-v3和AlexNet网络的方法在构建图像数据集和训练模型时需要消耗大量时间,因此分类效率较低,虽然基于LeNet-5模型的方法耗时略少,但是分类精度不足;采用Point-Net深度学习模型的平均分类精度可达97.71%,最高可达98.24%,该方法以无序点云数据为输入,直接提取点云数据的全局特征,最大程度保留了其有效特征信息,降低了总时耗,提高了分类效率,并且在分类精度上要优于4种对比方法。
2.3.1 K-Means聚类方法
采用1.1.2节提出的K-Means聚类模型以及2.2节实验数据集进行对比实验,将同簇废旧机械零件的点云数据分别输入K-Means模型中,通过轮廓系数选定k=3,然后提取点云的空间特征,不断计算样本点与中心点的距离,实现对同簇废旧机械零件的细分类,重复实验5次,统计评价指标平均值。
2.3.2 基于其他深度学习模型的分类方法
选用3种主流深度学习模型(AlexNet、Inception-v3和LeNet-5)[18],通过CATIA软件截取每个废旧机械零件三维点云模型的10个不同视角的图像,共计有3600个点云模型、36 000张图像作为对比实验数据集,采用1.2.1节中神经网络超参数调整方法确定3种模型的超参数。
AlexNet深度学习模型共有8层网络结构,前5个为卷积层,后3个为全连接层,其中前2层卷积和第5层卷积后均连接池化层,每个卷积层都采用ReLU激活函数。
Inception-v3深度学习模型先设置3个卷积层,连接1个池化层;再设置2个卷积层,连接1个池化层;最后连接11个混合层。使用2个3×3卷积核代替5×5卷积核、3个3×3卷积核代替7×7卷积核,以减少参数量、加快计算速度。
LeNet-5深度学习模型由输入层、2个卷积层、2个池化层和3个全连接层构成,每层都包含不同数量的训练参数。
3种深度学习模型均采用迁移学习的方法,通过ImageNet数据集训练好模型,保留参数,替换最后一层全连接层,再对同簇废旧机械零件图像数据集进行分类测试。
2.3.3 对比实验结果分析
对比实验结果如表2所示。K-Means模型处理特征差异性较大的废旧机械零件簇时能实现高效而精确的分类,但处理特征差异性较小的同簇废旧机械零件时表现较差,分类准确率最高为80.12%、平均为77.14%,虽然总时耗较低,但分类准确率无法达到要求;采用主流深度学习模型时,Inception-v3的分类精度较高,平均准确率为97.06%,AlexNet次之,LeNet-5相对较差,但分类准确率均达到了90%以上,这些方法出现分类错误的主要原因是在截取多视角图像过程中容易损失零件的有效特征,从而影响分类结果,另外,采用Inception-v3和AlexNet网络的方法在构建图像数据集和训练模型时需要消耗大量时间,因此分类效率较低,虽然基于LeNet-5模型的方法耗时略少,但是分类精度不足;采用Point-Net深度学习模型的平均分类精度可达97.71%,最高可达98.24%,该方法以无序点云数据为输入,直接提取点云数据的全局特征,最大程度保留了其有效特征信息,降低了总时耗,提高了分类效率,并且在分类精度上要优于4种对比方法。
参考文献
[1] 王蕾,郭钰瑶,张泽琳,等.再制造服务的广义内涵、研究现状与发展趋势[J].机械工程学报,2021,57(7):138-153.
[2] 戴福全,刘路杰.基于视觉引导的机器人抓取分类系统设计[J].福建工程学院学报,2020,18(6):530-534.
[3] 卜伟,徐显兵,肖江剑,等.基于图像边缘特征的零件分类与定位算法[J].计量与测试技术,2018,45(9):52-55.
[4] 孙晓龙,张志鹏,计效园,等.法向算子和D2算子相结合的铸件三维模型分类算法[J].中国机械工程,2020,31(22):2655-2662.
[5] 张瑞宾,郭应时,陈元华,等.基于路侧激光雷达的城市交叉口目标识别技术[J].传感器与微系统,2020,39(12):32-35.
[6] 韩姗姗,黄远程,白穆.基于DGCNN语义分割的倾斜摄影测量三维点云建筑物分类[J].测绘标准化,2020,36(3):21-26.
[7] 王宝乐,霍占强.基于MANet的三维点云特征提取方法研究[J/OL].计算机工程与应用,2021:1-10[2021-08-16].
[8] Guo R,Zhou Y,Zhao J Q,et al.Unsupervised spatial-awareness attention-based and multi-scale domain adaption network for point cloud classification[J].International Journal of Wavelets,Multiresolution and Information Processing,2021,19(4):2150007.
[9] Wang Y C,Cao J M,Li Y Y,et al.APM:adaptive permutation module for point cloud classification[J].Computers & Graphics,2021,97(6):217-224.
[10] Guo R,Zhou Y,Zhao J Q,et al.Point cloud classification by dynamic graph CNN with adaptive feature fusion[J].IET Computer Vision,2021,15 (3):235-244.
[11] 佟国峰,杜宪策,李勇,等.基于切片采样和质心距直方图特征的室外大场景三维点云分类[J].中国激光,2018,45(10):156-164.
[12] Balado J,Sousa R,Díaz-Vilario L,et al.Transfer learning in urban object classification:online images to recognize point clouds[J].Automation in Construction,2020,111:103058.
[13] 李真,汪沛,张青.树干与地面点云分类K-means方法的改进[J].东北林业大学学报,2019,47(1):41-46.
[14] 马京晖,潘巍,王茹.基于K-means聚类的三维点云分类[J].计算机工程与应用,2020,56(17):181-186.
[15] 任永梅,杨杰,郭志强,等.基于三维卷积神经网络的点云图像船舶分类方法[J].激光与光电子学进展,2020,57(16):230-238.
[16] 孙一珺,胡辉.基于动态图卷积的加权点云分类网络[J/OL].计算机工程与应用,2021:1-8.[2021-06-11].
[17] 王旭娇,马杰,王楠楠,等.基于图卷积网络的深度学习点云分类模型[J].激光与光电子学进展,2019,56(21):56-60.
[18]苏赋,吕沁,罗仁泽基于深度学习的图像分类研究综述[J].电信科学,2019,35(11):58-74.