林业科学  2018, Vol. 54 Issue (11): 134-142   PDF    
DOI: 10.11707/j.1001-7488.20181119
0

文章信息

郭慧, 王霄, 刘传泽, 周玉成.
Guo Hui, Wang Xiao, Liu Chuanze, Zhou Yucheng.
人造板表面缺陷检测图像自适应快速阈值分割算法
Research on Adaptive Fast Threshold Segmentation Algorithm for Surface Defect Detection of Wood-Based Panel
林业科学, 2018, 54(11): 134-142.
Scientia Silvae Sinicae, 2018, 54(11): 134-142.
DOI: 10.11707/j.1001-7488.20181119

文章历史

收稿日期:2018-04-02
修回日期:2018-06-05

作者相关文章

郭慧
王霄
刘传泽
周玉成

人造板表面缺陷检测图像自适应快速阈值分割算法
郭慧1, 王霄1, 刘传泽2, 周玉成1,2     
1. 中国林业科学研究院木材工业研究所 北京 100091;
2. 山东建筑大学信息与电气工程学院 济南 250101
摘要:【目的】提出一种自适应快速阈值图像分割算法,为人造板表面缺陷在线检测提供支持。【方法】首先将整幅图像划分成若干子区域,通过计算子区域的方差对缺陷进行定位,提取出缺陷所在区域,只对缺陷区域进行图像分割,解决小面积目标难以准确分割的问题。然后对缺陷区域的一维灰度直方图进行处理,直方图平滑后去除掉不显著波峰,根据处理后保留的主要波峰数量和位置自适应地确定分割阈值个数以及每个阈值的分割区间,实现当图像中出现多种类型缺陷时算法自动确定分割阈值个数。最后,通过分析Otsu算法,将阈值穷举搜索改进为条件搜索并限定搜索方向,在每个分割区间内使用改进的Otsu算法对阈值进行搜索,提高搜索速度。【结果】对板面存在油污、大刨花、胶斑、杂物、松软5种类型缺陷的人造板表面图像进行分割,在板面缺陷数量、类型不固定的情况下,算法可以自适应地确定分割阈值个数,在15 ms内将各种类型缺陷从人造板表面图像中分割出来,平均分割准确率达97%。【结论】自适应快速阈值分割算法能够快速、准确将缺陷从人造板表面图像中分离出来,在执行速度和分割效果上均满足在线缺陷检测系统的要求,可为人造板表面缺陷在线检测提供新思路。
关键词:Otsu阈值分割算法    图像分割    人造板表面缺陷检测    
Research on Adaptive Fast Threshold Segmentation Algorithm for Surface Defect Detection of Wood-Based Panel
Guo Hui1, Wang Xiao1, Liu Chuanze2, Zhou Yucheng1,2     
1. Research Institute of Wood Industry, CAF Beijing 100091;
2. School of Information and Electrical Engineering, Shandong Jianzhu University Jinan 250101
Abstract: 【Objective】An adaptive fast thresholding image segmentation algorithm was proposed in this paper, which could quickly and accurately separate the defects from the surface images of wood-based panels, and provide support for on-line detection of wood-based panel surface defects.【Method】Firstly, the algorithm divided the whole image into several sub-regions. Secondly, the defect areas were located by calculating the variance of each sub-region. And then, the image segment was only done in defect areas for solving the problem of accurate segmentation of small targets.The one-dimension gray scale histogram of extracted defect area was processedusing histogram smoothing to remove the non-significant peaks.According to the main wave peaks reserved in the histogram after the processing, the number of the thresholds and segmentation interval for each threshold were determined adaptively. At each interval, the threshold was searched using an improved fast Otsu segmentation algorithm.Through the analysis of the Otsu algorithm, the threshold was found by a conditional search instead of the exhaustive search and the search direction was specified. In each segmentation interval, the improved fast Otsu segmentation algorithm was used to search the threshold, which improved the search speed.【Result】The segmentations of surface images of wood-based panels with five types of defects such as oil stains, big wood shavings, glue spots, sundries and loose regions were done using the adaptive fast algorithm proposed in this paper. Although the number and type of the defects were not fixed, this algorithm still could determine the number of the thresholds automatically. All kinds of defects were separated from the surface images in 15 ms with a above 97% segmentation accuracy rate.【Conclusion】The adaptive fast threshold segmentation algorithm presented in this paper can quickly and accurately separate the defects from the surfaces of the panels, and the execution speed and the segmentation effect meets the requirements of the on-line defect detection system. It provides a new approach for automatic on-line detection of surface defects on wood-based panels.
Key words: Otsu threshold segmentation algorithm    image segmentation    surface defect detection of wood-based panel    

人造板连续压机生产线的国产化大大提高了我国人造板生产行业的自动化水平,但在板面缺陷检测环节,仍然主要依靠工人肉眼识别,研发自动化的在线检测系统成为行业的迫切需求。基于机器视觉的人造板表面缺陷在线检测系统具有检测速度快、正确率高、成本相对较低等特点,非常适合投入到人造板生产企业的生产线中,其中缺陷检测算法是系统的核心部分。在连续压机生产线以1.5 m·s-1的速度运行时,算法要在3 s内完成对人造板表面图像的预处理、分割、特征提取和分类识别,检测精度达到6 mm×6 mm以上。

图像分割是缺陷检测的重要环节,是将缺陷区域从背景中分离出来的过程。阈值分割法是一种应用广泛的图像分割算法,其中最具代表性的Otsu阈值法具有计算简单、稳定性好、执行速度快等特点,适合于实时性较高的应用。但多阈值Otsu算法由于搜索空间增加,算法速度下降明显(刘翔,2017)。为了提高多阈值Otsu算法效率,许多研究者引入其他算法来优化阈值搜索策略,包括遗传算法(刘健庄等,1995Kamal et al., 2008)、蛙跳算法(康杰红等,2012)、鱼群算法(崔丽群等,2017)和萤火虫算法(Raja et al., 2014)等。刘艳等(2011)王祥科等(2006)还使用直方图分析缩小搜索范围,以加快搜索速度。但以上这些算法均需事先设置分割阈值数量,并且当阈值数量增加时,分割速度明显降低。而在线检测系统中,每幅图像的阈值数量与缺陷的数量和类型有关,无法预先设定,并且当阈值数量增加时,分割时间增长会影响整个系统的检测速度。此外,在人造板表面图像中,缺陷面积通常只占整幅图像面积的0.01%~1%,而Otsu算法在小目标分割时往往表现不佳。

针对以上问题,本研究提出一种适用于人造板表面缺陷在线检测的自适应快速阈值分割算法,该算法能够自动确定阈值数量,快速、准确地将小面积缺陷从背景中分离出来。首先提取图像缺陷区域,然后对缺陷区域的一维灰度直方图进行处理,自动确定分割阈值个数,将全局多阈值分割转化为局部单阈值分割,并通过分析Otsu算法,将阈值穷举搜索改进为条件搜索,同时限定搜索方向,从而快速确定阈值,完成图像分割。

1 缺陷区域提取

在连续压机生产线上,人造板板面面积为2.4 m×4.8 m,表面缺陷主要包括油污、大刨花、胶斑和杂物等类型,大部分缺陷面积在0.01 m× 0.01 m~0.1 m×0.1 m范围内,与背景面积相差悬殊,直接分割整幅图像不仅速度慢,而且无法达到满意的分割效果。针对人造板表面图像特点,本研究提出区域筛选合并的预处理策略,在分割前先将图像划分成若干子区域,对子区域进行分类,筛选出缺陷所在区域,在分割时只对缺陷区域进行处理,以解决小面积目标难以准确分割的问题。

人造板表面图像背景单一、颜色均匀,而缺陷面积较小,且颜色与背景有较大差异,缺陷所在区域往往具有较大的方差,因此本研究通过计算子区域的方差对缺陷进行定位。在划分区域时,有可能出现1个缺陷被划分到多个区域中的情况,因此还需要对相连通的缺陷区域进行合并。缺陷区域提取的主要步骤如下:

1) 将人造板表面图像等分为m×n个cell×cell像素的子区域,cell值根据缺陷大小合理选取。计算各子区域的方差σ2

$ {\sigma ^2} = \sum\limits_{i = 0}^{255} {{{\left( {i - \mu } \right)}^2}{p_i}} 。$ (1)

式中:$\mu = \sum\limits_{i = 0}^{255} {} i{p_i};{\rm{ }}{p_i} = {n_i}/N $i为灰度值;μ为子区域灰度值均值;pi为灰度值i在子区域中的概率;ni为灰度值为i的像素数量;N为子区域像素总数。

2) 建立m行、n列的矩阵FF中各元素初始值置为0,将方差σ2大于阈值Tf的子区域在矩阵F中对应位置的元素值置为1。

3) 遍历矩阵F,记录F中值为1的连通区域各元素的下标作为一个结果集。如果存在多个缺陷,根据缺陷分布情况,可能会得到多个结果集。将每个结果集中左上角元素坐标和右下角元素坐标形成的区域对应到原图像中,就得到提取后的缺陷区域。

2 Otsu算法分析

Otsu算法是日本著名学者大津展之(Nobuyuki Otsu)于1979年提出的一种图像分割算法(Otsu,1979),其基本原理是将原始图像的各个像素点依据灰度值分为目标和背景2类,并使2类的类间方差最大化。Otsu算法是一种穷举算法,搜索单阈值时需要遍历所有灰度值,进行多阈值分割时则需要将所有灰度值组合全部搜索完毕。对灰度值范围为[0, L-1]的图像进行多阈值分割,分成n类,搜索次数为$C_{L - 1}^{n - 1} $,这是一个非常耗时的过程。

对于直方图具有明显双峰特性的图像,在进行单阈值分割时,最佳阈值就是2个波峰之间的统计意义上的最小波谷。设最佳阈值T*将图像中的像素点分割为C0C1类,则T*值等于μ0(T*)和μ1(T*)的平均值向下取整(许向阳等,2009阳树洪,2014),即性质1:

$ {T^ * } = \left\lfloor {\frac{1}{2}\left[ {{\mu _0}\left( {{T^ * }} \right) + {\mu _1}\left( {{T^ * }} \right)} \right]} \right\rfloor 。$ (2)

式中:$ {\mu _0}({T^*}) = \sum\limits_{i = 0}^{{T^*}} {} i{\rm{Pr}}(i|{C_0}) = \frac{1}{{{P_0}}}\sum\limits_{i = 0}^{{T^*}} {} i{p_i};{\rm{ }}{\mu _1}({T^*}) = \sum\limits_{i = {T^*} + 1}^{L - 1} {} i{\rm{Pr}}(i|{C_1}) = \frac{1}{{{P_1}}}\sum\limits_{i = {T^*} + 1}^{L - 1} {} i{p_i};{\rm{Pr}}(i|{C_0})$和Pr(i|C1)分别表示灰度值为i的像素点在C0C1类中所占比率;$ {P_0} = \sum\limits_{i = 0}^{{T^*}} {} {p_i}$C0类的概率;$ {P_1} = \sum\limits_{i = {T^*} + 1}^{L - 1} {} {p_i}$类的概率;pi=ni/N为各灰度值出现的概率;ni为图像中灰度值为i的像素点个数;$ N = \sum\limits_{i = 0}^{L - 1} {} {n_i}$为总像素数。

从计算公式可以看出,μ0(T*)和μ1(T*)表示C0C1类像素值的数学期望,反映的是一类像素值的集中位置,是直方图与横轴形成的图形中该类所占区域重心的横坐标。性质1表明,在直方图中,最佳阈值T*位于C0C1类重心的中间,对于具有明显双峰特性的直方图,T*位于2个主波峰之间。

在进行多阈值分割时,直方图会呈现多峰情况。使用Otsu算法得到的最佳阈值组合T1*T2*、…、Tn-1*依然满足性质1,最佳阈值Tk*位于其所分割的Ck-1Ck类重心的中间(申铉京等,2017)。如图 1所示,使用双阈值对图像进行分割,搜索得到的最佳阈值为T1*T2*,分割得到的3类在直方图中的区域为Area0、Area1和Area2,则T1*位于Area0和Area1重心的中间,T2*位于Area1和Area2重心的中间,T1*T2*位于各主要波峰之间,将3个主要波峰分开。

图 1 最佳双阈值的在灰度直方图中的位置 Figure 1 Position of the optimal double thresholds in the gray scale histogram

从以上分析可以看出,在进行多阈值分割时,各最佳阈值位于各主要波峰之间,因此如果能确定主要波峰位置,将直方图划分成多个局部区域,找出各个区域的最佳阈值,就可以通过多个局部单阈值分割实现全局多阈值分割,从而减小阈值搜索范围,大大提高分割速度。

3 自适应快速阈值分割算法

本研究提出基于Otsu阈值的自适应快速分割算法,根据图像直方图主要波峰的数量和位置,自适应地将直方图划分成若干子区域,对各子区域进行单阈值分割。算法将全局多阈值转化为多个局部单阈值,减少了单个阈值的搜索范围,降低了时间复杂度;并且在各区域中搜索阈值时,将Otsu算法改进为定向条件搜索,进一步提高分割速度。

3.1 直方图区域划分

不同类型缺陷的灰度值不同,在直方图不同位置会形成比较明显的若干个波峰,称为主要波峰,通过主要波峰可以确定分割阈值个数以及每个阈值的分割区间。算法通过直方图平滑、波峰合并和去除不明显波峰3个步骤将主要波峰筛选出来。

3.1.1 直方图平滑

由于图像灰度值复杂性和噪声的影响,直方图会出现很多“毛刺”,如图 2a所示,这些“毛刺”对寻找主要波峰造成很大干扰。算法使用插值法对直方图进行平滑,去掉“毛刺”的同时较好保持了直方图的原始性状。

图 2 直方图插值 Figure 2 Histogram interpolation a.原始直方图Original histogram;b.插值直方图(step=5)Interpolated histogram(step=5);c.插值直方图(step=15)Interpolated histogram(step=15).

插值法的基本思想是使用插值点前后值的平均值代替插值点的原值,本研究使用的插值公式为:

$ g\left( x \right) = \frac{1}{{{\rm{step}}}}\sum\limits_{i = 0 - {\rm{step}}/2}^{{\rm{step}}/2} {f\left( {x + i} \right)} 。$ (3)

式中:step为插值步长,控制参与计算的数据范围。

step值越大,平滑效果越好,对图 2a分别用step=5和step=15进行插值平滑后,得到图 2b图 2c。但需要注意的是,插值会使波峰峰值减小,如果step值过大,一些峰值较小的波峰就会丢失,因此要合理设置。

3.1.2 主要波峰筛选

平滑后的直方图依然存在多个不显著波峰,如图 2c中灰度值为159的波峰。不显著波峰主要包括距离过近的多个波峰及峰值与两边波谷值相差过小的波峰。将平滑后直方图中所有波峰灰度值的集合记为Peak={P1, P2, …, Pm}。当Peak集合中2个相邻波峰之间的距离小于距离阈值pt时,将峰值较小的波峰从集合中去掉,保留峰值较大的波峰。

波峰合并完成后进行波峰筛选,依次计算集合Peak中每个波峰两边的波谷值,如果波峰值与波谷值相差小于阈值st,则认为该波峰为不显著波峰,将其在集合中去掉,最后保留的波峰就是主要波峰。如果保留的波峰过多,可以增大阈值pt和st再次进行波峰合并和筛选。

设最后Peak集合中保留的主要波峰灰度值为{P1, P2, …, Pn},利用这些波峰对直方图进行划分,得到各个区域的灰度值范围为[P1, P2),…,[Pn-1, Pn),对各区域进行单阈值分割。

3.2 阈值快速定向条件搜索

由于最佳阈值一般位于波谷附近,因此在搜索过程中通常以2个波峰的中间点开始向左右2个方向分别进行搜索。搜索方向很关键,如果能确定搜索方向就可以减少一半搜索次数。为此,本研究由性质1出发,推导出3条推论来引导搜索方向。

设待分割区域的灰度值范围为[L1, L2),阈值为t,分割得到的2类均值为μ0μ1${f_1}\left(t \right) = {\rm{ }}\left\lfloor {1/2\left[ {{\mu _0}\left(t \right) + {\mu _1}\left(t \right)} \right]} \right\rfloor, {f_2}\left(t \right) = t $,则有:

推论1:当μ0μ1≠0时,$ {f_1}\left(t \right) = \left\lfloor {1/2{\rm{ }}\left[ {{\mu _0}\left(t \right) + {\mu _1}\left(t \right)} \right]} \right\rfloor $是单调非减函数,即$ {f_1}\left({t + 1} \right) \ge {f_1}\left(t \right), t \in [{L_1}, {L_2})$

证明:由式(2)均值计算公式得:

$ {\mu _0}\left( t \right) = \frac{{\sum\limits_{i = {L_1}}^t {i{p_i}} }}{{\sum\limits_{i = {L_1}}^t {{p_i}} }} \le \frac{{t\sum\limits_{i = {L_1}}^t {{p_i}} }}{{\sum\limits_{i = {L_1}}^t {{p_i}} }} = t; $ (4)
$ {\mu _1}\left( t \right) = \frac{{\sum\limits_{i = t + 1}^{{L_2} - 1} {i{p_i}} }}{{\sum\limits_{i = t + 1}^{{L_2} - 1} {{p_i}} }} = \frac{{\sum\limits_{i = t + 2}^{{L_2} - 1} {i{p_i}} + \left( {t + 1} \right){p_{t + 1}}}}{{\sum\limits_{i = t + 2}^{{L_2} - 1} {{p_i} + {p_{t + 1}}} }} \ge t + 1。$ (5)

由式(2)均值计算公式和式(4)得:

$ \begin{array}{l} {\mu _0}\left( {t + 1} \right) = \frac{{\sum\limits_{i = {L_1}}^{t + 1} {i{p_i}} }}{{\sum\limits_{i = {L_1}}^{t + 1} {{p_i}} }} = \frac{{\sum\limits_{i = {L_1}}^t {i{p_i}} + \left( {t + 1} \right){p_{t + 1}}}}{{\sum\limits_{i = {L_1}}^t {{p_i} + {p_{t + 1}}} }} \ge \\ \frac{{{\mu _0}\left( t \right)\sum\limits_{i = {L_1}}^t {{p_i} + {\mu _0}\left( t \right){p_{t + 1}}} }}{{\sum\limits_{i = {L_1}}^t {{p_i} + {p_{t + 1}}} }} = {\mu _0}\left( t \right)。\end{array} $ (6)

由式(2)均值计算公式和式(5)得:

$ \begin{array}{l} {\mu _1}\left( {t + 1} \right) = \frac{{\sum\limits_{i = t + 2}^{{L_2} + 1} {i{p_i}} }}{{\sum\limits_{i = t + 2}^{{L_2} - 1} {{p_i}} }} = \frac{{\sum\limits_{i = t + 1}^{{L_2} - 1} {i{p_i}} - \left( {t + 1} \right){p_{t + 1}}}}{{\sum\limits_{i = t + 1}^{{L_2} - 1} {{p_i} - {p_{t + 1}}} }} \ge \\ \frac{{{\mu _1}\left( t \right)\sum\limits_{i = t + 1}^{{L_2} - 1} {{p_i} - {\mu _1}\left( t \right){p_{t + 1}}} }}{{\sum\limits_{i = t + 1}^{{L_2} - 1} {{p_i} - {p_{t + 1}}} }} = {\mu _1}\left( t \right)。\end{array} $ (7)

由式(4)~(7)得:

$ \begin{array}{l} {f_1}\left( {t + 1} \right) = \left\lfloor {\frac{1}{2}\left[ {{\mu _0}\left( {t + 1} \right) + {\mu _1}\left( {t + 1} \right)} \right]} \right\rfloor \ge \\ \left\lfloor {\frac{1}{2}\left[ {{\mu _0}\left( t \right) + {\mu _1}\left( t \right)} \right]} \right\rfloor = {f_1}\left( t \right)。\end{array} $

推论2:设L1∈[L1, L2),L1是[L1, L2)区间中μ0(L1)≠0的最小值,即$ {\mu _0}({\rm{ }}{L_1}^\prime) \ne 0, {\mu _0}\left(l \right) = 0, {L_1} \le l \le {{L'}_{1 }- 1}$,有$ {f_1}({\rm{ }}{L_1}^\prime) > {f_2}({\rm{ }}{L_1}^\prime)$

证明:由$ {\mu _0}\left(l \right) = 0, {L_1} \le l \le {{L'}_{1 }- 1}$, 可知在该灰度值范围内不存在像素点,$ \sum\limits_{i = {L_1}}^{{L_1}^\prime - 1} {} i{p_i} = 0, \sum\limits_{i = L{_1}}^{{L_1}^\prime - 1} {} {p_i} = 0$,再由式(2)均值计算公式得:

$ {\mu _0}\left( {{{L'}_1}} \right) = \frac{{\sum\limits_{i = {L_1}}^{{{L'}_1}} {i{p_i}} }}{{\sum\limits_{i = {L_1}}^{{{L'}_1}} {{p_i}} }} = {{L'}_1}; $ (8)
$ \begin{array}{*{20}{c}} {{\mu _1}\left( {{{L'}_1}} \right) = \frac{{\sum\limits_{i = {{L'}_1} + 1}^{{L_2} - 1} {i{p_i}} }}{{\sum\limits_{i = {{L'}_1} + 1}^{{L_2} - 1} {{p_i}} }} = \frac{{\sum\limits_{i = {{L'}_1} + 2}^{{L_2} - 1} {i{p_i} + \left( {{{L'}_1} + 1} \right){p_{{{L'}_1} + 1}}} }}{{\sum\limits_{i = {{L'}_1} + 2}^{{L_2} - 1} {{p_i} + {p_{{{L'}_1} + 1}}} }} > }\\ {{{L'}_1} + 1。} \end{array} $ (9)

由式(8)和式(9)可得:

$ \begin{array}{*{20}{c}} {{f_1}\left( {{{L'}_1}} \right) = ⌊\frac{1}{2}\left( {{\mu _0}\left( {{{L'}_1}} \right) + {\mu _1}\left( {{{L'}_1}} \right)} \right) > }\\ {⌊\frac{1}{2}\left( {{{L'}_1} + {{L'}_1} + 1} \right) = {{L'}_1} = {f_2}\left( {{{L'}_1}} \right)。} \end{array} $

推论3:设$ {L_2}^\prime \in {L_1}, {L_2}), {L_2}^\prime$是[L1, L2)区间中${\mu _1}\left({{L_2}^\prime} \right) \ne 0 $的最大值,${\mu _1}({L_2}^\prime) \ne 0, {\mu _1}\left(l \right) = 0, {L_2}^\prime + 1 \le l < {L_2} $,有${f_1}({L_2}^\prime) < {f_2}({L_2}^\prime) $

证明:由$ {\mu _1}\left(l \right) = 0, {\rm{ }}{L_2}^\prime{\rm{ }} + 1 \le l \le {L_2} - 1$,可知在该灰度值范围内不存在像素点,得$ \sum\limits_{i = {L_2}^\prime + 2}^{{L_2} - 1} {} i{p_i} = 0, \sum\limits_{i = {L_2}^\prime + 2}^{{L_2} - 1} {} {p_i} = 0$,再由式(2)均值计算公式得:

$ {\mu _1}\left( {{{L'}_2}} \right) = \frac{{\sum\limits_{i = {{L'}_2} + 1}^{{L_2} - 1} {i{p_i}} }}{{\sum\limits_{i = {{L'}_2} + 1}^{{L_2} - 1} {{p_i}} }} = {{L'}_2} + 1; $ (10)
$ {\mu _0}\left( {{{L'}_2}} \right) = \frac{{\sum\limits_{i = {L_1}}^{{{L'}_2}} {i{p_i}} }}{{\sum\limits_{i = {L_1}}^{{{L'}_2}} {{p_i}} }} < \frac{{{{L'}_2}\sum\limits_{i = {L_1}}^{{{L'}_2} - 1} {{p_i}} + {{L'}_2}{p_{{{L'}_2}}}}}{{\sum\limits_{i = {L_1}}^{{{L'}_2} - 1} {{p_i}} + {p_{{{L'}_2}}}}} = {{L'}_2}。$ (11)

由式(10)和式(11)可得:

$ \begin{array}{*{20}{c}} {{f_1}\left( {{{L'}_2}} \right) = \left\lfloor {\frac{1}{2}\left[ {{\mu _0}\left( {{{L'}_2}} \right) + {\mu _1}\left( {{{L'}_2}} \right)} \right]} \right\rfloor < }\\ {\left\lfloor {\frac{1}{2}\left( {{{L'}_2} + {{L'}_2} + 1} \right)} \right\rfloor = {{L'}_2} = {f_2}\left( {{{L'}_2}} \right)。} \end{array} $

以上3条推论表明,在[L1, L2)区间中,${f_1}\left(t \right) = \left\lfloor {1/2\left[ {{\mu _0}\left(t \right) + {\mu _1}\left(t \right)} \right]} \right\rfloor $f2(t)=tμ0(t)μ1(t)≠0范围内必有交点,根据性质1可知,该交点就是最佳分割阈值T*。在进行阈值搜索时,对当前值t计算f1(t)和f2(t)的值,若f1(t)-f2(t)>0,说明t在交点左侧,即t < T*;若f1(t)-f2(t) < 0,说明t在交点右侧,即t>T*;若f1(t)-f2(t)=0,则t=T*。利用该结果,可以为T*值的搜索确定方向,缩小搜索范围。

此外,根据性质1可知,在搜索过程中,使用最佳阈值T*等于用该阈值分割出μ0(T*)和μ1(T*)的平均值向下取整。对一个灰度值所分割出的2类分别求均值,再求平均值向下取整,如果得到的结果与该值相等,则说明该灰度值就是最佳分割阈值,因此,无需对所有灰度值进行遍历就可以寻找到最佳阈值,这样就将穷举搜索转换为条件搜索,大大提高了搜索速度。

3.3 算法实现

在Visual Studio 2010开发环境中,使用C++和OpenCV类库实现该算法。首先计算图像的一维灰度直方图,然后使用插值法对直方图进行平滑处理。对平滑后的直方图进行波峰合并和筛选,获得主要波峰集合Peak={P1, P2, …, Pn}。利用主要波峰对直方图进行划分,划分后的各个区域灰度值范围为[P1, P2),…,[Pn-1, Pn)。在每个区域中搜索最佳阈值,搜索流程如图 3所示。

图 3 搜索流程 Figure 3 Flow chart of search process

搜索[Pk, Pk+1)区间的最佳阈值Tk*步骤为:

1) 设阈值tk初始值为区间[Pk, Pk+1)的中心,即${t_k} = \left\lfloor {({P_k} + {P_{k + 1}})/2} \right\rfloor $

2) 计算${f_1}({t_k}) = \left\lfloor {\left[ {{\mu _0}({t_k}) + {\mu _1}({t_k})} \right]/2} \right\rfloor, {\rm{ }}{f_2}({t_k}) = {t_k}, g({t_k}) = {f_1}({t_k}) - {f_2}({t_k}) $

3) 如果g(tk)大于0,则说明tk小于最佳分割阈值,将tk赋值给Pk;如果g(tk)小于0,则说明tk大于最佳分割阈值,将tk赋值给Pk+1;如果g(tk)值等于0,则tk为[Pk, Pk+1)区间的最佳阈值,记为Tk*,搜索结束;

4) 若未搜索到最佳阈值,则跳转至步骤1,在修改后的区间进行搜索。

所有区间搜索完成后,使用得到的最佳阈值组合(T1*, T2*, …, Tn-1*)对图像进行分割。

3.4 时间复杂度分析

设对灰度值范围为[0, L)的图像进行多阈值分割,利用n-1个阈值T1*, T2*, …, Tn-1*将图像分割分成n类。使用Otsu多阈值分割算法,阈值搜索次数为$C_{L - 1}^{n - 1} $,时间复杂度达到O(Ln-1)。采用本研究提出的快速分割算法,对直方图进行插值平滑、波峰合并、波峰筛选3个过程的时间复杂度均为O(L),在进行阈值搜索时,时间复杂度为(n-1)O(L),因此算法的整体时间复杂度为O(L)。从以上分析可以看出,本研究提出的算法比Otsu多阈值分割算法的时间复杂度大大降低。

4 结果与分析

采用大恒图像JAI SP-5000M-USB3.0工业相机采集人造板表面灰度图像,像素数量为500万,像素深度为8位。计算机硬件为Intel Core i7-7500U四核2.7 GHzCPU处理器,8 G内存。算法在VS2010开发环境中,使用C++和OpenCV类库编程实现。

4.1 缺陷区域提取

工业相机拍摄人造板板面为2.4 m×2.4 m,大多数缺陷面积在0.01 m×0.01 m~0.1 m× 0.1 m之间。经过试验调试提取参数,最终确定将表面图像划分成51×51个40×40像素的区域进行缺陷区域提取。各种缺陷类型的原图和提取后的缺陷区域如图 4~9所示,缺陷提取时间平均为62 ms。

图 4 大刨花 Figure 4 Big wood shavings
图 5 胶斑 Figure 5 Glue spots
图 6 油污 Figure 6 Oil stains
图 7 杂物 Figure 7 Sundries
图 8 松软和油污 Figure 8 Loose regions and oil stains
图 9 大刨花和杂物 Figure 9 Big wood shavings and sundries

从提取结果可以看出,基于区域筛选合并的方法能够完整提取出缺陷区域,对于多个缺陷位置集中的情况也寻找出了所有缺陷,准确提取出了缺陷集中区域。

4.2 图像分割 4.2.1 分割结果

针对图 4~9中提取出的缺陷区域,计算直方图,对波峰进行合并和筛选,划分出各分割区间。使用本研究算法在各分割区间进行阈值搜索,确定各分割阈值。经过试验调试,确定直方图平滑插值步长step值为3,波峰合并阈值pt设置为40,波峰筛选阈值st设置为3。各图像的波峰数、分割区间和分割阈值如表 1所示。

表 1 各图像的波峰数、分割区间和分割阈值 Tab.1 Peak number, segmentation intervals and segmentation thresholds

图 4~9中提取出的缺陷区域分别使用传统Otsu算法和本研究算法进行分割,结果如图 1011所示。

图 10 Otsu算法分割结果 Figure 10 Results of Otsu algorithm
图 11 本研究算法分割结果 Figure 11 Results of using the algorithm in this paper

为了衡量2种算法的分割准确率,使用Dice相似性系数(DSC)作为评价指标(詹曙等,2017)。DSC的定义为:

$ {\rm{DSC}}\left( {A,B} \right) = 2\left( {A \cap B} \right)/\left( {A + B} \right)。$ (12)

式中:AB分别表示标准图像和待评价的图像。

DSC值表示2幅图像重合部分面积占图像总面积的比率,取值范围在0~1之间。采用人工方法分割图像缺陷区域,对缺陷部分手动标记作为标准图像。DSC反映待评价图像与标准图像的相似程度,值越大说明待评价图像与标准图像重合部分越多,二者相似程度越大,分割结果越准确。对使用传统Otsu算法和本研究算法的分割结果图像计算DSC值,如表 2所示。

表 2 2种算法的DSC值 Tab.2 DSC of two algorithms

表 2可以看出,本研究算法的DSC值明显高于传统Otsu算法。在对图 4b图 5b图 6b进行单阈值分割时,由于本研究算法在搜索策略上对传统Otsu算法进行了优化,分割阈值与传统Otsu算法相同,因此2种算法的DSC值相同。在对图 7b杂物缺陷进行分割时,从表 1可看出本研究算法确定了3个阈值,出现了阈值过多的情况,这是由于直方图经过波峰合并和筛选后保留的波峰过多。由于图 7b中杂物缺陷的面积稍大于其他类型缺陷,其直方图中灰度层次更加丰富,因此波峰也就更多,如果波峰处理参数pt和st与其他缺陷类型取值相同,则最后保留下来的波峰个数也就最多,因此最后得到的分割阈值就最多。但其DSC值并没有受到影响,反而还高于传统Otsu算法,主要是因为多阈值保留了更多的细节信息。

在对图 8b图 9b进行双阈值分割时,本研究算法的DSC值高于传统Otsu算法,在对图 8b中松软和油污进行分割时对比尤其明显。这主要是由于传统Otsu算法进行全局搜索,在各类别像素数量相差较大时,阈值会靠近方差大的一类,而不是位于各个波峰间的波谷位置,因此无法取得理想的分割效果(许向阳等,2009)。由于图 8b图 9b中2种缺陷的像素数量不同,特别是图 8b中松软部分的像素数量远大于油污,因此在进行全局阈值搜索时发生了偏差。而本研究算法将阈值的搜索范围限定在2个波峰之间,只在2个波峰之间进行局部搜索,各个区间不会发生相互影响,不会因为一个区间内2类像素数量相差较大而影响到其他区间阈值的选取,因此能够更加准确地找到各区间分割的最佳阈值。但由于图 8b松软缺陷区域与背景区域之间是渐变过渡,没有明显边缘,2种算法的分割准确率都有所降低,特别是传统Otsu算法,降低到了不可接受的0.381 9,而本研究算法对图 8b的DSC值为0.901 4,即分割准确率为90.14%,说明本研究算法对图 8b中大部分像素的分类是正确的。

4.2.2 分割时间

使用遗传算法对Otsu阈值进行搜索是提高Otsu算法执行速度的一种优化方法。本研究分别使用传统Otsu算法、遗传算法优化Otsu算法和本研究算法对缺陷区域进行图像分割,计算分割时间,结果如表 3所示。

表 3 3种算法执行时间 Tab.3 Runtime of three algorithms

表 3可以看出,在进行单阈值分割时,遗传算法优化Otsu算法和本研究算法在分割速度上基本相同,都高于传统Otsu算法。当进行多阈值分割时,传统Otsu算法和遗传算法优化Otsu算法速度明显下降,而本研究算法速度虽然也有所下降,但执行时间仍然远远小于另外2种算法。在对图 7b进行分割时,本研究算法确定了3个阈值,但是分割速度仍然满足在线检测系统要求,并且与2个阈值相比并没有明显下降,说明算法具有良好的稳定性。

5 结论

针对人造板表面缺陷在线检测系统对图像分割算法速度快、准确率高的要求,本研究提出了一种自适应快速阈值图像分割算法,能够根据人造板表面图像中缺陷的种类和数量自动确定分割阈值个数,通过定向条件搜索快速确定分割阈值,准确分割板面缺陷。试验表明,本研究算法的平均分割准确率达到97%,即使在多阈值分割情况下,仍然能够在15 ms内完成分割,在分类准确率和分割速度上与传统Otsu算法相比都具有较大优势,为后续的缺陷识别预留了充足时间。

当进行多阈值分割时,本研究算法的分割准确率虽然比传统Otsu算法有很大提高,但仍存在着许多分割不正确的孤立点(图 11ef),这主要是由于本研究采用的刨花板表面存在细小纹理、缺陷与正常区域分界不明显以及在图像中存在噪声造成的。为了使分割结果更加准确,今后可使用数学形态学方法对分割结果进行处理,使用腐蚀和膨胀算子来消除孤立点,以获得更好的分割效果。

参考文献(References)
崔丽群, 黄殿平, 宋晓. 2017. 基于云模型鱼群算法的多阈值图像分割研究. 计算机工程与应用, 53(6): 204-208.
(Cui L Q, Huang D P, Song X. 2017. Multi-threshold method for image segmentation based on cloud model artificial fish swarm algorithm. Computer Engineering and Applications, 53(6): 204-208. [in Chinese])
康杰红, 马苗. 2012. 基于蛙跳算法与Otsu法的图像多阈值分割技术. 云南大学学报:自然科学版, 34(6): 634-640.
(Kang J H, Ma M. 2012. Multilevel thresholding segmentation based on shuffled frog leaping algorithm and Otsu method. Journal of Yunnan University:Natural Sciences, 34(6): 634-640. [in Chinese])
刘健庄, 谢维信, 高新波. 1995. 多阈值图像分割的遗传算法方法. 模式识别与人工智能, 8(增): 126-132.
(Liu J Z, Xie W X, Gao X B. 1995. Multi-thresholded image segmentation with genetic algorithms. Pattern Recognition and Artificial Intelligence, 8(suppl): 126-132. [in Chinese])
刘翔. 2017.多阈值Otsu快速算法的研究.长春: 吉林大学硕士学位论文.
(Liu X.2017.Research on fast algorithm of multi-threshold Otsu. Changchun: MS thesis of Jilin University.[in Chinese]) http://cdmd.cnki.com.cn/Article/CDMD-10183-1017156878.htm
刘艳, 赵英良. 2011. Otsu多阈值快速求解算法. 计算机应用, 31(12): 3363-3365.
(Liu Y, Zhao Y L. 2011. Quick approach of multi-threshold Otsu method for image segmentation. Journal of Computer Applications, 31(12): 3363-3365. [in Chinese])
申铉京, 刘翔, 陈海鹏. 2017. 基于多阈值Otsu准则的阈值分割快速计算. 电子与信息学报, 39(1): 144-149.
(Shen X J, Liu X, Chen H P. 2017. Fast computation of threshold based on multi-threshold Otsu criterion. Journal of Electronics & Information Technology, 39(1): 144-149. [in Chinese])
王祥科, 郑志强. 2006. Otsu多阈值快速分割算法及其在彩色图像中的应用. 计算机应用, 26(S1): 14-15.
(Wang X K, Zheng Z Q. 2006. Otsu multi threshold fast segmentation algorithm and application in color images. Journal of Computer Applications, 26(S1): 14-15. [in Chinese])
许向阳, 宋恩民, 金良海. 2009. Otsu准则的阈值性质分析. 电子学报, 37(12): 2716-2719.
(Xu X Y, Song E M, Jin L H. 2009. Characteristic analysis of threshold based on Otsu criterion. Acta Electronica Sinica, 37(12): 2716-2719. DOI:10.3321/j.issn:0372-2112.2009.12.020 [in Chinese])
阳树洪. 2014.灰度图像阈值分割的自适应和快速算法研究.重庆: 重庆大学博士学位论文.
(Yang S H. 2014. Study on the adaptive and fast algrithm of gray scale image thresholding. Chongqing: PhD thesis of Chongqing University.[in Chinese]) http://cdmd.cnki.com.cn/Article/CDMD-10611-1014042922.htm
詹曙, 梁植程, 谢栋栋. 2017. 前列腺磁共振图像分割的反卷积神经网络方法. 中国图象图形学报, 22(4): 516-522.
(Zhan S, Liang Z C, Xie D D. 2017. Deconvolutional neural network for prostate MRI segmentation. Journal of Image and Grophics, 22(4): 516-522. [in Chinese])
Kamal H, Moussa D, Patrick S. 2008. A multilevel automatic thresholding method based on a genetic algorithm for a fast image segmentation. Computer Vision & Image Understanding, 109(2): 163-175.
Otsu N. 1979. A threshold selection method from gray-level histograms. IEEE Transactions on System Man and Cybemetic, 9(1): 62-66. DOI:10.1109/TSMC.1979.4310076
Raja N S M, Rajinikanth V, Latha K. 2014. Otsu based optimal multilevel image thresholding using firefly algorithm. Hindawi Publishing Crop: 1-17.