- 最后登录:
- 1970-1-1 08:00<
- 注册时间:
- 2014-1-15 16:41
- 阅读权限:
- 30
- UID:
- 1833
- 在线时间:
- 小时
|
III. 算法实现
A. 最大类间方差法(OTSU)
最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大律法,简称OTSU。它是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两个部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
OTSU在性能上可以做进一步优化[5][6],在本例中,我们不考虑时间复杂度上的优化,仅仅关注分割效果。假设要分割的缺陷相对背景为深色,则此处提供一个可行的OTSU算法,其值计算方式如下:
t:当前分割的阈值,取值范围[2,255]
AD:满足灰度值在[1,t-1]的暗部区域的面积
AL:满足灰度值在[t,255]的亮部区域的面积
MD:暗部区域的灰度均值
ML:亮部区域的灰度均值
DevD:暗部区域的灰度方差
Area:整个图像的面积
算法伪码如下:
Input: Image
Output: Best_Thresh
OTSU( Image )
1 Best_Thresh ← 1
2 Max_Variance ← 0
3 Area_Image ←计算Image的面积
4 for Test_Thresh ← 2 to 255
5 Region_Dark ←计算灰度值在[1, Test_Thresh-1]的 区域
6 Region_Light ←计算灰度值在[Test_Thresh, 255]的区域
7 Area_Dark ←计算Region_Dark的面积
8 Area_Light ←计算Region_Light的面积
9 ifArea_Dark>0 and Area_Light>0
10 then
11 Mean_Dark ←计算Region_Dark的灰度均值
12 Mean_Light ←计算Region_Light的灰度均值
13 Dev_Dark ←计算Region_Dark的灰度方差
14 Dev_Light ←计算Region_Light的灰度方差
15 Ratio_Dark ← Area_Dark / Area_Image
16 Ratio_Light ← Area_Light / Area_Image
17 MSE ← pow( Mean_Light – Mean_Dark, 2 )
18 Otsu ← Ratio_Dark * Ratio_Light * MSE / Dev_Dark
19 if Otsu > Max_Variance
20 then
21 Max_Variance ← Otsu
22 Best_Thresh ← Test_Thresh
23 return Best_Thresh
注:若分割缺陷为亮区域,则18行的Dev_Dark替换为Dev_Light
B. 自适应动态阈值法
此方法是我公司研究人员在项目实施过程中发现的缺陷分割算法,不同于普通的动态阈值分割方法,本算法在初步的阈值分割后,对所有可疑区域进行二次动态阈值分割,算法的核心在于找到二次分割时最适合的动态阈值。也就是说,每个缺陷都会由不同的动态阈值来分割,由此避免深浅不一而引起的漏检或轮廓与实际偏差较大的问题。
在实际操作中,对全图进行一次动态阈值分割,此时阈值较小,防止遗漏较浅的缺陷区域,然后将可疑区域的周边图像逐个生成小图,算法通过循环的方式,从大图的阈值开始逐次增加,对小图进行动态阈值分割,同时计算当前区域的特征向量,直到其满足某个特定条件为止。在PVDC薄膜检测项目中,我们发现当分割区域的灰度方差介于7 - 8时,分割效果满足用户对缺陷大小的评判标准。
在实际项目运用时,计算最佳动态阈值的算法的性能已得到很多优化,这里为了简便起见,不做任何优化,阈值每次递增1。
算法伪码如下:
Input: Image
Output: Best_Thresh
AUTODYNTHRESH( Image )
1 MeanImage1 ←对Image做模版尺寸为(3,3)的均值滤波
2 MeanImage2 ←对Image做模版尺寸为(49,49)的均值滤波
3 Best_Thresh ← TestThresh ← 5 //这里根据要检出的最浅缺陷取值
4 RegionDark ← DynThreshDark( TestThresh )
//以MeanImage1为原图,MeanImage2为滤波图,做动态阈值分割暗部
5 AreaRegion ←计算RegionDark的面积
6 DevRegion ←计算RegionDark的方差
7 while AreaRegion > 0 and DevRegion > 8
8 TestThresh ← TestThresh + 1
9 RegionDark ← DynThreshDark( TestThresh )
10 AreaRegion ←计算RegionDark的面积
11 DevRegion ←计算RegionDark的方差
12 if AreaRegion > 0
13 then Best_Thresh ← TestThresh
return Best_Thresh
IV. 算法比较与评估
最大类间方差法与自适应动态阈值法的分割效果对比:
A. 纤维皱
方法
最大类间方差法
自适应动态阈值法
结果
面积
1149
559
阈值
133
28
均值
118.909
111.358
方差
9.6224
7.72845
B. 色皱
方法
最大类间方差法
自适应动态阈值法
结果
面积
497
461
阈值
124
18
均值
113.31
112.9
方差
6.57204
7.07953
C. 大碳点
方法
最大类间方差法
自适应动态阈值法
结果
面积
91
140
阈值
15
71
均值
8.63736
13.45
方差
3.19174
7.59918
D. 小碳点
方法
最大类间方差法
自适应动态阈值法
结果
面积
25
33
阈值
73
71
均值
65.72
69.0606
方差
4.1233
7.08365
1号纤维皱缺陷,是由于生产过程中有纤维混入,导致薄膜在纤维周围形成褶皱。OTSU分割的结果明显比实际纤维的范围要大,尤其在中间区域,纤维因弯曲而形成的阴影区域被算法识别为缺陷区域,且在左右侧有离散的点,事实上这些点是由阴影或CCD成像不均匀引起的干扰点,与实际缺陷无关。自适应动态阈值法所分割的缺陷,算法自动找到最佳动态阈值28,分割区域基本完全贴合了纤维的轮廓,仔细观察可以发现,在较深的部位,区域的宽度明显更宽,在较浅的部位,分割区域明显变窄,很好的体现了缺陷的深浅变化。
2号色皱缺陷,相比纤维皱与碳点更浅,且边缘比较模糊,没有明显的边界,显然无论取值为多少,固定阈值分割的方式无法满足此类缺陷的分割,可以看到分割效果图中,缺陷区域边缘毛刺较多,且周边有很多离散的杂点,这种分割效果会因此很大的数据误差,对后续处理产生较大的影响。而自适应动态阈值法,找到最佳分割阈值18,可以得到一个相对平滑、完整的轮廓,且基本贴合缺陷的核心区域,周围的阴影部分完全没有产生干扰。
3号4号为典型的碳点缺陷,此类缺陷颜色较深,且会在周围形成大面积的阴影,实际区域通常只在最核心的位置。对于此类缺陷的分割,OTSU与我们的方法并没有太大差距,只是OTSU所分割的区域面积通常更小一些。
通过上述对比不难发现,在分割碳点这类较深的缺陷时,两种方法的区别并不明显,都能相对准确的找到缺陷的轮廓,OTSU方法分割得到的区域比实际肉眼观察的稍小,自适应动态阈值方法分割的缺陷轮廓与肉眼观察的形状更接近一些。
而在分割色皱、纤维皱这类较浅且形状复杂的缺陷时,OTSU方法并不理想,边缘不清晰导致其结果有很多干扰,且边缘与实际肉眼观察的形状差距非常大;相比之下,自适应的动态阈值法所分割的区域,轮廓非常贴合实际缺陷,边缘十分平滑。
V. 结论
对PVDC薄膜常见的缺陷图像,我们通过两种分割算法的对比,发现在边缘模糊的情况下,自适应动态阈值算法有着非常明显的优势,可以准确的分割出缺陷区域,便于计算缺陷的特征值。
此例中所使用的OTSU是经过初步优化的,也许并不代表OTSU的最佳性能,但是在模糊边界的把握上,固定阈值的局限性是显而易见的[7]。而自适应动态阈值的思想来源于OTSU,旨在寻找最佳阈值。本例中,其寻找阈值的条件仅是根据缺陷的特点量身定制,通用性还有待提高。在今后的研究中,我们可以尝试分割不同产品的缺陷,研究不同缺陷的最佳动态阈值的条件,把算法的应用范围从PVDC薄膜扩展到其他种类的薄膜,甚至是钢板、玻璃、纸张等等材料上,使其成为真正实用的优秀算法。
参考文献
[1] 肖超云, 朱伟兴. 基于Otsu准则及图像熵的阈值分割算法. 计算机工程, 2007, ..(14), pp.188-189, 209.
[2] NOBUYUKI OTSU. A Threshold Selection Method from Gray-Level Histograms. IEEE Transactions on systems, man, and cybernetics, VOL.SMC-9, NO.1, January 1979.
[3] 钟球盛, 李静蓉, 胡广华. 用于光学薄膜缺陷检测的快速图像分割算法. 机电工程, 第28卷第10期, 2011年10月.
[4] 徐树兴, 王宝光, 郑义忠. 线阵CCD平场校正及FPGA实现的研究. 宇航计测技术, 第27卷第6期, 2007.
[5] 郝颖明, 朱枫. 2维Otsu自适应阈值的快速算法. 中国图象图形学报:A辑. 2005年第4期.
[6] 胡敏, 李梅, 汪荣贵. 改进的Otsu算法在图像分割中的应用. 电子测量与仪器学报. 2010年05期.
[7] Carsten Steger, Markus Ulrich, Christian Wiedemann. Machine Vision Algorithms and Applications; 杨少荣等译. 清华大学出版社, 2001.11. ISBN 978-7-302-18196-5. pp.144-155.
|
|