发明内容
本发明目的是:根据模型预测的打磨轨迹实现焊缝的自动化打磨。
为了达到上述目的,本发明的技术方案是提供了一种基于一维分割网络的充电设施箱体焊缝打磨方法,其特征在于,包括以下步骤:
步骤1、对一维分割网络进行训练,包括以下步骤:
步骤101、利用激光传感器对已知焊缝轨迹的设施垂直地面进行扫描,各扫描线与地面呈平行线,从而以平行扫描线的方式完成扫描,每一次扫描得到一个切面,每个切面为一条曲线,该曲线为设施的外部轮廓线,曲线由多个点组成,按扫描顺序组合这些切面即得到由多个切面按序组合构成的设施3D轮廓,即得到设施的3D空间点云数据;将收集到的3D点云数据绘制成3D图像,在3D图像中点击焊缝两端形成两个标注点,保存两个标注点的位置坐标,即为人工标注的焊缝遮罩,标注数据用于作为一维分割网络训练的真实值,其中,3D点云数据中位于两个标注点之间的点的标注值为1,两个标注点之外的点的标注值为0,由完成标注的所有3D点云数据组成训练数据集;
步骤102、对原始采集得到的3D空间点云数据进行水平翻转,以达到扩充输入数据集的效果;对由原始数据和过水平翻转的数据组成的训练集数据进行归一化处理,使训练集数据的特征分布趋于一致,加速一维分割网络的收敛,达到更好的训练效果;对归一化后的点云数据进行裁剪和填充到固定大小m;
步骤103、构建一维分割网络,并利用步骤102得到的训练集数据对一维分割网络进行训练,模型的计算步骤如下:
一维分割网络中包括编码部分以及解码部分,其中:
编码部分包括多个特征提取模块和多个下采样模块,每个特征提取模块后接一个下采样模块:
下采样模块是一个一维卷积,该一维卷积的卷积核大小N=3,步幅S=2,填充P=1,每个下采样模块的输出维度hout可用下式表示:
上式中,d为当前下采样模块输入数据的维度;
特征提取模块由一维卷积、组归一化和线性整流激活函数组成,特征提取模块使用了由三个大小为1的一维卷积核组成的一维卷积层一和由三个大小为3的一维卷积核组成的一维卷积层二,一个一维卷积层一后连接三个一维卷积层二,在连接各一维卷积层二时采用跳跃连接策略,每一个卷积操作后都有一个组归一化层和激活层,组归一化层连接在卷积层后,激活层连接在组归一化层后,每个层的输出即为下一层的输入。其中,组归一化函数和激活层所用激活函数可表示为下式:
T(x)=ReLU(x)=max(0,x)
x表示本层的输入数据;μ表示输入数据x的期望;σ表示标准差;∈为一个接近0的常数,为避免标准差v=0时出现计算错误;γ和β分别表示可学习的每通道仿射变换参数向量,其向量维度与通道数相同;F(x)表示组归一化层函数;T(x)、ReLU(x)表示激活层函数;
编码过程中首先将大小为n×1×m的数据输入一维分割网络,n表示一维分割网络一次输入n个切面的点云数据,m为输入数据的维度,在本发明里表示一个输入数据的点数。通过特征提取模块和下采样模块将原始输入的n×1×m的数据编码为设定大小的特征矩阵;
对于解码部分,通过连接编码部分中各特征提取模块的输出,对不同的特征提取模块进行通道扩张和上采样,随后将各特征提取模块的输出进行对应元素相加,其中,通过核大小为1的一维卷积层对特征提取模块的输出数据进行通道扩张,然后进行通过线性插值算法进行上采样,得到输出数据I;
通过一个一维卷积层和Sigmoid激活函数将输出数据I压缩到原始输入数据大小n×1×m,即为模型的输出,表示各点包含在焊缝遮罩内的概率值;
在通过一维分割网络确定各点所对应的预测值后,对预测结果进行后处理,选择预测值大于设定值的点,这样的点构成多个段,选择其中最长的一段作为最终预测得到的焊缝遮罩,取焊缝遮罩的中间点作为最终打磨的轨迹点;
步骤2、机器人携带激光传感器,利用激光传感器对待进行焊缝打磨的目标设施垂直地面进行扫描,各扫描线与地面呈平行线,从而以平行扫描线的方式完成扫描,获得目标设施的3D空间点云数据;
步骤3、利用训练好的一维分割网络分割步骤2得到的3D空间点云数据,对3D空间点云数据中的每个数据点进行逐点分类,判断其是否属于焊缝遮罩,依序将属于焊缝遮罩的数据点连接成段,从所有段中选择最长的段作为预测的焊缝遮罩;对于个别偏离预测的焊缝遮罩的数据点,采用插值法对预测的焊缝遮罩进行替换;最后取预测的焊缝遮罩的中间点作为最终的轨迹点;
步骤4、将轨迹点发送至机器人控制器;
步骤5、按序组合各切面的轨迹点形成焊缝打磨轨迹,机器人沿焊缝打磨轨迹对目标设施进行焊缝打磨。
优选地,所述一维分割网络包括六个特征提取模块以及五个下采样模块,沿数据传输方向,将六个特征提取模块依序定义为第一个特征提取模块至第六个特征提取模块,将五个下采样模块依序定义为第一个下采样模块至第五个下采样模块,则沿数据传输方向第一个特征提取模块、第一个下采样模块、第二个特征提取模块、第二个下采样模块、第三个特征提取模块、第三个下采样模块、第四个特征提取模块、第四个下采样模块、第五个特征提取模块、第五个下采样模块及第六个特征提取模块依序连接。
优选地,设C1和C3分别表示卷积核大小为1和3的一维卷积层,U2和U4分别表示两倍和四倍上采样计算,分别用H1、H2、H3、H4表示第三个特征提取模块到第六个特征提取模块的输出特征图;将H1、H2、H3、H4分别输入卷积核大小为1的一维卷积层,得到D1、D2、D3、D4,从D4开始分别进行如下操作:
E1=C3(U2(U2(U2(D4)+D3)+D2)+D1)
E2=C3(U2(U2(D4)+D3)+D2)
E3=U2(C3(U2(C3(U2(D4)+3))))
E4=U2(C3(U2(C3(U2(C3(D4))))))
其中E1、E2、E3、E4表示四个经过上采样和卷积操作后的输出特征图,将E1、E2、E3、E4相加后输入四倍上采样层得到最后一层的输出数据I,即有I=U4(E1+E2+E3+E4)。
优选地,将所述一维分割网络的损失函数LCombined定义为:
LCombined=(1-α)LBCE+αLDice
式中:w代表切面点数;y
i表示第i个点的真实类别,进行模型训练时,该值为前文预先标注的值;
表示第i个点的预测类别,预测值
可视作一个概率值,表示第i个点包含在焊缝遮罩内的概率;α∈[0,1]为超参数,通常根据经验值设定设置,此处默认为0.5;L
BCE表示二元交叉熵损失函数;L
Dice表示Dice损失函数;L
Combined表示通过比例系数α进行组合后的损失函数,即本发明中所使用的损失函数。;
对一维分割网络进行训练时,通过随机梯度下降算法最小化损失函数LCombined,实现误差反向传播并更新一维分割网络的权值。
本发明提供的模型在分割点云数据上能实现较好的效果,在测试集上IoU指标达到85.1%,
TP、TN、FP、FN的定义由混淆矩阵给出,分别表示真阳性、真阴性、假阳性和假阴性的数量。根据模型预测结果可以实现焊缝全自动打磨,且能够更稳健高效地应对各种形状的焊缝,提高焊缝自动打磨的精度和效率。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
图1为本发明提供的一种基于一维分割网络的充电设施箱体焊缝打磨方法,包括以下步骤:
步骤1、对一维分割网络进行训练;
步骤2、机器人携带激光传感器,利用激光传感器对待进行焊缝打磨的目标设施进行以平行扫描线的方式进行扫描,获得目标设施的3D空间点云数据;
步骤3、利用训练好的一维分割网络分割步骤2得到的3D空间点云数据,对3D空间点云数据中的每个数据点进行逐点分类,判断其是否属于焊缝遮罩,依序将属于焊缝遮罩的数据点连接成段,从所有段中选择最长的段作为预测的焊缝遮罩。对于个别偏离预测的焊缝遮罩的数据点,采用插值法对该点的预测值进行替换。最后取预测的焊缝遮罩的中间点作为最终的轨迹点。
步骤4、将轨迹点发送至机器人控制器;
步骤5、按序组合各切面的轨迹点形成焊缝打磨轨迹,机器人沿焊缝打磨轨迹对目标设施进行焊缝打磨。
在上述步骤1中,对一维分割网络进行训练又分为三个步骤:数据采集、数据预处理以及模型训练,以下分别详细介绍这三个步骤的具体内容:
一)数据采集
数据采集的目的是形成用于训练一维分割网络的数据集,包括训练集以及测试集。本发明中,利用激光传感器对已知焊缝轨迹的设施进行线性扫描从而收集足够的3D点云数据。激光传感器对设施以平行扫描线的方式进行扫描,得到多个切面,通过距离与角度来计算出切面上每个点的二维坐标(x,z)。由于扫描方式为线性扫描,因此每一次扫描会得到一个切面,每个切面为一条曲线,该曲线为设施的外部轮廓线,按扫描顺序组合这些切面即得到多个切面按序组合构成设施3D轮廓,即得到3D空间点云数据。采用线性扫描的方式是为了后续能够训练一维分割网络来分割三维图像,减少网络参数。将收集到的3D点云数据绘制成3D图像,如图2所示,图2中的Y轴的值为扫描序号。在3D图像中点击焊缝两端形成两个标注点,保存两个标注点的位置坐标,即为所标注的焊缝遮罩,用于作为一维分割网络训练的真实值。3D点云数据中位于两个标注点之间的数据点的标注值为1,两个标注点之外的数据点的标注值为0。本实施例中,收集了3780个线扫数据。其中数据集的划分如下表1所示。
表1
为防止发生数据泄露,训练集和测试集数据中所用的设施无重合。
二)数据预处理
首先对原始采集得到的3D空间点云数据进行水平翻转,以达到扩充输入数据集的效果。本发明中,在模型训练过程中采用随机梯度下降算法进行优化。在输入的训练集数据波动范围较大的情况下,可能出现梯度***和梯度消失现象,导致模型无法收敛。为防止模型训练时出现这种现象,在模型训练之前,先对由原始数据和过水平翻转的训练集数据进行归一化处理,使训练集数据的特征分布趋于一致,以加速一维分割网络的收敛,达到更好的训练效果。归一化处理公式如下式(1)所示;
式(1)中,x′表示归一化后的数据,x表示输入数据,xmax、xmin分别表示输入数据中的最大值以及最小值,μ表示输入数据的均值。
由于激光线扫所得到的切面中的点云数据中的点数通常是不一样的,如图2所示,因此本发明对归一化后的点云数据进行裁剪和填充到固定大小m,m通常根据实际工件和扫描数据情况确定,在本实施例子中,m设置为1536。
三)模型训练
图3为本发明所提出的基于FPN架构的一维分割网络结构示意图,一维分割网络通过Pytorch框架实现和训练。图3中左上角的曲线代表一维分割网络的输入,左下角的曲线表示一维分割网络的输出。加深部分为通过一维分割网络预测得到的工件的焊缝遮罩,普通线条表示工件非焊缝遮罩部分。在本实施例子中一维分割网络接受n×1×1536的输入,其中n为批次大小,表示一维分割网络一次输入n个切面的点云数据,1表示通道数,1536表示预处理后的每切面所对应点云数据的点数。如图3所示,在本发明所提供的一维分割网络中,对数据进行特征提取的同时进行下采样。下采样是为了进一步降低显存使用和计算量,同时增大感受野,使得同样大小的卷积核能够在更大的图像范围上进行特征提取,因此在本发明所提供的一维分割网络中,每一个特征提取模块后接一个下采样模块。
下采样模块是一个一维卷积,本发明选择的卷积核的大小N=3,步幅S=2,填充P=1。一次卷积运算可表示为下式(2):
式(2)中,G(i)表示卷积核中的第i个元素,H0(x)表示初始输入数据,xN-i-1表示当前卷积窗口中的第N-i-1个元素所对应的值,H1(x)表示第一层输出数据,也即第二层的输入数据。整个下采样过程由多个下采样模块构成,每个下采样模块使用同样的卷积核,其输入输出依次类推。每个下采样模块的输出维度hout可用下式(3)表示:
式(3)中,d为输入数据的维度,在本实施例中,第一个下采样模块的d=1536。
特征提取模块主要由一维卷积、组归一化和线性整流激活函数(ReLU)组成,如图4所示。特征提取模块的卷积核大小N=3,步幅S=1,填充P=1。特征提取模块的输入和输出维度相同。
由于多个较小的卷积核进行叠加可以达到一个更大的卷积核的效果,本发明通过一系列较小且轻量级的滤波器大小为3的卷积运算来分解较大的一维卷积运算。如图4所示,本发明的特征提取模块使用了三个大小为1的一维卷积核组成的一维卷积层一和三个大小为3的一维卷积核组成的一维卷积层二。为提取高维的信息,将三个一维卷积层二进行连接构成一个特征提取模块,并在连接各一维卷积层二时采用与残差网络(ResNet)类似的跳跃连接策略。跳跃连接的方式增强了感知焊缝数据细微梯度变化的能力。每一个卷积操作后都有一个组归一化层和激活层,组归一化层连接在卷积层后,激活层连接在组归一化层后,每个层的输出即为下一层的输入,分别可表示为式(4)和式(5):
T(x)=ReLU(x)=max(0,x) (5)
式(4)及式(5)中:x表示本层的输入数据;μ表示输入数据x的期望;σ表示标准差;∈为一个接近0的常数,为避免标准差σ=0时出现计算错误;γ和β分别表示可学习的每通道仿射变换参数向量,其向量维度与通道数相同;F(x)表示组归一化层函数;T(x)、ReLU(x)表示激活层函数。
通过特征提取模块和下采样模块,原始输入的n×1×1536的焊缝数据被编码为n×256×48大小的特征矩阵。
对于解码过程,本发明采用与FPN相同的策略,通过连接编码过程中各特征提取模块的输出,以避免前向传播过程中的信息丢失,尤其是下采样模块。由于不同的特征提取模块输出数据的维度不同,需要对其进行通道扩张和上采样等操作,使各特征提取模块的输出能够进行对应元素相加等操作。
首先通过核大小为1的一维卷积层对特征提取模块的输出数据进行通道扩张。然后进行通过线性插值算法进行上采样。在前文所述的下采样过程中,需要压缩输入数据维度。相反地,上采样过程中需要扩展输入数据维度,即在输入数据中***新元素来实现扩展,为了使得***的元素更合理,往往会采用合适的算法***新元素。上采样常用的方法有转置卷积和线性插值+卷积等方式。同样为减少计算量,本发明中的上采样模块通过线性插值方法来实现。基本计算方式如下:给定已知的两个点P0=(x0,y0),P1=(x1,y1),计算在[x0,x1]区间内某一位置xk一个点的yk值,由下式(6)所示:
设C1和C3分别表示卷积核大小为1和3的一维卷积层,U2和U4分别表示两倍和四倍上采样计算。分别用H1∈n×32×384、H2∈n×64×192、H3∈n×128×96、H4∈n×256×48表示第三个特征提取模块到第六个特征提取模块的输出特征图。将H1、H2、H3、H4分别输入卷积核大小为1的一维卷积层,得到D1∈n×32×384、D2∈n×64×192、D3∈n×128×96、D4∈n×256×48,如图3所示,从D4开始分别进行如下操作:
E1=C3(U2(U2(U2(D4)+D3)+D2)+D1)
E2=C3(U2(U2(D4)+D3)+D2)
E3=U2(C3(U2(C3(U2(D4)+D3))))
E4=U2(C3(U2(C3(U2(C3(D4))))))
其中E1∈n×128×384、E2∈n×128×384、E3∈n×128×384、E4∈n×128×384表示四个经过上采样和卷积操作后的输出特征图。将E1、E2、E3、E4相加后输入四倍上采样层得到最后一层的输入数据I∈n×128×1536,即有下式(7):
I=U4(E1+E2+E3+E4) (7)
最后,通过一个一维卷积层和Sigmoid激活函数将最后一次级联产生的大小为n×128×1536的特征图I压缩到原始输入数据大小n×1×1536,即为模型的输出,表示各点包含在焊缝遮罩内的概率值。
关于模型损失函数设计,由于数据集为点云数据,分割也被视为逐点分类,因此通过组合了语义分割中最常见的交叉熵损失函数和适用于样本类别不平衡数据集的Dice函数,得到一个适用于焊缝分割数据集的损失函数LCombined其公式定义如下式(8)至式(10)所示:
LCombined=(1-α)LBCE+αLDice (10)
式中:w代表切面点数;y
i表示第i个点的真实类别,进行模型训练时,该值为前文预先标注的值;
表示第i个点的预测类别,由于本发明采用了Sigmoid激活函数,预测值
可视作一个概率值,表示第i个点包含在焊缝遮罩内的概率;α∈[0,1]为超参数,通常根据经验值设定设置,此处默认为0.5;L
BCE表示二元交叉熵损失函数;L
Dice表示Dice损失函数;L
Combined表示通过比例系数α进行组合后的损失函数,即本发明中所使用的损失函数。
一维分割网络通过随机梯度下降算法(Stochastic Gradient Descent,SGD)最小化损失函数,实现误差反向传播并更新网络的权值。
在通过一维分割网络确定各数据点所对应的预测值后,需要对预测结果进行后处理,选择预测值大于0.5的数据点,这样的数据点可能会构成多个段,经验性地选择其中最长的一段作为最终的预测的焊缝遮罩。对于个别偏离预测轨迹的数据点,采用插值法对预测结果进行替换。最后取焊缝遮罩的中间点作为最终的轨迹点。
在上述步骤3中,利用训练后的一维分割网络进行预测,同样以下步骤组成:一)扫描并收集3D点云数据;二)模型预测与轨迹计算;三)箱体焊缝打磨。
一)扫描并收集3D点云数据
此过程包括扫描设施收集3D空间点云数据与对数据进行归一化处理两步。与训练阶段数据收集方式相同,利用携带激光传感器的机器人,垂直地面进行扫描,各扫描线与地面呈平行线,得到多个切面数据,多个切面按序组合得到目标设施的3D空间点云数据。用式(1)中所示的同样的方式对数据进行归一化处理。
二)模型预测与轨迹计算
利用训练阶段得到的一维分割网络进行预测,得到每个点的预测值,采用与训练阶段相同的数据后处理方式,确定各轨迹点的坐标,最后按序组合各切面的轨迹点形成焊缝打磨轨迹,如图7所示。将各轨迹点的坐标发送到机器人控制器。
三)箱体焊缝打磨
机器人扫描结束后需复位,等到一维分割网络计算打磨轨迹。轨迹计算完毕后,机器人根据模型计算得到的轨迹坐标进行打磨。