APP下载

基于机器视觉的瞄准镜缺陷检测系统设计

2022-03-12张义兵

制造业自动化 2022年2期
关键词:瞄准镜六边形交点

王 坚,张义兵,陈 双,何 义

(湘潭大学 自动化与信息工程学院,湘潭 411100)

0 引言

机器视觉相较于人工检测具有更强的适应性、更高的稳定性,在分辨能力、感光范围、响应速度等方面都能很好的弥补人眼的不足[1]。传统瞄准镜缺陷检测是人眼通过显微镜观察瞄准镜镜片特征,判断产品是否合格,使用传统人工方法检测在这两方面有明显的不足。检测准确率方面,在比较短的时间里面,人眼通过显微镜检测会有比较高的识别准确率,随着工作时间的增长,人的大脑和眼睛会出现疲劳,造成检测准确率降低。速度方面,与使用机器视觉技术检测相比,传统人工检测的速度显得很缓慢。

目前,应用于缺陷检测的机器视觉技术取得了大量的研究成果。Liang Sun[2]等提出了一种基于机器视觉的混凝土裂缝提取分类算法。通过自适应的非线性灰度变换扩展图像与背景之间的灰度差。采用改进的OTSU阈值分割法提取裂纹,并将提取结果中的断裂点与断裂骨架线的延伸方向和裂纹边缘的灰度特征相结合,得到完整的裂纹图像。解决了土木工程结构健康监测中裂缝图像提取误差大的问题。Li Liu[3]等提出了一种新的GANet网络框架,解决了尺度变化极大的纹理分类问题。董娜[4]等提出了一种基于机器视觉双视场双工位协同在线检测系统。通过将封酒环轮廓二维信息转换成一维向量,巧妙的解决了封酒环轮廓缺陷在二维信息中难以提取的问题。叶文炜[5]等提出了基于机器视觉的双视野双远心光学系统设计,以折射棱镜为分界,将远心系统分为“物镜”部分与“目镜”部分,通过增加或更换“目镜”,解决了远心系统更换不同倍数镜头时过程繁杂,容易影响精度的问题。

使用传统人工检测的方法对瞄准镜进行缺陷检测,检测速度慢,目前市面上没有将机器视觉技术应用于瞄准镜缺陷检测的方案,为了提高镜缺陷检测的检测速度,将机器视觉技术应用于瞄准镜缺陷检测。本文针对黑鸡丝与黑丝定位困难的问题,提出了一种基于机器视觉的瞄准镜缺陷检测算法。算法主要分为3个步骤。第一步,图像采集和图像预处理,对相机采集到的图像进行二值化处理并找出图像的轮廓。第二步,鸡丝线段定位,在第一步的基础上,对图像进行局部直方图均衡化后进行累计霍夫变换处理,利用霍夫变换找到的直线,求出它们的交点,根据交点信息,使用正六边形循环扩散找出图像所有的鸡丝线段。第三步,判断鸡丝线段是否为黑丝或黑鸡丝。

1 瞄准镜缺陷图像特征分析

黑丝、黑鸡丝与正常图对比图如图1所示。从图可以看出,黑丝图像有一条很粗的线段。与正常丝图像对比,黑鸡丝图像的光纤线段更明显。由此,可以通过对瞄准镜图像进行一系列的图像处理操作,让正常的线段消失,保留黑丝与黑鸡丝,通过设定的黑丝与黑鸡丝长度阈值来判断图像上的鸡丝线段是否为黑丝或黑鸡丝。

图1 黑鸡丝,黑丝与原图对比图

2 瞄准镜缺陷检测算法

2.1 图像预处理

图2(a)为一组图像中有黑丝和黑鸡丝缺陷的一张图像。为了提取图像的目标区域,即瞄准镜镜片部分的图像。对图2(a)进行二值化处理,二值化后图像如图2(b)所示,将原图与二值化图像进行重叠,原图与二值化图像上灰度为0的位置重合的部分灰度置为0,其他位置与原图保持一致,得到预处理图像,如图2(c)所示。

图2 原图与预处理图像

3.2 鸡丝线段定位

因为镜筒不同区域的光透过率不同,造成图像检测区域有亮有暗(外围暗,内部亮),为了减少这些干扰,将一张图像分为两块,亮度较高的部分和亮度较低的部分,如图3所示,将一张图像分为两部分roi1和roi2(各2/3,上下或者左右,计算左右亮度差和上下亮度差,选择亮度差大的分块方式)单独处理后将结果进行整合。在这两张子图片roi1和roi2中分别进行同样的处理,以rio2为例:使用局部直方图均衡化[6~9]处理图片,尽量消除不同区域的亮度差异,提高图像对比度,如图4所示。对局部直方图均衡化后图像进行自适应二值化[10,11],找出产品的骨架,自适应二值化后图像如图5所示。使用累计概率霍夫变换[12]对图5进行处理,整合找到的所有线段,将距离接近,角度相同的线段合并成同一条线段,如图6所示。

图3 roi1,roi2分块图

图4 局部直方图均衡化图像

图5 自适应二值化图像

图6 累计霍夫变换示意图

由于自适应二值化后找出的骨架只是整体骨架的一部分,从图6可以看出,在这个基础上,通过累计概率霍夫变换找出的鸡丝线段也是不完整的,并且还产生了一些瞄准镜原始图像上并不存在的干扰线段,为了找出所有鸡丝线段,本文设计了一种在累计概率霍夫变换的基础上,通过线找点,点找线的方法,找出图中所有的鸡丝线段的方法,这个方法分为3个步骤:

第一步,利用累计概率霍夫变换得到的线段信息,求出图6中所有的线段交点信息,如图7所示。

第二步,根据第一步得到的交点信息,找出一个正六边形。

镜筒均由正六边形的光纤组成,先确定两条边再根据正六边形性质确定第三条边。如图7所示,连接ab线段,bc线段,c点的最近相邻点还有2个,由正六边形性质可以知道,正六边形的一条边与它相邻的边角度为120度,与相临边相临的边与它角度为60度。因此,通过第三条边与第一条边的角度为60度,与第二条边角度为120度,可以确定第三条边的位置。因此,左上角的d点符合和点a,b,c组成正六边行的条件,右上角的e点不能和点a,b,d组成一个正六边形。同样,根据正边形性质和图上点的位置可以确定第四,第五和第六条边,将六条边相连,得到一个正六边形。如图8所示。

图7 交点图

图8 六边形示意图

第三步,将得到的正六边形沿与边垂直的6个方向平移边长的根号3倍,循环扩散,找出所有点的信息(剔除第一步中找出的干扰点,补齐累计概率霍夫变换没有找出的线段交点),将相临点连接,找出所有鸡丝线段。

从图8可以看出,通过每一个新的正六边形,可以确定四个点的坐标。如图9所示,正六边形abcdef沿bf向量的方向平移边长的根号3倍可得正六边形fekjih。设a,b,c,d,e,f,h,i,j,k的坐标分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5),(x6,y6),(x7,y7),(x8,y8),(x9,y9),(x10,y10)。由正六边形性质可得,向量bf,向量ah,向量fi,向量ej,向量dk是相等向量。用数学关系式表示如式(1)~式(4)所示。

图9 向量法求点图

正六边形abcdef的六个顶点的坐标已知,根据式(1)~式(4)可求出h,i,j,k四点的坐标。将正六边形沿与边垂直的六个方向平移得出的交点坐标和图7中的交点坐标相比较,如果与已有的交点接近,则将该点更改为之前已经得到的交点。将点的坐标记录于容器vessel中。如果是图7中点集中没有的点,则将此点作为繁殖的新点记录于容器vessel中。将新得到的正六边形记录为父正六变形,每个父正六边形按照第一个正六变形的方法平移,找寻其他的交点。平移后得到的点,如果与已有的交点接近,则将此点更改为之前已得到的交点,再检查与已寻得的正六边形点是否接近,如果是将该点更改为已寻得的交点。将新交点信息记录于容器vessel中。将新得到的正六边形记录为新的正六边形,循环扩散,如果新找到的正六边形超出瞄准镜图像范围,则将此正六边形剔除。超出图像的伪交点不记录于容器中。判断方式为将此点坐标代入圆心坐标为瞄准镜中心,半径为瞄准镜半径的园中,如果得到的值比瞄准镜半径平方要大,则此点不合格,此点组成的新正六边形也要剔除。循环直至最后一个新正六边形超出边界。最终得到的整幅图面上的所有正六边形的点,这部分只是子图roi2的部分,得到的结果还需要跟子图roi1进行整合,将在此图上得到的局部图交点信息变成全局的交点信息,只需要把交点的坐标(x,y)加上子图在父图上的平移位置即可,这个图片是父图上的右侧三分之二的图片,只需要将点的x值加上父图的宽度的三分之一。整合所有子图上的点,最终得到完整图片的所有点,如图10所示。

图10 完整点图

根据正六边形的边长与容器vessel中的点集,画出符合鸡丝长度的线段,即可得到图像上所有的鸡丝线段位置。将每一条鸡丝线段用矩形框起来,如图11所示。

图11 旋转矩形图

在图11上寻找一个旋转矩形,将旋转矩形区域摆正。对旋转矩形区域进行仿射变换后得到一个和图12相似的正矩形区域roi。

图12 正矩形roi区域图

3.3 黑丝与黑鸡丝判定

1)黑丝判定

对图13(a)进行自适应二值化处理后,使用3×3的卷积核对图像进行腐蚀,卷积核的中心点逐个像素扫描图像,被扫描到的图像中的像素点,只有当卷积核周围的8个像素的灰度值均为255时,其值才为255,否则其值修改为0,使图像暗的部分更多,亮的部分减少,腐蚀后得到图13(b)。从图上可以看出,正常丝只留下了一个几乎看不见的白点,黑丝还有一大片白色区域,对比明显。在图13(b)的基础上,使用findContour找出图像的轮廓[13],如图13(c)所示。计算图中白色线段的长度,黑丝长度阈值设置为100,超出阈值判断为黑丝。

图13 黑丝正常丝对比图

2) 黑鸡丝判定

如图14(a)所示,从微观上看,黑鸡丝与正常丝差异不大,黑鸡丝比正常丝较为粗了2um~6um,将与图像长边平行的方向定义为X轴,与图像短边平行的方向定义为Y轴,使用sobel检测Y轴,得到图像的垂直边缘,如图14(b)所示。在图14(b)的基础上,对图像作二值化处理,凸显黑鸡丝图像和正常丝图像的轮廓,如图14(c)所示。使用findContours去除图像上的小轮廓,从图14(d)可以看出,黑鸡丝图像还留下了一条白色的线,正常丝图像没有。将图14(d)对X轴进行映射,如果纵坐标中有灰度值为255的点,则在X轴上将对应的横坐标的灰度值标记为255,反之标记为0,计算在X轴上灰度值为255的线段长度。根据产品要求,将黑鸡丝长度阈值设置为100um,在X轴上灰度值为255的线段长度大于黑鸡丝长度阈值的线段标记为黑鸡丝。

图14 黑鸡丝正常丝

3 实验与算法性能分析

3.1 瞄准镜缺陷检测系统

本文提出的瞄准镜缺陷检测系统在离线机上运行,图15为瞄准镜检测系统实物图。计算机操作系统版本为Win7,64位系统,CPU运行内存为8G,配置1T的硬盘和千兆网卡。瞄准镜直径约为2cm,系统采用4300万像素相机(7912×5432)进行图像采集,单像素精度为1um。20000/(7912×1)=2.53,20000/(5432×1)=3.68,因此一个瞄准镜一共需要拍摄3×4=12张图片,才能满足检测需求。在图像采集过程中,需要对瞄准镜进行垂直照射进行图像采集,因此系统采用的光源是背光源,如图15(b)所示,背光源安装在相机镜头的下方,需要检测的瞄准镜放置于两者中间。针对瞄准镜镜筒黑丝和黑鸡丝的检测,设计了瞄准镜缺陷检测软件,建立QT界面,用c++语言,在Visuol Studio 2017编译环境下编写算法。构建了通过软件控制相机进行图像采集,对采集到的图像进行一系列处理,实现对瞄准镜黑丝和黑鸡丝检测系统的集成。图16是瞄准镜缺陷检测软件界面示意图。该界面包括24个按键,界面左下角49个空格,代表49个产品。

图15 瞄准镜检测系统实物图

图16 瞄准镜检测系统界面图

3.2 瞄准镜缺陷检测流程

图17为检测流程图。点击开始按钮,系统打开相机,进行图像采集,然后调动线程函数,进行图像处理,显示处理结果,在主界面左下角记录处理结果,合格,不良或标记为需要人工检测。

图17 检测流程图

3.3 实验与分析

本节使用两种不同规格的瞄准镜对瞄准镜缺陷检测系统进行测试,验证瞄准镜缺陷检测系统的可行性,给出瞄准镜缺陷检测的检测效果。

1)实验过程

第一步,绘制检测结果数据表,如表1,表2,表3所示。

表1 直径2.17cm瞄准镜测试结果数据表

表2 直径2.60cm瞄准镜测试结果数据表

表3 人工检测与使用机器视觉检测速度对比表

第二步,准备好两种待测样本。

第三步,开启瞄准镜缺陷检测系统。

第四步,对两种瞄准镜进行缺陷检测,并将缺陷检测结果数据填于表中。

2)实验结果分析

使用直径2.17cm和2.60cm的瞄准镜各20组,其中2.17cm的瞄准镜包括合格产品866,黑丝缺陷产品67,黑鸡丝缺陷产品73(有的产品同时具有两种缺陷),2.60cm的瞄准镜包括合格产品857,黑丝缺陷产品71,黑鸡丝缺陷产品76,一共1980个瞄准镜对软件系统进行测试,人工检测时间来自之前人工检测数据统计。在光源强度,成像环境,相机的曝光,相机镜头,瞄准镜与光源的相对位置等成像条件一致的情况下,运行瞄准镜缺陷检测系统,从上面统计的测试数据分析得出,两种不同的瞄准镜得到的检测数据区别不大,识别准确率差不多。两种产品黑丝缺陷检测的识别率均达100%,2.17cm瞄准镜黑鸡丝缺陷检测识别率90.4%,合格产品识别率94.5%,2.60cm瞄准镜黑鸡丝缺陷检测识别率89.4%,合格产品识别率95.1%。识别错误的主要原因是在图像采集的过程中,采集到的图像质量不佳,在对图像进行自适应二值化和累计霍夫变换后,许多鸡丝线段缺失,由于缺失鸡丝线段信息过多,在边找点,点找边的过程中,图像的鸡丝线段定位发生错误,最后框出来的旋转矩形图里面没有鸡丝线段,导致识别错误。从表3可以看出,与使用传统人工检测的方法相比,使用机器视觉的方法节省了大约(1020-116)/1020=88.6%的检测时间。在测试过程中,检测系统运行流畅,没有出现异常,也没有卡顿现象。验证了此系统的可行性。

4 结语

本文提出了一个基于机器视觉的瞄准镜黑鸡丝与黑丝检测系统,针对鸡丝线段定位困难的问题,提出了一种以累计霍夫变换为基础,利用正六边形性质,通过线找点,点找线,正六边形循环扩散找出所有鸡丝线段的方法。在离线机上进行测试,检测识别率超过94%,系统运行流畅,验证了检测系统的可行性,与传统人工检测相比,利用本文的提出机器视觉检测系统,缩短了大约88.6%的检测时间。本系统适用于由正六边形光纤组成的瞄准镜黑丝与黑鸡丝的检测。目前已应用于实际生产,并取得了良好的效果。

猜你喜欢

瞄准镜六边形交点
知识快餐店 到处都是六边形
蜂巢为什么是六边形的?
俄罗斯推出首款重机枪用红点瞄准镜
红点瞄准镜PK全总瞄准镜
阅读理解
脉冲星迹XP38热成像瞄准镜
怎样剪拼
怎样剪拼
借助函数图像讨论含参数方程解的情况
试析高中数学中椭圆与双曲线交点的问题