CN102393908A - 混合生产线上的基于机器视觉检测的三种瓶体识别方法 - Google Patents
混合生产线上的基于机器视觉检测的三种瓶体识别方法 Download PDFInfo
- Publication number
- CN102393908A CN102393908A CN2011101794442A CN201110179444A CN102393908A CN 102393908 A CN102393908 A CN 102393908A CN 2011101794442 A CN2011101794442 A CN 2011101794442A CN 201110179444 A CN201110179444 A CN 201110179444A CN 102393908 A CN102393908 A CN 102393908A
- Authority
- CN
- China
- Prior art keywords
- output
- bottle
- layer
- value
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种混合生产线上的基于机器视觉检测的三种瓶体识别方法,利用数字图像处理技术对检测对象进行预处理后,采取自适应阈值的归一化水平扫描和垂直扫描获取目标的几何特征信息,同时结合目标的不变矩特性构成模式特征矢量,再经过结合单层感知器和改进型BP神经网络的分类器处理,对产品实现准确识别。本发明中将带有自适应阈值的归一化投影技术用于求取检测对象的几何特征,简化了计算步骤,耗时较少,具有较广泛的适用性,可推广到各类型检测对象几何特征的提取。同时分类器结合了单层感知器和BP神经网络两种类型的神经网络,根据特征矢量的不同选择不同的网络结构,自适应较强,提高了识别分类的精确度。
Description
技术领域
本发明属于生产线自动检测与控制领域,涉及一种混合生产线上的基于机器视觉检测的三种瓶体识别方法。
背景技术
随着自动化生产技术的飞速发展,高速度、高效率产生高收益,用最低成本获取最大利润,已经成为各类型产品生产厂商追求的目标。在一些大型企业中,一条自动化生产线已经不限于只适用于对一种产品的清洗、烘干、灌装等处理,不同产品在同一条生产线上经过识别分类后再分流到各分支进行后续处理,在保证高速、高效的基础上大大降低生产成本,提高生产效益。
在现代社会中,人们对生活质量的要求日益提高,各类型保健产品成为人们青睐的对象。在日常生活中,选用保健酒代替传统白酒的趋势渐增,中国的保健酒市场呈现以每年30%的速度稳步增长,每年增加的保健酒生产企业约200家。同时我国在医药产品的生产方面居于世界前列,2011年1-2月医药制造业销售收入同比增长32.35%,其中注射针剂、大输液、口服液等灌装药品在该市场中占有很大份额。国内很多厂家瞄准了这个市场,纷纷引进保健酒、注射针剂、大输液等产品的生产技术。这类产品均属于灌装产品,具有较大的相似性,因此考虑如何实现在同一条生产线上对多种不同类型产品进行处理,实现设备最大利用化、成本最小化、收益最大化是一个重要的研究课题。
发明内容
本发明所要解决的技术问题是提出一种混合生产线上的基于机器视觉检测的三种瓶体识别方法,利用数字图像处理技术对检测对象进行预处理后,自适应阈值的归一化水平扫描和垂直扫描获取目标的几何特征信息,同时结合目标的不变矩特性构成模式特征矢量,再经过结合单层感知器和改进型BP神经网络的分类器处理后,对产品实现准确识别。
本发明的技术解决方案如下:
一种混合生产线上的基于机器视觉检测的三种瓶体识别方法,其特征在于,包括如下步骤:
步骤1:对原始检测图像进行图像预处理,及对原始检测图像进行一次3×3的中值滤波,剔除噪声干扰和增强图像;
步骤2:对经过步骤1预处理后的图像,提取目标模式特征矢量:
2)计算灰度均值表示目标灰度特征:
式中H,W分别表示图像的高度和宽度,g(i,j)表示坐标(i,j)处的图像像素灰度值;
2)目标几何特征提取:
a)求取特征瓶宽:
对检测对象瓶体图像水平投影曲线取梯度绝对值,得到一个长度为图像高度的一维离散信号,表示图像的水平投影灰度和,采用线性变换公式:
对该一维离散信号进行归一化处理,式中f(i)为归一化前的一维信号,f*(i)为归一化后的一维信号,Min(f)为一维信号f(i)的最小值,Max(f)为一维信号f(i)的最大值;
在归一化的水平投影梯度绝对值曲线上,产生自适应阈值:
首先给定一个阈值向量生成步长0<τ<1,选τ=0.01,计算出阈值向量的长度L=100,然后生成阈值向量:G={(i·τ)|i=1,2...L-1};
再由阈值向量生成方差向量:
再将方差向量从小到大进行排列;
在归一化的水平投影梯度绝对值曲线中,提取对比度为0.25的阈值,将小于阈值的部分全部置为0,瓶体的上边缘线对应阈值分割后的第一个非零点横坐标,下边缘线对应阈值分割后的最后一个非零点横坐标,两者差值的绝对值为瓶宽;
b)求取特征瓶高:
在归一化的垂直投影梯度绝对值曲线上,产生自适应阈值:
首先给定一个阈值向量生成步长0<τ<1,τ=0.01,计算出阈值向量的长度L=100;然后生成阈值向量:G={(i·τ)|i=1,2...L-1};
再由阈值向量生成方差向量:
再将方差向量从小到大进行排列;
最后输出给定对比度的阈值,若为1则输出方差最大值所对应的阈值,为0则输出方差最小值所对应的阈值,为其他则输出特定变化量对比度的阈值;
在归一化的垂直投影梯度绝对值曲线中,提取对比度为0.25的阈值,将小于阈值的值全部置为0,经阈值分割后的垂直投影梯度绝对值曲线上的最后一个非零值所对应的横坐标为瓶底;
将归一化前垂直投影曲线平均分为两个部分,左半边是宽度W坐标在0至W/2的投影,右半边是宽度W坐标在W/2至高H部分的投影,求取左半部分的最小值点的横坐标值作为瓶体肩部高线;
瓶底与肩部高线的差的绝对值为瓶高;
c)比较前面求取的特征瓶宽和瓶高大小,取较大值为瓶高H,较小值为瓶宽W;
3)不变矩特征提取:
首先计算目标Hu矩不变量组:
对于二维离散图像灰度空间,在区域R内的像素点(x,y)的(p,q)阶原点矩、中心矩以及归一化中心距分别定义为:
mpq=∑(x,y)∈R∑xpyq,p,q=0,1,2...
(3)
(4)
ηpq=μpq/μ00 1+(p+q)/2
(5)
到目标Hu矩不变量组如下:
M1=η20+η02
M2=(η20-η02)2+4η2 11
M3=(η30-3η12)2+(3η21-η03)2
M4=(η30+η12)2+(η21+η03)2
M5=(η30-3η12)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η03)(η21+η03)[3(η30+η12)2-(η21+η03)2]
M6=(η20-η02)[(η30+η12)2-(η21+η03)2]+4η11(η30+η12)(η21+η03)
M7=(3η21-η03)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η30)(η21+η03)[3(η30+η12)2-(η21+η03)2]
得目标不变矩如下:
M1′=M1
M2′=M2/M1 2
M3′=M3/M1 3
M′4=M4/M1 3
M5′=M5/M1 6
M6′=M6/M1 4
M7′=M7/M1 6;
步骤3:采取单层感知器与BP神经网络组合成为分类器,采用分类器进行识别分类,依据分类器的输出结果完成目标的识别:
a)初步识别分类处理:
将目标灰度特征定义为p1、特征瓶宽定义为p2、特征瓶高定义为p3、目标高宽比定义为p4进行模糊化处理,模糊化处理后的量作为由输入层、感知层和阈值函数构成的单层感知器的输入矢量,感知层输出n与单层感知器输出a间的传递函数为:a=hardlim(n),即:当n大于或等于0时,a=1,否则a=0,
单层感知器输出a与输入的关系为:
a=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b)
式中ω1,1,ω1,2,ω1,3,ω1,4为输入矢量(p1,p2,p3,p4)从输入层到感知层对应的权值,b为阈值;
单层感知器进行初步分类,其工作流程如下:
①初始化网络:对权值w1,1,w1,2,w1,3,w1,4赋值,w1,1=0.1,w1,2=0.1,w1,3=0.2,w1,4=0.1,设置阈值b为0.25,学习速率为η=0.05,学习精度为10-10,最大学习次数为30;
②输入第一个训练样本,p1=0,p2=1,p3=1,p4=0,即输入为第一种瓶体,期望输出为d(1)=1,其中d(n)代表第n个训练样本的期望输出,计算单层感知器的输出:
Sout(1)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b),
输出误差e=d(1)-Sout(1),如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(2)=b+ηe;
③更新训练集样本,p1=1,p2=0,p3=0p4=1,期望输出为d(2)=1,即输入为第二瓶体,期望输出为1;
计算单层感知器输出:
Sout(2)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b),
输出误差e=d(2)-Sout(2);
如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(3)=b(2)+ηe;
④更新训练集样本,p1=0,p2=1,p3=0,p4=0,期望输出为d(3)=0,即输入为第三种瓶体,期望输出为0;
计算单层感知器输出:
Sout(3)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b);
输出误差e=d(3)-Sout(3),如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(4)=b(3)+ηe
⑤更新训练样本,p1=0,p2=1,p3=1,p4=0,期望输出为d(4)=1,计算单层感知器输出:
Sout(4)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b)
输出误差e=d(4)-Sout(4),如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(5)=b(4)+ηe
⑥采用如上方法依次更新训练样本,训练单层感知器满足输出误差e全小于10-10或者学习次数大于30时结束;
【这里学习次数最大为30,如果在30次以内达到检测精度则结束,若训练了30次仍未达到检测精度则强制结束;前面给出的5次是个例子,要依次继续向下训练,直到满足精度。】
b)二次分类:
将单层感知器输出Sout与目标不变矩M1,M2,...M7构成BP神经网络的输入,BP神经网络由输入层、隐含层和输出层构成,含8输入,6个隐含层神经元,3输出,输入层到隐含层的传递函数为tansig函数,隐含层到输出层的传递函数为logsig函数;
BP神经网络的输入矢量为:
Sinbp=(p1,p2,p3,p4,p5,p6,p7,p8)=(Sout,M1,M2,M3,M4,M5,M6,M7)
隐含层输出矢量:South=(q1,q2,q3,q4,q5,q6),
其中qi=tansig(p1w1,i 1+p2w2,i 1+...+p8w8,i 1-b1,i),i=1,2...6
BP神经网络输出矢量:Soutbp=(a1,a2,a3),
其中ai=logsig(q1w1,i 2+q2w2,i 2+...+q6w6,i 2-b2,i),i=1,2,3
BP神经网络工作流程如下:
第一步:初始化网络:
为输入层与隐含层的连接权值wi,j 1(1)、隐含层与输出层的连接权值wm,n 2(1)赋非零正值0.1,其中i=1,2,...,8,j=m=1,2,...,6,n=1,2,3,设置隐含层各神经元阈值b1,j(1)、输出层各神经元阈值b2,n(1)均为0.2,其中j=1,2,...,6,n=1,2,3,学习速率η为0.2,误差函数其中k是训练样本的元素个数,k=1,2,3,设定误差精度为10-10,最大学习次数为2000;
第二步:随机选取第k输入样本及对应期望输出:
Sinbp(k)=(p1(k),p2(k),...,p8(k)),
d(k)=(a1(k),a2(k),a3(k)),
第三步:计算隐含层各神经元的输入和输出:
隐含层神经元的输入:
隐含层输出:
第四步:计算输出层的输入和输出:
输出层的输入:
输出层输出:
第五步:利用网络期望输出与实际输出,计算误差函数对输出层的各神经元的偏导数δn(k):
其中:
且
此处误差函数对输出层的各神经元的偏导数为:
δn(k)=(dn(k)-Soutbpn(k))f2′(Sinon(k))
=(dn(k)-Soutbpn(k))Soutbpn(k)(1-Soutbpn(k),其中n=1,2,3
第六步:利用隐含层到输出层的连接权值、输出层的δn(k)和隐含层的输出计算误差函数对隐含层各神经元的偏导数δj(k): 其中j=1,2,...,6;
第七步:利用输出层各神经元的δn(k)和隐含层各神经元的输出来修正连接权值wm,n 2(k):
wm,n 2,N+1(k)=wm,n 2,N(k)-ηδn(k)qm(k),其中N是迭代次数,wm,n 2,N(k)表示第N次迭代时wm,n 2(k)的值;
误差对权值的偏导数大于零时,权值向减少方向调整,反之权值向增加方向调整;
这里隐含层到输出层的权值修正量:
Δwm,n 2(1)=ηδn(1)qm(1),其中m=1,2,...,6,n=1,2,3,qm=qj;
调整隐含层到输出层的权值:
wm,1 2,2(1)=wm,1 2,1(1)-Δwm,1 2(1),
其中m=1,2,...,6,wm,1 2,1(1)表示wm,1 2(1)第一次迭代值;
wm,2 2,2(1)=wm,2 2,1(1)-Δwm,2 2(1),
其中m=1,2,...,6,wm,2 2,1(1)表示wm,2 2(1)第一次迭代值;
wm,3 2,2(1)=wm,3 2,1(1)-Δwm,3 2(1),
其中m=1,2,...,6,wm,3 2,1(1)表示wm,3 2(1)第一次迭代值;
第八步:利用隐含层神经元的δj(k)和输入层各神经元的输入修正连接权值wi,j 1(k):
wi,j 1,N+1(k)=wi,j 1,N(k)-ηδj(k)pi(k),其中N是迭代次数,wi,j 1,N(k)表示第N次迭代时wi,j 1(k)的值;
误差对权值的偏导数大于零时,权值应向减少方向调整,反之权值向增加方向调整。
这里输入层到隐含层的权值修正量:
Δwi,j 1(1)=ηδj(1)pi(1),其中i=1,2,...,8,j=1,2,...,6
根据上式求得:
Δw1,j 1(1)=ηδj(1)p1(1),其中j=1,2,...,6
Δw2,j 1(1)=ηδj(1)p2(1),其中j=1,2,...,6
Δw3,j 1(1)=ηδj(1)p3(1),其中j=1,2,...,6
Δw4,j 1(1)=ηδj(1)p4(1),其中j=1,2,...,6
Δw5,j 1(1)=ηδj(1)p5(1),其中j=1,2,...,6
Δw6,j 1(1)=ηδj(1)p6(1),其中j=1,2,...,6
Δw7,j 1(1)=ηδj(1)p7(1),其中j=1,2,...,6
Δw8,j 1(1)=ηδj(1)p8(1),其中j=1,2,...,6
调整隐含层到输出层的权值:
w1,j 1,2(1)=w1,j 1,1(1)-Δw1,j 1(1)
其中j=1,2,...,6,w1,j 1,1(1)表示w1,j 1(1)第一次迭代值;
w2,j 1,2(1)=w2,j 1,1(1)-Δw2,j 1(1)
其中j=1,2,...,6,w2,j 1,1(1)表示w2,j 1(1)第一次迭代值;
w3,j 1,2(1)=w3,j 1,1(1)-Δw3,j 1(1)
其中j=1,2,...,6,w3,j 1,1(1)表示w3,j 1(1)第一次迭代值;
w4,j 1,2(1)=w4,j 1,1(1)-Δw4,j 1(1)
其中j=1,2,...,6,w4,j 1,1(1)表示w4,j 1(1)第一次迭代值;
w5,j 1,2(1)=w5,j 1,1(1)-Δw5,j 1(1)
其中j=1,2,...,6,w5,j 1,1(1)表示w5,j 1(1)第一次迭代值;
w6,j 1,2(1)=w6,j 1,1(1)-Δw6,j 1(1)
其中j=1,2,...,6,w6,j 1,1(1)表示w6,j 1(1)第一次迭代值;
w7,j 1,2(1)=w7,j 1,1(1)-Δw7,j 1(1)
其中j=1,2,...,6,w7,j 1,1(1)表示w7,j 1(1)第一次迭代值;
w8,j 1,2(1)=w8,j 1,1(1)-Δw8,j 1(1)
其中j=1,2,...,6,w8,j 1,1(1)表示w8,j 1(1)第一次迭代值;
第九步:计算网络误差:
计算全局误差:
当一个训练样本全部训练结束时,计算全局误差;
第十步:判断网络误差及全局误差是否满足要求:
当误差达到预设精度10-10或学习次数大于设定的最大次数2000,则结束算法,否则,选取下一个训练样本及对应的期望输出,返回到第三步,进入下一轮学习;
c)根据BP神经网络的输出结果识别分类,完成目标的识别,工作流程如下:
第一步:单层感知器神经网络初始化;【与前文所述的单层感知器神经网络初始化过程相同。】
第二步:由目标灰度均值、特征瓶宽、特征瓶高、高宽比构成的灰度几何特征矢量作为单层感知器的输入矢量,采用训练好的单层感知器进行初分类处理;
第三步:单层感知器输出数据,若目标为第一种瓶体或第二种瓶体,则输出Sout为1;若目标为第三种瓶体,则输出Sout为0;
第四步:BP神经网络初始化,设置各参数,将由Sout与不变矩组M1,M2,M3,M4,M5,M6,M7构成的矢量作为BP神经网络的输入矢量,采用训练好的单层感知器进行二次分类;
第五步:若BP神经网络输出矢量为100;则输出识别结果,目标为第一种瓶体;若输出矢量为010,则输出识别结果,目标为第二种瓶体;若输出矢量为001,则输出识别结果,目标为第三种瓶体;若输出矢量不同于上述3个矢量中的任一个,则判定目标不在识别范围内,结束识别过程。
所述步骤3的初步分类处理过程中,对输入矢量作如下模糊化处理:
若灰度特征p1小于200,则将p1置为0,否则置为1;
若特征瓶宽p2小于400,则将p2置为0,否则置为1;
若特征瓶高p3小于700,则将p3置为0,否则置为1;
若高宽比特征p4小于2,则将p4置为0,否则置为1;
处理后目标输入矢量为:
第一种瓶体输入矢量为:0110;
第二种瓶体输入矢量为:1001;
第三种瓶体输入矢量为:0100。
所述步骤3的初步分类处理过程中,单层感知器的输出规则如下:
若输入为第一种瓶体或第二种瓶体,则输出Sout为1,否则输出Sout为0。
三种瓶体分别为劲酒瓶、安瓿瓶和大输液瓶,所述步骤3中:
当输出Soutput为:100,表明当前的瓶体为劲酒瓶;
当输出Soutput为:010,表明当前的瓶体为安瓿瓶;
当输出Soutput:001,表明当前的瓶体为大输液瓶。
有关大输液的解释:大容量注射液俗称大输液(Large Volume Parenteral,LVP),通常是指容量大于等于50ml并直接由静脉滴注输入体内的液体灭菌制剂,以下劲酒瓶、安瓿瓶和大输液瓶分别简称为劲酒、安瓿和大输液。
有益效果:
(1)将带有自适应阈值的归一化投影技术用于求取检测对象的几何特征,使获取的结果精确度较高,简化了计算步骤,耗时较少,具有较广泛的适用性,可推广到各类型检测对象几何特征的提取。
(2)由于不变矩特征反应了物体本身特有的特性,当目标对象的特征经历了平移、缩放、镜像和旋转的变换后,矩不变量组仍然保持不变,将不变矩特征应用于检测对象识别分类中,克服了由机械手或传送过程等造成的各种抖动导致目标发生位置和形态上变化的问题,更好地适应于工业生产现场复杂环境。
(3)分类器结合了单层感知器和BP神经网络两种类型的神经网络,根据特征矢量的不同选择不同的网络结构,自适应较强,提高了识别分类的精确度。
附图说明
图1是本发明方法的系统结构图
图2是目标模式特征矢量提取流程框图
图3是单层感知器结构图
图4是单层感知器工作流程图
图5是BP神经网络结构图
图6是LM算法改进的BP神经网络工作流程图
图7是分类器结构图
图8是分类器工作流程图
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明:
实施例1:
在同一条生产线上对劲酒、安瓿和大输液三类产品的进行识别,技术方案的系统结构图如图1所示,具体步骤为:
1)通过图像预处理剔除检测对象噪声干扰和增强图像。
由于光照、图像传感器、传输通道等因素,获取的目标图像中存在着各种噪声和干扰,直接从原始图像提取特征信息难免会受到噪声的干扰,从而降低了特征的准确性,所以在提取模式特征之前必须对原始图像进行若干预处理。然而,过于复杂的预处理会使提取的模式特征过多的依赖于预处理算法,对于不同的模式图像,同样的预处理可能产生不同的处理效果,为了降低特征提取过程对图像预处理算法的依赖程度,本发明所述特征提取算法只对输入图像进行一次3×3的中值滤波,去除噪声和增强图像。
2)目标模式特征矢量提取:采用自适应阈值的归一化水平扫描和垂直扫描的方法获取目标几何特征矢量,结合灰度均值特征和离散不变矩特征共同构成识别对象的模式特征矢量。
目标特征矢量提取框图如图2所示,目标灰度均值、几何特征和离散不变矩组的具体获取过程如下述:
a)目标灰度特征提取:
灰度均值代表了图像的整体亮暗程度,当没有其他目标进入摄像机视野时,图像的灰度显示了光源和其它一些背景的亮度信息,这时图像的灰度均值应该是稳定在一个相对狭小的灰度区间内,当有目标进入摄像机视野时,由于对光源光线的遮挡和反射,图像的平均灰度值应该会大幅度下降,而当目标移出摄像机视野后,图像的平均灰度又返回原来的稳定区间。不同的目标进入及移出摄像机会产生不同的影响,所以,根据灰度变化的剧烈程序可以粗略的知道进入摄像机视野的目标的大小、透明度、运动速度等信息,进而实现目标种类的识别。灰度均值的计算公式如下:
式中H,W分别表示图像的高度和宽度,g(i,j)表示坐标(i,j)处的图像像素灰度值。表1中列出了15组劲酒、大输液及安瓿图像的灰度均值特征提取结果,可知劲酒、大输液和安瓿的灰度均值相差较明显,大输液图像整体较暗,安瓿图像整体较亮,劲酒图像整体均匀。
表1
b)目标几何特征提取:
自适应阈值的归一化水平扫描和垂直扫描获取目标几何特征矢量涉及的归一化理论及自适应阈值产生步骤如下,这里提取特征瓶宽与特征瓶高过程以劲酒为例:
i.未归一化的一维信号的梯度变化范围为(-∞,+∞),而归一化后的信号梯度变换范围为(0,1),这不仅可以使得阈值产生算法更具普适性,而且产生的阈值在一定程度上说明了信号变化的剧烈程度。
对一维信号的归一化可以根据不同需要采用线性变换和非线性变换,为了保留原始信号波形的变化特性不变,本发明中采用线性变换方式,变换公式如下:
对该一维离散信号进行归一化处理,式中f(i)为归一化前一维信号,f*(i)为归一化后一维信号,Min(f)为一维信号f(i)的最小值,Max(f)为一维信号f(i)的最大值;
在提取瓶高特征中,获取的瓶高梯度绝对值是一个一维信号,其值分布在0至10000之间,范围较广,采用归一化公式,将瓶高梯度绝对值这个一维信号归一化至0到1范围内,缩小分布范围,提高运算速度。
ii.自适应阈值的产生
步骤1:给定一个阈值向量生成步长0<τ<1,计算出阈值向量的长度L=1/τ;
这里选择步长0.01,阈值向量的长度为100
步骤2:生成阈值向量:
G={(i·τ)|i=1,2...L-1}
步骤3:由阈值向量生成方差向量:
步骤4:将方差向量从小到大进行排列;
步骤5:输出给定对比度(0<η<1)的阈值,若为1则输出方差最大值所对应的阈值,为0则输出方差最小值所对应的阈值,为其他则输出特定变化量对比度的阈值。
iii.求取特征瓶宽
原始目标图像的水平投影灰度和可以看做是一个长度为图像高度的一维离散信号。通过大量的实验研究发现,几乎所有的曝光正常的瓶体图像都有着如图5左图所示的曲线特性,即存在两个变化非常剧烈的区域,分别对应瓶体上边缘和下边缘。对水平投影曲线取梯度绝对值,再利用上述的归一化方法进行归一化。
在归一化的水平投影梯度绝对值曲线上,利用上述自适应阈值的提取方法提取一定对比度的阈值,需要注意的是自适应阈值的对比度过大提取到的阈值在分割过程中有着过高的拒识率,对比度过低则分割得到的是边缘信息的准确率降低,通过大量的实验发现当自适应阈值的对比度设为0.3时,算法能够准确的识别瓶体边缘并给出正确的瓶宽信息。
瓶宽信息的给出可以通过两种方式给出:
①将原始水平投影曲线平均分为两个部分,左半边是高度坐标在[0,H/2]部分的投影,右半边是高度坐标在[H/2,H]部分的投影,分别求取左半边最小值点和右半部最小值点所对应的横坐标,求差取绝对值即得到了瓶宽值。这种方法求得的瓶宽值同真实值相比较小,是因为极小值所对应的不是瓶体外边缘线,而是瓶体内外边缘线的中间值。
②在归一化的水平投影梯度绝对值曲线中取对比度为0.25的阈值,将小于阈值的部分全部置为0,此时瓶体的上边缘线对应阈值分割后的第一个非零点横坐标,下边缘线对应阈值分割后的最后一个非零点横坐标。两者差值的绝对值即为瓶宽。因为这种方法中上下边缘对应的是图像瓶体的外边缘线,所以求得的瓶宽能够真实的反映实物瓶体的瓶宽。
综合评定两种算法的优劣,本发明选用方法②提取瓶宽。
iv.求取特征瓶高
同原始图像的水平投影灰度和相同,原始图像的垂直投影灰度和同样可以看做是一个长度为图像宽度的一维离散信号。通过大量的实验研究发现,几乎所有的曝光正常的瓶体图像存在着两个变化非常剧烈的区域,对应于液面和瓶底,投影曲线上第一个极小值点对应的不再是边缘而是肩部,
对特征瓶高的提取结合原始投影曲线和归一化梯度绝对值曲线进行:
首先,将原始垂直投影曲线平均分为两个部分,左半边是宽度坐标在[0,W/2]部分的投影,右半边是宽度坐标在[W/2,H]部分的投影,求取左半部分的最小值点的横坐标值作为瓶体肩部高线。然后,在归一化的垂直投影梯度绝对值曲线中利用对比度为0.25的阈值进行分割,将小于阈值的值全部置为0,则瓶底对应于分割后的曲线上的最后一个非零值所对应的横坐标。瓶底与肩部高线的差的绝对值即为最后的瓶宽值。实验证明,采用上述方法可以准确的从瓶体图像中提取出瓶高信息,同时有着高的稳定性和识别率。
在提取特征宽度(W)和特征高度(H)时作如下处理:
在提取目标的特征瓶宽和特征瓶高后,经过上述处理,计算目标高宽比保证比值大于1,根据下式计算出各类型目标高宽比η:
结果见表2:
表2
c)不变矩特征提取:
不变矩特征的提取首先计算目标Hu不变矩组,其在连续情况下具有比例不变性,但是在离散的情况下却不成立,因此对Hu不变矩做进一步处理得到目标不变矩特征。对于二维离散图像灰度空间,在区域R内的像素点(x,y)的灰度值为f(x,y),其(p,q)阶原点矩,中心矩以及归一化中心距分别定义为:
mpq=∑(x,y)∈R∑xpyq,p,q=0,1,2...
(3)
(4)
ηpq=μpq/μ00 1+(p+q)/2 (5)
在上式基础上可以得到Hu的矩不变量组:
M1=η20+η02
M2=(η20-η02)2+4η2 11
M3=(η30-3η12)2+(3η21-η03)2
M4=(η30+η12)2+(η21+η03)2
M5=(η30-3η12)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η03)(η21+η03)[3(η30+η12)2-(η21+η03)2]
M6=(η20-η02)[(η30+η12)2-(η21+η03)2]+4η11(η30+η12)(η21+η03)
M7=(3η21-η03)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η30)(η21+η03)[3(η30+η12)2-(η21+η03)2]
Hu在连续空间中证明了7个矩组对图像的平移、比例和旋转式不变的。但在离散的状态下,平移不变性和旋转不变性已经得到证明,但不变矩会受到比例因子的影响。针对上述Hu提出的不变矩组在离散条件下能够保持平移不变,但是无法保持比例不变,重新构造不变矩如下:
M1′=M1
M2′=M2/M1 2
M3′=M3/M1 3
M4′=M4/M1 3
M5′=M5/M1 6
M6′=M6/M1 4
M7′=M7/M1 6;
表3列出了15组取绝对值后的目标不变矩。
表3
3)分类器由单层感知器与LM算法改进的BP神经网络组成,将步骤2)中提取的目标灰度特征和几何特征作为单层感知器的输入,经过训练好的神经网络进行初步识别分类处理;
单层感知器结构图如图3所示,是最简单的神经网络之一,其传递函数采用的是阈值函数,输出只有两个状态。感知层输出n与单层感知器输出a间的传递函数为:a=hardlim(n),即:当n大于或等于0时,a=1,否则a=0,
单层感知器输出a与输入的关系为:
a=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b)
式中ω1,1,ω1,2,ω1,3,ω1,4为输入矢量(p1,p2,p3,p4)从输入层到感知层对应的权值,b为阈值;
将目标灰度特征和几何特征(特征瓶高、特征瓶宽和高宽比)作为单层感知器的输入,单层感知器的输入矢量Pins=(p1,p2,p3,p4)与输出Sout具有如下关系:
若灰度特征(p1)小于200,则将p1置为0,否则置为1;
若特征瓶高(p2)小于400,则将p2置为0,否则置为1;
若灰度特征(p3)小于700,则将p3置为0,否则置为1;
若高宽比特征(p4)小于2,则将p4置为0,否则置为1。
处理后目标输入矢量为:劲酒输入矢量为(0110);安瓿输入矢量为(1001);大输液输入矢量为(0100)。将输入矢量输入图3所示的单层感知器,经过训练后网络进行分类,预设单层感知器的输出规则如下:
若输入为劲酒或安瓿,则输出Sout为1,否则输出Sout为0。
由于模糊化处理目标输入矢量,使得目标由于环境或机械手抖动等原因造成灰度特征和几何特征发生变化时不会影响目标的输入特征矢量,且劲酒、安瓿与大输液模糊化后的输入矢量区别明显,感知器可以很好的进行分类,其工作流程图如图4所示,具体步骤如下:
①给定训练样本,初始化网络,。对权值w1,1,w1,2,w1,3,w1,4赋一个较小的随机非零值,w1,1=0.1,w1,2=0.1,w1,3=0.2,w1,4=0.1,设置阈值b为0.25,学习速率为η=0.05,学习精度为10-10,最大学习次数为30,期望输出为d(1)=1,即输入为劲酒,期望输出为1。
②输入第一个训练样本,P=(p1(1),p2(1),p3(1),p4(1))=(0110),计算单层感知器的输出:
Sout(1)=hardlim(0.1×0+0.1×1+0.2×1+0.1×0-0.25)=1,
输出误差e=d(1)-Sout(1)=0,则:
阈值w(2)=w(1)即w1,1(2)=0.1,w1,2(2)=0.1,w1,3(2)=0.2,w1,4(2)=0.1,权值b(2)=b(1)=0.25。
③更新训练集样本,P=(p1(2),p2(2),p3(2),p4(2))=(1001),期望输出为d(2)=1,即输入为安瓿期望输出为1。计算单层感知器输出:
Sout(2)=hardlim(0.1×1+0.1×0+0.2×0+0.1×1-0.25)=0,
输出误差e=d(2)-Sout(2)=1
调整权值:w(3)=w(2)+ηeP(2)即:
w1,1(3)=0.1+0.05×1×1=0.15,
w1,2(3)=0.1+0.05×1×0=0.1,
w1,3(3)=0.2+0.05×1×0=0.2,
w1,4(3)=0.1+0.05×1×1=0.15;
调整阈值:b(2)=b(1)+ηe=0.25+0.05=0.3。
④更新训练集样本,P=(p1(3),p2(3),p3(3),p4(3))=(0100),期望输出为d(3)=0,即输入为大输液期望输出为0。计算单层感知器输出:
Sout(3)=hardlim(0.15×0+0.1×1+0.2×0+0.15×0-0.3)=0
输出误差e=d(3)-Sout(3)=0,则:
权值w(4)=w(3)即w1,1(4)=0.15,w1,2(4)=0.1,w1,3(4)=0.2,w1,4(4)=0.15,阈值b(4)=b(3)=0.3。
⑤更新训练样本,P=(p1(4),p2(4),p3(4),p4(4))=(0110),期望输出为d(4)=1,计算单层感知器输出:
Sout(4)=hardlim(0.15×0+0.1×1+0.2×1+0.15×0-0.3)=1
输出误差e=d(4)-Sout(4)=0,则:
权值w(5)=w(4)即w1,1(5)=0.15,w1,2(5)=0.1,w1,3(5)=0.2,w1,4(5)=0.15,阈值b(5)=b(4)=0.3。
⑥采用如上方法依次更新训练样本,训练单层感知器满足输出误差e全小于10-10或者学习次数大于30时结束。
表4中列出了分类结果。
表4
4)将步骤3)中,单层感知器的输出(Sout)结合目标的不变矩特征构成LM算法改进的BP神经网络输入,经过BP神经网络进行二次分类。
BP神经网络是对非线性可微分函数进行权值训练的多层前向网络,其信号是前向传播的,而误差是反向传播的。最基本的BP神经网络由输入层、隐含层和输出层组成,且一个三层的BP神经网络可以完成任意m维到n维的映射。
单层感知器输出(Sout)与目标不变矩(M1,M2,...,M7)构成BP神经网络的输入,训练分类器,预设输出规则为:当输入为劲酒时,输出Soutput为(100);输入为安瓿时,输出Soutput为(010);输入为大输液时,输出Soutput为(001)。在综合考虑运行时间和精度要求的基础上,设计的网络为8输入,6个隐层神经元,3输出的BP神经网络,如图5所示,输入层到隐含层的传递函数选择tansig函数,隐含层到输出层的传递函数选择logsig函数。隐含层神经元个数具体多少个的选取是由经过大量实验测试得到,在保证分类精度的基础上缩短运行时间。
BP神经网络的输入矢量为:
Sinbp=(p1,p2,p3,p4,p5,p6,p7,p8)=(Sout,M1,M2,M3,M4,M5,M6,M7)
隐含层输出矢量:South=(q1,q2,q3,q4,q5,q6),
其中qi=tansig(p1w1,i 1+p2w2,i 1+...+p8w8,i 1-b1,i)i=1,2...6
BP神经网络输出矢量:Soutop=(a1,a2,a3),
其中ai=logsig(q1w1,i 2+q2w2,i 2+...+q6w6,i 2-b2,i)i=1,2,3
BP神经网络工作流程图如图6所示,具体步骤如下:
第一步:给定训练样本,初始化网络。为输入层与隐含层的连接权值wi,j 1(1)、隐含层与输出层得连接权值wm,n 2(1)赋较小的随机非零值0.1其中i=1,2,...,8,j=m=1,2,...,6,n=1,2,3,设置隐含层各神经元阈值b1,j(1)、输出层各神经元阈值b2,n(1)均为0.2其中j=1,2,...,6,n=1,2,3,学习速率η为0.2,误差函数其中k是训练样本的元素个数,k=1,2,3,设定误差精度为10-10,最大学习次数为2000。
第二步:随机选取第k输入样本及对应期望输出:
Sinbp(k)=(p1(k),p2(k),...,p8(k))
d(k)=(a1(k),a2(k),a3(k))
这里选取:
Sinbp(1)=(1.0000,7.7779,0.0325,0.0052,0.2423,0.0074,0.0436,0.0039)
d(1)=(100)即BP神经网络输入矢量要劲酒特征矢量时输出为(100)
第三步:计算隐含层各神经元的输入和输出:
Southj(k)=tansig(Sinhj(k))=qj(k),其中j=1,2,...,6
这里隐含层神经元的输入:
隐含层输出:
第四步:计算输出层的输入和输出:
Soutbpn(k)=logsig(Sinon(k))=an(k),其中n=1,2,3
这里输出层的输入:
输出层输出:
第五步:利用网络期望输出与实际输出,计算误差函数对输出层的各神经元的偏导数δn(k)。
其中:
且
这里误差函数对输出层的各神经元的偏导数:
δn(k)=(dn(k)-Soutbpn(k))f2′(Sinon(k))
=(dn(k)-Soutbpn(k))Soutbpn(k)(1-Soutbpn(k)其中n=1,2,3
根据上式求得:
δn1(1)=(1-0.5416)×0.5416×(1-0.5416)=0.1138
δn2(1)=(0-0.5416)×0.5416×(1-0.5416)=-0.1345
δn3(1)=(0-0.5416)×0.5416×(1-0.5416)=-0.1345
其中,δn1(1)、δn2(1)、δn3(1)为δn(1)的三个分量
第六步:利用隐含层到输出层的连接权值、输出层的δn(k)和隐含层的输出计算误差函数对隐含层各神经元的偏导数δj(k)。
其中:
且j=m=1,2,...,6,
这里误差函数对隐含层各神经元的偏导数:
根据上式求得:
其中,δj1(1)、δj2(1)、δj3(1)、δj4(1)、δj5(1)、δj6(1)为δj(1)的六个分量
第七步:利用输出层各神经元的δn(k)和隐含层各神经元的输出来修正连接权值wm,n 2(k)。
wm,n 2,N+1(k)=wm,n 2,N(k)-ηδn(k)qm(k),其中N是迭代次数,wm,n 2,N(k)表示第N次迭代时wm,n 2(k)的值。
误差对权值的偏导数大于零时,权值向减少方向调整,反之权值向增加方向调整。
这里隐含层到输出层的权值修正量:
Δwm,n 2(1)=ηδn(1)qm(1),其中m=1,2,...,6,n=1,2,3,qm=qj
根据上式求得:
Δwm,1 2(1)=ηδ1(1)qm(1)=0.2×0.1138×0.6115=0.0140,其中m=1,2,...,6
Δwm,2 2(1)=ηδ2(1)qm(1)=-0.2×0.1345×0.6115=-0.0160,其中m=1,2,...,6
Δwm,3 2(1)=ηδ3(1)qm(1)=-0.2×0.1345×0.6115=-0.0160,其中m=1,2,...,6
调整隐含层到输出层的权值:
wm,1 2,2(1)=wm,1 2,1(1)-Δwm,1 2(1)=0.1-0.0140=0.0860
其中m=1,2,...,6,wm,1 2,1(1)表示wm,1 2(1)第一次迭代值
wm,2 2,2(1)=wm,2 2,1(1)-Δwm,2 2(1)=0.1+0.0160=0.1160
其中m=1,2,...,6,wm,2 2,1(1)表示wm,2 2(1)第一次迭代值
wm,3 2,2(1)=wm,3 2,1(1)-Δwm,3 2(1)=0.1+0.0160=0.1160
其中m=1,2,...,6,wm,3 2,1(1)表示wm,3 2(1)第一次迭代值
第八步:利用隐含层神经元的δj(k)和输入层各神经元的输入修正连接权值wi,j 1(k)
wi,j 1,N+1(k)=wi,j 1,N(k)-ηδj(k)pi(k),其中N是迭代次数,wi,j 1,N(k)表示第N次迭代时wi,j 1(k)的值。
误差对权值的偏导数大于零时,权值应向减少方向调整,反之权值向增加方向调整。
这里输入层到隐含层的权值修正量:
Δwi,j 1(1)=ηδj(1)pi(1),其中i=1,2,...,8,j=1,2,...,6
根据上式求得:
调整隐含层到输出层的权值:
w1,j 1,2(1)=w1,j 1,1(1)-Δw1,j 1(1)=0.1+0.0019=0.1019
其中j=1,2,...,6,w1,j 1,1(1)表示w1,j 1(1)第一次迭代值
w2,j 1,2(1)=w2,j 1,1(1)-Δw2,j 1(1)=0.1+0.0151=0.1151
其中j=1,2,...,6,w2,j 1,1(1)表示w2,j 1(1)第一次迭代值
w3,j 1,2(1)=w3,j 1,1(1)-Δw3,j 1(1)=0.1+0.00006=0.10006
其中j=1,2,...,6,w3,j 1,1(1)表示w3,j 1(1)第一次迭代值
w4,j 1,2(1)=w4,j 1,1(1)-Δw4,j 1(1)=0.1+0.00001=0.10001
其中j=1,2,...,6,w4,j 1,1(1)表示w4,j 1(1)第一次迭代值
w5,j 1,2(1)=w5,j 1,1(1)-Δw5,j 1(1)=0.1+0.0005=0.1005
其中j=1,2,...,6,w5,j 1,1(1)表示w5,j 1(1)第一次迭代值
w6,j 1,2(1)=w6,j 1,1(1)-Δw6,j 1(1)=0.1+0.00001=0.10001
其中j=1,2,...,6,w6,j 1,1(1)表示w6,j 1(1)第一次迭代值
w7,j 1,2(1)=w7,j 1,1(1)-Δw7,j 1(1)=0.1+0.00008=0.10008
其中j=1,2,...,6,w7,j 1,1(1)表示w7,j 1(1)第一次迭代值
w8,j 1,2(1)=w8,j 1,1(1)-Δw8,j 1(1)=0.1+0.00001=0.10001
其中j=1,2,...,6,w8,j 1,1(1)表示w8,j 1(1)第一次迭代值
第九步:计算网络误差:
计算全局误差:
这里计算网络误差:
当一个训练样本全部训练结束时,计算全局误差。
第十步:判断网络误差及全局误差是否满足要求。当误差达到预设精度10-10或学习次数大于设定的最大次数2000,则结束算法。否则,选取下一个训练样本及对应的期望输出,返回到第三步,进入下一轮学习。
这里计算的网络误差为0.3984,并未达到预设精度,因此返回第三步,进入下一轮学习。
表5列出了分类结果。
表5
5)根据分类器的输出结果识别分类劲酒、安瓿和大输液,完成三类目标的识别过程。
分类器由单层感知器与BP神经网络组合而成,其结构如图7所示,工作流程图如图8,具体步骤如下:
第一步:单层感知器神经网络初始化,设定激活函数、期望输出、学习速率、连接权值、阈值、误差函数等变量和参量。
第二步:由目标灰度均值、特征瓶宽、特征瓶高、高宽比构成的灰度几何特征矢量作为单层感知器的输入矢量,经过训练好的单层感知器进行初分类处理。
第三步:单层感知器输出数据,若目标为劲酒或安瓿,则输出Sout为1;若目标为大输液,则输出Sout为0。
第四步:BP神经网络初始化,设置各参数,将由Sout与不变矩组M1,M2,M3,M4,M5,M6,M7构成的矢量作为BP神经网络的输入矢量,经过训练好的单层感知器进行二次分类。
第五步:若BP神经网络输出矢量为(100)则输出识别结果,目标为劲酒;若输出矢量为(010),则输出识别结果,目标为安瓿;若输出矢量为(001),则输出识别结果,目标为大输液。若输出矢量不在这三类范围内,则判定目标不在识别范围内,结束识别过程。
Claims (4)
1.一种混合生产线上的基于机器视觉检测的三种瓶体识别方法,其特征在于,包括如下步骤:
步骤1:对原始检测图像进行图像预处理,及对原始检测图像进行一次3×3的中值滤波,剔除噪声干扰和增强图像;
步骤2:对经过步骤1预处理后的图像,提取目标模式特征矢量:
1)计算灰度均值表示目标灰度特征:
式中H,W分别表示图像的高度和宽度,g(i,j)表示坐标(i,j)处的图像像素灰度值;
2)目标几何特征提取:
a)求取特征瓶宽:
对检测对象瓶体图像水平投影曲线取梯度绝对值,得到一个长度为图像高度的一维离散信号,表示图像的水平投影灰度和,采用线性变换公式:
对该一维离散信号进行归一化处理,式中f(i)为归一化前的一维信号,f*(i)为归一化后的一维信号,Min(f)为一维信号f(i)的最小值,Max(f)为一维信号f(i)的最大值;
在归一化的水平投影梯度绝对值曲线上,产生自适应阈值:
首先给定一个阈值向量生成步长0<τ<1,选τ=0.01,计算出阈值向量的长度L=100,然后生成阈值向量:G={(i·τ)|i=1,2...L-1};
再由阈值向量生成方差向量:
再将方差向量从小到大进行排列;
在归一化的水平投影梯度绝对值曲线中,提取对比度为0.25的阈值,将小于阈值的部分全部置为0,瓶体的上边缘线对应阈值分割后的第一个非零点横坐标,下边缘线对应阈值分割后的最后一个非零点横坐标,两者差值的绝对值为瓶宽;
b)求取特征瓶高:
对检测对象瓶体图像垂直投影曲线取梯度绝对值,得到表示图像的垂直投影灰度和的一个长度为图像宽度的一维离散信号,采取对该一维离散信号进行归一化;
在归一化的垂直投影梯度绝对值曲线上,产生自适应阈值:
首先给定一个阈值向量生成步长0<τ<1,τ=0.01,计算出阈值向量的长度L=100;然后生成阈值向量:G={(i·τ)|i=1,2...L-1};
再由阈值向量生成方差向量:
再将方差向量从小到大进行排列;
最后输出给定对比度的阈值,若为1则输出方差最大值所对应的阈值,为0则输出方差最小值所对应的阈值,为其他则输出特定变化量对比度的阈值;
在归一化的垂直投影梯度绝对值曲线中,提取对比度为0.25的阈值,将小于阈值的值全部置为0,经阈值分割后的垂直投影梯度绝对值曲线上的最后一个非零值所对应的横坐标为瓶底;
将归一化前垂直投影曲线平均分为两个部分,左半边是宽度W坐标在0至W/2的投影,右半边是宽度W坐标在W/2至高H部分的投影,求取左半部分的最小值点的横坐标值作为瓶体肩部高线;
瓶底与肩部高线的差的绝对值为瓶高;
c)比较前面求取的特征瓶宽和瓶高大小,取较大值为瓶高H,较小值为瓶宽W;
3)不变矩特征提取:
首先计算目标Hu矩不变量组:
对于二维离散图像灰度空间,在区域R内的像素点(x,y)的(p,q)阶原点矩、中心矩以及归一化中心距分别定义为:
mpq=∑(x,y)∈R∑xpyq,p,q=0,1,2...
(3)
ηpq=μpq/μ00 1+(p+q)/2 (5)
到目标Hu矩不变量组如下:
M1=η20+η02
M2=(η20-η02)2+4η2 11
M3=(η30-3η12)2+(3η21-η03)2
M4=(η30+η12)2+(η21+η03)2
M5=(η30-3η12)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η03)(η21+η03)[3(η30+η12)2-(η21+η03)2]
M6=(η20-η02)[(η30+η12)2-(η21+η03)2]+4η11(η30+η12)(η21+η03)
M7=(3η21-η03)(η30+η12)[(η30+η12)2-3(η21+η03)2]+
(3η21-η30)(η21+η03)[3(η30+η12)2-(η21+η03)2]
得目标不变矩如下:
M1′=M1
M2′=M2/M1 2
M3′=M3/M1 3
M4′=M4/M1 3
M5′=M5/M1 6
M6′=M6/M1 4
M7′=M7/M1 6;
步骤3:采取单层感知器与BP神经网络组合成为分类器,采用分类器进行识别分类,依据分类器的输出结果完成目标的识别:
a)初步识别分类处理:
将目标灰度特征定义为p1、特征瓶宽定义为p2、特征瓶高定义为p3、目标高宽比定义为p4进行模糊化处理,模糊化处理后的量作为由输入层、感知层和阈值函数构成的单层感知器的输入矢量,感知层输出n与单层感知器输出a间的传递函数为:a=hardlim(n),即:当n大于或等于0时,a=1,否则a=0,
单层感知器输出a与输入的关系为:
a=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b)
式中ω1,1,ω1,2,ω1,3,ω1,4为输入矢量(p1,p2,p3,p4)从输入层到感知层对应的权值,b为阈值;
单层感知器进行初步分类,其工作流程如下:
①初始化网络:对权值w1,1,w1,2,w1,3,w1,4赋值,w1,1=0.1,w1,2=0.1,w1,3=0.2,w1,4=0.1,设置阈值b为0.25,学习速率为η=0.05,学习精度为10-10,最大学习次数为30;
②输入第一个训练样本,p1=0,p2=1,p3=1,p4=0,即输入为第一种瓶体,期望输出为d(1)=1,其中d(n)代表第n个训练样本的期望输出,计算单层感知器的输出:
Sout(1)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b),
输出误差e=d(1)-Sout(1),如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(2)=b+ηe;
③更新训练集样本,p1=1,p2=0,p3=0p4=1,期望输出为d(2)=1,即输入为第二瓶体,期望输出为1;
计算单层感知器输出:
Sout(2)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b),
输出误差e=d(2)-Sout(2);
如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(3)=b(2)+ηe;
④更新训练集样本,p1=0,p2=1,p3=0,p4=0,期望输出为d(3)=0,即输入为第三种瓶体,期望输出为0;
计算单层感知器输出:
Sout(3)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b);
输出误差e=d(3)-Sout(3),如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(4)=b(3)+ηe
⑤更新训练样本,p1=0,p2=1,p3=1,p4=0,期望输出为d(4)=1,计算单层感知器输出:
Sout(4)=hardlim(ω1,1p1+ω1,2p2+ω1,3p3+ω1,4p4+b)
输出误差e=d(4)-Sout(4),如果误差为0,则权值和阈值不变,否则调整权值:
w1,1=w1,1+η×e×p1,
w1,2=w1,2+η×e×p2,
w1,3=w1,3+η×e×p3,
w1,4=w1,4+η×e×p4;
调整阈值:b(5)=b(4)+ηe
⑥采用如上方法依次更新训练样本,训练单层感知器满足输出误差e全小于10-10或者学习次数大于30时结束;
b)二次分类:
将单层感知器输出Sout与目标不变矩M1,M2,...,M7构成BP神经网络的输入,BP神经网络由输入层、隐含层和输出层构成,含8输入,6个隐含层神经元,3输出,输入层到隐含层的传递函数为tansig函数,隐含层到输出层的传递函数为logsig函数;
BP神经网络的输入矢量为:
Sinbp=(p1,p2,p3,p4,p5,p6,p7,p8)=(Sout,M1,M2,M3,M4,M5,M6,M7)
隐含层输出矢量:South=(q1,q2,q3,q4,q5,q6),
其中qi=tansig(p1w1,i 1+p2w2,i 1+...+p8w8,i 1-b1,i),i=1,2...6
BP神经网络输出矢量:Soutbp=(a1,a2,a3),
其中ai=log sig(q1w1,i 2+q2w2,i 2+...+q6w6,i 2-b2,i),i=1,2,3
BP神经网络工作流程如下:
第一步:初始化网络:
为输入层与隐含层的连接权值wi,j 1(1)、隐含层与输出层的连接权值wm,n 2(1)赋非零正值0.1,其中i=1,2,...,8,j=m=1,2,...,6,n=1,2,3,设置隐含层各神经元阈值b1,j(1)、输出层各神经元阈值b2,n(1)均为0.2,其中j=1,2,...,6,n=1,2,3,学习速率η为0.2,误差函数其中k是训练样本的元素个数,k=1,2,3,设定误差精度为10-10,最大学习次数为2000;
第二步:随机选取第k输入样本及对应期望输出:
Sinbp(k)=(p1(k),p2(k),...,p8(k))
d(k)=(a1(k),a2(k),a3(k))
第三步:计算隐含层各神经元的输入和输出:
隐含层神经元的输入:
隐含层输出:
第四步:计算输出层的输入和输出:
输出层的输入:
输出层输出:
第五步:利用网络期望输出与实际输出,计算误差函数对输出层的各神经元的偏导数δn(k):
其中:
且
此处误差函数对输出层的各神经元的偏导数为:
δn(k)=(dn(k)-Soutbpn(k))f2′(Sinon(k))
=(dn(k)-Soutbpn(k))Soutbpn(k)(1-Soutbpn(k),其中n=1,2,3
第六步:利用隐含层到输出层的连接权值、输出层的δn(k)和隐含层的输出计算误差函数对隐含层各神经元的偏导数δj(k): 其中j=1,2,...,6;
第七步:利用输出层各神经元的δn(k)和隐含层各神经元的输出来修正连接权值wm,n 2(k):
wm,n 2,N+1(k)=wm,n 2,N(k)-ηδn(k)qm(k),其中N是迭代次数,wm,n 2,N(k)表示第N次迭代时wm,n 2(k)的值;
误差对权值的偏导数大于零时,权值向减少方向调整,反之权值向增加方向调整;
这里隐含层到输出层的权值修正量:
Δwm,n 2(1)=ηδn(1)qm(1),其中m=1,2,...,6,n=1,2,3,qm=qj;
调整隐含层到输出层的权值:
wm,1 2,2(1)=wm,1 2,1(1)-Δwm,1 2(1),
其中m=1,2,...,6,wm,1 2,1(1)表示wm,1 2(1)第一次迭代值;
wm,2 2,2(1)=wm,2 2,1(1)-Δwm,2 2(1),
其中m=1,2,...,6,wm,2 2,1(1)表示wm,2 2(1)第一次迭代值;
wm,3 2,2(1)=wm,3 2,1(1)-Δwm,3 2(1),
其中m=1,2,...,6,wm,3 2,1(1)表示wm,3 2(1)第一次迭代值;
第八步:利用隐含层神经元的δj(k)和输入层各神经元的输入修正连接权值wi,j 1(k):
误差对权值的偏导数大于零时,权值应向减少方向调整,反之权值向增加方向调整。
这里输入层到隐含层的权值修正量:
Δwi,j 1(1)=ηδj(1)pi(1),其中i=1,2,...,8,j=1,2,...,6
根据上式求得:
Δw1,j 1(1)=ηδj(1)p1(1),其中j=1,2,...,6
Δw2,j 1(1)=ηδj(1)p2(1),其中j=1,2,...,6
Δw3,j 1(1)=ηδj(1)p3(1),其中j=1,2,...,6
Δw4,j 1(1)=ηδj(1)p4(1),其中j=1,2,...,6
Δw5,j 1(1)=ηδj(1)p5(1),其中j=1,2,...,6
Δw6,j 1(1)=ηδj(1)p6(1),其中j=1,2,...,6
Δw7,j 1(1)=ηδj(1)p7(1),其中j=1,2,...,6
Δw8,j 1(1)=ηδj(1)p8(1),其中j=1,2,...,6
调整隐含层到输出层的权值:
w1,j 1,2(1)=w1,j 1,1(1)-Δw1,j 1(1)
其中j=1,2,...,6,w1,j 1,1(1)表示w1,j 1(1)第一次迭代值;
w2,j 1,2(1)=w2,j 1,1(1)-Δw2,j 1(1)
其中j=1,2,...,6,w2,j 1,1(1)表示w2,j 1(1)第一次迭代值;
w3,j 1,2(1)=w3,j 1,1(1)-Δw3,j 1(1)
其中j=1,2,...,6,w3,j 1,1(1)表示w3,j 1(1)第一次迭代值;
w4,j 1,2(1)=w4,j 1,1(1)-Δw4,j 1(1)
其中j=1,2,...,6,w4,j 1,1(1)表示w4,j 1(1)第一次迭代值;
w5,j 1,2(1)=w5,j 1,1(1)-Δw5,j 1(1)
其中j=1,2,...,6,w5,j 1,1(1)表示w5,j 1(1)第一次迭代值;
w6,j 1,2(1)=w6,j 1,1(1)-Δw6,j 1(1)
其中j=1,2,...,6,w6,j 1,1(1)表示w6,j 1(1)第一次迭代值;
w7,j 1,2(1)=w7,j 1,1(1)-Δw7,j 1(1)
其中j=1,2,...,6,w7,j 1,1(1)表示w7,j 1(1)第一次迭代值;
w8,j 1,2(1)=w8,j 1,1(1)-Δw8,j 1(1)
其中j=1,2,...,6,w8,j 1,1(1)表示w8,j 1(1)第一次迭代值;
第九步:计算网络误差:
计算全局误差:
当一个训练样本全部训练结束时,计算全局误差;
第十步:判断网络误差及全局误差是否满足要求:
当误差达到预设精度10-10或学习次数大于设定的最大次数2000,则结束算法,否则,选取下一个训练样本及对应的期望输出,返回到第三步,进入下一轮学习;
c)根据BP神经网络的输出结果识别分类,完成目标的识别,工作流程如下:
第一步:单层感知器神经网络初始化;
第二步:由目标灰度均值、特征瓶宽、特征瓶高、高宽比构成的灰度几何特征矢量作为单层感知器的输入矢量,采用训练好的单层感知器进行初分类处理;
第三步:单层感知器输出数据,若目标为第一种瓶体或第二种瓶体,则输出Sout为1;若目标为第三种瓶体,则输出Sout为0;
第四步:BP神经网络初始化,设置各参数,将由Sout与不变矩组M1,M2,M3,M4,M5,M6,M7构成的矢量作为BP神经网络的输入矢量,采用训练好的单层感知器进行二次分类;
第五步:若BP神经网络输出矢量为100;则输出识别结果,目标为第一种瓶体;若输出矢量为010,则输出识别结果,目标为第二种瓶体;若输出矢量为001,则输出识别结果,目标为第三种瓶体;若输出矢量不同于上述3个矢量中的任一个,则判定目标不在识别范围内,结束识别过程。
2.根据权利要求1所述的一种混合生产线上的基于机器视觉检测的三种瓶体识别方法,其特征在于,所述步骤3的初步分类处理过程中,对输入矢量作如下模糊化处理:
若灰度特征p1小于200,则将p1置为0,否则置为1;
若特征瓶宽p2小于400,则将p2置为0,否则置为1;
若特征瓶高p3小于700,则将p3置为0,否则置为1;
若高宽比特征p4小于2,则将p4置为0,否则置为1;
处理后目标输入矢量为:
第一种瓶体输入矢量为:0110;
第二种瓶体输入矢量为:1001;
第三种瓶体输入矢量为:0100。
3.根据权利要求1所述的一种混合生产线上的基于机器视觉检测的三种瓶体识别方法,其特征在于,所述步骤3的初步分类处理过程中,单层感知器的输出规则如下:
若输入为第一种瓶体或第二种瓶体,则输出Sout为1,否则输出Sout为0。
4.根据权利要求1所述的一种混合生产线上的基于机器视觉检测的三种瓶体识别方法,其特征在于,三种瓶体分别为劲酒瓶、安瓿瓶和大输液瓶,所述步骤3中:
当输出Soutput为:100,表明当前的瓶体为劲酒瓶;
当输出Soutput为:010,表明当前的瓶体为安瓿瓶;
当输出Soutput:001,表明当前的瓶体为大输液瓶。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110179444 CN102393908B (zh) | 2011-06-29 | 2011-06-29 | 混合生产线上的基于机器视觉检测的三种瓶体识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110179444 CN102393908B (zh) | 2011-06-29 | 2011-06-29 | 混合生产线上的基于机器视觉检测的三种瓶体识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102393908A true CN102393908A (zh) | 2012-03-28 |
CN102393908B CN102393908B (zh) | 2013-07-17 |
Family
ID=45861228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110179444 Active CN102393908B (zh) | 2011-06-29 | 2011-06-29 | 混合生产线上的基于机器视觉检测的三种瓶体识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102393908B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102680488A (zh) * | 2012-03-31 | 2012-09-19 | 北京农业信息技术研究中心 | 一种基于pca的块状农产品在线识别装置及方法 |
CN102708368A (zh) * | 2012-05-04 | 2012-10-03 | 湖南大学 | 一种基于机器视觉的生产线上瓶体的定位方法 |
CN104318256A (zh) * | 2014-11-17 | 2015-01-28 | 上海埃蒙特自动化系统有限公司 | 基于计算机软件实现玻璃缺陷自动检测分类的方法 |
CN105389579A (zh) * | 2015-11-12 | 2016-03-09 | 湖北工业大学 | 一种列车截断塞门把手丢失故障自动识别方法 |
CN106228185A (zh) * | 2016-07-20 | 2016-12-14 | 武汉盈力科技有限公司 | 一种基于神经网络的通用图像分类识别系统及方法 |
CN106997590A (zh) * | 2017-04-12 | 2017-08-01 | 浙江硕和机器人科技有限公司 | 一种基于检测产品特性的图像处理与检测系统 |
CN107392931A (zh) * | 2017-08-08 | 2017-11-24 | 南京敏光视觉智能科技有限公司 | 条烟品牌分类装置及方法 |
CN107741433A (zh) * | 2017-09-26 | 2018-02-27 | 天津工业大学 | 一种基于神经网络物体分析的液体检测方法 |
CN108491842A (zh) * | 2018-03-27 | 2018-09-04 | 康体佳智能科技(深圳)有限公司 | 一种基于神经网络的表盘识别系统及识别方法 |
CN110047067A (zh) * | 2019-04-02 | 2019-07-23 | 广州大学 | 一种用于瓶子分类的瓶肩检测方法 |
CN110651280A (zh) * | 2017-05-20 | 2020-01-03 | 谷歌有限责任公司 | 投影神经网络 |
CN111680717A (zh) * | 2020-05-12 | 2020-09-18 | 顺德职业技术学院 | 基于深度学习的智能制造生产线上产品分类方法及系统 |
CN115291765A (zh) * | 2022-09-29 | 2022-11-04 | 成都普什制药有限公司 | 联排安瓿瓶识别系统及识别方法及储存介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140A (en) * | 1853-10-18 | Smproved life-preserving bucket | ||
US6976627B1 (en) * | 2004-11-12 | 2005-12-20 | Align Technology, Inc. | Identification of units in customized production |
CN101403705A (zh) * | 2008-11-17 | 2009-04-08 | 湖南大学 | 生产线异形瓶装液体中的异物机器视觉识别方法及装置 |
-
2011
- 2011-06-29 CN CN 201110179444 patent/CN102393908B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140A (en) * | 1853-10-18 | Smproved life-preserving bucket | ||
US6976627B1 (en) * | 2004-11-12 | 2005-12-20 | Align Technology, Inc. | Identification of units in customized production |
CN101403705A (zh) * | 2008-11-17 | 2009-04-08 | 湖南大学 | 生产线异形瓶装液体中的异物机器视觉识别方法及装置 |
Non-Patent Citations (2)
Title |
---|
JIANG ZHU ET AL.: "Obstacle Detection and Recognition in Natural Terrain for Field Mobile Robot Navigation", 《PROCEEDINGS OF THE 8TH WCICA》, 6 July 2010 (2010-07-06), pages 6567 - 6572, XP031736922 * |
张辉 等: "基于机器视觉的液体药品异物检测系统研究", 《仪器仪表学报》, vol. 30, no. 3, 31 March 2009 (2009-03-31), pages 548 - 553 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102680488A (zh) * | 2012-03-31 | 2012-09-19 | 北京农业信息技术研究中心 | 一种基于pca的块状农产品在线识别装置及方法 |
CN102680488B (zh) * | 2012-03-31 | 2015-06-17 | 北京农业信息技术研究中心 | 一种基于pca的块状农产品在线识别装置及方法 |
CN102708368A (zh) * | 2012-05-04 | 2012-10-03 | 湖南大学 | 一种基于机器视觉的生产线上瓶体的定位方法 |
CN102708368B (zh) * | 2012-05-04 | 2014-01-15 | 湖南大学 | 一种基于机器视觉的生产线上瓶体的定位方法 |
CN104318256A (zh) * | 2014-11-17 | 2015-01-28 | 上海埃蒙特自动化系统有限公司 | 基于计算机软件实现玻璃缺陷自动检测分类的方法 |
CN105389579A (zh) * | 2015-11-12 | 2016-03-09 | 湖北工业大学 | 一种列车截断塞门把手丢失故障自动识别方法 |
CN105389579B (zh) * | 2015-11-12 | 2018-11-09 | 湖北工业大学 | 一种列车截断塞门把手丢失故障自动识别方法 |
CN106228185A (zh) * | 2016-07-20 | 2016-12-14 | 武汉盈力科技有限公司 | 一种基于神经网络的通用图像分类识别系统及方法 |
CN106228185B (zh) * | 2016-07-20 | 2019-10-15 | 武汉盈力科技有限公司 | 一种基于神经网络的通用图像分类识别系统及方法 |
CN106997590A (zh) * | 2017-04-12 | 2017-08-01 | 浙江硕和机器人科技有限公司 | 一种基于检测产品特性的图像处理与检测系统 |
CN110651280A (zh) * | 2017-05-20 | 2020-01-03 | 谷歌有限责任公司 | 投影神经网络 |
US11544573B2 (en) | 2017-05-20 | 2023-01-03 | Google Llc | Projection neural networks |
CN107392931A (zh) * | 2017-08-08 | 2017-11-24 | 南京敏光视觉智能科技有限公司 | 条烟品牌分类装置及方法 |
CN107741433A (zh) * | 2017-09-26 | 2018-02-27 | 天津工业大学 | 一种基于神经网络物体分析的液体检测方法 |
CN108491842A (zh) * | 2018-03-27 | 2018-09-04 | 康体佳智能科技(深圳)有限公司 | 一种基于神经网络的表盘识别系统及识别方法 |
CN110047067B (zh) * | 2019-04-02 | 2021-06-22 | 广州大学 | 一种用于瓶子分类的瓶肩检测方法 |
CN110047067A (zh) * | 2019-04-02 | 2019-07-23 | 广州大学 | 一种用于瓶子分类的瓶肩检测方法 |
CN111680717A (zh) * | 2020-05-12 | 2020-09-18 | 顺德职业技术学院 | 基于深度学习的智能制造生产线上产品分类方法及系统 |
CN115291765A (zh) * | 2022-09-29 | 2022-11-04 | 成都普什制药有限公司 | 联排安瓿瓶识别系统及识别方法及储存介质 |
CN115291765B (zh) * | 2022-09-29 | 2022-12-20 | 成都普什制药有限公司 | 联排安瓿瓶识别系统及识别方法及储存介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102393908B (zh) | 2013-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102393908B (zh) | 混合生产线上的基于机器视觉检测的三种瓶体识别方法 | |
Guan et al. | A steel surface defect recognition algorithm based on improved deep learning network model using feature visualization and quality evaluation | |
CN104281853A (zh) | 一种基于3d卷积神经网络的行为识别方法 | |
CN101739712B (zh) | 基于视频的3d人脸表情动画驱动方法 | |
CN109635744A (zh) | 一种基于深度分割网络的车道线检测方法 | |
CN111563915B (zh) | 一种融合运动信息检测和Radon变换的KCF目标跟踪方法 | |
CN106228137A (zh) | 一种基于关键点定位的atm机异常人脸检测方法 | |
Ahranjany et al. | A very high accuracy handwritten character recognition system for Farsi/Arabic digits using convolutional neural networks | |
CN108734168A (zh) | 一种手写数字的识别方法 | |
CN113486764B (zh) | 一种基于改进的YOLOv3的坑洼检测方法 | |
CN109635784A (zh) | 基于改进的卷积神经网络的交通标志识别方法 | |
Pourdarbani et al. | Comparison of different classifiers and the majority voting rule for the detection of plum fruits in garden conditions | |
CN104103033A (zh) | 图像实时处理方法 | |
Sun et al. | An improved CNN-based apple appearance quality classification method with small samples | |
CN108961301A (zh) | 一种基于无监督逐像素分类的角毛藻图像分割方法 | |
CN106250814B (zh) | 一种基于超球粒化商空间模型的手指静脉图像识别方法 | |
Zhang et al. | Yeast cell detection and segmentation in bright field microscopy | |
Zhao et al. | A multiple feature-maps interaction pyramid network for defect detection of steel surface | |
CN103942792B (zh) | 医药检测机器人中基于序列图像时域特征的杂质检测方法 | |
CN113538342A (zh) | 一种基于卷积神经网络的铝质气雾罐涂层质量检测方法 | |
CN110738123A (zh) | 识别密集陈列商品的方法及装置 | |
Liao et al. | Change detection by deep neural networks for synthetic aperture radar images | |
CN112132104B (zh) | 一种基于环路生成对抗网络的isar舰船目标图像域增强识别方法 | |
Peng et al. | Generation of SAR Images with Features for Target Recognition | |
Codrescu | Quadratic recurrent finite impulse response MLP for indirect immunofluorescence image recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |