黄春霞
(厦门理工学院 光电与通信工程学院,福建 厦门 361024)
边缘是图像最基本的特征之一,测量系统中的参数测量是通过处理被测物体图像的边缘而获得物体的几何参数的过程,被测零件的边缘定位精度直接影响最终的测量结果。因此,边缘检测技术是参数测量的基础和关键。边缘检测技术从接触式发展到非接触式测量。接触式测量主要利用一些机械量仪,直接接触工件边缘表面进行检测;而非接触式测量主要利用光学测量仪,进行扫描或者投影工件边缘进行检测,后者具有无损伤、精度高、检测速度快等优点,因此应用越来越广泛。非接触式边缘检测技术常见的有投影成像检测法、激光反射检测法、激光遮断检测法[1-4]。
对于要检测工件径向距离的场景,当工件边缘不平整时,用激光反射检测法误差会比较大,而用激光遮断检测法视场范围又太小,综合考虑,采用电荷耦合器件(CCD)投影成像检测法效果会好的多,该方法适用于超薄工件的边缘检测,在工业中应用广泛。其核心检测部件是CCD图像采集传感器,配以光源进行工作,光源于CCD传感器上方安装,被测工件放在光路中间,工件遮挡光路的部分会在CCD成像单元上形成阴影。投影成像检测法不能直接获取工件边缘点的坐标,而且要对采集的图像配以一定的图像处理算法进行处理,以此找到工件边缘点的像素坐标。而CCD器件又分有面阵CCD和线阵CCD两种,因此投影成像检测法分别对应面阵CCD投影成像检测法和线阵CCD投影成像检测法。
面阵CCD投影成像检测法,CCD传感器采集的是一副二维的面阵图像。目前二维图像像素级边缘检测算法常用的有Roberts,Sobel,Canny,LOG算子等,这些算子的形式简单,易于实现且速度快,但定位精度差,对噪声敏感。由于面阵CCD投影成像检测法对被测对象直接成像,无需扫描控制电路、驱动机构等,设备相对简单,获取被测物体二维信息的速度较快,但是单个面阵成像面积较小,适用于测量较小物体。由于生产技术的制约,单个面阵CCD的面积很难达到一般工业测量对视场的需求[5-8]。
线阵CCD投影成像检测法,CCD传感器采集的是一维图像,一帧图像处理的结果是一个边缘点的坐标,因此为了获取工件整周边缘的信息,CCD线阵投影成像检测法必须配合扫描运动,这对图像处理有实时性的要求。这种采用线阵CCD作为传感器再配合执行机构带动工件旋转以扫描检测工件的边缘,在针对大视场,实时性,高精度测量的场合尤其常见,比如在光刻机中硅片传输分系统里为了完成硅片预对准对硅片边缘的检测。本文提出基于线阵CCD图像边缘检测方法,图像采集配合旋转轴扫描运动,对工件边缘整周进行图像采集。针对线阵CCD采集工件边缘的每帧图像,主要从图像平滑滤波、基于梯度算子边缘粗定位,拟合区间搜索、最小二乘直线拟合边缘精确定位几个方面对图像边缘检测技术进行研究,结合图像ID对应旋转台角度位置精确定位出工件边缘点极坐标位置,为工件后续特征识别提供计算数据。算法运用硅片预对准台中的硅片边缘线阵CCD采集的图像进行验证,结果表明,该方法检测精度达到亚像素级别,处理效率高,可适用于大视场,实时性,高精度测量的场合[9-15]。
待测工件边缘的上下方分别固定放置点光源和CCD传感器,CCD传感器一维列阵传感器方向朝向工件旋转中心安装,目的是为了测量工件的径向距离。常见的如图1所示的这种透射式光路,点光源发出的散射光束一部分被工件遮挡,一部分直接照射在CCD传感器上成像,CCD传感器上的光敏单元能够感应光的强弱,从而获得电压信号,再通过模数转换获得数字图像信号[16]。工件在旋转台带动下旋转,图像采集配合旋转台扫描运动,通过边缘检测可以获取工件整周边缘点坐标位置,从而计算工件特征信息(如形心位置等)。具体采样原理是,根据采样频率,运动驱动控制卡对旋转轴编码器计数,到位后,向基于DSP的图像处理卡发出触发信号,图像处理卡向基于FPGA的图像采集卡下发控制指令,后者通过CAMERALINK协议与CCD传感器通讯,来接收CCD图像数据,并且负责图像数据的平滑滤波和梯度值计算,粗定位出边缘位置,然后把处理后的结果,即粗定位的边缘位置坐标,以及截取粗定位的边缘点附近段数据上传给图像处理卡(DSP),DSP接着进行下一步拟合区间搜索和最小二乘拟合精确定位出边缘位置。旋转台旋转一周后,DSP获得工件整周边缘点的坐标位置,把这些坐标信息上传给上位机,上位机再进行如工件形心等特征识别计算。通过图像采集卡FPGA的前期处理,可以大大减少其与图像处理卡DSP之间的通讯数据量,FPGA和DSP这种分工处理模式发挥了各自处理芯片的优势,大大提高了运算处理效率。测量系统如图1所示。[17]
图1 测量系统
该方法结合了粗定位和参数拟合两大步,具体流程是首先对图像进行滤波,然后根据图像在边缘点上有灰度跃变的特点,计算灰度梯度算子,搜索出梯度极大值或者首次较大值以粗略确定边缘位置,粗定位精度是像素级的;由于CCD图像信号在边缘是渐变过程,所以在粗位置两端左右向外扩展一小段,对该段区域进行最小二乘直线拟合,从而获取亚像素级的边缘点坐标位置。线阵CCD图像边缘检测算法流程如图2所示[18-20]。
图2 线阵CCD图像边缘检测算法流程
在边缘检测中往往是是先通过对原始图像的灰度值求取一阶导数,以此方法检测出边缘点的存在,再使用二阶导数过零点定位出边缘的具体位置。由于在导数的应用中,结果对噪声很敏感,所以必须首先使用一个滤波器来减少噪声对边缘检测性能的影响。图像平滑的主要作用就是为了要降低噪声对检测结果的影响。
图像平滑滤波的方法有多种,如中值滤波是图像平滑的方法之一,其通常是以某像素点为中心作为一个窗口,把附近区域里的像素的灰度值根据特定的顺序如从大到小排列,在窗口中间的像素的灰度值是滤波后的值。决定中值滤波效果好坏的是计算机中使用到的像素的数量和附近区域的范围。它是一种非线性滤波器,有其自身的相对于其他滤波器的优越性:首先它能够有效的抑制噪声和脉冲的干扰并且能够保持图像的边缘,它的不足之处在于其对高斯噪声的抑制效果并不是很有效。
而高斯滤波器是属于一种线性平滑滤波器,它对于消除正态分布的噪声效果非常显著,它是通过高斯函数的形状来选择权值的,不管是在空间域上还是在频率域上都是非常有应用价值的低通滤波器。高斯滤波器用像素相邻域的加权平均值来代替该点的像素值,而每一领域像素点的权值是随该点距中心点的距离单调增减的,这避免了平滑运算造成的图像失真。高斯函数的傅里叶变换频谱是单瓣的,这意味着平滑图像不会被不需要的高频信号(噪声)所污染,同时保留了大部分所需的信号(如边缘)[21]。通过比较不用算法的优劣,本文选用高斯滤波器对图像进行平滑滤波。
关于高斯滤波器的模板选择,可用杨辉三角形的第n行作为高斯滤波器的一个具有n点的一维逼近权值,综合考虑计算量和滤波效果,这里n取为经验值5,杨辉三角形的第5行是[1 4 6 4 1],用该行代表的权值作为模板对图像进行高斯滤波。图3是一帧线阵CCD原始图像灰度分布图,图4是经过高斯平滑滤波后的线阵CCD图像灰度分布图,对比滤波前后的一维灰度分布,滤波后的图像被平滑并且有效保护了过渡区域。
图3 一帧线阵CCD原始图像灰度分布图
图4 滤波后的线阵CCD图像灰度分布图
图像的边缘是灰度值梯度较大或极大的地方,是图像的最基本特征,对于数字图像来说,可以用一阶差分代替一阶微分。针对线阵CCD测量系统,在工件边缘区域灰度对比度变化明显,若工件表面不透光,则边缘位置灰度值梯度具有极大值;若工件表面会透光,则边缘位置灰度值梯度具有较大值,此时可设定一个阈值,阈值可根据工件表面透光情况来设定,搜索第一个梯度大于该阈值的位置即为边缘位置。基于梯度算子搜索得到的边缘位置只能达到像素级精度,所以是粗定位。
数字图像经过平滑滤波后的一维图像f(i),i=1,2,...[i表示像素位置,f(i)表示灰度值],梯度算子公式是:
G(i)=abs(f(i-1)-f(i))
(1)
G(i)为灰度图像的灰度梯度值,对灰度梯度值遍历找到极大值点,或者大于设定阈值GTH的第一个点,其对应的像素位置i即为边缘粗定位坐标。
理想的边缘信号是一个阶跃函数,如图5所示。而在实际采集中,由于存在像差和衍射效应,CCD采集到的实际边缘信号是一个逐渐增大的渐变信号[4],其边缘区域灰度变化如图6所示。
图5 理想边缘信号
图6 边缘区域灰度变化示意图
为了获得边缘精确位置,需要对粗定位的边缘点附近段数据进行直线拟合,所以先要搜索拟合区域。由于通过求取灰度梯度获得的初始边缘位置由该点及相邻两点的灰度值决定,在随机噪声的影响下,结果可能不太稳定。为了得到稳定的边缘,采用基于最小二乘法的直线拟合方法能够有效地抑制随机噪声的影响,这样处理之后可以使得边缘检测的结果更加稳定。
以粗边缘点为中心,左右各取12个点的像素数据为搜索区域,该区域设为[a,b],12即为以粗边缘点为中心的搜索半径r的值。a,b间的区域只有中间部分即[nc,nd]段的像素数据用于直线拟合,该拟合段根据灰度上下门限值进行搜索确定。
线阵CCD灰度变化范围为0~255,可以选取[a,b]间最右侧n个像素点的均值设定为灰度的上限值为GH,选取[a,b]间最左侧n个像素点的均值设定为灰度的下限值为GL(n一般要小于等于搜索半径r的一半,上文r取12,故n取为5较为合适)。从a点向b点搜索,找到灰度大于GL的第一个点为nc;然后从b点向a点搜索,找到灰度小于GH的第一个点为nd;nc和nd之间的那部分区域作为需要直线拟合的区域。
通过上一步得到了拟合区域之后,采用最小二乘直线拟合来精确定位边缘位置。
设用于拟合边缘信号的直线方程为:
G(n)=k*n+l
(2)
边缘图像的实测灰度值是g(n),由最小二乘原理求参数k和l,使得:
(3)
的值最小,这样就可以保证每个点离直线的距离绝对值是最小的。将M分别对k和l求偏微分,并令其偏微分为0,得:
(4)
(5)
由式(4)和(5)得:
(6)
(7)
Ak+Bl=C
(8)
Bk+El=D
(9)
由式(8)和(9)解得参数:
(10)
(11)
设定一个位于GH和GL之间的灰度值Gref,Gref可以通过实际的工况确定,也可以利用下式获得
Gref=(GH+GL)/2
(12)
这样根据式(2)可以求得位于nc,nd的边缘点ns
ns=(Gref-l)/k
(13)
ns即为精确边缘位置。
实验装置是光刻机硅片传输分系统中硅片预对准台CCD测量系统,如图7所示。CCD传感器安装在硅片下方,已经封装在图中黑色罩壳里,硅片上方是点光源,硅片由机械手从片库的片盒中取出,放置在预对准旋转台的真空吸盘上,由于片盒存有间隙,放置在预对准旋转台上的硅片存在2 mm范围的随机偏心和随机缺口方向。在半导体芯片制作过程中硅片需要多重曝光,光刻机的视野很小,在将硅片传送到光刻机工件台上进行曝光前,硅片必须进行纳米级对准。从微米级的偏差到纳米级的对准,一次定位难以做到,所以中间先需要经过硅片预对准台进行微米级的预对准,即预对准台要把硅片偏心调整在微米级范围内,缺口偏向调整在微弧度范围内。为了有效识别硅片形心和缺口位置特征,需要CCD传感器配合旋转台扫描运动采集硅片边缘数据,定位出硅片整周边缘点坐标,经过CCD坐标系到旋转台坐标系的坐标变换,从而获取硅片边缘整周径向极坐标值,再应用预对准算法算出偏心和缺口坐标位置,从而指导执行机构做相应的硅片偏心、方向调整。线阵CCD边缘检测定位精度对预对准后续算法的执行有很大的影响。为了验证本文所提CCD边缘检测方法的重复性定位精度和效率,把它们应用在硅片预对准台硅片边缘线阵CCD测量系统中。
图7 硅片预对准台CCD测量系统
所谓的重复性定位精度实验,就是在同一位置采集多组图像数据,然后应用算法分别计算边缘点坐标,要保证定位坐标的重复性。判断准则是应用俄国数学家P.L.Chebyshtv的3-sigma法则,假设有n个离散的数值:a[0],a[1],…,a[n-1],样本均值m为,
(14)
(15)
(16)
3-sigma法则又叫经验法则,最常在统计中用于预测最后结果。在得到数据的标准差,并在可以收集确切的数据之前,该规则可作为一个对即将到来数据结果的粗略估计。在统计学中,经验法则是在正态分布中,预测距平均值小于一个标准差,即在平均值距离[-1σ,+1σ]范围之间的数据占67%;预测距平均值小于二个标准差,即在平均值距离[-2σ,+2σ]范围之间的数据占95.45%;预测距平均值小于3个标准差,即在平均值距离[-3σ,+3σ]范围之间的数据占99.76%。在工业测量中,常对超过25组的测量数据计算3sigma值来确定其测量的重复性定位精度。
3σ理论应用到本系统中,只要在同一个边缘位置,采集n(n≥25)组线阵CCD图像,对每帧图像应用本文所提的边缘检测算法,即获得n个边缘点在CCD坐标系下的位置坐标(以像素为单位),再计算这些位置坐标的3σ值,只需3σ值达到亚像素精度,即表示该算法至少能达到99.73%的合格率,可视作算法达到本文所提的亚像素精度要求。
验证算法图像的获取,是在硅片同一边缘位置采集1 000次共获得1 000幅线阵CCD一维图像,每帧图像包含1 004个像素,每个像素对应一个灰度值,所以每帧图像有1 004个代表灰度值的数据。为了显示方便,把同一位置的1 000幅一维图像灰度数据上传上位机,上位机开辟一个高1 000,宽1 004的无符号整型内存空间,即unsigned char[1 000,1 004]来存图像灰度数据,把这些数据保存在一个图像文件中,打开后就得到一幅像素大小为高1 000,宽1 004的二维图像,实为同一位置采集的一维图像数据从上到下拼接在一起组合而成的。分别在硅片3个不同位置这样采集拼接三次,则获得如图8所示的3幅二维图像,其中图8(c)还改变了CCD的焦距,所以图像表现得更加模糊。
图8 实验采集CCD拼接二维灰度图像
针对这3个位置,分别采用两种边缘检测算法进行指标结果比较,一种是直接对拼接的二维图像采用图像增强、平滑滤波、应用SOBEL算子的二维边缘检测算法[22]。图9是针对CCD拼接二维图8(a)应用该算法步骤得到的边缘检测过程结果图,最后获得的1 000个边缘点坐标,画出其折线如图10所示,再对这1 000个坐标位置计算3σ值,结果为3.436像素,如表1第一行所示;而针对CCD拼接二维图8(b)、图8(c)计算边缘坐标的3σ值分别是3.579和6.364像素。可以看出用该二维图像边缘检测算法,算法重复性定位精度是像素级别,定位精度对图像清晰度十分敏感,当图像模糊时,该算法的定位精度会大大下降。这里FPGA和DSP主要作用是做图像采集控制和数据传输,并不做任何数据处理,因此这两种芯片的优势没有发挥出来;DSP把所有数据上传上位机,上位机把所有图像数据拼接成二维图像后再进行边缘检测,数据通讯量较大,需要占用上位机系统内存较大空间,不过后台时钟显示图像处理耗费时间为116 μs(针对1 004*1 000图像大小),算法效率较高。
图9 针对图8(a)基于Sobel算子边缘检测过程结果
图10 针对图8(a)二维图像边缘检测得边缘坐标点
表1 两种边缘检测算法重复性定位精度结果比较
另一种采用本文所提的算法,各幅图像的每行分别应用本文所提的一维图像边缘检测算法定位出边缘坐标位置,获得的1 000个边缘点坐标,计算3σ值。如图11是针对CCD拼接二维图8(a)里1 000幅一维图像数据分别应用本文所提算法得到的边缘检测结果,获得的1 000个边缘点坐标,用它们画出的折线图;对这1 000个坐标位置计算3σ值,为0.339像素,如表1第一行所示;而针对CCD拼接二维图8(b)、图8(c)中的一维图像数据计算边缘坐标的3σ值分别是0.365和0.491像素。可以看出用本文所提一维图像边缘检测算法,算法重复性定位精度是亚像素级别,定位精度对图像清晰度不敏感,当图像模糊时,算法的定位精度虽然有所下降,但是也能达到亚像素级别。另外该算法在主频200 M的DSP板上运行,编译环境为CCS2.2,设置-02优化选项,使用定时器获取的运行时间小于17 000 CPU周期(约85 μs),需要耗费的时间是微秒级。根据采样定理,图像处理时间只要小于每次图像采集间隔时间的一半,即满足实时性需求。例如对于硅片预对准台,旋转台旋转1周用时1 s,硅片边缘需要采集2 000点,每点采样周期约是30 ms,远远大于每帧图像处理时间,因此满足数据采集实时性要求。另外,DSP传送给上位机直接就是边缘点坐标位置,上位机无需再做图像处理。综上所述,对比两种边缘检测算法的结果,可以看出本文所提算法重复性定位精度更高,充分利用了各种处理芯片的运算优势,运算速度快,数据通讯量小,可适用于实时性要求高的应用场合。
图11 针对图8(a)一维图像边缘检测得边缘坐标点
本文提出基于线阵CCD图像边缘检测方法,图像采集配合旋转轴扫描运动,对工件边缘整周进行图像采集,针对每帧图像运用图像平滑滤波、基于梯度算子边缘粗定位、拟合区域搜索、最小二乘直线拟合边缘精定位几个步骤,结合图像ID对应旋转台角度位置从而定位出工件边缘点极坐标位置,为工件后续特征识别提供计算数据。实验表明,该方法定位精度达到亚像素级别,采集的图像质量对方法定位精度有一定影响,实际工作中,CCD焦距最好要调节好,光强调整适中使得边缘位置明暗变化明显;另外方法计算效率高,计算时间小于90 μs,适用于大视场,实时性,高精度测量的场合。