宋怡仁,陈成军,李东年,官源林
(青岛理工大学机械与汽车工程学院,山东青岛 266520)
装配环节作为机械产品生产过程的重要组成部分,将直接影响最终机械产品质量的好坏。复杂产品的装配步骤和规范较多,若单纯依靠装配工人的操作经验和技能容易产生装配体出现错装、漏装等问题。随着计算机视觉技术的发展,计算机视觉技术在装配监测中逐渐得到应用。如田中可等[1-2]提出一种基于深度图像和像素分类的装配体零件识别及装配监测方法和一种基于像素局部二值模式(PX-LBP)和像素分类的装配体零件识别及装配监测方法。李勇[3]针对汽车门锁装配过程中拉簧装配状态进行机器视觉检测,对比了基于边缘特征的模板匹配检测方法和基于SVM的检测方法,证明了基于SVM检测方法具有良好的时效性和准确性,能够满足车门锁拉簧装配状态检测的性能要求。
现有的装配零件检测和装配过程监测方法多采用机器学习算法,通过分析图像中零件或装配体的特征,选用图像特征提取算法提取图像特征,然后利用分类算法来识别零件或装配体。该类算法中,图像特征提取算法和分类算法的选择对识别精度影响较大,算法选择不当会造成识别效果下降。深度学习算法能够通过对数据集的学习,自动提取图像特征,面对复杂的装配场景具有更好的适应性。因此,基于深度学习零件识别和装配过程监测是重要的发展方向。
目前,已经有一些关于深度学习应用在装配领域的研究。如王必贤等[4]提出了一种使用深度学习目标检测算法精确定位装配区域的系统,该系统实现了装配区域定位、工件分类和手部跟踪等功能,可在装配工作中引导操作人员完成装配。冒文彦[5]基于卷积神经网络算法开发了线夹装配质量检测系统,实现了对高铁线缆吊弦线夹装配质量的智能化检测。李成钿[6]提出基于SVM和卷积神经网络的转子面型智能分类方法,解决转子面型分类准确率低的难题。
本文作者以RV减速器为研究对象,将深度学习中的语义分割算法和目标检测算法应用在RV减速器装配过程监测中,搭建RV减速器装配过程监测系统实验台,建立语义分割和目标检测模型和相应数据集,进行模型训练,编写RV减速器装配过程监测系统软件,实现了RV减速器装配过程的监测。
如图1所示,RV减速器装配过程监测系统包括实验台和RV减速器装配过程监测软件,该系统与深度学习算法进行结合,将实验台采集到的真实图像数据和RV减速器虚拟模型生成的虚拟图像数据送入深度学习算法中进行模型训练,再将训练完成的模型结构和权重送入系统的软件中,软件可对实验台提供的图像进行预测计算,实现装配过程监测功能。
图1 RV减速器装配过程监测系统Fig.1 RV reducer assembly process monitoring system
RV减速器装配过程监测系统实验台如图2所示,主要包括RV减速器和RGB-D相机。RV减速器主要应用在工业机器人的关节处;RGB-D相机采用Intel Realsense D415,可以同时采集彩色图像和深度图像。该实验台可为深度学习模型提供图像数据以供它训练,也可为RV减速器装配过程监测软件实时传输图像。
图2 RV减速器装配过程监测系统实验台Fig.2 Test bed of RV reducer assemblyprocess monitoring system
为了使深度学习算法应用到装配过程监测中,并部署到实际工业场景中,文中设计了监测软件。软件基于Qt5平台开发软件界面,使用Python语言编写程序实现图像采集、预测和界面操作等功能。如图3所示,RV减速器装配过程监测软件包括界面操作模块、图像采集模块和图像预测模块。
图3 RV减速器装配过程监测软件功能结构Fig.3 Functional structure of RV reducer assembly process monitoring software
图像采集模块使用Intel Realsense D415 RGB-D相机实时采集RV减速器深度图像和彩色图像,相机首先进行分辨率、帧数等参数的设置,再对视频图像进行滤波和裁剪等操作。装配体表面会将RGB-D相机发出的红外光镜面反射,在拍摄出的真实深度图像中装配体边缘和一些局部地区会有黑斑,因此使用INPAINT_TELEA[7]算法修复深度图像中的黑斑,最后将图像实时传输到界面操作模块中。
界面操作模块包括控制RGB-D相机的启停,显示RGB-D相机采集的图像,设置当前装配工序中的零件信息,读取本地图像,截取图像,显示预测结果和保存预测结果等功能。
图像预测模块实现了基于深度学习模型的RV减速器图像识别和装配过程监测功能。首先将训练好的深度学习模型结构与参数权重载入图像预测模块,然后读取界面操作模块传输的图像和当前工序信息,利用载入的深度学习模型识别图像,最后将识别结果可视化为图像和文字。同时将识别结果与当前工序信息对比,以此判断是否存在漏装的情况,实现装配过程监测。
此系统应用了深度学习中的语义分割和目标检测算法来检测装配体中不同的零件。语义分割是一种将图像中所有像素点进行分类,将相同类别的像素归为相同标签的算法;目标检测是一种能够精确地定位出图像中某一物体类别信息和所在位置的算法。
如图2所示,RV减速器大部分零件是压合装配,零件之间互相重合,互相遮挡,且多数零件外表颜色为银白色,难以分辨出不同零件之间的边界,深度学习算法也难以从彩色图像中学习到特征。但是因为每个零件之间的高度有所差异,所以不同零件在深度图像中就有明显的深度值差异。同样,因为RV减速器大部分零件是压合装配,大多数零件都有它固定明确的安装位置,所以在装配过程中最可能出现的是漏装问题。因此针对图2中的外壳、左行星架、小轴承、大轴承和曲轴等类似零件,采用语义分割算法识别深度图像中的此类零件。
如图2所示,螺钉这类微小的零件沉入到其他零件中,它们在深度图像中的深度值与周围其他零件并没有明显的区别,同时它们分布较为分散,不存在互相遮挡等问题,因此采用目标检测算法识别彩色图像中的螺钉。
2.1.1 语义分割模型的选择
此系统语义分割算法采用了UNet网络模型[8],该网络模型通常应用于数据量小、场景结构较为固定的图像分割中,如生物医学图像分割。工业上采集的装配体图像也具有装配错误样本量小、场景结构单一等特点,UNet网络模型可以在较小的数据量下达到较高的语义分割准确率。
如图4所示,UNet网络模型结构分为两部分:分别是特征提取和上采样。在特征提取过程中,先对输入的图像进行3×3卷积和2×2最大池化操作,每通过一个池化层,就生成一个新尺度的特征图。在上采样过程中,对提取出的特征图进行2×2反卷积和3×3卷积的上采样操作,每上采样一次,就与特征提取部分通道数相同的特征图进行融合。由于特征提取过程中的特征图与上采样过程中特征图的大小不一致,因此在融合之前需要对前者进行裁剪。最后再通过1×1卷积生成对应每个类别的热图,经过激活函数的处理,计算出图像中每个像素点对应每个类别的概率,实现对图像中每一个像素的分类。
图4 UNet网络模型结构Fig.4 Structure of UNet network model
2.1.2 语义分割数据集的建立
如图5所示,将RV减速器按照装配顺序分成4个装配阶段,每个装配阶段单独制作语义分割数据集,分别训练语义分割模型,生成4个语义分割模型权重,从而避免各个装配阶段之间相互影响,导致识别准确率降低。
图5 4个装配阶段图像Fig.5 Images of four assembly stages
语义分割数据集包括虚拟数据集和真实数据集。在建立虚拟数据集中,首先使用SolidWorks三维建模软件进行装配体的建模,再使用3DMAX三维渲染软件对装配体模型中的每一个零件标记颜色标签,然后使用OSG(Open Scene Graph)对模型进行渲染,自动生成模型的深度图像以及对应的颜色标签图像。在每生成一次图像后,自动调整模型的位置和角度,再生成下一个图像,重复以上过程。在调整模型的位置和角度时,考虑到采集的真实数据集图像都为一面朝上,为了使虚拟数据集和真实数据集统一,所以主要调整模型绕z轴旋转的角度。对装配体装配过程的4个阶段分别进行建模、标记颜色标签和生成图像,最终形成的虚拟数据集如图6所示,上方为深度图像,下方为颜色标签图像。每个装配阶段各生成360张深度图像及其对应的颜色标签图像,图像大小均为224像素×224像素,格式为PNG,并按照9∶1的比例来划分训练集和测试集。
图6 虚拟数据集实例Fig.6 Example of virtual dataset
为了建立真实数据集,此研究使用Intel Realsense D415 RGB-D相机采集真实的装配体进行深度图像。为了提高语义分割模型训练和预测速度,并与虚拟数据集中的深度图像的效果尽量保持统一,此研究将拍摄距离设置为700 mm,真实图像的大小裁剪为224像素×224像素,图像格式设置为PNG。再使用Adobe Photoshop对深度图像中的每个零件进行人工标记颜色标签,每一个装配阶段各制作30张真实图像及其对应的颜色标签图像。为了扩展真实数据集的数量,提高所训练的语义分割模型的鲁棒性,对这30张深度图像和颜色标签图像进行旋转、镜像和加噪等数据增强操作,最终每个装配阶段的真实语义分割数据集共有100张图像,并按照9∶1的比例来划分训练集和测试集,形成的真实数据集如图7所示,图7中的深度图像已使用INPAINT_TELEA算法修复黑斑。
图7 真实数据集实例Fig.7 Example of real dataset
2.1.3 语义分割模型的训练
在Windows系统下,使用百度公司开源的PaddlePaddle深度学习平台[9]建立了网络模型并进行模型训练。首先使用虚拟数据集对UNet网络模型进行训练,使用在COCO数据集上训练的UNet网络预训练权重作为初始权重,迭代轮数为1 000,学习率为0.005,批大小为2。训练结束后,保存评价指标MIoU最优时的模型权重,然后使用上述模型权重和真实数据集训练UNet网络模型,迭代轮数为500,学习率为0.005,批大小为2,最终保存MIoU最优时的模型权重。通过这种方式可以让模型预先学习一些虚拟数据集的特征,从而在训练规模较小的真实数据集上也能有较好的训练结果,同时可以减少训练迭代次数,加快训练速度。对装配体装配过程的4个阶段的数据集分别进行训练,最终得出的语义分割平均准确率和平均交并比如表1所示,可以看到:语义分割在4个装配阶段上的平均准确率分别为95.82%、96.96%、96.77%和96.99%。
表1 4个装配阶段的语义分割平均准确率和平均交并比
2.2.1 目标检测模型的选择
此系统的目标检测算法采用了YOLOv3网络模型[10]。YOLOv3是轻量快速的单阶段目标检测模型,它融合了FPN(特征图金字塔网络)[11]和残差网络[12]等结构,使得预测速度和精度快于传统的目标检测模型,因此适用于工业场景。
如图8所示,YOLOv3网络模型的特征提取由Darknet-53网络实现,该网络包含大量1×1卷积、 3×3卷积和res unit(残差单元),YOLOv3使用了步长为2卷积来实现下采样,降低了池化层带来的图像梯度负面影响。然后使用了类似FPN的上采样和特征融合方法,分为13×13、26×26和52×52三个尺度,每个尺度下堆积不同尺度的特征图,再通过卷积的方式实现不同尺度特征图之间的局部特征融合,最后在这3个特征图上分别分类和位置回归,实现对图像中每一个物体的位置和类别的识别。
图8 YOLOv3网络模型结构Fig.8 Structure of YOLOv3 network model
PaddlePaddle深度学习平台的YOLOv3网络在原版的YOLOv3基础上做了一些改进,例如将骨架网络更换为ResNet50-VD[13]、引入可变形卷积[14]替代原始卷积、使用label smooth优化方法[15]等,进一步提高了YOLOv3的工程应用性能。
2.2.2 目标检测数据集的建立
采用目标检测算法是为了检测螺钉,螺钉的装配位于第三装配阶段,因此使用第三装配阶段的彩色图像制作数据集进行训练。使用Intel Realsense D415 RGB-D相机对装配体进行彩色图像的采集,然后使用LabelImg标注软件对彩色图像中的每个螺钉进行人工标注生成标签文件,形成100张图像及其对应的标签文件,图像的大小为224像素×224像素,格式为PNG。最后对采集的彩色图像进行旋转、镜像和加噪等数据增强操作,同时也对标签文件进行相应的修改,最终的目标检测数据集有300张图像,并按照9∶1的比例来划分训练集和测试集。目标检测数据集如图9所示。
图9 目标检测数据集典型实例Fig.9 Typical example of object detection dataset
2.2.3 目标检测模型的训练
在与语义分割模型训练相同的计算机系统和深度学习平台上,使用上述数据集训练YOLOv3网络模型,使用在COCO数据集上训练的YOLOv3网络预训练权重作为初始权重,迭代轮数为500,学习率为0.000 5,批大小为2,模型在第260个迭代轮次时性能达到最优,此时模型的螺钉目标检测训练结果为精确率99.8%,召回率99.7%,对训练完成的模型的网络结构和参数权重进行保存。
文中使用的装配体为RV减速器,在RV减速器装配过程监测系统实验台上实时采集图像,利用RV减速器装配过程监测软件进行装配过程监测。软件运行环境如下:计算机为Intel(R) Core(TM) i5-6300HQ CPU@2.30 GHz,8 GB内存,Windows10系统。
如图10所示,该图像为第四装配阶段的RV减速器,在此装配阶段中应完成2个小齿轮的装配,容易出现的装配错误为小齿轮漏装。针对此问题,使用RV减速器装配过程监测软件识别第四装配阶段的图像。
图10 小齿轮正常(a)与漏装(b)Fig.10 Normal (a) and missing pinion (b)
首先打开相机显示深度视频,选择第四装配阶段,然后截取当前的视频图像,对该图像进行语义分割预测,在左侧的信息栏中显示预测结果为当前有小轴承1个、密封圈1个、右行星架1个、外壳1个、小齿轮1个和曲轴2个。根据第四装配阶段的零件标准,当前零件类别应为密封圈1个、右行星架1个、外壳1个、小齿轮2个和曲轴2个,两者对比前者缺少1个小齿轮,软件由此得出缺少1个小齿轮的判断。多出1个小轴承是由于缺少小齿轮后,其下方的小轴承呈现在图像上。此时的软件界面如图11所示,左侧的信息栏提示缺少1个小齿轮。预测完成后可对当前的预测结果进行保存,图像默认命名为当前的系统时间,方便后期对装配过程进行追溯。
图11 检测到小齿轮漏装时的软件界面Fig.11 Software interface when missing pinion is detected
如图12所示,该图像为第三装配阶段的装配体。
图12 螺钉正常(a)与漏装(b)图示Fig.12 Normal (a) and missing screws (b)
在此装配阶段中应完成4个螺钉的装配,装配错误为螺钉漏装。针对此问题,使用RV减速器装配过程监测软件识别第三装配阶段的图像。
首先打开相机显示彩色视频,选择第三装配阶段,截取当前的视频图像,对该图像进行目标检测预测,在左侧的信息栏中显示预测结果为当前有1个螺钉,根据第三装配阶段的零件标准,当前应有螺钉4个,两者对比缺少3个螺钉,软件由此得出缺少3个螺钉的判断。此时的软件界面如图13所示,左侧的信息栏提示缺少螺钉3个。
图13 检测到螺钉漏装时的软件界面Fig.13 Software interface when missing screws is detected
针对机械产品装配过程中容易产生漏装的问题,提出一种基于深度学习的RV减速器装配过程监测系统。首先,搭建了RV减速器装配过程监测系统实验台;然后使用了深度学习中语义分割和目标检测算法对装配体图像进行预测计算,语义分割在4个装配阶段上的平均准确率分别为95.82%、96.96%、96.77%和96.99%,目标检测对于螺钉的预测精确率为99.8%;最后编写RV减速器装配过程监测软件,将深度学习预测、RGB-D相机视频实时采集等功能集成到软件中,实现了对装配过程的监测。实验结果证明:此软件可以正确监测装配过程中的零件是否存在漏装情况。