一种用于汽车连杆检测的机器视觉系统研究
2013-07-28潘泉松侯北平陈良仁
潘泉松,侯北平,陈良仁
(浙江科技学院 自动化与电气工程学院,杭州310023)
连杆作为汽车发动机八大核心零件之一,它把活塞顶面膨胀气体的压力传给曲轴,从而将活塞的往复运动转变为曲轴的旋转运动。作为重要部件,连杆的加工过程显得至关重要,但由于目前工艺的局限,连杆的产品序列号配对出错率较高,因而需要可靠性高的检测系统进行合格性检测。
目前连杆的产品序列号一般是用肉眼进行检测的,而肉眼检测存在两个问题:一是人在长时间单调、枯燥的检测过程中易于疲惫,容易出错;二是肉眼检测自动化程度低,生产效率低下。
鉴于以上问题,笔者研发了基于机器视觉的检测系统,采用图像处理和图像识别技术,通过BP神经网络算法,对连杆产品序列号进行识别,多次实验表明,该方法可以显著提高连杆的检测效率。
图1 连杆检测系统示意图Fig.1 Schematic diagram of connecting rod detection system
1 系统整体设计
1.1 硬件系统结构
汽车连杆检测系统以运动控制等硬件系统为载体,结构如图1所示,主要分3个模块:连杆放置模块、相机控制模块和计算机处理模块。连杆放置模块主要用来批量放置并固定汽车连杆;相机控制模块主要通过直线运动单元控制相机和同轴光源的直线运动,同轴光源用于给连杆提供足够的光照,并可消除反光影响,从而获取连杆图像;计算机处理模块对输入图像进行处理、识别,进而检测连杆产品的质量。
1.2 软件系统结构
连杆检测系统字符识别流程[1]如图2所示,主要分为2个部分:图像处理部分和BP神经网络识别部分。图像处理部分包括对训练图像及测试图像的预处理、字符分隔和特征提取,BP神经网络识别部分包括对BP网络的训练和识别。
图2 字符识别流程图Fig.2 Flow chart of character recognition
2 基于BP神经网络的连杆字符识别检测研究
2.1 图像预处理
在1.1中获得连杆字符图像如图3(a)所示,经过灰度化处理变为256色的灰度图,中值滤波去除噪声,并进行二值化,最后得到一张清晰的二值化图像,如图3(b)所示。
2.2 字符分割
字符分割是指从一幅背景图像中分割出单个有用的字符。目前,常用的字符分割算法有投影法、模板匹配法[2]、基于连通域的方法等。由于所检测部分字符串在图像中都是水平排列的,通过预处理后图像有较好的质量,所以采用投影法进行字符分割[3]。
图3 预处理前和预处理后的连杆字符图像Fig.3 Character images before and after preprocessing
基于投影特征的方法,利用投影信息的峰-谷分布进行字符分隔。对图3(b)中选中区域图像在水平方向进行投影,投影图的两个低谷可以确定字符串的上下边界。采用同样方法对图像进行垂直投影,两个低谷之间存在一个字符,由此可以确定每个字符的位置并进行分割。字符分割的实现过程如图4所示。
图4 字符分割过程Fig.4 Character images after segmentation
2.3 特征提取
本系统采用Hu不变矩[4]作为字符图像的特征向量,对于数字图像f(x,y),其(p+q)阶矩定义为:
(p+q)阶中心矩定义为:
其中(x0,y0)是质心坐标:
中心矩vp,q具有平移不变性,对其进行尺度规范化,得到尺度规范化矩:
尺度规范化矩具有平移不变性和尺度不变性,Hu在其基础上构造了7个不变矩[5],同时具备平移、旋转和尺度不变性,这里用于表示字符图像特征。
2.4 BP神经网络基础
BP神经网络是一种按误差逆传播算法训练的多层前馈网络,它由一个输入层、若干个隐层和一个输出层组成,其结构如图5所示。
BP神经网络的实质是求取误差函数的最小值,采用非线性规划中的最速下降法,按误差函数的负梯度方向修改权系数[6]。网络的学习过程由信息正向传播和误差反向传播两部分组成,采用自适应学习率并添加动量系数[7-8]以提高学习效率。
2.5 基于BP神经网络训练
本系统采用Hu不变矩作为字符图像的特征向量,所以在BP神经网络结构的设计中输入层为7层,检测的结果包括0~9的10个阿拉伯数字,根据二进制表示法至少需要4位,所以输出层设置为4层,隐层的层数由实验测得设置为10层时效果最好。
2.5.1 系统初始化
Wi,j和Wj,k分别代表输入层到隐层和隐层到输出层的权值,θj和θk分别代表隐层的阈值和输出层的阈值,Dk代表输出层的期望输出。所有权值和阈值初始化为-1~1之间的随机数[9],期望输出根据二进制表示法,0000表示0,0001表示1,0010表示2,直至1001表示9。
2.5.2 信息正向传播过程
输入的训练样本图像信息先传递到隐层,经过Sigmoid型激活函数f(x)作用,得到隐层上的输出Oj。
隐层的信息传递到输出层,得到最终的输出结果Yk。
当最终的输出值与期望值不符时,进入误差反向传播过程。
2.5.3 误差反向传播过程
Dk为BP神经网络的期望输出值,则均方误差可以表示为:
由均方误差来调节BP神经网络的权值和阈值。
ΔW(t+1)和Δθ(t+1)表示训练次数为t+1次时权值和阈值的调节量,η和α分别为自适应学习率和动量系数。
通过误差的反向传播,权值和阈值都得到了调节。反复运用以上两个过程,使均方误差不断减小,直至输出值和期望值满足一定的要求,就完成了一个BP神经网络分类器的训练。
2.5.4 系统仿真训练
本系统的训练样本图像一部分从实际拍摄获得,一部分通过对实际图像进行加噪处理获得,部分训练样本图像如图6所示。
图6 部分训练样本图像Fig.6 Images of some training samples
BP神经网络仿真[10-11]训练前,每类数字构造100个样本图像,则共有100×10个训练样本图像。提取所有图像的七阶矩作为输入信息。训练过程中一些参数的设置如下:输入层和隐层选择tansig型传递函数,输出层选择purelin型传递函数,训练方法选择动量BP法,训练最大次数为10 000次,均方误差为0.001。大约经过1h的训练成功获得BP神经网络分类器,图7所示为训练过程中各参数图。
图7 训练过程中各参数图Fig.7 Parameters maps in training process
图7(a)显示均方误差变化过程,由图可见,训练次数在0~500次之间时,均方误差值从1迅速减小,训练1 000次后基本稳定在0.01,当完成最大训练次数10 000次后,均方误差值为0.012 5。图7(b)显示梯度、动量和验证检查次数变化过程,其中梯度值和动量值在训练次数5 500次之前都在10-5~105之间波动,5 500次之后梯度值得到稳定,动量值保持为0,验证检查次数始终为0。
2.6 BP神经网络识别结果及分析
对训练成功的BP神经网络分类器进行测试,测试的图像经重新加噪处理获得,每类数字产生200张,部分测试样本图像如图8所示。
测试结果如表1所示。由表1可见,除字符6和9外,其余字符的正确率都在96.00%以上。经分析得到,字符6和9的误判图像以图9所示居多。
图8 部分测试样本图像Fig.8 Some testing sample images
图9 多数误判图像Fig.9 Most misjudgment images
针对该问题,在训练样本中增加了此类加噪图像的数量,重新训练并得到新的BP神经网络分类器,再对测试图像进行识别,识别的结果如表2所示。
由表2可见,二次训练的BP神经网络分类器对字符6和9的识别精度显著提高,分别为97.50%和99.50%,同时其余字符的识别精度也略有提高,除字符0保持不变,字符1略有下降。
本系统图像特征提取,神经网络分类算法在matlab2010a仿真计算平台上开发成功,并基于Visual C++开发了连杆检测软件模块,成功地应用于汽车连杆检测系统。连杆机器视觉检测系统实物见图10。
表1 字符0~9的测试结果Table 1 Test results of characters 0-9
表2 二次训练的BP神经网络分类器识别结果Table 2 Test results of new BP neural network classifier
3 结 语
按照本研究提出的基于机器视觉的汽车连杆检测软硬件设计方案研发出的检测系统已经在企业投入使用,解决了部分人工检测问题。
本系统具有三大特点:一是软硬件紧密结合。硬件系统结构的设计和软件系统结构中字符识别流程的设计是该系统的两大主要组成;二是字符识别采用BP神经网络算法,鲁棒性强,识别精度高;三是成功应用于汽车连杆检测中,测试效果良好,成功地解决了因人为因素造成的误判、漏判等问题,提高了工作效率。
图10 连杆机器视觉检测系统实物图Fig.10 Figure of connecting rod detection system
[1]刘智勇,刘迎建.车牌识别(LPR)中的图像提取及分割[J].中文信息学报,2000,14(4):29-34.
[2]顾晨勤,葛万成.基于模板匹配算法的字符识别研究[J].通信技术,2009,42(3):220-222.
[3]刘军,向军,肖宇.基于投影特征和先验知识的车牌字符分割算法[J].公路工程,2011,36(5):44-46,51.
[4]刘亦书,杨力华,孙倩.轮廓矩不变量及其在物体形状识别中的应用[J].中国图象图形学报,2004,9(3):54-59.
[5]Hu M K.Visual pattern recognition by moment invariants [J].IEEE Transactions on Information Theory,1962,8(2):179-187.
[6]许宜申,顾济华,陶智,等.基于改进BP神经网络的手写字符识别[J].通信技术,2011,44(5):106-109,118.
[7]贾丽会,张修如.BP算法分析与改进[J].计算机技术与发展,2006,16(10):101-103,107.
[8]HOMIK K.Approximation capabilities of multilayer feedforward network[J].Neural Networks,1991,4(2):251-257.
[9]Hagan M T,Demuth H B,Beale M H.神经网络设计[M].戴葵,译.北京:机械工业出版社,2002:1-22,201-226.
[10]石云.Bp神经网络的 Matlab实现[J].湘南学院学报,2010,31(5):86-88,111.
[11]蒲春,孙政顺,赵世敏.Matlab神经网络工具箱BP算法比较[J].计算机仿真,2006,23(5):142-144.