一种鲁棒的非均匀光场中SD卡形态识别算法
2019-05-08周小萌吴静静
周小萌,吴静静*,安 伟
(1.江南大学机械工程学院,江苏 无锡 214122;2.江苏省食品先进制造装备技术重点实验室,江苏 无锡 214122)
SD卡的生产过程中,彩喷质量保证了SD卡的封装质量。目前在彩喷过程中,打印料盘内SD卡的形态由人工来完成识别,存在人体视觉容易疲劳以及检验速度无法提升等缺点。因此,利用计算机视觉、图像处理来代替人工进行SD卡的形态识别势在必行。在料盘中SD卡阵列排列且总面积较大,在光场中无法达到均匀光照的效果。SD卡在料盘内具有多自由度,存在姿态随机变化的现象,均对图像处理办法提出了新的要求。
对于不均匀光场中的图像分割,主要有全局阈值法(如迭代法[1]和OSTU法[2])和局部阈值法(如Bernsen法、Niblack法)两大类。全局阈值法适合对目标与背景对比明显的图像进行分割,无法适应多变的光照情况。因此,文献[3]中通过背景分析对图像进行背景均匀化处理,进行全局阈值分割得到二值图像。局部算法则通过图像的局部信息来确定像素的归属,可以较好的分离目标与其周围的背景,但是对背景区域和阴影比较敏感,易产生虚假目标或对象断裂问题。文献[4]中为了柔性地适应不同的分割环境,设置水平与竖直方向的波动幅度阈值来控制对分割的敏感程度。以上方法在图像整体明暗分布均匀的情况下能够完成有效分割。
对于姿态多变的目标,形态识别方法主要有:模板匹配算法、统计特征算法、神经网络算法等。文献[5]在模板匹配算法的基础上,将图片平均分成12块区域,再加上5条交线,一共17个特征值,通过特征值完成模板匹配。文献[6]针对目标偏移的问题提出了多模板匹配的方法,把标准模板分为三类,将模板和待测区域均从中心分成相等四块区域分别进行匹配。文献[7]用六条线从数字的水平和竖直方向穿越数字,计算得出像素改变的次数,得到特征向量,最终逐一计算规范模板库与目标数字特征向量之间的距离得到目标的识别结果。文献[8]通过引入数字字符结构特征中的图段特征,并结合数字字符的行列统计特征组合成为新的特征向量;然后根据新的组合特征向量设计BP神经网络分类器完成对数字字符的识别。以上方法在图像模板库与图像目标清晰的情况下能够有效完成识别。
对于模板匹配算法,文献[9]通过对投影特征进行模板匹配实现目标姿态的测量。文献[10]通过对模板图像进行子空间分解,利用盒形正交基对图像进行逼近,达到提高效率的效果。文献[11]通过多分辨率先粗后精的金字塔搜索策略,能够同时满足实时性以及精度的要求。文献[12]利用采集到的图像产生实时模板进行匹配,提高了移动目标识别的准确率。以上算法均针对各自图像进行特征分析,实现了高效率与高精度的模板匹配。
图1 SD卡在料盘中的阵列图像
1 总体方案
彩喷时,根据不同类型,SD卡表面存在不同形状的字符,但是表面的金手指形状具备唯一不变性。如图1的阵列图像中,SD卡表面除金手指以外其他部分的灰度值均与料盘灰度值接近。因此,本文将SD卡表面的金手指作为阈值分割的前景目标。由于料盘边沿形状与金手指形状相似度高,需要对灰度图像进行自适应阈值分割以完成金手指目标定位,得到金手指清晰的二值图像。通过对金手指进行分析,得到一系列描述特征。对金手指特征向量进行分类,完成各种随机姿态下SD卡的形态识别。
本文阵列图像中的光照不均匀现象存在以下特点:①光照不均匀现象存在于阵列区域内以及阵列区域间,且明暗对比具有渐进现象;②不同类型的SD卡与料盘,明暗对比关系会随之变化。因此本文在第2部分提出了一种自适应阈值分割算法:在初步粗定位后对阵列区域完成明暗系数的自适应学习,通过改进的大津法进行初次分割,经过模板匹配定位后得到精确定位图像,完成第2次阈值分割,得到具备鲁棒性的图像分割算法。
本文阵列图像中SD卡姿态存在以下特点:①自由姿态下无法保证在料盘内存在SD卡;②姿态多种多样,无法对形态变化进行量化制作样本库。因此本文在综合准确率与实时性要求的基础上,于第3部分提出了一种基于多特征融合的形态识别算法。
本文算法系统流程图如图2所示。
图2 本文算法系统流程图
图3 自适应阈值分割算法流程图
2 自适应阈值分割算法
为求得料盘中每个SD卡表面的金手指清晰的二值图像,自适应阈值分割算法流程图如图3所示。
2.1 改进大津法进行初次阈值分割
如图4(a)、4(b)所示为明场与暗场灰度图像及其灰度直方图,在明场中SD卡表面的金手指作为前景相对于背景具有较高对比度。但是在暗场中灰度直方图对比度较差,并且由于光照不均匀的情况,导致期望作为前景的金手指在灰度直方图中的灰度级较低。因此,本文将对经典OSTU进行改进:根据灰度图像的整体平均灰度进行明场暗场的自适应判断,于式(1)中加入自适应变量系数k,以提高期望作为前景的金手指灰度均值在整幅图像灰度均值中的比例,其中k取决于灰度图像的整体平均灰度,整幅图像的灰度均值改为u′:
(1)
式中:w0、u0为背景的概率与均值,w1、u1为前景的概率与均值。
对于图4(b)暗场灰度图像,分别使用经典大津法与改进大津法对其进行阈值分割,得到二值图像如图4(c)所示。
图4 明场暗场图像及阈值分割结果
运用改进大津法阈值分割得到较为清晰的二值图像,但是对于金手指的边缘处理仍旧较为粗糙,不能满足对SD卡形态判断的要求。因此,需要在完成金手指精确定位后,再次对金手指灰度图像进行阈值分割,得到金手指清晰的二值图像。
2.2 改进的模板匹配定位算法
如图5所示为经过改进大津法初次阈值分割后得到的二值图像,其中部分料盘的边沿经阈值分割后产生了白色矩形区域,与金手指形状类似,会对金手指的模板匹配造成较大干扰,因此传统的模板匹配算法有以下不足之处:
①计算量大,匹配过程计算较复杂,计算量随图像所包含的像素增加而迅速增大,而且执行匹配运算的次数随着像场的大小而增多,匹配效率不高。②对于像场中金手指方位旋转和尺度缩放的适应性较差。③对于像场中出现的料盘干扰信息过于敏感,易产生过匹配。
图5 SD卡阵列二值图像
如图5所示,金手指轮廓特征与料盘边沿产生的干扰块轮廓特征相似度较高。因此,需要取金手指模板的区域特征来进行模板匹配定位,以排除料盘边沿轮廓特征对金手指造成的干扰。行列统计特征主要反映了金手指的区域统计特性,既克服了逐像素特征提取运算量大的问题,又完好的保存了金手指的形状特征,突出了金手指与料盘干扰块的区别。在本文中,金手指模板二值图像及其行列投影特征曲线如图6所示。
图6 金手指模板及行列投影特征曲线
为排除料盘边沿产生的干扰以及缩短运行时间,本文依据金手指图像的行列投影特征进行多次模板匹配得到金手指精确坐标。主要特点如下。
①通过分别选用行或列投影特征进行归一化模板匹配,得到行列匹配定位结果,求得归一化系数最大的位置即为图像中与模板最相似的金手指的位置。行或列匹配过程的数学描述为:
(2)
式中:T为金手指模板投影向量,大小为M;S为SD卡的二值图像投影向量,大小为L。
②为解决像场中出现的冗余信息干扰问题,进行多次匹配定位得到金手指精确位置。以图像左上角为原点(0,0),横向为X轴,纵向为Y轴。定位算法流程图如图7所示。
图7 改进的模板匹配定位算法流程图
图8 自适应阈值分割得到的图像
通过得到的金手指精确坐标对SD卡灰度图像分割得到图8(c)所示的金手指灰度图像。
2.3 改进大津法进行再次阈值分割
运用改进大津法对金手指灰度图像阈值分割得到图8(d)所示的金手指二值图像。
3 基于多特征融合的形态识别算法
通过分析得到的金手指二值图像,以金手指的位置特征(XY坐标)、形状特征(长度宽度)、面积特征、倾斜度与模板匹配度特征(归一化相关系数的大小)等多个特征提取特征向量,得到SD卡在料盘中的形态。
3.1 SD卡姿态分析
图9为SD卡在料盘中的9类姿态描述。
图9 SD卡在料盘中的姿态与描述
3.2 SD卡形态识别
在SD卡的生产工艺中,将形态分为3类:①“0”类:正常形态包括在料盘中姿态。②“1”类:翘料形态包括压到料盘边沿、在料盘中翘曲、在料盘中旋转等姿态。③“2”类:少料形态包括不在料盘中姿态。
形态识别特征如下:
①位置特征:金手指坐标范围为(x0±Δx,y0±Δy),其中(x0,y0)为SD卡在料盘正中时金手指坐标。Δx为料盘左右边沿与边沿内壁的距离。Δy为料盘上下边沿与边沿内壁的距离。金手指位置特征坐标为(0,0)说明未匹配到金手指,为少料形态;超出范围为翘料形态;
②形状特征:金手指的长度与宽度范围为(H0±ΔH,W0±ΔW),其中(H0,W0)为SD卡在料盘正中时金手指的长度与宽度。ΔH为料盘上下边沿高度与料盘中心高度差引起的金手指长度变化。数学模型如图10所示。
图10 纵向截面数学模型
(3)
可得:
ΔH=H0*(1-cos(arcsin(H/H0)))
(4)
同理可得ΔW为料盘左右边沿高度与料盘中心高度差引起的金手指宽度变化量。金手指形状特征为0,为少料形态;超出范围为翘料形态;
③面积特征:SD卡在料盘中金手指的面积范围为(S0-ΔS,S0),其中S0为SD卡在料盘正中时金手指面积。ΔS为压到料盘边沿后金手指面积变化量。金手指面积特征为0,为少料形态;超出范围为翘料形态;
④补充特征:以上特征可以完成对大部分SD卡姿态的形态识别,但是对旋转姿态的形态识别不尽人意。因此加入倾斜度k与匹配度p作为补充特征。
(5)
式中:k0为金手指模板的倾斜度,L0为金手指模板中最先出现白色像素点的行坐标,L1为金手指模板中出现大量白色像素点的行坐标,colshadow为金手指模板列特征向量。当匹配到的金手指倾斜度k>k0时,说明金手指发生旋转即SD卡为翘料形态;
p=p0+p1
(6)
式中:p0为行投影特征匹配时得到的归一化系数,p1为列投影特征匹配时得到的归一化系数,p<1.5说明求得的金手指与金手指模板相似度差,即为翘料形态;
对金手指进行特征向量提取:金手指特征判断结果为正常放置形态时,该项元素为“0”;翘料形态时,该项元素为“1”;少料形态时,该项元素为“2”。全部特征向量元素提取完毕后,对特征向量进行分类:特征向量中存在元素“2”,即输出结果为:“少料”;特征向量中元素全部为“0”,即输出结果为:“正常”;其他情况时:输出结果为:“翘料”。
4 实验结果与分析
为了验证所提出算法的有效性,采用设备实际运行过程中采集到的100幅8×8阵列黑白图像进行实验。图像大小为3 840×2 748。工控机采用IPC-610主板i7-3770,8G运行内存加装250G固态硬盘。开发环境为Visual Studio 2010。相机为1000万黑白相机,型号为:大恒MER-1070-14U3M-L。
4.1 模板匹配定位算法对比实验
为了验证本文所设计的改进模板匹配定位算法的实时性以及精度,本文设计了如下实验。分别使用基于逐像素点的模板匹配算法、本文中的模板匹配算法、基于投影特征的模板匹配算法,对采集到的100幅图像进行对比试验。得到各匹配算法运行时间以及定位误差。其中,定位误差描述为匹配定位结果与实际位置的欧式距离:
(7)
式中:(x,y)为定位结果,(x0,y0)为实际位置。得到各定位算法在处理100幅图像时的平均运行时间以及误差对比。
表1 模板匹配定位算法运行时间
图11 定位算法误差对比图
虽然基于逐像素点的匹配定位算法定位误差最小,但运行时间超过1 500 ms,不能满足工作节拍的要求。基于投影特征的匹配定位算法运行时间最短,但是定位误差太大,无法满足SD卡形态识别准确率的要求。本文匹配定位算法误差小,运行时间在300 ms以内,能够满足实际需求。
4.2 多特征融合形态识别实验
为了验证本文SD卡形态识别算法的准确率与鲁棒性,对实际采集的100幅图像中SD卡形态进行了识别,识别结果如表2所示,对于64×100=6 400 项,正确识别数为:6 394,准确率为99.906%,满足实际要求。由此可知,本文所设计的SD卡形态识别算法具有良好的准确率以及鲁棒性。
表2 形态识别算法测试结果
5 结论
通过前面的讨论和实验数据可以看出,本文SD卡形态识别算法具有以下特点:①在分割存在不均匀明场暗场区域的图像时,改进的大津法与传统的大津法相比具有很大的优势。②在匹配性能上,传统的模板匹配定位算法在运行时间与抗干扰的能力方面无法达到实际需求。而文中提出的定位算法不仅运行时间短,并且抗干扰能力强,准确度高。③在形态识别时,基于多特征融合的形态识别算法由于选取了位置特征、形状特征、补充特征等多个特征,较好的克服了SD卡姿态多变的干扰,使系统的识别率大大提高,稳定性加强。对大量现场图片的识别测试显示其识别效果理想。