APP下载

基于深度学习机器视觉对于动力总成制造防错应用的研究

2020-05-08徐啸顺高雪婷

传动技术 2020年1期
关键词:保护套卷积界面

徐啸顺 任 建 林 立 高雪婷

(上汽通用汽车有限公司, 上海 201206)

1 研究背景

在汽车生产装配线环境中,零部件装配的防错检测是一项普遍而又重要的工艺。目前装配防错手段一般有人工目视/触觉防错、机器视觉防错、机械机构防错、接近或测距传感器防错等,其中以机器视觉防错为主流趋势。机器视觉是指通过光学和非接触的装置自动地接收和处理一个真实物体的图像,通过分析图像获得所需信息或用于控制机器运动的装置[1]。

采用机器视觉防错主要有以下优势:高精度、重复性、速度快、灵活性和可追溯性。

目前主流传统的机器视觉防错技术主要基于灰度图像的特征提取,比如边缘、形状、尺寸等[2]。主流的传统图像处理方法目前在理论和硬件处理平台方面已发展地较为成熟,设备成本也基本符合替换人工的收益计算。但在车企内大规模应用传统机器视觉进行防错时,往往会遇到以下问题,在一定程度上阻碍机器视觉的普及。

1) 投产初期难以确保极高的准确率。一般车企对防错要求极高,制造标准规范中对视觉防错检测准确率要求往往在99.9%以上。但新项目在视觉系统集成时,往往由于集成周期短、调试样件昂贵数量稀少、装配错误形式多种多样等原因,导致如果大规模应用传统机器视觉设备,则往往在应用初期难以保证高准确率的要求。

2) 受现场环境变化影响大。对于现场装配,往往存在现场环境照明的变化,比如环境光变化、光源老化、周边工件位置变化(比如线缆)引起的图像灰度变化,导致传统视觉算法检测所依赖的图像特征对比度、完整性受到影响而错判。

3) 设备成本高。相较于机械检测装置或者传感器,机器视觉软硬件投资相对昂贵。

基于深度学习的机器视觉系统可以与传统机器视觉形成互补。深度学习的机器视觉使用卷积神经网络深度学习技术训练的图片模型,导入运用已有的算法库。通过在训练过程中增加图像的偏移、旋转、噪点、亮度等干扰,模型可以很好的适应图片可能的扰动。对导入图像的精细分类标注,可以给出准确的策略。对于光源亮暗波动或工件位置的变动,深度学习也可避免或显著降低其负面影响,通过分类概率显示最可能的判读结果。

鉴于原理上的差异,深度学习机器视觉防错技术是在缺陷检测、防错这类应用领域非常前沿且有潜力的技术,可以与传统机器视觉算法防错技术优势互补。

当然深度学习机器视觉防错技术在应用中也存在一些难点,主要如下:

1) 计算机算力要求。深度学习应用的模型训练往往涉及数千张图像、数百万个参数的迭代解算,因此需要强大的硬件性能支撑。

2) 图像样本采集和标注。为了训练出准确的识别模型,必须准备数量巨大,且标注准确的训练集,通常需要数千张缺陷图片和更多正常图片的集合[3]。对于这些图像的标注、整理和格式统一的工作量是非常大的。

3) 适合定性式的防错检测。深度学习神经网络一般输出结果会按照概率归属到预设的几类标签判断进行显示[4-5]。而预设的类别一般都需要有明显可见的差异。因此如果检测需求为定量式的判断,比如检测一个定位销是否安装到位是通过测量外露长度是否达到图纸要求,那么深度学习则只能检测其安装有无,无法准确的测出其长度,因为不能准确进行判断。

因此需要结合实际工业环境特点,对应用场景进行分析,确认何种情况应用常规机器视觉算法更有优势,何种情况适合应用深度学习的机器视觉。同时在确认使用深度学习的前提下,尽可能减少需求样本数量、技术上合并失效模式场景等,并且在实际生产线背景下克服或避免以上难点,使深度学习可以满足更多的应用场景。

目前,在产品包装、交通安全、机器人视觉应用等领域,已有部分深度学习机器视觉的成功应用案例[3-7],汽车制造领域则鲜有涉足。考虑到汽车制造的工艺复杂性和对视觉检测的切实需求,有必要引入深度学习机器视觉以实现更好的产品质量监控。目前各大视觉公司已有一些深度学习的图像处理软件或功能包,比如康耐视公司的Vidi防错系统、Halcon图像处理平台[6]的深度学习功能包,但授权费用较为昂贵,且通常按照台数、年限付费,不适合大批量应用。因此考虑利用开源算法和Python等工具,自主开发更适合工业环境应用的深度学习软件。

2 项目应用需求

在汽车生产装配线环境中,利用普通工业相机以及常规的镜头、光源等配件,和常规性能工控电脑,自行搭建视觉检测系统。现场所有硬件投资控制在5万元以内。

深度学习视觉检测系统运行在工控电脑上,并实现与工业PLC系统的通信。根据PLC信号对所需检测的工件在合适的状态进行拍照、采集灰度图像;将根据工艺检测需求,对图像进行分割、屏蔽等预处理[7-8],导入已学习的深度学习模型对处理后的图像进行判断。其中深度学习模型通过预先学习获得,对2000张以内、4类左右的预设标签图像学习,获得99.99%以上的学习准确率[9]。

检测系统将对同一图像内不同区域、不同景深、传统视觉难以检测的装配特征进行自动识别和防错,达到99.95%以上的实际测量准确率,并将测量结果发送至PLC,作为零件装配正确或错误的依据。所有测量结果、判断概率以及图像也将被保存在工控电脑中。

3 深度学习视觉检测系统的自主开发

3.1 深度学习视觉检测系统总体结构

深度学习视觉检测系统总体结构如图1所示[8]。

图1 深度学习视觉检测系统总体结构

左侧为离线部分:在现场收集正负样本图片后,将其作为输入,通过Python的深度学习库计算出适配的神经网络模型,运行时导入该模型用于防错计算。

右侧为现场运行时检测系统软件,包含以下模块:照相机的图片采集模块、与PLC通信的通信模块、深度学习算法模块、数据库记录模块、参数设置模块以及界面UI。界面UI在实现相应功能时,调用各功能模块,实现图片获取、图片处理、结果记录、参数设置、结果返回的完整功能。基于SNAP7协议的PLC通讯模块首先实时检测PLC给出的图片采集触发信号,采集后的图片经过裁剪均一化等预处理,传递给深度学习算法模块,后者计算防错结果。防错结果通过PLC通讯模块,写入PLC的DB块,并同时将结果记录到本地数据库。

现场运行时检测系统软件在windows下运行,使用C#作为编程语言,同时配合其包管理系统Nuget,可以大量节约开发时间。界面UI基于Windows桌面主流的框架WPF开发,同时搭配第三方MVVM(Model-View-ViewModel)框架MVVM Light,实现了视图显示逻辑和数据内容的分离。

3.2 深度学习神经网络算法

深度学习网络包括卷积神经网络、深度信念网络、循环神经网络等。卷积神经网络是深度学习的代表算法,在图像识别和分类领域已被证明非常有效[10]。

卷积神经网络包含输入层、隐层和输出层,输入层用来输入图像信息,输出层输出网络的判别结果,隐层由若干个卷积层、池化层和全连接层组成。卷积层通过图像与卷积核的卷积运算,将数据输入映射到隐层特征空间,得到的特征图又会作为下一层的输入。每个卷积层后连接池化层,对输入的特征图进行压缩,一方面减小特征图尺寸,简化网络计算复杂度;另一方面压缩特征,提取主要特征。全连接层用于连接卷积池化后的所有特征,并将输出值送给分类器进行图像分类。总的来说,卷积神经网络通过构建具有多个隐层的网络模型,将底层外观特征逐层传播,形成高层语义特征,最后通过全连接层-分类层输出类别及概率信息,整个网络模型的结构如图2所示[9, 11]。

本项目将采用卷积神经网络算法,项目实施步骤如下:

1) 检测类别定义

根据工艺和质量规范,定义产品缺陷和错误种类。

2) 建立适用于防错应用的样本库

根据产品缺陷类别,利用合适的工业相机采集适当数量样本图像,部分罕见缺陷样本将人工模拟重现。为了提高检测率以及降低计算量,本文利用Opencv等开源工具,对采集到的样本图像进行剪裁、重命名、特征区域选取等预处理工作。收集完样本后,将其中60%作为训练集,20%作为验证集,剩下的作为测试集。

图2 卷积神经网络模型

Fig.2 Convolutional neural network (CNN) model

3) 设计合适的网络模型,并进行模型训练

本文使用Python、Tensorflow和Keras等搭建卷积神经网络,设置适当的学习率、迭代次数、隐层数等超参数,并采用了小批量梯度下降法、批归一化处理、衰减学习率等优化算法,经过一段时间的训练迭代,得到99.99%准确率的网络权重文件[12]。可通过安装GPU并行计算架构CUDA和深度学习加速库cuDNN,缩短训练时间,训练程序部分代码如图3所示。

图3 训练程序部分代码

4) 验证模型,上线使用

训练好的模型先经过离线验证,在准确率达到99.9%以上后,投入现场使用并会根据运行状况改进优化。

3.3 深度学习视觉检测系统所应用硬件选型

视觉系统的硬件主要包含相机、镜头和光源。

相机的选型主要基于视觉系统的检测精度、视野范围;镜头的选型主要考虑检测环境;光源的选型基于使被测物体的重要特征显现,且尽可能的避免环境光带来的负面影响。

如表1所示,本检测系统选用的相机类型为普通工业相机,检测精度要求为1毫米,视野范围为600毫米×200毫米,根据分辨率F = 视野范围/检测精度,可知相机分辨率至少为600,从市面上大部分的相机分辨率参数及成本考虑,确认选用130W(1280×1024)像素的工业相机,产品型号为acA1300-30gc;根据相机的传感器尺寸以及现场工位布局,视觉系统的工作距离为500 mm,根据镜头焦距f = 物距×传感器尺寸/视野范围,确认选择焦距4mm的广角镜头;根据本案例的检测需求,同时基于深度学习所带来的鲁棒性,使用普通LED红外条形光源即可满足检测需求,光源型号为 LIM - 800×40 - IR - W。

3.4 软件操作界面

运行时软件主要包括以下主要页面包括:Run(运行)、Setup(设置)、History(历史)。

3.4.1Run运行界面

运行界面如图4所示,具备开启、停止深度学习在线运行的功能,还具备用于测试的手动触发功能。同时也显示了当前该软件的外部连接状态,包括PLC和相机等外部设备。当外部信号触发拍照后,照片特征区域会根据当前的检测项目显示在当前主界面上,同时显示OK/NG结果以及其他细节信息。通过选择检测项目的下拉框,可以切换不同的检测项目,图片特征区域显示以及相关结果信息也会随之更新。

表1 视觉系统硬件参数

图4 运行界面

3.4.2Setup设置界面

设置界面下,还有三个分设置页,分别设置软件的基本参数、相机参数以及导入的神经网络模型。

在Basic(基本参数)页面,可以设置图片存储的路径,PLC相关的参数,图片平均灰度值阈值以及历史页面的最大显示项,如图5所示。

图5 设置界面——基本参数

在相机设置界面,可以设置待连接相机的序列号和曝光时间,在连接上后,可以显示图片的分辨率。同时,该界面还具备用作深度学习样本的图像取图功能,如图6所示。

深度学习导入页面如图7所示,该页面用来导入由Python离线计算得到的模型文件。使用左下角的Load按键,即可导入该算法模型。成功导入后,界面上将显示该模型文件的具体信息,包括检测项目名、模型文件、分辨率以及特征检测区域。

图6 设置界面——相机设置

图7 设置界面——深度学习模型导入

3.4.3History历史界面

历史界面如图8所示。在每次检测后,检测结果除返回给PLC外,还可存储在本地以便之后回溯。按界面的Refresh刷新按钮,可以得到当前最近的检测结果,包括图片预览、文件名,结果可信度以及灰度值等信息。

图8 历史界面

4 已应用典型案例

4.1 变速箱装配防错案例

变速箱装配防错案例的工艺要求是取下油泵密封圈保护套,安装涡轮轴O型圈,如图9所示。传统的视觉检测算法是通过纹理特征提取零件的轮廓或通过背景与待检测目标的灰度差值来判断,该方法对光照要求较高,受外界因素影响较大,不能保证检测效率。该案例中油泵密封圈保护套与背景较为相似,且保护套表面纹理细节特征较少,无法用传统视觉算法实现,因此本文根据实际工业需要,提出基于深度学习的保护套及O型圈检测算法。

(1) 有保护套,无O型圈

(2) 无保护套,有O型圈

图9 保护套及O型圈

Fig.9 Protective sleeve and O-ring

图10为基于深度学习的保护套及O型圈检测算法流程图。整个过程分为两大部分,离线训练和在线检测。离线训练:将收集的样本经过预处理后送入卷积神经网络进行训练,最后输出网络的权重信息。图像预处理包括mask(掩膜)处理和图像裁剪[13],原始图像通过mask对图像上O型圈作屏蔽,使其不参与卷积计算,处理后的图像作为保护套检测模型的训练样本;原始图像经过裁剪,得到O型圈区域,用于训练O型圈检测模型;训练过程中训练集和验证集的准确率和损失函数的值如图11所示,经过600次的迭代,精度接近1,损失接近0,模型训练到最优状态。在线检测:相机拍摄一张图片,经过预处理后,送入训练好的两个网络,输出类别及概率信息,最后融合两个网络的输出结果以及图像平均灰度值信息,输出最终的检测结果OK/NG。经过42771个工件验证,结果表明该算法的准确率可达99.97%以上,验证了深度学习算法在防错应用上的可行性。

图10 基于深度学习的保护套及O型圈检测算法流程图

图11 训练过程中准确率和损失的曲线图

尽管深度神经网络在保护套及O型圈检测任务中取得了不错的表现,但它像黑匣子一样难以解释,模型可视化有助于解释神经网络学习到的特征。图12为热力图可视化结果,图中红色区域表示模型关注的区域,O型圈和保护套都被标成了红色,表明模型学习到了O型圈和保护套的特征,证明了深度学习算法的可靠性。

图12 检测热力图

4.2 发动机装配防错案例

在发动机线的生产过程中,发现发动机上的五个瓦盖在转台旋转过程中偶尔出现翻倒,可能导致向下夹紧瓦盖的装配机构断裂,造成经济损失。常规视觉设备或传感器需要加装五处才能达到防错目的。为了解决该问题,同时节约视觉项目的投资成本,实现了基于一个工业相机结合深度学习软件的瓦盖位置检测案例。

图13是相机拍摄的瓦盖图片,从图中可以看出由于位置差异,五个瓦盖的成像结果偏差较大。该案例如果用传统的视觉检测算法,需要将瓦盖分成五类分别处理,算法繁琐复杂,且对环境光照的鲁棒性差;而深度学习在光线变化、目标姿态变化明显以及复杂场景下都能取得较好的检测效果,因此本文将五个瓦盖分为两大类:一类凹槽为暗色,另一类凹槽为亮色。

根据上述的两大类,分别收集正负样本[7],由于实际瓦盖翻倒的情况较少,因此本文通过人工模拟瓦盖翻倒,在两大类别下分别将样本集划分三小类:瓦盖未翻倒、瓦盖完全翻倒和瓦盖不完全翻倒,如图14所示。由于目标一致性较好,每个小类别采集100张图像作为训练集,40张作为验证集,经过如图15所示的图像裁剪预处理后,送入卷积神经网络学习,最后输出能够准确判断瓦盖位置的网络模型。该案例目前已上线使用,生产4000多件的误检率为0,测试各类倾覆场景各50件,表明算法具有高准确率,而且高效和健壮、降低硬件依赖。

图13 正常瓦盖状态图片

Fig.13 Bearing tap of normal status

(1) 第一类

(2) 第二类

(3) 第三类

图14 样本图片

Fig.14 Samples

(1) 第一类

(2) 第二类

(3) 第三类

图15 分割图片

Fig.15 Cropped images

5 结论与收益

5.1 节约视觉检测设备的投资成本

常规的智能相机包含图像处理软件的授权以及整套拍照和处理系统的硬件,价格往往在10万元左右。而且对于单个工件的多个装配防错点检测,一个智能相机由于其镜头、光源等限制,不能覆盖所有防错点,必须追加智能相机。通常一个变速箱工件的装配工位至少安装1个智能相机,智能相机单价在5-10万,总体投资在10-15万左右。但通过使用深度学习的视觉系统,降低对选用相机硬件要求,一般5000元左右的工业相机即可满足系统性能。成功将硬件成本目前控制在2万元以内。同时软件自主开发,应用升级更新也无需费用,因此总体投资控制在2万以内。

5.2 进一步提高视觉防错检测准确率

采用深度学习的检测系统通过前期采集大量工件的失效图像,可以较好的建立检测模型,完善参数配置。正确的装配模式和失效的装配模式图像可以人工预先模拟归类。采集图像时配以不同的外部光源和照射角度,尽可能将光照变化引入神经网络模型。

目前包括以上两项案例的多个应用都已经达到或超过了99.95%检测准确率。能够满足高产能高质量标准下的生产质量监控要求。

5.3 在各大车间各类制造应用中进行推广

通过以上案例,已验证此技术在工业制造领域的可靠性和经济价值。未来将在动力总成、整车制造的各大车间视觉防错应用中推广。

猜你喜欢

保护套卷积界面
基于3D-Winograd的快速卷积算法设计及FPGA实现
微重力下两相控温型储液器内气液界面仿真分析
国企党委前置研究的“四个界面”
一种可用于潮湿界面碳纤维加固配套用底胶的研究
苹果将推内置触控板的 iPad键盘套
笔记本电脑
卷积神经网络的分析与设计
扁平化设计在手机界面中的发展趋势
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法