为了避免图像配准精度对液晶显示屏( LCD) 线路缺陷检测准确率的影响,采用一种基于图像轮廓分析的新方法,基于深度优先搜索寻找图像轮廓,并根据格林公式计算轮廓面积,将待检测LCD 的线路轮廓面积与标准模板的轮廓面积比较,从而判断是否存在短路。断路。孔洞和孤岛缺陷。该方法不需要图像配准,降低了算法精度要求,从而提高了检测的正确率。通过对200 片小型LCD 的测试,检测准确率达99%?结果表明,该方法可以快速正确地检测出图像上的所有轮廓,并计算出轮廓面积,用面积比较代替传统的图像像素比较,检测短路。断路等缺陷的正确率有了较大提升。该算法在LCD 线路缺陷检测方面具有很好的应用前景。
近年来,随着液晶显示屏( liquid crystal disPlay,LCD) 的广泛应用,生产过程中对LCD 缺陷的检测变得越来越重要,而自动光学检测技术作为质量检测的重要手段,也已经在LCD 缺陷检测中得到了应用。
LCD 缺陷种类繁多,比如刮痕。杂质。Mura 缺陷以及线路缺陷等,本文中将讨论线路缺陷的检测。LCD 缺陷检测中常见的检测方法主要有3 种: 参考比较法。非参考校验法和混合法。非参考校验法主要基于数学形态学操作; 应用较多的是参考比较法,它基于图像配准和与标准模板作差进行缺陷检测,这种方法操作简单,可以有效地检测出常见缺陷,但是对配准精度要求很高,同时由于需要事先建立标准模板,内存消耗也较大。例如KANG 等人提出了一种基于模式比较和边界扩张的方法,首先由模式比较得到只包含缺陷的图像,然后对每个缺陷的每个像素作标记,对于同一个缺陷却被划分为多个区域的情况,采用边界扩张的方法进行区域合并,最后分析缺陷区域特征信息。本文中的方法其优点在于不需要模式比较。该线路缺陷检测算法基于图像轮廓分析,在目标区域提取过程中,采用了一种形态学操作的击中击不中变换( hit-miss transform,HMT) 方法,有效准确地提取出了待检测的线路区域。图像轮廓分析是本文中检测算法的核心,在阈值分割之后,进行边缘检测以得到单像素边界,根据这个特点采用基于深度优先搜索的方法来进行边界追踪,以寻找线路图像轮廓,并用离散化的格林公式计算轮廓面积。
1 系统组成及预处理
由于LCD 线路的线宽线距很小,需要很高的像素分辨率,同时又要保证足够的视场,因此面阵相机很难满足要求。本系统采用线扫描电荷耦合器件( chargecouPLED devICe,CCD) 相机,有效像素7400; 另外,采用直线电机代替传统的旋转电机以提高系统精度。检测系统如图1 所示
图2 展示了该系统采集的1 幅LCD 线路图像的一部分。图2 中画出了L1,L2两条直线,L1和L2之间的区域为所要检测的目标区域,L1上面和L2下面部分是由于相机视场因素而多拍摄的图像,因此首先进行目标区域的提取。提取目标区域需要先找到一个定位标志,然后以定位标志为基准点提取出目标区域,LCD 上一般采用十字形作为定位标志。本文中采用基于击中击不中变换的方法来检测十字形的坐标。
HMT 针对二值图像操作,因此先要将线路图像进行阈值分割,然后应用HMT 找到十字形定位标志的中心,再根据液晶尺寸,以定位中心为基准点,向上下左右4 个方向偏移适当距离提取出目标区域。图3 显示了阈值分割后提取出的目标区域图像。
在轮廓分析之前,首先要提取线路单像素边缘,且由于二值化后的线路边缘明确,CANny 边缘检测即可得到单像素边缘图像。图4 为采用canny 边缘检测后的结果的局部图。
2 LCD 线路轮廓分析
2. 1单个轮廓搜索在液晶线路的轮廓图像中,每一条线路或者一个标志( 例如十字形定位标志) 的轮廓均为一条封闭曲线。
轮廓分析已有相关算法被提出,在作者采用的检测方法中,结合LCD 线路轮廓的单像素特点,分析时采用八邻域连通的方法,但是在搜索轮廓过程中优先搜索中心像素的左右上下4 个像素,然后再搜索4个角的像素,并采用深度优先搜索策略[10]?基于八邻域连通的深度优先搜索如图5 所示,P 为中心像素,搜寻轮廓时先判断P5,P4,P2,P7,如果没有像素与P 连通,然后再判断P3,P8,P6,P1; 一旦找到一个与P 连通的像素,例如P5,那么立即停止搜索P 的其它相邻像素,而以P5为中心继续搜索。
在搜索过程中,定义如下数据结构来表示一个轮廓: tyPedef vector < Pair < int,int > > Contour; vector 和Pair 是C + + 标准库类型,Pair < int,int > 表示轮廓上的1 个像素,第1 个参量为行坐标,第2 个参量为列坐标。在搜索过程中每找到一个像素就将其加入到vector.图6 说明了对单个轮廓的搜索过程。
首先定义一个Contour 对象contour,假定从P1开始搜索,由于LCD 线路主要走向是横向,因此先搜索P1的左右像素,再搜索上下像素,最后搜索4 个角的像素; 当搜索到一个连通像素P2后,根据深度优先策略,停止对P1邻域的搜索,即使P1还可能有其它连通像素,例如这里的P5和P3,将P1存入contour,并将P1标记为已搜索; 然后以P2为中心搜索,虽然P1与P2连通,但标记为已搜索,因此,将搜索到P2的连通像素P3; 再以P3为中心搜索到P4,如此进行下去。当搜索到P5时,发现与其连通的像素均已标记为已搜索,于是对该轮廓的搜索结束。可见,对一个轮廓搜索结束的条件为: 某一像素的所有连通像素均标记为已搜索。
2. 2 轮廓面积计算
当得到一个轮廓的所有像素之后,就能很方便地计算其特征参量,比如周长。面积。质心等。由图6 可以看出,轮廓的周长即是该轮廓所包含的像素个数,因此可以很方便地计算出来; 质心可由质心公式计算,对于图像即是所有像素的坐标平均值。
本文中检测缺陷时需要用到轮廓的面积,对于曲线所围成区域,可以采用格林公式计算其面积,定义如下: 设单连通闭区域D 由分段光滑的曲线L 围成,函数R( x,y) 及Q( x,y) 在D 上具有1 阶连续偏导数,则有。
其中对于二值图像中的连通区域,用差分代替微分,用求和代替积分,可推导出轮廓的面积计算公式。设轮廓由m 个像素点Rk( Xk,Yk) 组成,其中k = 1,2,…,m;Rm + 1 = R1; R1,R2,…,Rm沿轮廓正向排列,则面积S 可表示为。
如果按轮廓曲线的正向来搜索像素,最后得到的contour 中的像素点即是按正向排列的,应用上面公式可快速计算出轮廓面积。在计算面积的时候,不管轮廓内部是否包含其它轮廓,均当做单连通区域处理,因为当一个轮廓内部包含其它轮廓的时候,内部轮廓则是由于线路的孔洞缺陷导致,将其也看作一个单连通区域,便于后面的缺陷判断检测。
2. 3 整幅图像轮廓分析
设经过二值化。目标区域提取以及边缘检测后的图像为image[m][n],轮廓为白色,背景为黑色。为了对已搜索过的像素作标记,建立一个与原图像尺寸一致的标记数组。将所有轮廓存储在一个vector 对象中,算法具体步骤如下。
( 1) 建立一个与图像尺寸一致的标记数组flag[m][n],初始化为0,表示所有元素均没被标记。
( 2) 从左至右从上至下遍历图像所有像素,当扫描到一个白色且未被标记的像素Pix( i,j) 时,说明找到一个新轮廓,以该像素为起点,按照上面的单个轮廓分析算法搜索出该轮廓的所有像素,存入表示该轮廓的Contour对象中,搜索过程中已搜索过的白色像素在flag 数组中的对应元素置1?当本次搜索完毕时,将该轮廓的Contour 对象存入vector < Contour > 对象中。