基于BP神经网络的铆接位置识别方法设计
2016-03-18RivetingpositionrecognitionmethoddesignbasedonBPneuralnetwork
Riveting position recognition method design based on BP neural network
廖健君,倪文波,王雪梅
LIAO Jian-jun, NI Wen-bo, WANG Xue-mei
(西南交通大学 机械工程学院,成都 610031)
基于BP神经网络的铆接位置识别方法设计
Riveting position recognition method design based on BP neural network
廖健君,倪文波,王雪梅
LIAO Jian-jun, NI Wen-bo, WANG Xue-mei
(西南交通大学 机械工程学院,成都 610031)
摘 要:为完成某大型设备铆接位置的判断,设计了一种基于BP神经网络的铆接位置图像识别方法,包括工厂作业图像采集程序设计、位置图像特征提取及储存入库、3层BP神经网络系统设计训练及测试三个部分。通过使用LABVIEW软件设计程序,对铆接过程中含位置信息的图像进行采集,获取和量化图像的总体灰度平均值和质心,将每幅图像循环写入Microsoft Access的数据库中。在MATLAB软件平台下,将图像特征数据转化成训练样本输入离线网络进行训练,最后利用除训练样本外的图像特征数据输入在线识别程序验证网络的识别能力。试验结果表明,该方法能较准确地识别出该大型设备制动杠杆在组装过程中铆枪铆接时的位置,准确率达到100%,可有效判断出漏铆问题的发生,保证设备的生产质量。
关键词:图像采集;图像识别;BP神经网络;铆接位置
0 引言
拉铆钉是利用虎克定律原理,用拉铆钉专用设备将2个结合件夹紧后,将套入的环状套环(或称不带螺纹的螺帽)的金属挤压并充满到带有多条环状沟槽的栓柱的凹槽内,使套环与栓柱严密结合的一种紧固方式[1]。其具有高的夹紧力和抗剪力、连接可靠、良好的放松性能等许多优点,在航空、铁路、船舶等行业得到了广泛应用。为了保证铆接质量,目前通常采用检测铆接时铆钉枪的压力-位移图的相互关系进行比较来评估铆接质量。但是,在某大型设备生产过程中,由于需铆接的位置数量较多,时有漏铆、铆接不到位等质量问题,这将为后期产品运用带来了严重的安全隐患。基于此,本文根据大型设备铆接工艺、装配位置固定等特点,提出一种基于灰度平均值与整体图像灰度质心的在线识别铆接图像方法。获取实际工作图像后,经过离线训练程序进行训练,取得权向量和阀值向量以作为在线识别的依据。按照离线训练所使用的算法,编写在线识别程序。在大型设备铆接装配时,通过安装在铆枪上的工业相机获取铆接点背景图像,即可利用已经获得权向量和阀值向量的在线识别程序,实现对铆接位置的识别,工作流程图如图1所示。输出的位置标识信息,可为进一步进行铆接质量管理提供一种有效的方法。
1 铆接位置图像采集
1.1 特征描述子选择
原始图像通常含有非常多的信息,选择和提取合适的图像特征参数作为图像的描述,能较为准确的反映图像的特点,实现整幅图像到有限特征参数的映射,为后面的识别工作快速、准确进行提供保证。
图1 工作流程图
以某大型设备作为研究对象,对某工厂制动杠杆铆接过程进行研究,确定将具有代表性的5个拉铆钉所在位置作为识别对象。在实际铆接过程中,由于受到液压铆枪供油位置及装配位置的限制,作业位置、作业工序固定,因此,拍摄的图像背景相对固定。同时,为了不影响装配效率,要求尽可能快的识别出铆接点位置,不宜采用过于复杂的算法使运算时间过长,并且需要保证较高的正确识别率,因此选择合适的描述子十分重要。常用的图像描述子包括边界描述子、区域描述子、主分量描述子、关系描述子四种,每一种描述子包括许多不同的描述特征算法。其中主分量描述子中的平均值算法是一种可基于图像整体特征的描述方法。在初步分析相机拍摄的样本图像后,可以发现每一个铆接位置对应的背景灰度平均值具有较大差异。此外,对于5个铆接位置,整体图像质心位置坐标值也具有较大的可分性。基于此,通过测量图像的整体灰度平均值以及质心位置可表达出图像的位置信息。
整体灰度平均值表达式为:
式中,m为图像的平均值,zi为表示灰度的一个随机变量。在提取均值时,软件会自动将彩色图像转变成灰值图像,因此zi取0到255的整数值,而其累加终点和范围L=256,P(zi)为zi对应的直方图[2]。
质心位置参数是建立图像坐标系后对质心相对位置的描述,其表征图像的几何信息,对应X、Y两个数值参数,其表达式为:
式中,X0、Y0分别为图像某像素中心的x和y坐标[3]。
质心是一个相对概念,是相对一定的坐标系而言的,对坐标值进行数字化处理称为取样,而对幅值进行数字化称为量化[2]。取样方法通常由用于生成该图像的传感器配置决定,在软件编程中可以不必考虑取样方法,只需要按照给定的坐标系规定量化值。
1.2 图像采集程序设计
图像采集程序应实现图像采集与保存、特征提取、特征参数保存三个功能。
目前常用的工业相机包括CCD(Charge-coupled Devices)和CMOS(Complementary Metal-oxide Semiconductor)两种。由于CMOS相机制造更方便、价格低廉,芯片功耗比CCD低等特点[4],本文采用300万像素12帧/s的CMOS工业相机及8mm焦距镜头,相机采用USB2.0数据接口,具有480Mb/s的传输速度,支持即插即用、支持连续采集和软件触发。
图像采集与保存程序的开发在Windows7操作系统下,基于LabVIEW试验虚拟仪器工程平台进行。使用LabVIEW的视觉获取软件VAS完成触发图像的采集、抓取及保存。利用LabVIEW的配置管理软件MAX获取接口信息,生成相机会话输入,再将该输入与IMAQdx Open Camera.vi、IMAQdx Snap.vi、IMAQ Write File. vi、IMAQdx Close Camera.vi四个控件依序相连,实现打开照相机、抓取照相机图像、在预设文件夹中保存图像、关闭照相机功能。程序中将IMAQdx Snap.vi、IMAQ Write File.vi两个控件编写入while循环中保证相机实时接受触发指令。
采集到目标图像后,使用视觉开发模块VDN完成提取和量化本文需要的图像整体灰度平均值以及质心坐标。利用之前VAS保存图像时使用的路径信息,使该信息输入到IMAQ ReadFile.vi控件中,保证图像与特征的对应关系。在该控件后添加IMAQ Histograph.vi和IMAQ Centroid.vi控件获取图像的特征参数。
特征参数的保存方法是使用组合字符串语句,利用数据库工具包(LabSQL)中的控件,将每张图像的特征参数不断写入Microsoft Access数据库中保存待用。
图像采集程序后面板如图2所示。
2 铆接位置图像识别程序
图2 图像采集程序后面板
确定将整体灰度平均值与质心坐标作为输入图像的描述子后,这些信息就成为三维欧氏空间中的一个点,不同的输入样本输入构成一个个的点集,模式识别采用的方法就是找到线性或者非线性的分类器将同类数据划分到同一区域,最终获取非线性判别函数来解决实际问题。基于误差反传算法(Error Back Propagation,BP)的人工神经网络形成的多层感器,是目前使用最广泛的解决该类问题的一种有监督的学习算法,其能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程,具有非线性、自学习、自适应能力[5]。将采集的样本图像特征数据输入该网络后,会自动不断调整权向量和阀值向量,形成输入到输出的映射,能准确的实现分类。
2.1 BP神经网络设计
本文采用单隐层感知器结构,即三层感知器结构。这种结构的拓扑图如图3所示。
图3 三层BP网拓扑图
底层为输入层,中间层为隐层,顶层为输出层。输入层的节点数代表输入向量的个数,本文使用整体灰度平均值、质心的x坐标和y坐标作为输入,因此n=3。输出层为识别的总类数,因此l=5。隐层使用经验公式:
进行计算,其中α为1~10的常数,根据试验效果进行调整,取m=6。其中V为输入层到隐层之间的权值矩阵,其中列向量Vj为与输入层xj相乘的权向量;W为隐层到输出层之间的权值矩阵,其中列向量Wk为与隐层输出yk相乘的权向量[6]。
输入层到隐层的表达式为:
式中,vij为输出层到隐层的权值,netj为隐层输入,θ1为隐层阀值,yj为隐层输出,f(x)为隐层激活函数。隐层激活函数使用双曲正切S型函数,可提高识别的精度,其表达式为:
隐层到输出层的表达式为:
式中,wjk为隐层到输出层的权值,netk为输出层输入,θ2为输出层阀值,ok为输出层输出。
g(netk)为输出层激活函数。输出层激活函数使用线性函数,可提高运算速度,其表达式为:
由激活函数表达式可知,为保证激活函数不发生溢出,统一数据的数量级,需要先将图像样本数据进行归一化处理至[-1.1]区间中,其表达式为:
设理想输出向量为D,则用于调整权向量的输出误差表达式为:
采用梯度递减规则使E小于0.01满足以精度要求。
经过推导,各层权值调整表达式为:
式中,dk为理想输出,Δvjk为输入层到隐层的调整值,Δwjk为隐层到输出层调整值。η为学习率,影响网络收敛速度及能否收敛,较小的学习率可保证网络收敛,但收敛较慢,而学习率设置偏大可能使网络不收敛。选择η=0.3使收敛较快且能获得较高的准确率。
对于阀值θ1、θ2的调整,可以通过引入x0=-1、y0=-1与初始的阀值相乘,加入权值调整即可进行训练。
2.2 离线训练程序实现
使用MATLAB软件平台的神经网络工具箱构建的BP神经网络,选取实际工况拍摄的60幅铆接位置图像作为训练样本,平均每个位置对应12幅图像,输入构建的网络进行离线训练,训练流程图如图4所示。其中读取训练数据是将样本图像特征数据通过数据接口输入MATLAB中,输入值归一化是为了保证输入值与要求类型保持一致,构造输出矩阵是为了提供给输出层缓存空间,创建网络是使用神经网络工具箱通过设置参数自动构建,最后训练网络以获得权向量与阀值向量。
图4 训练流程图
网络训练结果如图5所示。可以看出,在第26次训练的时候就已经达到训练精度,说明构建的网络具有快速收敛速度。
图5 网络训练结果
2.3 在线识别程序测试
离线训练程序使用MATLAB编写能快速获得所需的权向量和阀值向量,而在实际运用中,在线识别程序与图像采集程序应使用同一软件编写,以避免由于软件切换所导致的识别延迟。在深入了解BP神经网络的算法结构后,使用LabVIEW编写的在线识别程序是可实现的。选取实际工况测得24幅铆接位置图像,每个位置对应4幅测试图像,作为统计识别准确率的测试组。测试流程图如图6所示,其中测试图像数据是测试组图像的特征参数输入,测试数据归一化是为了保证输入值与要求类型保持一致,仿真模拟是将测试组数据与获得权向量与阀值向量生成的在线识别程序按照与离线训练程序训练同一算法进行运算,统计准确率是通过正确识别图像位置的数目与测试数据对应图像的总数之比计算所得。
图6 测试流程图
经过现场对制动杠杆铆接工况测试,通过相机采集5个铆接点任意位置的图像,输入到在线识别程序,在不超过1s的时间内即可实现准确识别,统计所得结果得识别准确率为100%。因此,在实际运用中基本不会影响装配时间同时兼顾识别准确率,说明基于BP神经网络的铆接位置识别方法有效。在线识别程序测试结果如图7所示。
图7 在线识别程序测试结果
3 结论
本文对某大型设备上的铆接点位置的图像识别方法进行了研究,提出了一种关于图像采集、图像存储、基于BP神经网络的离线训练和在线识别方法。通过相机采集到任意铆接位置的图像输入到在线识别程序,达到100%的总体识别准确率,说明本文所提出的方法有效,可判断出漏铆问题的发生。
参考文献:
[1] 杨树森,张光明,刘煜.拉铆钉及其在铁道车辆中的应用[J].铁道车辆,2006,44(12):12.
[2] Rafael C.Gonzalez ,Richard E. Woods. Digital Image Processing[M].3rd ed. New Jersey: Pearson Education,2008:828.
[3] 郭晓伟.基于机器视觉的开心果闭壳与开壳识别[J].计算机应用,2011,31(2):427.
[4] Abbas El Gamal, Helmy Eltoukhy. CMOS Image Sensors[J].IEEE Circuits and Devices Magazine,2005 MAY/JUNE:8.
[5] 焦圣喜,迟警,李婉珍.基于小波包和GA-LM-BP神经网络的汽轮机故障诊断[J].制造业自动化,2015,8(37):112.
[6] 韩力群.人工神经网络[M].北京:北京邮电大学出版社,2006:58-60.
机器人技术
作者简介:廖健君(1992 -),男,广东兴宁人,硕士研究生,研究方向为数据采集与处理、车辆工程。
收稿日期:2015-09-29
中图分类号:TP391.4
文献标识码:B
文章编号:1009-0134(2016)01-0038-04