基于机器视觉的硅锭端面隐裂检测方法
2023-04-26嵇小辅
朱 毅,嵇小辅
(江南大学 物联网工程学院 轻工过程先进控制教育部重点实验室,江苏 无锡 214122)
0 引言
随着太阳能光伏行业与半导体行业的快速发展[1],作为其主要原料,硅锭的市场需求也日益增长。目前,国内硅锭生产厂商主要采用自动流水线来加工硅锭,圆柱形毛棒经截断机横向截断后,经开方机切割成大小相等的方形硅块,再经抛光机进行研磨抛光后得到成品硅锭。由于硅棒的物理特征与加工机床的限制,硅锭在加工过程中出现端面隐裂的情况时有发生,严重影响了生产线的安全性能和生产效率。目前,生产企业大多采用人工方法将端面隐裂硅锭从生产线直接移除,这种方法增加了生产成本,提高了人工依赖度,同时降低了安全性能,严重影响了自动生产线的生产效率。
随着计算机技术的快速发展,机器视觉技术在工业上的应用也越来越广泛[2-3],常用的检测算法有直方图统计[4]、灰度共生矩阵[5]、边缘检测[6-7]等。在检测方法方面,Peng使用区域生长法对缺陷进行分割[8],耿玉标、Song利用多特征与监督学习来对缺陷进行检测[9-10]。在工程实践方面,王宇利用变异系数法来检测太阳能电池硅片裂纹,但该方法对多杂质的多晶硅检测效果较差[11],Zhan使用循环神经网络检测沥青路面表面裂纹,该方法需要大量样本进行标注,对于样本较少的工业场合不合适[12]。Jiang使用Soble算子与patch统计结合的方法来检测纺织物的瑕疵[13],但是该算法不适用于背景环境复杂的应用场景。与上述方法相比,本文所提算法只需要少量样本即可建立背景模型,具体实施时可根据现场情况对背景模型进行实时更新,有利于情况复杂多变、样本较少等应用场合;同时本文根据硅锭端面隐裂缺陷最大占比来进行粗滤波处理,减少了端面杂质对检测的影响,进一步提高了检测精度。
背景差分算法常用于目标检测与瑕疵缺陷检测,本文针对硅锭隐裂缺陷深浅不一、现场环境苛刻等特点,对常见的背景差分算法进行了改进。本文首先设计满足检测条件要求的视觉检测平台来消除检测环境的干扰,采用中值滤波的方法来对图像进行滤波预处理,采用图片样本库训练得到背景模型,并对常见差分算法进行了改进,在进行差分的同时对隐裂缺陷进行增强处理,根据最大隐裂缺陷比例不超过百分之十,进一步将背景从前景中移除,再对图像进行二值化,提取出缺陷区域并对其进行形态学闭操作来消除细小空洞,最后对提取出的区域进行连通域分析并根据提取出的缺陷区域面积来在线判断端面是否隐裂。同时本文针对所检测硅锭端面的背景环境特性以及车间的生产环境,使用自动与手动相结合的方法来对背景图像进行更新。论文设计的硅锭端面隐裂检测算法在丽江某硅锭生产车间进行了验证,算法的识别召回率、精确率、识别时间等指标都很好地满足了现场运行需求。
1 系统总方案设计
整个检测系统由硬件部分与软件部分两部分组成,其中硬件部分主要负责图像的采集、硅锭在流水线上的自动流转以及为软件系统的运行提供硬件条件,由视觉检测平台与工控机两部分组成;软件部分主要负责对图像的识别与显示、人机交互、数据存储与通信、重要参数修改等功能,主要功能集中在上位机检测界面中。系统的总体框架如图1所示。
图1 系统总体框架
1.1 硬件方案设计
检测系统的硬件部分主要由视觉检测平台与工控机两部分组成,其中视觉检测平台主要负责对待检测硅锭端面图像的采集与传送、硅锭的流转;工控机作为检测平台运行的载体,负责图片的获取、存储、处理并给出硅锭端面检测结果。
现场需检测的成品硅锭为方形,长度范围为1 000~9 000 mm,端面大小为,要求检测精度为0.5 mm。视觉检测平台的好坏直接决定着检测效果,根据硅锭端面尺寸规格、检测精度要求和现场环境等特点,本文设计了图2所示的视觉检测平台,视觉检测平台由防尘罩、机械爪、工业相机、光电传感器组成,具体设计原则及器件选型如下:
1)为减少车间灰尘所带来的影响,在检测工位四周设计了防尘罩。
2)成品硅锭端面非常光滑,为防止灯光直射情况下出现反光影响检测效果,将视觉检测平台四周的防尘罩设计成灰色(图2所示的CAD图中对防尘罩进行了透视处理,以便观察防尘罩内部结构),同时为保证检测时的光线,将上方的防尘罩设置为白色透明。
3)为了实现对硅锭位置的精准定位,在流水线上装有多个光电传感器。
4)为保证同一工位上不同长度的硅锭都有合适的相机焦距,将工业相机安装于高精度的机械爪上,当光电传感器检测到硅锭到位后,PLC根据硅锭实际长度控制机械爪到达合适位置,确保相机到端面的距离固定。
5)工业相机作为主要的检测装置,需要根据检测精度需求进行选型。根据待检测硅锭的特点以及检测要求,本文选择大恒MER-220-9GM/C型的黑白相机,分辨率,帧率9帧/s,像素尺寸1.85 μm×1.85 μm,像素深度8 bit、12 bit,曝光时间23 μs~1 s,CMOS芯片,可直接连接HALCON等第三方软件,通过千兆以太网直连工控机向工控机传输图像。
图2 视觉检测平台
工控机为软件运行提供必要条件,需要根据实际情况选择配置参数。从工业软件运行稳定性的角度出发,工控机选用研华IPC-610L,Windows10 x64操作系统,CPU为Intel酷睿I5-10500型,考虑到需要存储大量图片和数据,硬盘选用500 G固态硬盘与1 T机械硬盘的组合方式,主板为Intel H420E型,内存为DDR416GB,工控机自带4个网卡,额外再增加两个100 M网卡作为备用。
系统硬件部分的工作流程如图3所示。加工完成的成品硅锭顺着流水线流转,当视觉检测平台中的光电传感器检测到硅锭到达检测工位后,机械爪将根据硅锭的长度自动调整到两端面前的合适位置,工业相机实时采集硅锭端面图像并通过千兆以太网将图片传送给工控机,工控机上运行的检测系统对图像进行实时采集、处理、检测并将检测结果通过工控机上的网口发送给PLC,PLC根据检测结果来控制机械爪对待检测硅锭实施相应的动作。
图3 硬件系统工作流程
1.2 软件方案设计
本系统软件部分采用C#与Halcon联合编程实现,需要完成人机交互、图片采集、图像处理、实时通讯等功能,其中人机交互部分利用.net平台下的相关组件来实现,图像检测部分主要由Halcon编程来实现,调试成功后导出能在.net平台下运行的.cs代码,并通过C#编程技术对该文件进行调用。最终两部分功能都集中在上位机检测平台中,具体检测流程如图4所示,当上位机接收到一幅图像后便对图片进行检测,在检测完成后将检测结果发送给执行机构的同时将检测结果显示在上位机界面并保存至本地数据库中。
图4 软件系统工作流程
2 端面隐裂检测算法
2.1 图像滤波与预处理
工业现场环境较为苛刻,存在着各种干扰。故在对图像进行处理前需要先对图像进行滤波,常见的滤波算法有均值滤波算法、高斯滤波算法、中值滤波算法。均值滤波算法是将待检测点的像素值用邻域内的像素均值来代替,通过减少图像灰度值的尖锐变化来减少噪声,虽然简单易实现,但在处理尖锐灰度的同时也会使图像边缘模糊化,损失图像的边缘特性,从而影响对端面隐裂不明显硅锭的检测[14];高斯滤波算法是用一个掩膜扫描图像中的每一个检测点,将检测点的像素值用掩膜内像素值的加权平均来代替,与均值滤波相比,高斯滤波在对图像进行滤波的同时不会破坏图像的细节部分,也是一种线性平滑滤波算法,但高斯滤波大多只适用于处理高斯噪声,对点状椒盐噪声往往效果不佳[15];中值滤波算法是将检测点的像素值用邻域内的像素中值来代替,能在对图像进行滤波的同时保护图像的尖锐部分,对于孤立的噪声像素即点状椒盐噪声、脉冲噪声的效果极好;考虑到车间中的噪声大多以点状椒盐噪声为主,同时中值滤波算法在平滑噪声时可以保护图像的尖锐部分[16],故本文选用的掩膜对硅锭端面图像进行中值滤波,具体过程如图5所示。
图5 中值滤波过程
通过对图2视觉检测平台采集到的图片中值滤波后如图6(a)所示,图片中含有部分背景像素点,为了减少需处理的像素数并提高检测算法的处理速度,需要在提取隐裂缺陷前先对图像进行预处理,提取出感兴趣的区域(ROI,region of intereset)。从图6(a)中能看出硅锭端面灰度值明显高于背景点的灰度值,故预处理过程如下:
1)选取合适阈值对中值滤波后的图像进行二值化;
2)对二值化之后的区域进行闭操作,消除区域内细小的空洞;
3)为防止背景中个别小亮块的干扰,对区域进行连通域分析,选取面积最大的一块区域,再求取区域的最大外接矩形;
经过处理之后得到的ROI图像如图6(b)所示。
图6 提取ROI
2.2 背景差分算法
2.2.1 背景模型的建立
背景差分算法要求待检测样本中前景目标与背景环境之间有着明显的区别,同时不同样本背景环境之间的差别也应尽可能的小[17-18]。对于前者,隐裂缺陷区域像素点相对于正常区域像素点会偏暗;对于后者,车间中的光线稳定,且同一流水线上所生产的硅锭都是大小一致型号相同,不同待检测样本之间的背景差异也是非常小的。故硅锭端面检测环境满足背景差分算法的要求,可将硅锭端面隐裂缺陷的检测过程类比成对一个固定背景环境下的目标检测,将硅锭端面隐裂区域类比成目标检测中的待检测目标,将硅锭端面正常区域类比成背景环境。
考虑到车间光线稳定,受光照等环境因素影响较少,故采用鲁棒性更好的中值法来建立背景图像模型:
I(x,y)=Median(In(x,y))
(1)
其中:In(x,y)表示第n张图片中点(x,y)的像素灰度值,I(x,y)表示计算N张图片中对应像素点的中值。为了方便后续计算,求出背景图片中点(x,y)与每一张样本图片对应点(x,y)的标准差,计算方式为:
(2)
其中:σ(x,y)表示N张样本图片中点(x,y)与中值之间的标准差。得到的背景图片如图7所示。
图7 背景图像
常见的背景差分算法是直接将背景图像像素值与待检测图像对应点像素值求差[19],计算方式为:
(3)
其中:Im(x,y)表示待检测图片,考虑到待检测图片中背景像素点与背景图片中对应像素点灰度差会比较小,而在隐裂缺陷处差值会比较大。故本文对常见的差分算法中I(x,y)>Im(x,y)的情况进行改进,在进行图片差分的同时对像素值差异较大的隐裂缺陷部分进行像素增强,具体的计算方式为:
ΔI(x,y)=ω|I(x,y)-Im(x,y)-γσ(x,y)|
(4)
其中:σ(x,y)为式2所求标准差,ω与γ为两个常数,本文取ω=20,γ=3,差分增强后的图片如图8所示。
图8 原图与差分增强图
2.2.2 背景模型更新
由于工厂光线环境比较稳定,故并不需要实时的对背景图像进行更新,但由于各种原因可能会导致背景环境突变(切换不同功率的灯管),而大突变的出现取决于车间的实际生产情况,很难提前预判,所以只进行背景模型自动更新容易受到工厂大环境的干扰,难以实现检测要求。故本文在结合工厂车间实际生产情况下,采用定时自动更新与人工手动更新相结合。定时自动更新通过在上位机检测系统设置自动更新时间(自动更新时间可手动修改),软件系统按照界面提前所设时间实现自动更新;人工手动更新通过在上位机检测系统的界面预留手动更新按钮来实现,当工厂因灯光或者其它未知因素导致了车间生产环境突然巨变后,工人可通过点击手动更新按钮来实现背景模型手动更新。
2.2.3 改进阈值分割法
在进行背景差分增强后,隐裂缺陷与正常区域之间有了鲜明的对比度,但图片中仍然存在着少量的背景点,此时直接对图像进行阈值分割容易将部分背景点误认为是隐裂缺陷,造成误检测,影响检测精确率。故本文采取一种粗滤波处理来减少误检测,通过对大量隐裂硅锭端面进行观察后,发现隐裂缺陷区域像素点占比往往低于百分之十,同时在进行差分增强后隐裂缺陷区域灰度值会高于其它正常区域。鉴于上述两个事实,增强差分图像还可以进行进一步的优化处理,本文在进行阈值分割之前先求取一个阈值来进行粗分割,具体计算如式(5)所示:
(5)
其中:B(x,y)表示粗滤波之后的图像,其中大于Ts的为前景加背景,小于Ts的为背景,在经过预分割之后图片被分为前景、前景加背景两部分。
为选取出合适的阈值Ts来完成粗分割,本文参考最大类间方差法。假设增强差分图中总的像素灰度级别为L,即增强差分图中任意一点的像素灰度值均为[0L-1],假设其中灰度值为i的数量为ni,则增强差分图的总像素数为:
(6)
通过选取一个阈值Ti来将增强差分图分成两部分C1、C2,其中C1是灰度级别为[0Ti-1]的一组像素点,表示纯背景;C2是灰度级别为[Ti-1L-1]的一组像素灰度点,表示前景加背景;则C2中累计的像素点个数可表示为:
(7)
用Pm来表示硅锭端面隐裂缺陷的最大占比,本文取Pm为百分之十,则像素点差值可表示为:
sub=|C2-(1-Pm)×N|
(8)
类似于最大类间方差法,让粗滤波阈值Ti在灰度级别范围[0L-1]中依次取值,最终使sub最小值的Ti则为粗滤波阈值。
对粗滤波之后的图像采用最大类间方差进行阈值分割,最大类间方差法的思想是选取一个阈值让前景区域与背景区域之间方差最大化以达到区域分割的目的。为使缺陷区域更加完整,对阈值分割后的图形使用形态学闭操作来填补缺陷之间的空洞。具体做法是先对图像进行形态学膨胀操作,然后再对图像进行形态学腐蚀操作[20],膨胀操作是对区域进行扩大,区域在经过膨胀后边缘会变得平滑,像素会增多,原本不相连的部分可能会相连,而腐蚀操作则是一个相反的过程,经过腐蚀后区域像素值会减少,原本相连的部分可能会不相连。膨胀与腐蚀的原理均是先采用一个合适大小的自定义结构元素,让结构元素在二值化图像上移动,然后将二值化图像对应的像素点与结构元素的像素进行对比,得到的并集则为膨胀之后的图像像素,得到的交集则为腐蚀之后的图像像素。处理过程分别如图9(a)、9(b)所示。由于经过处理后图片中剩下的背景点大多是孤立的,故可在经过形态学闭操作后根据图形的连通域来对缺陷点分区域,将区域内像素点的个数与设定值进行比较来判断端面是否隐裂。此时系统的检测流程如图10所示。
图9 形态学闭操作过程
图10 硅锭端面检测流程
3 实验分析
3.1 性能指标
为了对本文所提算法进行验证,采用模式识别常用的召回率(Rc,reca rate)、精确率(Pr,precisionrate)、处理时间等3个指标来进行评价,分别定义为:
(9)
(10)
其中:TP表示有缺陷且被正确识别出来的样本数目,TN表示有缺陷但没有被识别出来的样本数目,FP表示识别错误的样本数目。从上述公式可知,随着召回率的不断上升,会使精确率有所降低,故对于二者的平衡与取舍是各种缺陷检测所必须考虑的问题。对于成品硅锭而言,如果有缺陷但是没有被识别出来会严重影响后续的打包效率,甚至会造成流水线堵料,严重影响车间的产量,此时召回率显得更为重要。故结合车间实际生产情况,本文的方案是在保证精确率前提下进一步提高召回率。
3.2 实验设计与结果分析
为了对本文所设计的视觉检测平台、软件流程、检测算法等进行进一步验证,在丽江某硅锭厂房搭建了图2所示视觉检测平台。平台使用大恒MER-220-9GM/C型工业相机作为图像采集装置,上位机程序运行在1.1节所示配置参数的工控机上,工控机与上位机通过网线直连进行通讯。该厂房平均日产硅锭700根,通过实际调试测试后,系统在现场测试运行了30天,期间总生产硅锭210 103根,每根硅锭两个端面均需单独拍照检测,共检测了420 206张照片,其中实际正常照片417 056张,隐裂缺陷照片2 700张。
本次实验所设计的上位机检测界面如图11所示,通过该界面可以实现参数设计、图像处理、查看检测结果、手动更新背景图像等功能。通过参数设计功能可以对中值滤波掩膜大小、差分增强参数ω与γ、求取粗滤波阈值时硅锭端面隐裂缺陷的最大占比Pm等参数进行设置;当上位机采集到一张完整图像后就会调用图像处理程序得到处理结果;为了方便溯源,上位机检测界面提供了查看已经检测的硅锭端面图片的功能,上位机检测系统会将检测结果不同的图片分类保存到两个不同的文件夹中(默认保存一周,具体保存时间可设置),可以通过上位机检测界面查看固定时间内的硅锭端面图片的检测结果;手动更新背景图像主要是在工业现场环境出现强烈突变后,通过点击手动更新按钮实现对背景图像的更新,同时也可在上位机界面上设置背景模型自动更新的周期。
图11 上位机检测界面
为了进一步验证本文所提检测算法的有效性与优越性,本文对预处理之后的图片分别利用普通背景差分算法与文献[11]所提算法进行检测,并将检测结果与本文所提算法进行比较。从表1检测结果中能看到,不论是召回率还是准确率本文所提算法都具有更好的识别效果。其中对于少部分隐裂硅锭,由于机床加工特性原因导致隐裂缺陷很不明显,容易造成算法误判。
表1 实验结果
从采集到的图片中随机选取几张,得到的检测结果如图12所示,能明显看出普通背景差分算法法会保留部分背景,不能将隐裂缺陷完整的提取出来;文献[11]所提算法虽然能提取出隐裂缺陷的大概轮廓,有着较高的召回率,但是会保留大量的背景,容易将正常区域识别成隐裂缺陷从而出现误检测,精确率难以保证,相比之下本文所提算法既可以完整的提取出硅锭端面的隐裂缺陷,同时也不会出现对背景部分的误识别,在保证高召回率的同时也有着较高的精确率,具有更好的识别效果。
4 结束语
本文针对硅锭机加工自动生产线对硅锭端面隐裂缺陷检测困难、人工检测效率低等问题,设计了一种基于机器视觉的硅锭端面自动检测系统,并将设计好的系统用于工业现场进行了运行测试。在试运行期间检测系统软件部分稳定运行,没有出现过死机,同时试运行期间隐裂缺陷检测召回率为98.5%,精确率为96.4%,平均检测耗时180 ms,满足工业生产需求,提高了自动生产线的生产效率,也提高了成品硅锭的质量,为其余车间的改造提供了方向。但本文只对硅锭端面隐裂缺陷进行了检测,没有实现对缺陷的分类,在之后的研究中可以进一步实现对端面隐裂缺陷的分类,同时在后续的进一步研究中也可将缺陷类型与机床加工故障相对应,通过分析一段时间内各种缺陷类型出现的频率来反映加工机床可能出现的故障,及时地对加工机床进行处理来减少进一步的损失。