您的位置:首页 > 其它

二维图像中EMD 法与 Mura 检测的总结

2017-07-29 18:29 148 查看
本人菜鸟一只,实习中要求做mura检测,本小鸟也不会,师傅甩来一片IEEE论文,让本人看懂后实现下。这篇IEEE的Mura检测是我们中国人写的(台湾,小日本是这方面的大佬),还好都是中式英语!论文中的,我也不是很懂,只知道他用了种方法叫EMD,然后就干了。真正等到做时,发现也并非那么容易,其中理解歧义,执行步骤错误,以及EMD中的局部极值,边缘效应,插值,SD停止准则关键性问题论文也是一笔带过,这让我绞尽脑汁。最让我无奈的是,本鸟用Matlab做的测试,一张图片小的5Mz左右,大的27M左右,电脑8G/酷睿i5-7跑起来让我陷入慢慢等待之中。。。。。其中,我在搜索资料过程中发现了北京邮电大学博士-梁的WEMD方法,然后将传统EMD与WEMD一起做了个测试。最后,在本鸟自己的yy之下,于星期五交上了这份EMD法的mura检测报告。


一 EMD法原理

EMD法网上资料很多,可以自己去搜搜,学习。我也不在这里讲述,因为我也不是很懂(或许数学太差),不敢在此撒野。在本鸟看来,EMD就像一个滤波器,不断设置滤波频率,一层层滤波,最后剩下的就是残量(个人见解,如有错误,欢迎指教,哈哈哈)。下面,我将介绍一下博士-梁的WEMD法。

二 WEMD原理

傅里叶是基于全局整体的,Gabor是在傅里叶之上,加入滑动窗口,它是区域的,所以Gabor也可是加窗的傅里叶变换。先说说,海森堡测不准定理,时宽×带宽=时间分辨率×频率分辨率。可以在时域内设置小的空间分辨率,从而在频域内获得大的频率分辨率。所以可以在时域中设置小窗口,在频域内获得高的频率分辨率,在时域中设置大窗口,在频域内获得小的频率分辨率,根据EMD算法理论,每次用上下极大极小信号减去均值包络线,也相当于一个频率的筛选过程,前面分解出的是高频,后面的是低频,所以在信号处理上,也可以用来高通,低通,带通滤波。

下面直接截图看下WEMD分解步骤:



我没有用他所说的计算最大窗口N的计算方式,代替的是N=2的I次方+1。(i是第i个IMF)

三 EMD与WEMD对比

EMD容易受到边缘影响,会逐渐向中间蔓延,从而污染整个数据序列;WEMD表现不错,毕竟求均值,也没干啥,也不用插值拟合。另外,对于非边缘数据,数据内部频率变化大的结合处也会出现摆动,造成污染,见下图博士梁的分解对比图。



四 难点处理

首先,局部极值怎么求?这是二维图像,用一维的方式割裂了相邻像素间的相关性,所以用的是最简单的8领域法,也有基于形态学求极值的(我不会,哈哈,老外写的文章,好像有20多页),Matlab官网上也有求极值的函数,下载直接使用即可,它是一个老外写的,无私奉献的,叫做extremum 和extremum2。八邻域求极值如图(是镜像延拓之后的):



五 边缘与插值

对于端点问题,它产生的原因是在实际应用EMD方法时,不能确保信号的2个端点正好是极值点。如果在信号处理中,本文把端点当成极值点来处理,那么在固有模态函数分离过程中信号的两端会出现发散现象,也就是很大幅值或很小幅值的现象,称为端点飞翼。并且这种发散的结果会随着“筛分”过程的不断进行逐渐向内“污染”整个信号而使所得到的结果严重失真。边界状态进行考虑,因为极小的的误差会扩散到有限的测量数据长度内。作为这方面的考量,通过镜像沿拓加入极值点到边界附近能够得到较好的结果。

采用Matlab自带的函数griddata(),它是基于三角形的cubic插值。以256×256的CameraMan为例



六 SD停止准则

分解过程中,IMF必须满足过零点条件和均值条件,目的:(1)平滑不一致的幅度(2)消除骑行波。我们根据一维EMD分解SD准则,通过限制两个连续处理结果之间的标准差的大小来实现,二维EMD的SD准则如下:



SD的范围一般是在0.1~0.3之间。然而本文并没有参考该方法,替代的等效SD条件是:

SD=当前均值区域(M)的最大绝对值 / 输入中心区域(R)的最大绝对值;

SD的范围可以视为0.1~0.3之间。

按照EMD分解停止条件,也就是前后两次的均值包络线的大小趋于常数时,表示变化不大,可以停止该次分解。

利用本文SD准则(借鉴了下大牛的)如下:

-


- 从上面数据可知,随着SD的取值改变,最后的迭代次数以及出图效果(c与d差不多),并不是说越小越好,或者越大越好,SD=0.1比SD=0.05的毛刺要好,SD=0.2和SD=0.3的结果是差不多的,所以SD是在一定范围内的,按照给出的参考是0.1~0.3.

七 EMD分解完毕的准则

进行EMD分解,到底该分解出多少个本征模态(IMF)。该方法给出的停止条件是是极大值极小值的总数小于K(K较小,可认为设定),实际分解过程中,我们是按照经验与需要,将分解的IMF个数定为一个常数,当达到分解数量时。则EMD分解完成。本文设定图像IMF个数为4~6个。

八 EMD分解结果

我将从小亮点,云(带)状进行说明。



-从第三幅之中看出,检测出了亮点,比较明显,但是边缘粗糙,可能会影响检测,最后一张是残差图,亮度提升,亮点明显。边缘会随着分解层数的增加变得更加糟糕,位于边缘的点可能会被边缘污染。



检测不是很好,还是能看出来。

九 WEMD分解结果



可以看出右边的第一张是纹理,第二张称作亮度不均匀(不知道论文里面它是咋看到的),第三张以及以后就是缺陷图,检测效果还行,最后一张是IMF03。对比传统方法,检测显示聚集成一点,可以检测出来。WEMD法的边缘效果不错,但随着分解层数的增加会变得粗糙模糊。



显示横线的是IMF03,IMF04,最后的是残差图H,有时候H可以作为模板,下面额外用WEMD测试下条纹。



第二张图是IMF02,几乎去掉了条纹,后面的三四张是残差H03,H04,效果比较明显。

十 总结

综上,从计算消耗上讲,WEMD计算速度快,主要是求极值与均值运算,也不容易受到边缘的影响,实现起来也比较方便;而EMD会有边缘效应,需要进行迭代插值,计算消耗大,速度比较慢。

从检测效果上看,WEMD对于点,线,都可以进行检测。点,线检测不错,对于灰度与背景接近的块状检测有些模糊,对比度不高;且对于条纹的检测还是不错的,利用的其残差图,图像进一步亮暗分明。EMD比较适合点检测。它有较强的边缘效应,所以不适宜于边缘点的检测,但是它对小的点反应十分敏感,个人认为这是比较好的,可能是由于数据中在灰度频率变化特别快的地方会出现较大的波动,所以反应激烈(见上图)。

所以,对于WEMD方法,性价比还可以。当然,没有什么一蹴而就的,也需要不断的研究验证,也没有什么方法是万能的,只能因地制宜。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: