本发明涉及计算机视觉检测领域,尤其涉及一种矩形铁氧体磁片表面缺陷的识别方法。
背景技术:
铁氧体磁片在各种机械设备中是不可或缺的一个部分,工业上对磁片的需求也越来越多。然而这些磁片在生产、打磨等过程中会使磁片表面出现凹痕、刮痕等缺陷问题。在实际的生产流水线上,对磁片的缺陷检测大都是通过人眼来观测是否存在缺陷。用人工来进行缺陷检测不仅效率比较低,而且无法保证检测的精度。因此发展一种效率高、精度高的铁氧体圆片表面凹痕识别方法是当前生产企业的迫切需求。而目前,随着图像处理和人工智能技术的发展,以计算机视觉为基础的产品自动检测与识别方法逐渐得到发展与应用,通过图像处理可以对磁片的缺陷进行分析、识别。计算机技术的发展使得通过图像快速有效进行识别成为可能。
技术实现要素:
为解决现有技术对矩形铁氧体磁片缺陷的人工识别效率低下、无法做到长时间高效作业的问题,提供一种矩形铁氧体磁片的表面缺陷识别方法,这种识别方法基于计算机视觉,能充分利用图像处理的优势,快速、精确地对生产流水线上的磁片进行识别分类,以配合生产的需求。
为实现上述目的,本发明采用以下技术方案:
步骤一,通过视觉设备获取流水线上矩形铁氧体磁片的实时影像;
步骤二,通过帧间差分法,获取单个矩形铁氧体磁片图像,具体过程如下:
2.1计算连续两帧图像的差分图像g1,计算公式为:
g1=pk-pk-1
其中pk-1为前一时刻的图像,pk为当前时刻的图像;
2.2对差分图像进行高斯滤波计算,消除噪声,计算公式为:
其中x为差分图像的像素值;σ为高斯函数的宽度,值取3、5或7;
2.3计算滤波后差分图像的纵向一阶导数的积分投影,计算公式为:
其中sj(x)为图像在纵向坐标j点下的积分投影值,n为图像的高度,i为横坐标,m为图像的宽度;
2.4计算纵向积分投影的拐点,计算公式为:
h(j)=max(sj(x))
其中,h(j)为拐点j位置处的积分投影值,max(sj(x))为求取序列sj(x)的峰值点;
2.5设立阈值t,和h(j)相比较,若大于设定的阈值t,则判断有矩形铁氧体磁片到来,并把前一时刻图像作为背景图像存储;若小于设定的阈值,则返回步骤一;
步骤三,通过阈值分割法将图像分为目标区域a和背景区域b两类;
步骤四,根据图像p(x,y)的标准差和均值计算出阈值ti,计算公式为:
ti=μz+ci·σz
其中μz表示图像p(x,y)灰度值的均值,σz表示图像p(x,y)灰度值的标准偏差,ci是一个控制参数,ti表示计算出来的阈值;
步骤五,对整幅图像进行局部二值化均值处理,具体实施方式如下:
5.1,先求图像的权重,然后将图像进行二值化处理,计算方式为:
p'(x,y)=w(x,y)p(x,y)
其中w(x,y)表示(x,y)这一点的权重;p(x,y)表示点(x,y)的二值化处理后的灰度值;
5.2,计算二值化后图像的灰度平均值,计算公式为:
其中μ表示二值化后的灰度平均值;i和j代表图象的尺寸大小;
步骤六,计算二值化图像的平均值的标准差,计算公式为:
其中σa表示二值化图像的平均值的标准差;
步骤七,对计算出来的标准差进行判断,如果σ等于零则判断为该图像上面无缺陷,如果标准差σ大于零,则对该图像进行以下的操作判断;
步骤八,将整个图像分解为大小为m×n的k幅大小一样的子图像;表示方法如下:
z={p(x,y)x∈{1,2,...,i},y∈{1,2,...j}}
k=i/m×j/n
其中m和n是子图像的尺寸大小,k是在整幅图像中分解的子图像的个数,z代表整幅图像;
步骤九,针对子图像重新选取最优阈值t,具体实施方式如下:
9.1,计算每个二值化子图像的均值,计算公式为:
p'k=wk(x,y)pk(x,y)
其中wk(x,y)表示第k幅子图像在(x,y)这一点的权重;pk(x,y)表示第k幅子图像在(x,y)这一点的灰度值;p'k表示第k幅子图像在点(x,y)的二值化处理后的灰度值;其中μk表示第k幅子图像二值化后的灰度平均值;pk表示第k幅子图像在点(x,y)的二值化处理后的灰度值;
9.2,通过迭代最优阈值选择方法,来确定最优阈值的值,实现方法如下:
通过一个阈值变量t(0<t<256),计算出在每个变量阈值t下的每一幅子图像的二值化后的平均值,针对每一个阈值变量t重复执行上面的过程,选取出平均值小于1的所有子图像,记录下这些子图像中的最小灰度值,然后将这些得到的最小灰度值进行平均值计算;计算公式为:
其中j(t)表示二值化平均值小于1的子图像的最小灰度平均值;l表示总共选择出来的子图像的个数,pl(x,y)表示选出的第l幅图像中点(x,y)的灰度值;t表示阈值变量;
9.3对得到的最小灰度的平均值进行平滑处理,计算公式为:
其中h为移动平均滤波器的阶数;j’(t)为平滑之后的平均值;
9.4在t与j’(t)的函数关系下,将j’(t)取最小值时的t值作为新产生的最优t值;
步骤十,根据新产生的最优阈值t,返回步骤9.1,重新计算出子图像二值化后的平均值;
步骤十一,根据重新计算出来的二值化后的平均值,判断该子图像是否是缺陷子图像,并在整个图像中用原始图像标记,计算公式为:
其中bk表示第k幅图像识别后的输出图像;
步骤十二,对所有的子图像进行识别鉴定,当所有的子图像全部为无缺陷图像时,可以判断整个图像是无缺陷的,否则就是有缺陷图像。
本发明利用矩形铁氧体磁片的实时影像,通过计算机视觉处理实现自动检测;以通过帧间差分法实现铁氧体圆片的位置定位触发,最终获取清晰的单个矩形铁氧体磁片图像。然后首先通过对整幅图像进行粗略的检测是否有缺陷,然后再对检测出来有缺陷的产品进行精确的检测识别,最终判断该产品是否含有缺陷。
在计算时,在获取矩形铁氧体磁片实时影像的基础上,首先通过帧间差分法判断是否有矩形铁氧体磁片到来,把此时的前一帧图像作为背景图像;对所获得的图片进行阈值化处理,分割出仅含有矩形铁氧体磁片的图像。通过图像的平均值和标准差计算出算法的最优阈值;然后根据最优阈值对图像进行进行二值化处理,对处理后的二值化图像求标准差,若标准差为零,则判断为无缺陷产品,若标准差不为零,将图像分成很多等份,重新选择最优阈值。通过选择出来的最优阈值计算每幅二值化子图像的平均值,若每幅子图像的平均值都等于一,则判断为无缺陷产品,否则判断为缺陷产品。
本发明可以作为独立的算法模块嵌入到矩形铁氧体磁片自动化生产的实时控制系统中,达到铁氧体快速、自动化识别检测的目的,计算速度快、智能化程度高、识别准确。
附图说明
图1为本发明的工作流程框图。
图2为本发明采集到的含有缺陷的图片。
图3为图像进行二值化均值处理后的结果。
图4为采集到有缺陷的子图像。
图5为最优阈值t选择的结果。
具体实施方式
参照附图,一种基于计算机视觉的矩形铁氧体磁片表面的缺陷识别方法,步骤如下:
步骤一,通过视觉设备获取流水线上800×600矩形铁氧体磁片的实时影像;
步骤二,通过帧间差分法,获取单个矩形铁氧体磁片图像,具体过程如下:
2.1计算连续两帧图像的差分图像,计算公式为:
g1=pk-pk-1
其中pk-1为前一时刻的图像,pk为当前时刻的图像;
2.2对差分图像进行高斯滤波计算,消除噪声,设置高斯函数的宽度为3,计算公式为:
其中x为差分图像的像素值。
2.3计算滤波后差分图像的纵向一阶导数的积分投影,计算公式为:
其中sj(x)为图像在纵向坐标j点下的积分投影值,i为横坐标,图像的宽度为800,高度为600。
2.4计算纵向积分投影的拐点,计算公式为:
h(j)=max(sj(x))
设对应的j值为60,求得h(j)的值6000。
2.5设定阈值参数为3000,h(j)的值6000与设定阈值参数3000相比较,6000大于3000,即判断有矩形铁氧体磁片到来,并把前一时刻图像pk-1作为背景图像存储;
步骤三,通过阈值分割法将图像分为目标区域a和背景区域b两类,并且对a区域不做任何处理,并将只含有a区域p(x,y)的部分提取出来。计算公式为:
其中f(x,y)为原图像的灰度,式中设定的阈值t为60,p(x,y)为处理后的图像。
步骤四,根据图像p(x,y)的标准差和均值计算出阈值ti,计算公式为:
ti=μz+ci·σz=104.1+0.8×8.7=111.0
其中μz表示图像p(x,y)灰度值的均值,σz表示图像p(x,y)灰度值的标准偏差,控制参数ci设定为0.8,ti表示计算出来的阈值。
步骤五,对整幅图像进行局部二值化均值处理,具体实施方式如下:
5.1,先求图像的权重,然后将图像进行二值化处理,计算方式为:
p'(x,y)=w(x,y)p(x,y)
其中w(x,y)表示(x,y)这一点的权重;p’(x,y)表示点(x,y)的二值化处理后的灰度值;
5.2,计算二值化后图像的灰度平均值,计算公式为:
其中μ表示二值化后的灰度平均值;图像的长i为600,宽j为400。
步骤六,计算二值化图像的平均值的标准差,计算公式为:
步骤七,对计算出来的标准差进行判断,标准差σ大于零,则对该图像进行以下的操作判断。
步骤八,将整个图像分解为大小为m×n的k幅大小一样的子图像。表示方法如下:
z={p(x,y)x∈{1,2,...,i},y∈{1,2,...j}}
k=i/m×j/n=600/60×400/40=100
其中子图像的长m为60,宽为40,整幅图像中分解的子图像的个数k为100,z代表整幅图像。
步骤九,针对子图像重新选取最优阈值t为100,具体实施方式如下:
9.1,计算每个二值化子图像的均值,计算公式为:
p'k=wk(x,y)pk(x,y)
其中wk(x,y)表示第k幅子图像在(x,y)这一点的权重;pk(x,y)表示第k幅子图像在(x,y)这一点的灰度值;pk表示第k幅子图像在点(x,y)的二值化处理后的灰度值;其中μk表示第k幅子图像二值化后的灰度平均值;pk表示第k幅子图像在点(x,y)的二值化处理后的灰度值。
9.2,通过迭代最优阈值选择方法,来确定最优阈值的值,实现方法如下:
通过一个阈值变量t(0<t<256),计算出在每个变量阈值t下的每一幅子图像的二值化后的平均值,针对每一个阈值变量t重复执行上面的过程,选取出平均值小于1的所有子图像,记录下这些子图像中的最小灰度值,然后将这些得到的最小灰度值进行平均值计算。计算公式为:
其中j(t)表示二值化平均值小于1的子图像的最小灰度平均值,计算得到为0.3625;总共选择出来的子图像的个数l为34,pl(x,y)表示选出的第l幅图像中点(x,y)的灰度值;t表示阈值变量。
9.3对得到的最小灰度的平均值进行平滑处理,计算公式为:
其中移动平均滤波器的阶数h设置为4;平滑之后的平均值j’(t)为0.3544。
9.4在t与j’(t)的函数关系下,将j’(t)取最小值时的值t=122作为新产生的最优t值。
步骤十,根据新产生的最优阈值t=122,返回步骤9.1,重新计算出子图像二值化后的平均值。
步骤十一,根据重新计算出来的二值化后的平均值,判断该子图像是否是缺陷子图像,并在整个图像中用原始图像标记,计算公式为:
其中bk表示第k幅图像识别后的输出图像。
步骤十二,对所有的子图像进行识别鉴定,得到有7张子图像为缺陷图像,所以判断该图像为缺陷图像。