基于OpenCV的晶圆编号识别算法研究

2017-07-12 02:38刘劲松梁皓源
软件导刊 2017年6期

刘劲松+梁皓源

摘要:根据特定晶圆(Wafer)产品光学特性,基于OpenCV开源视觉库,设计一套晶圆字符编码识别系统。系统过程包括光源选型及照射方式选择、图像预处理、自适应阈值分割、形态学处理、图像矫正及ROI提取。通过优化评价标准的模板匹配完成字符识别。经过试验,该系统能够准确检测字符,具备一定应用价值。

关键词:字符检测;OpenCV;形态学处理;自适应阈值处理;模板匹配

DOIDOI:10.11907/rjdk.171106

中图分类号:TP312

文献标识码:A 文章编号:1672-7800(2017)006-0025-03

0 引言

半导体工业某种程度上是国家工业水平的标杆,其智能化水平尤为重要。机器视觉作为新兴且迅速发展的多学科综合技术,是智能化生产的重要组成部分,主要用于缺陷检测、扫描识别、定位对位等领域,在半导体应用领域举足轻重[1]。

晶圆(wafer)生产过程中,需频繁识别记录本体编号,以便于产品追溯,为提高品质控制提供基础数据。以往通过人工进行该项操作,不但增加了人力資源开销,效率和准确性也无法保障。将机器视觉与晶圆编号识别结合,可为优化晶圆信息提供新思路 。本文基于特定晶圆产品编号特征,结合Visual C++ 和OpenCV开源视觉库实现了晶圆字符编号的识别。

1 系统概述

机器视觉系统主要包括图像采集、图像处理、目标识别3部分[2]。图像采集系统和识别算法是影响系统效率和稳定性的两大因素。本文通过选取合适的光源和照射方式获取优质的源图像,然后对图像进行预处理、矫正、分割,最后通过模板匹配实现字符识别,如图1所示。

2 光源及照射方式选择

光源及照射方式直接影响原始图像质量,设计系统时需着重考虑。鉴于晶圆表面呈镜面特性且编号为刻蚀字符,故选用同轴光照射,见图2(a),以减少反射光影响。晶圆表面呈暗黄色而字符为黑色,为弱化背景信息并突显字符,可运用反色温单色光照射,由色环(见图2(b))选用蓝色LED光源。图2(c)为在该照明条件通过CCD相机采集到的灰度图像。

3 预处理

首先将灰度图像二值化。本文采用阈值分割法,可先确定全局灰度阈值,而后逐像素点进行灰度值比较,根据结果将其重新赋值为0或255。通过图像灰度直方图(见图3),可直观了解图像灰度分布,这是确定最优阈值常用的方法[3]。

OpenCV中通过函数calcHist ()统计图像灰度分布。

得益于光源和光照方式,直方图分布均衡且明显分为前后两个波峰区域,分别对应着字符及黑色边缘区域和主体背景区域。将灰度直方图平滑后,选取波谷区域的最小值作为固定阈值,并以此对原图像全局二值化。

由图4可见,部分字符特征信息缺失且图像边缘阴影区域也被突出。此外,由于实际环境复杂,并不能保证源图像的灰度直方图始终呈现明确清晰的双峰特性,难以获取最优阈值,故固定阈值全局二值化在此并不适合。

考虑到源图像结构特点,虽然整体背景灰度分布复杂,但字符区域背景构成相对简单。因此要根据不同区域的自身特点选择适合该区域的局部阈值,并藉此对当前区域二值化[4],这样不但可以消减噪声,还可以降低非均匀光照对灰度分布的影响。通过滤波器获取以某一像素为中心的局部区域平均灰度值,以此作为阈值,与该像素进行灰度值比较,继而确定该像素点的灰度取值(0或255),也称为自适应阈值二值化。其中,滤波器尺寸的选取较为关键。尺寸偏小,可导致对局部区域平均灰度值估计不足,引入额外噪声;尺寸偏大,可能会使感兴趣区域丢失特征信息。经多次尝试,笔者选取5×5的滤波器对全图进行高斯滤波(见图5)。相对于全局二值化,自适应二值化效果更好,不但完整保留了字符信息,也将背景中低灰度值区域滤除。

OpenCV通过函数adaptiveThreshold () 实现自适应阈值二值化。

4 图像角度矫正及ROI获取

机械结构只能保证晶圆字符信息处于镜头视野范围内,但字符串方向可能与图像X轴方向呈一定角度,影响后续模板匹配的效率和准确性。因此,有必要对图像进行角度矫正。

首先,对二值图像进行形态学处理,目的是将字符区域连接为一体,使其具备更明显的特征以便获取倾斜角度和区域提取。根据字符串沿X轴方向展开且字符线条较窄的特点,本文采用1×5横向进行X方向的多次腐蚀,实现字符区域连接,再进行膨胀处理,平滑边缘。该过程后,可能导致原本存在的噪点发展为横向线噪声。因此,随后以3×1纵向核进行Y方向膨胀腐蚀以消减噪声,结果如图6所示。

OpenCV中通过cvCreateStructuringElementEx ()自定义形态核,cvErode()和cvDilate()分别完成膨胀和腐蚀操作。

由于字符区域没有明显透视效果,且形态学结果的下边缘清晰,故其倾斜角度近似等于待矫正角度。在下边缘上选取两个相距较远的点并计算其连线的倾斜角度[5],据此对图像进行旋转矫正(见图7)。

OpenCV中先通过cv2DRotationMatrix()计算二维旋转变化矩阵,再通过cvWarpaffine()实现图像的旋转变换。

基于形态学结果,结合先验知识,设计了两个条件用于分割并提取字符区域(见图8):①编码区域(最小外接矩形)的长宽比接近4:1;②面积最大的矩形连通域。

5 字符识别

由于采用了特定光源及照射方式,且产品编码字符样式固定,图像质量及图像采集的鲁棒性均得以保障。笔者使用优化度量算子后的基于灰度值的模板匹配进行字符识别,即模板图像t(r,c)在待识别图像中逐像素点移动,并在每个位置计算相应的相似度量S,最后取相似度最接近要求的位置作为最佳匹配位置。相似度量是一个函数,其参变量由模板图像中各像素点的灰度值t(r,c)及模板ROI在待匹配图像中移动时ROI的灰度值g(r+u,c+v)确定。而后,根据这些灰度值数据计算一个标量值作为相似度[6]。通过这种方法,变换空间中的每一个点都会得到一个相似度,而此时的变换空间也可以看成为一幅图像,表达式见式(1):

6 试验结果

笔者在VC++6.0环境中实现了本文所述字符识别算法流程,并对生产线上随机抽取的50张图像进行测试。样本中,每张图像的字符区域都有不同程度的角度倾斜。试验结果证明,该算法能够正确有效地识别字符,且平均检测时间为1.76 s,满足一般流水线生产节拍要求。

但该算法仍有很多不足,体现在:①模板匹配需要占用大量系统资源,如何获取高质量的模板将成为提高算法识别效率和成功率的瓶颈;②该算法针对特定产品设计,普适性较差,主要表现在图像的获取和矫正环节上,缺乏移植性。

7 结语

自动化生产线的生产节拍直接关乎产品的成本与品质控制,将机器视觉应用于产品的可追溯性,既保证了效率又提高了可靠性。本文基于特定晶圆产品的编号特点,结合光源及照射方式选择,设计了一种字符识别算法,目的是抛砖引玉,为半导体装备制造业的发展提供思路。该算法虽具备一定实用价值,但仍有很大的改进空间。随着研究的深入,机器视觉系统在工业自动化生产中将越来越完善。

参考文献:

[1]刘劲松,郭俭.3D芯片封装晶圆植球装备关键技术研究[J].中国电子科学研究院学报,2013,8(6):573-577.

[2]刘学平,陈艺昌,刁常龙,等.基于机器视觉的BGA芯片检测对中技术[J].计算机工程,2013,39(8):281-284.

[3]布拉德斯基,克勒.学习OpenCV[M].北京:清华大学出版社,2009:256-258.

[4]郭斯羽,张煦芳.一种基于模型的自适应阈值分割算法[J].浙江大学学报:工学版,2005,39(12):1950-1953.

[5]黄先学,韩震宇.基于OpenCV的半导体电子元器件字符检测方法[J].计测技术,2013,33(4):30-32.

[6]CARSTEN S, MARKUS U,CHRISTIAN W.机器视觉算法与应用[M].第3版.杨少荣,译.清华大学出版社,2011:432-438.

[7]陈丽芳,刘渊,须文波.改进的归一互相关法的灰度图像模板匹配方法[J].计算机工程与应用,2011,47(26):181-183.

(责任编辑:杜能钢)