机器视觉在光纤端面缺陷检测中的应用
摘要:传统的光纤端面缺陷检测用的是人工检测方式,这种检测方式效率很低,检测结果的主观性很强。对光纤端面缺陷使用机器视觉检测,能极大地提高检测效率和检测准确性。首先将采集到的图像通过图像处理二值化,接着对纤芯中心进行定位,然后以纤芯中心为圆心对光纤端面进行不同的圆环检测区域划分。由于光纤端面上的缺陷有可能是暗色的或者是亮色的,因此为了区分二者,对每个区域检测时需要做不同的二值处理。如果有任意一个区域的检测不能通过,则这个光纤端面就是不符合要求的。结果显示,利用机器视觉进行光纤端面检测能够快速、精确地检测出缺陷所在位置及其大小。
0 引言 作为信息高速公路的载体,以及光纤通信系统的重要组成部分,光纤体现了非常优越的信息传输特性,是构成21世纪信息社会的一个不可或缺要素。在光纤通信中,光纤的活动连接都是通过光纤连接器实现的,光纤端面的洁净程度对连接器的性能有决定性的影响。除了在抛光过程中或者在光纤插拔等在线业务操作过程中产生的光纤端面永久性损伤(如划伤、裂痕)外,由于在平时使用中可能会与不洁净的手、光纤帽边缘、法兰盘金属边缘、脏的光纤端面以及空气中的颗粒接触,光纤端面还会受到各种各样的临时性污染(如污垢、油渍、水或清洗剂的残留),从而使得其性能受到影响,这不仅会使连接损耗变大、通信性能下降,严重时则纤芯被堵不能传输光,从而导致纤芯被高功率激光烧坏。为了保证光纤通信的稳定与高效,每个光纤的端面必须保证一定程度上的清洁。 传统的光纤端面缺陷检测方法是采用人工检测的方法,这种方法首先将光纤端面的图像采集出来,然后用肉眼观察脏污,再进行人工判定。由于这种方法是检查者肉眼连续观察光纤的端面,容易使人感到视觉疲劳,所以效率比较低。而且每个人的经验和责任心不一样,得到的产品质量也会有相当大的差异。为了提高产品的可靠性和生产效率,本文提出了一种抛弃人工肉眼检测而使用机器视觉进行检测的方法。机器视觉主要用计算机来模拟人的视觉功能,从客观事物的图像中提取信息,进行图像处理并加以理解,然后用于光纤端面的缺陷检测。与人工检测相比,机器视觉检测方法提高了检测的准确性,降低了测试成本,增强了测试能力,使得对生产线上操作人员的培训难度降低,而且能获得更多的生产线监测数据信息。 本文介绍了如何利用机器视觉进行光纤端面的缺陷检测。
1 检测系统 本文所提出的光纤端面缺陷机器视觉检测系统由光纤端面检测仪以及PC系统组成。检测的时候将光纤活动连接器插入光纤端面检测仪的固定测试平台中,而光纤端面检测仪通过USB线连接到PC系统上,这样就能将图像采集到电脑里。调整显微镜焦距,一旦得到了满意的图像,就启动软件对光纤端面进行分析,与软件预设的标准指标进行比较,从而定量地确定各区域信息,判断该光纤端面合格与否。 该系统的检测效果与软件的能力、显微镜性能以及操作人员对焦图像的技能有关,已经证明了其在准确性、可重复性、再现性以及检测效率等方面明显优于人工检测。该方案还可以提供检测结果的具体记录,包括端面图像和损伤检测数据等,提高系统的自动化程度。
2 检测过程 本系统所使用的检测软件是基于VBAI视觉自动检测开发环境开发的,具备对光纤端面图像进行处理和分析的能力,其处理流程如图1所示。 图1 系统软件处流程图 在使用光纤端面检测仪对光纤端面进行图像采集的时候,由于光纤端面每次出现在视野范围中的位置都有所不同,所以首先要对光纤端面纤芯的位置进行定位才能对其进行一系列的检测。要定位纤芯的位置,首先需要将采集到的图像二值化。因为通过光纤端面检测仪采集得到的初始图像为32位的,而在VBAI中对图像分析处理的函数模块基本上都是不支持32位图的,所以只有把32位图转化成二值图像,才能对其进行一系列精确的分析。使用VBAI的视觉助手(Vision Assistant)函数模块对初始图像进行图像处理,通过抽取色彩值(Extract HSL)的子函数即可得到灰度8位图,然后使用阈值法将图像二值化。 阈值法是一种简单而且有效的图像分割方法,此方法是用一个或几个阈值将图像的像素灰度级分为几个级别,属于一个级别的像素点被认为是同一类物体。需要注意的是,在光纤端面检测的过程中,由于包层可能会和包层外的脏污属于同一个灰度级,所以在对包层外的脏污检测的时候是不能同时对包层上的脏污进行检测的,需要将包层屏蔽以后再检测。 在本系统中,设F(x,y)表示对图像二值化的输出,其像素灰度级范围为[a,b],对同一类型的缺陷检测时只需要设定一个a和b之间的阈值TH,把图像的像素分成大于TH的像素群(缺陷)和小于TH的像素群(背景)两部分。即:
图像二值化将缺陷像素点的灰度值设为0,背景像素点的灰度值设为1。在VBAI的视觉助手函数模块中就有设置阈值(Threshold)的函数子模块,调用的时候只需要在阈值直方图上根据双峰法找到波峰与波谷,并手动调整阈值的大小,使其能将缺陷与背景区分开来即可,如图2所示。
图2 原始图像及其阈值直方图 2.1 纤芯的定位 本文定位光纤纤芯所使用的是方法是先找到光纤的整个包层,由于光纤包层的形状是一个圆,而这个圆的圆心就是纤芯的中心了。光纤端面存在较大程度的污染的话,如果只是设置一定的阈值将图像二值化,得到的二值图像除了光纤包层外还可能会有很多脏污,这样就会对光纤包层的定位产生很大的影响。所以二值化图像后还需要使用视觉助手里的一些子函数模块对图像进行一些形态学的处理,使用移除小颗粒(RemoveSmall Objeets)和移除大颗粒(Remove Large Objects)这两种函数子模块,调整迭代次数的大小,把比光纤包层小和比光纤包层大的颗粒都滤掉,从而除去对光纤包层定位的干扰,使得到的二值图像里只有光纤包层的图像,如图3所示。 图3 将原始图像处理成只有光纤包层的二值图像 图4 不同位置纤芯的定位 得到光纤包层的二值图像后,利用VBAI中寻找圆边缘(Find Circular Edge)以及建立坐标系(Set Coordinate System)的函数模块,即能准确地定位光纤纤芯的位置。寻找圆边缘是为了寻找光纤包层圆的边缘,从而寻找到光纤包层圆的圆心,这个圆心也是纤芯圆的圆心,然后以这个圆心为坐标系原点建立坐标系。在VBAI中,建立坐标系这个函数的功能是定位特征,它能根据寻找到的包层圆自动定位圆心,即使包层在图像中的位置改变,坐标系原点也能准确地定位在包层圆的圆心上,而包层圆的圆心就是纤芯圆的圆心。由图4可见,坐标系的原点可以很精确地定位在位置不同的纤芯圆的圆心上,即使是在不规则的包层面上。 2.2 检测区域的划分 在定位了光纤纤芯之后,由于在光纤端面上不同圆环范围内所用的检测标准也不同,所以要以纤芯中心为圆心作不同区域的圆环,再在每个圆环内按规定的检测标准进行检测。如果有任意一个圆环内的检测不能通过,则这个光纤就是有缺陷的,不能通过。在划分区域的时候,由于通过光纤端面检测仪采集得到的图像在VBAI环境下是以像素(pix)为计量单位的,而一般检测标准中给出的光纤端面检测要求是以微米(μm)为计量单位的,所以要通过公式(2)进行转换将微米(μm)转换成像素(pix)。转换的时候需要知道一个参数:dpi(每英寸多少点),知道了dpi就可以从公式(2)得到像素与微米的转换关系。设P为像素,D为dpi,I为英尺,M为微米,则: 一张图片的dpi可以通过一些常用的看图软件得到(如Acdsee,Photoshop等),平时所用的640×480或800×600等标准的分辨率的dpi是一个常数:96。这样在对光纤端面进行区域划分的时候,就能准确地算出每个圆环的直径,从而对整个光纤端面可以进行细致并且精确的检测。 2.3 缺陷的检测 2.3.1 不同的阈值 光纤端面缺陷包括白点(崩缺)、黑点(脏污)、阴影(内裂)以及划痕。其中崩缺和划痕是颜色亮于光纤端面的部分,而脏污和阴影是颜色暗于光纤端面的部分。要检测出这些缺陷,对每个区域的每个亮部检测前都要重新对原始图像进行一次图像处理,同时对每个区域的每个暗部检测前也要重新对原始图像进行一次图像处理,以便设置不同的阈值以区分出比光纤端面亮的部分和比光纤端面暗的部分。这样在检测过程中就先后对暗部和亮部进行了检测,如果两者中任何一种检测不能通过,则这个区域的检测就是不能通过的。 光纤端面需要进行检测的区域包含了光纤包层和光纤包层以外的陶瓷部分,所以亮色缺陷和暗色缺陷除了分布在光纤包层上外还有可能会分布在陶瓷面上。由于光纤包层在采集的图像中是暗色的,与暗色的缺陷色度比较接近,而包层外的陶瓷部分色度则更接近于亮色的缺陷。所以检测光纤包层上和包层外陶瓷面上的缺陷时,针对暗色缺陷和亮色缺陷都需要分别设定不同的阈值,才能准确地检测出整个端面的缺陷。因此利用VBAI检测光纤包层外的陶瓷面区域时,需要重新根据双峰法设定阈值,如图5所示。 图5 对包层内和包层外暗色缺陷和亮色缺陷的不同二值化处理 由图5可见,在检测的过程中,必须要针对暗色缺陷和亮色缺陷在光纤端面包层内外的不同分布,分别设定不同的阈值,否则会极大的影响检测的精确度。需要注意的是,纤芯本身就是亮色的,所以亮色缺陷检测过程中需要把纤芯忽略掉。 2.3.2 缺陷的判定 在光纤端面缺陷检测中,既有不能接受的缺陷,也有可以接受的缺陷,对于崩缺、脏污、内裂和划痕这类缺陷颗粒,鉴定其能不能被接受就取决于它们的大小与长度。一般,评价它们的大小与长度主要是根据其费雷特直径(Feret Diameter)的大小。费雷特直径是一种常用的颗粒直径表示方法,对于规则的球形颗粒,可以用“直径”来精确描述其大小,但是绝大多数情形下颗粒尤其是划痕的形状都不是球形,用直径表示显然欠确切,也容易引起误解。因此,表示颗粒大小引用“颗粒直径”的概念。所谓颗粒直径,即表示颗粒大小的“一因次”尺寸。“因次”又称为量纲,是基本物理量的度量单位,例如长短、体积、质量、时间等等。同一颗粒,由于应用场合不同,测量的方法也往往不同,所得到的颗粒直径的值当然也不同,如:在显微镜下观察到的是颗粒在与视线垂直的平面上的尺寸,筛分所得到的粒径是筛孔尺寸,沉降所得到的是某种沉降特性相同的球形颗粒的直径等。 本文的光纤端面缺陷机器视觉检测中,二值化图像后要测量的缺陷的费雷特直径即是在显微镜下与视线垂直的平面上的尺寸。任何一个不规则物体的费雷特直径都有大有小,通常所需要得到的是最大的费雷特直径,然后和检测标准进行对比,如果最大费雷特直径大于可以接受的缺陷颗粒直径,则检测不能通过。VBAI的功能非常强大,它提供了能够直接测量最大费雷特直径(Max Feret Diameter)的函数,由此便可以方便快捷地测出各种缺陷颗粒的最大费雷特直径大小,包括线性特征的划痕,划痕的最大费雷特直径就是其长度。在VBAI的视觉助手函数模块中有一个质点过滤(Particle Filter)的子函数模块,它可以设定一定范围的最大费雷特直径值,然后将最大费雷特直径处于这个范围内的缺陷颗粒都过滤掉,接着进行判定,例如:在一个检测区域内,要求最大费雷特直径小于等于5μm的缺陷颗粒不能超过5个,并且无大于5μm的缺陷颗粒。利用公式(2)可以计算出,放大400倍后5μm转换成像素值约等于7.559pix。然后利用质点过滤函数模块,先将最大费雷特直径小于7.559pix的缺陷颗粒滤去,用粒子分析(Detect Objects)函数模块检测颗粒的数量,如果检测出有颗粒就判定不能通过;接着再利用质点过滤函数模块将最大费雷特直径大于7.559pix的颗粒滤去,依旧用粒子分析函数模块检测颗粒数量,如果检测出有大于5个颗粒就判定不能通过。 检测完所有的区域后,调用VBAI里的设定整体检测状态(Set Inspection Status)函数模块,里面有一个选项是“任何一个检测步骤不能通过,则这个检测不能通过(Fail if Any Previous Step Fails)”,把这个选项点选上,则前面任何一个区域的检测不能通过的话,这个光纤端面的检测就判定为不能通过,这样就不会漏过任何一个不符合检测要求的检测区域了。 2.4 报表的生成 报表作为检验测试结果最直观和最重要的凭证,是测试系统必不可少的组成部分。每个光纤端面检测完成后都会产生许多数据,包括每个检测区域缺陷的数量、大小等等。如果将这些数据指定文件路径后自动导入到Excel或Word文件中,不仅可以提高整个检测系统的自动化程度,还大大降低了测试人员的工作量。因此在程序的最后加上VBAI中的一个数据导出(Data Logging)函数模块,将数据以Excel格式保存在本机电脑硬盘上或者将其上传至FTP服务器中并保存起来,提高数据的安全性和可靠性,方便随时查看。
3 结论 本文结合图像处理技术,根据采集的光纤端面图像开发出了一套基于机器视觉的光纤端面缺陷检测系统,经过实验证明,这个系统能够高效率、高质量的对光纤端面的缺陷进行检测与判断,避免人工检测带来的操作失误现象,极大地提高了检测的可靠性。 除了本文中对光纤端面检测的应用外,借助红外线、紫外线、X射线、超声波等**探测技术,机器视觉在检测非可视物体和高危险场景时更具有其突出优点。因此,机器视觉检测将会成为越来越受欢迎的方案。
|