APP下载

针对不均匀光照高反光注塑工件图像的缺陷定位和分割

2021-03-03

制造业自动化 2021年2期
关键词:均衡化直方图光照

(华南理工大学 广东省高端芯片智能封测装备工程实验室,广州 510641)

0 引言

在注塑行业,表面缺陷是影响注塑工件质量的重要问题,因此对其的检测是该行业中的必要一环。目前,对于注塑工件的表面检测主要是通过人工完成,这种方式费时费力,而机器视觉能够高效准确地完成这项任务。然而,在采集图像的过程中,不均匀的光照常常会给接下来的处理步骤带来困难,例如分析注塑工件表面情况、提取缺陷特征等。图像的光照不均匀主要体现在局部高光以及较低的灰度值,这些现象都会给接下来的处理带来麻烦。这些现象通常是由图像采集系统光照环境的局限而造成的,这种局限性一般很难通过改变光照环境来解决。因此,对这种光照不均匀的注塑工件图像进行灰度校正就十分重要了。

目前,有很多研究者已经在校正不均匀光照领域做了大量的研究。比较常见的方法有Retinex方法,基于模糊理论的自适应增强算法等。Uddin MS等人提出了一种改进的辐射传输理论,通过这种方法来解决光照不均的光片显微成像(LSM)图像的对比度降低问题,并且通过实验验证了该方法的高效性。同时,也有很多学者在直方图均衡化方面做出了显著的贡献。例如由Kim JY提出的子块部分重叠直方图均衡化算法(POSHE)以及由Wang Yu提出的二元子图分割直方图均衡化方法(DSIHE)等等。这些算法要么没有消除普通直方图均衡化的局限性,要么是针对图像中有强光源的情况进行图像增强,而对文中讨论的注塑工件不均匀光照图像的校正效果都不佳。而图像分割就是将图像中的前景和背景分开的过程,因而直观的方法时选择一个背景和前景之间有较大区别的阈值,比较著名的是1979年由日本学者大津(Otsu)提出的最大类间方差法,这是一种基于全局的自适应阈值确定方法,又叫大津法,简称OTSU算法。

1 算法提出

直方图均衡化是一种简单但十分有效的图像增强技术,因此它被广泛应用在医学图像处理、计算机视觉以及遥感图像处理等领域。这项技术能够增强图像的全局对比度,尤其是当图像的整体灰度值都处于一个较小的范围内时。直方图均衡化的主要的思路是将灰度图原本集中在一个较小的灰度区间中的直方图转换成一个在整个灰度区间中均匀分布的直方图。

直方图均衡化的数学表达式可以写成:

其中S是初始的灰度图像,R是经过均衡化之后的图像,T代表了变换方程。如果令ni为灰度等级i出现的次数,那么该灰度等级i在图像中出现的概率可以表示成:

其中L是灰度图中灰度等级的总数,通常是256;n是该图像中的总像素数;px(i)是每个灰度等级i出现的概率,它被归一化到区间[0,1]中。

因此,变换方程T可以表示成:

其中所有参数的含义都与前述相同。

对于采集到的注塑工件图像,其表面缺陷通常与正常表面具有相似的灰度值,因此可以通过直方图均衡化来增大这两者之间的灰度差,从而突出表面缺陷与正常表面的区别,便于提取缺陷。然而,由于大多数图像采集系统无法从光源系统本身消除不均匀光照,因此采集到的图像通常都会表现出一定的高光区域,如图1所示。显然,图中的注塑工件被圆圈标记的上半部分比下半部分要亮得多,同时为了便于将工件图像从背景图像上分离出来,注塑工件和纯黑色的背景之间也有很强的对比度。这两个事实导致很难直接利用直方图均衡化将图像的灰度级进行拉伸,因为该方法只对低对比度的图像有较好的效果,而对于高对比度的图像效果则不是非常显著。而在进行缺陷的分割时,基于全局阈值的图像分割方法的效果也不尽如人意。可以看到因为光照不均现象,图像下半部分前景(白色斑点缺陷)和背景(工件正常表面)之间无法产生较明显的分割阈值,甚至同样是背景的部分也会有不同的灰度级,此时单一阈值显然无法实现分割。

因此提出了一种基于行像素灰度校正的不均匀光照图像增强算法。该算法引入了一个行像素灰度校正系数,该系数能够对图像的每一行的像素的灰度值进行校正,从而消除高光区域和正常光照区域的光照差别,之后再使用直方图均衡化来对图像进行增强。由此可以将注塑工件的表面缺陷在图像突显出来。再使用基于二次定位的阈值图像分割法对工件图像进行粗略和精确两次定位来准确检测缺陷的边缘信息。算法的总体流程图如图2所示。

图1 机器视觉系统采集的注塑工件图像(圆圈用于表示出高光区域)

图2 本文算法流程图

2 行像素灰度校正系数

工业生产中使用的机器视觉系统,其光源通常可以看作是一个点光源,从固定角度给待检工件提供光照,如图3所示。根据辐射度学的相关知识,定义点光源S0的辐射强度I为点光源向单位立体角发射的能量流。

图3 点光源与立体角

若dA为与S0距离为r的接收面的一个小面积元,则dA与S0组成的立体角dω等于dA与S0组成的锥面与单位球相交得到的面积元dA0,则有:

其中θ为光源方向与接收面法线方向之间的夹角。

单位时间内dA上接收到的S0的能量流为:

定义物体表面单位面积接收的能量流为辐照度Li,则可得:

当工件接受到光源照射后,就会发出反射光,该反射光经过摄像机采集形成图像。

图4显示了图像上的亮度与反射光的光辐射度Lr的关系。图像上某一像素的面积为dAp,则工件平面上面积为dA0的面源向dAp发射的能量流d2Φr为:

其中α为OA与dA0的法线之间的夹角,ω0为镜头与A点构成的立体角。

由图4可知,由O点与dA0组成的立体角等于O点与dAP组成的立体角,因此:

联立式(7)和式(8)可得:

图4 图像亮度与物体表面光辐射度的关系

将ω0用透镜直径d表示,并将代入上式,可得dAp上辐照度为:

其中f为镜头的焦距。

一般情况下,摄像机的视角很小,即上式中的θ很小,dAp上的辐照度(与图像灰度值成正比)可近似写成:

讨论的注塑工件可视为一个散射模型,即工件引起的散射光与物体表面的辐照度Li成正比,与散射方向无关。工件辐射度Ld(下标d表示散射)为常数。

其中rd<1,称为反射系数,与工件材料有关。

由于工件表面的反射可以看作散射模型,因此工件表面的辐射度为:

而点光源到工件的辐射度Lio由式(7):

此时工件相当于一个面辐射源,因此摄像头接收到工件的辐照度为:

当摄像机参数、摄像机与工件距离、光源等参数固定时,Kd为一未知常量,即工件表面的图像亮度只与表面的辐射度有关。因此,如果表面的反射仅由散射光引起,物体表面点的图像亮度Ip等于:

由式(16)可得,采集到的图像亮度只和光源与工件表面的夹角有关,即在光源与工件相对位置不变的情况下,图像中同一行的像素亮度只与表面的反射系数有关,而同一列的像素亮度变化是连续的。

针对这个问题,引入了一个行像素灰度校正系数,它可以对于每一行的不均匀光照进行校正,从而使得整幅图像处于一个较为均匀的亮度,也就是说压缩了整幅图像的亮度,使其处于一个较小的灰度区间之中,从而导致图像的对比度降低,然后用直方图均衡化来对图像进行对比度拉升,从而增强缺陷区域和注塑工件正常表面区域的对比度。

算法具体步骤如下:

Step1:载入待校正的RGB图像。

Step2:将RGB图像转化成灰度图像f,并利用掩膜操作得到图像的感兴趣区域(Region of Interest,ROI)g。

Step3:计算每一行的像素灰度值中位数Mi,再计算所有中位数的中位数M。

对于图像g的每一行,计算该行像素灰度值的中位数Mi:

其中Mi是第i行的像素灰度值的中位数,g(i,m)是第i行,第m列的像素灰度值。每行灰度值中位数的中位数是:

其中M是所有行中位数的中位数,M1,…,Mn则表示从第i行到第n行的行中位数。

Step4:计算每一行的行像素灰度校正系数,并且利用该系数对图像的每一个像素进行灰度校正。

定义每行的行像素灰度校正系数为Ci:

用于对图像的每一行像素进行灰度校正,校正的公式如下:

其中h(i,j)是经过校正之后的像素灰度值,g(i,j)是ROI中像素灰度值,Ci是对应行的行像素灰度校正系数。

Step5:对校正之后的图像进行直方图均衡化,最终得到对比度被拉伸的图像。

3 基于二次定位的缺陷分割

在经过上述灰度校正之后的图像,其工件表面已经具有了较为均匀的灰度分布,此时再使用基于全局阈值的分割方法就可以将缺陷分割出来。但是缺陷区域和背景的灰度值仍然十分接近,不太容易通过一个单一阈值将其准确地从背景中分割并定位。

因此考虑到在一个较小的区域内其光照是较为均匀的,使用了基于二次定位的阈值图像分割方法来对缺陷部分进行分割。

算法的具体步骤如下:

Step1:首先对原图f(x,y)利用掩膜操作获取感兴趣区域ROI,记为g(x,y)。

Step2:根据实验平台实际光照情况对ROI确定一个经验阈值T0,进行一次全局阈值分割,并去除与边缘相接的连通域。

Step3:由Step2得到的分割图像,对取得缺陷的位置进行粗略定位,并返回到g(x,y)中,从中截取缺陷的周围区域子图像d1(x1,y1),d2(x2,y2),…dn(xn,yn)。在这些子图像中可以认为光照是均匀的。

Step4:对Step 3中得到的子图像进行灰度级扩展,拉大其灰度区间,得到h1(x1,y1),h2(x2,y2),…hn(xn,yn)从而扩大背景与前景的灰度间距。

Step5:利用大津算法对上步中得到的子图像计算其全局阈值Tn,并分别进行分割,从而得到缺陷的精确定位。

Step6:将缺陷在子图像中的精确定位换算到g(x,y)中,从而在原图像中对缺陷的边缘进行检测。

针对图1中的柱状工件,该算法每一步的实现效果如下:

首先利用掩膜操作获取图像中的ROI,即工件的下半部分,提取出的ROI如图5所示,记为g(x,y),可以看出顶白区域与正常表面的灰度值差距很小,而一部分侧壁则有较大的灰度差。

图5 图像的ROI

因此,根据本实验平台的光照条件,设置一个经验阈值T0=10,用此阈值对图5进行全局分割,并去除小连通域和图像边界上的无用连通域,所得的结果如图6所示。可以看出缺陷的粗略位置被标记出来,但是缺陷的边界却不是非常准确,因此需要对缺陷的位置进行二次精确定位。

图6 粗略定位缺陷

根据缺陷的粗略位置,从g(x,y)中获取缺陷周边区域的子图像,如图7所示。可以看出各子图像中的光照情况都较为均匀,且灰度级较为集中,利用灰度级拉伸的方式可以增大缺陷区域与正常表面区域的灰度差,从而便于进行全局阈值分割。灰度级拉伸之后的子图像如图8所示。

图7 缺陷周边区域子图像

图8 灰度拉伸后的子图像

对这些经过灰度拉伸之后的图像使用大津算法进行分割,就能够得到较为精确的缺陷边缘信息,如图9所示。

4 实验结果与分析

使用了三幅不同的图像来分别验证基本的直方图均衡化和文中提出的改进算法对图像的增强效果。

图9 缺陷的精确边缘

图10 米粒图像与不同处理方法处理结果的比较图

图10(a)是一张经典的MATLAB图片,常用来检验图像增强算法的效果,如图10(a)所示。在这张米粒原图像中,图像上部的平均亮度明显比下面部分要高。图10(b)显示的是应用了基本直方图均衡化方法之后的图像结果,图10(c)显示的是应用了所提出的方法之后的图像结果。从图10(b)中可以看出,图像中仍有光照不均匀的现象,这种现象甚至有恶化的情况;而在图10(c)中,图像的背景与图10(a)相比变得更加均匀,图像中的米粒的亮度得到了加强,这对后续的处理步骤是十分有利的。

图11 圆柱形注塑工件图像与不同处理方法处理结果的比较图

图12 片状注塑工件图像与不同处理方法处理结果的比较图

第二组图片使用一个圆柱形注塑工件的图片来进行对比。图11(a)是一个注塑工件表面缺陷检测仪中的工业摄像头采集的圆柱形待测工件的图像。可以很清楚地看出在待测工件顶部区域有明显的高光区域,其侧壁表面也有光照不均匀的现象。图11(b)显示的是应用了基本直方图均衡化方法之后的图像结果,图11(c)显示的是应用了文中提出的方法之后的图像结果。在图11(b)中,顶部的高光区域仍然存在,而且待测工件下半部分侧壁表面的白色斑点与周围表面的对比度仍较低。但在图11(c)中,由于对其应用了文中提出的灰度校正,其顶部的高光区域被消除,侧壁的不均匀光照现象也几乎消失。而且下半部分的白色斑点也比原图中更清楚,从而被突显出来。不过,我们也注意到待测工件的两侧出现了反常的区域,这是由于在原图中这些区域所在的行有较大的灰度变化,这在灰度校正时就会出现这样的反常区域。这种反常区域不会影响后续的缺陷处理过程,因为这些区域会被掩膜操作忽略掉,从而只处理我们需要的地方。

第三组图片使用一个片状注塑工件的图片进行对比。图12(a)是用图11(a)相同的工业摄像头拍摄的图像。可以看出注塑件自上向下亮度逐渐降低。图12(b)显示的是应用了基本直方图均衡化方法之后 的图像结果,图12(c)显示的是应用了文中提出的方法之后的图像结果。选择了三个指标来衡量算法对原图像的增强性能,分别是图像的平均灰度,图像熵以及峰值信噪比(peak signal to noise ratio,PSNR)。

图像的平均灰度反映了图像的亮度信息,通过对比处理结果和原图的平均灰度,就可以验证该图像的亮度是否得到提升。对于一幅光照不均匀的图像来说,校正之后图像是否变得更亮是判断校正算法是否有效的重要标准之一,也就是说平均灰度越高,图像校正效果越好。

图像熵反映了图像中灰度的分布情况,可以由下式计算:

其中C代表图像灰度的分布概率。如果图像的不均光照被削弱,图像熵就会变小,这也就意味着图像的灰度分布更均匀。

峰值信噪比表明了原图与被处理图像的差距。它是一种衡量图像变化或者噪声级别的客观指标。对于一幅光照不均匀的图像来说,PSNR越大意味着被处理的图像与原图的差距越大,这是我们所期望的结果。

从表1~表3的结果可以看出,所提出的算法能够提供比原图更大的平均灰度以及更小的图像熵,这说明改进算法对于不均匀光照图像有很好的增强能力,包括注塑工件的图像。同时与用基本直方图均衡化方法处理的结果相比较,改进的算法也有着更好的表现。其平均灰度、图像熵以及峰值信噪比等性能均有所提高,其中图像熵平均减少36.3%,峰值信噪比平均增加50.5%。提出的方法能够有效得消除注塑工件图像中的光照不均匀问题,为接下来可能的处理步骤提供较大便利。

表1 米粒图像评价指标

表2 圆柱形注塑工件评价指标

表3 片状注塑工件评价指标

以柱状注塑工件为例进行实验,工件进行360°的视频图像采集,对于采集到的视频序列等距抽取6幅图像帧,可以获得每隔60°的工件图像,从而检测工件的整个侧面缺陷。如图13所示。

图13 由视频序列抽取图像帧

表4 多个工件序列图像检测时间(s)

最后将这些缺陷的边缘坐标变换到原图像,从而得到最终的检测结果,如图14所示。由此图可以看出整个缺陷的边缘被较好地提取并标记出来。

图14 最终缺陷边缘检测结果

图15 全部视频序列图像检测结果

对于整个序列图像的检测结果如图15所示,可以看到除了下半部分的顶白缺陷被检测出来之外,图15(d)、图15(e)中的侧壁上的黑色异色点也被正确检出,说明了本算法对于注塑工件表面缺陷的适用性。

本实验在i5-2450M 2.5GHz CPU、GT630M、4G RAM、Win7 64bit操作系统的计算机上使用MATLAB对多个同类的柱状注塑工件进行了检测,将检测时间统计如表4所示。

使用一个元胞数组存储图像序列,通过循环来对个角度图像进行缺陷检测,因此上表中0°图像的检测时间会由于申请内存、初始化数组等过程而耗时较多,越0.66s,除此之外每幅图像的检测速度约为0.2s,检测完所有6幅图片的总时间约为1.6s。由2.2节的内容可知,图像的检测发生在载物台下降的过程中,而下降的时间约为5s,检测时间小于下降过程,可以在机械运动过程中完成缺陷的检测,满足实时在线检测的要求。

5 结语

为了解决注塑工件图像中普遍存在的光照不均匀问题,提高缺陷提取的成功率,通过分析一般图像采集系统的光照模型,可以推导出采集到的图像每一行的亮度只与物体表面的反射系数有关,且相邻行之间的灰度是均匀变化的,提出了一种基于行像素灰度校正的不均匀光照图像增强算法。通过引入行像素灰度校正系数来对图像中的每个像素进行灰度校正,从而消除在注塑工件检测中常见的光照不均匀现象。实验结果显示所提出的方法对于不均匀光照的注塑工件图像相较于基本的直方图均衡化方法有更好的增强效果,其平均灰度、图像熵以及峰值信噪比等性能均有所提高,其中图像熵平均减少36.3%,峰值信噪比平均增加50.5%。所提出的方法能够有效得消除注塑工件图像中的光照不均匀问题,为接下来可能的处理步骤提供较大便利。提出了基于二次定位的阈值图像分割算法,通过粗略、精确两次定位来准确检测缺陷的边缘信息,并通过实验检验了该算法的良好效果,对于柱状工件的检测总时间约为1.6秒,满足实时在线检测要求,证明了其工程应用的有效性。

猜你喜欢

均衡化直方图光照
符合差分隐私的流数据统计直方图发布
节能环保 光照万家(公益宣传)
当幻想的光照进童心世界
隐蔽的力量
春光照瑶乡
用直方图控制画面影调
中考频数分布直方图题型展示
PSO约束优化耦合直方图均衡化的图像增强算法
基于空间变换和直方图均衡的彩色图像增强方法
制度变迁是资源均衡化的关键