使用积分图像进行自适应二值化[Derek Bradley, Gerhard Roth, 2007]

忽略光照不均的影响做二值化,没想到自己毕设中设计的算法,竟然在07年就有人搞出来了、囧~

原文地址: http://people.scs.carleton.ca/~roth/iit-publications-iti/docs/gerh-50002.pdf 

OpenCV源码地址: http://blog.csdn.net/qiaxi/article/details/49207243



 

                                                                   使用积分图像进行自适应二值化[Derek Bradley, Gerhard Roth, 2007]_第1张图片

图 1: 实时自适应图像二值化.

左: 输入图像. 中:Wellner算法.右: 本文算法.

 

[摘要] 图像二值化操作是很多计算机视觉及图形应用中的常见操作,其目标是区分某一像素点是“亮”还是“暗”。自适应二值化是图像二值化的一种,它考虑了光照的空间变化。本文提出了一种使用积分图进行实时自适应二值化的算法。该算法是对已有算法的改进,对光照变化的鲁棒性更高并且简单易实现。本文算法适用于处理实时视频数据流,可以作为诸如增强现实之类的交互应用的有力工具。算法源代码可从网上下载。

 

1      简介

图像的二值化是指根据图像的像素特征(比如灰度值)切分图像,目标是创建图像的二值表征,将每一个像素分为两类(比如“亮”和“暗”)中的某一类。这种操作在很多的图像处理应用以及计算机图形应用中非常常见。比方说,二值化经常包含在基于标记的增强现实系统(marker-based augmented realitysystem,专有词汇,如果翻译的不合适请见谅)[Billinghurst et al. 2001; Bradley and Roth 2004; Fiala 2005]的最初步骤中;它也已经应用于HDR影像技术[Ward 2003].

最基本的图像二值化是选定某一固定阈值,并将此阈值与各像素值进行比较。这些基本的二值化算法的介绍、比较以及评估可见于海量的文献中[Weszka and Rosenfeld 1978;Palumbo et al. 1986; Sahoo et al. 1988; Lee et al. 1990; Glasbey 1993; Trier and Jain 1995; Sezgin and Sankur 2004]. 然而,这些固定阈值的算法往往不能很好的适应光照的变化,也很难应用于视频流.

为了更好的适应光照的变化,最常见的方法是进行自适应二值化操作。该方法特殊的地方在于,它会为图像中的每一个像素点计算自己的阈值,从而对光照的变化保持一定的鲁棒性。学者们至今已经提出了很多种自适应二值化算法 [White and Rohrer 1983; Bernsen 1986; Parker 1991; Wellner 1993; Yang et al. 1994; Shen and Ip 1997; Chan et al. 1998; Savakis 1998; Sauvolaand Pietikainen 2000; Yang and Yan 2000]. 更多的例子及算法的比较可见于[Venkateswarlu and Boyle 1995; Sezgin and Sankur 2004]. 本文提出了一种利用积分图像的简单明了的算法。该算法易于实现,可应用于实时的视频数据。该算法是对现有算法[Wellner 1993]的改进,提高了对剧烈光照变化的适应性。此外,该算法简单明了,在提高了对剧烈光照变换的鲁棒性的同时,丝毫没有增加计算的复杂度。该算法与White、Rohrer共同提出的应用于OCR的二值化算法相似[White and Rohrer 1983],但是适用于实时视频。本算法的研究动机是找到增强现实应用的基准点。Pintaric也提出了一种为增强现实标记(augmented reality markers)而设计的二值化算法 [Pintaric 2003]. 但是该方法需要一个从前一帧获得的基准点,否则该算法无法很好的工作。本文算法无需假设,更加通用,适用于很多的应用场景。算法源码见于本文最后给出的网址。

 

2      背景

2.1      实时自适应二值化

本文着重于对视频帧的自适应二值化。为了确保实时性,算法对于每张图片的迭代次数必须尽可能少。二值化操作往往是一个更复杂操作的其中一步。比如对于增强现实而言,输入图像必须切分以定位已知标记,这些标记将用于动态地设定相机位置,因此简单快速的二值化算法是其中重要的工具。

 

2.2      积分图

积分图像(也被称为区域求和表)是一个非常有效的求和工具。当我们有一个从像素到数值(比如灰度值)的映射函数f(x, y),并且希望计算一个矩形区域内的函数值的和时,积分图是一个非常高效的工具。纹理映射[Crow 1984], 人脸识别[Viola and Jones 2004],以及立体匹配[Veksler2003]中均有积分图的应用. 如果不适用积分图,对于每个矩形而言,求和将是线性复杂度,因为将不得不累加每个像素的值。然而,如果我们需要计算多个互相重叠的窗口,我们可以使用积分图,这样可以将单个矩形的操作次数保持在固定值(复杂度1),从而获得对多个矩形求和时的总的线性复杂度。

 

为了计算积分图像,需要记录每个像素以及所有位于该点的左侧及上方的像素对应的值,f(x, y),的总和I (x,y)。 对于每个像素(x, y), 这个操作通过以下等式进行,为线性复杂度(考虑边界情况)

 

I(x, y) =f(x, y) + I(x−1, y)+I(x, y −1)− I(x−1, y − 1).                                                           (1)

 

图 2 (下面组图的左侧及中间位置)举例说明了积分图像的计算。中间图片是左侧图片的积分图。当我们计算完积分图之后,图片内任意矩形内的和便可以通过通过左上定点(x1, y1), 右下顶点(x2, y2)进行计算,计算方式如下:

  (2)      


图2的右侧图像标示了计算方法。运用(2)中公式计算矩形D内f(x, y)的和,等价于计算 (A+B+C+D)-(A+B)-(A+C)+A.


使用积分图像进行自适应二值化[Derek Bradley, Gerhard Roth, 2007]_第2张图片

图2: 积分图.

左: 输入图像. 中间: 左侧图像的积分图. 右侧: 使用积分图计算矩形D内f(x,y)的和.

 

3      算法综述

本文所述算法是Wellner 算法 [Wellner 1993]的扩展,Wellner算法的核心思想是将每个像素点与周围像素点的均值作比较。特别地,遍历图像时,计算(已遍历的)最后s个像素的均值,如果当前像素的值比该均值小 t %,那么该像素点设置为黑,否则为白色。该方法之所以有效是因为将某一像素与相邻像素相比较将保留对比明显的部分并忽略平滑的过渡。本算法的一大优点在于只需要遍历一次图像。Wellner 采用1/8图像宽度作为s的值,并将百分比参数t设置为15. 然而,这种算法也有一个问题: 算法依赖于遍历的方向。此外,不断移动的s个像素的均值并不是在每一步都是周围像素均值的一种良好表现,因为相邻像素并不总是各向平滑分布的。通过使用积分图(对图像进行一次额外的遍历),我们提出了一种不被这些问题困扰的算法。这种算法简单,直接,易于编程实现,并且可以对同一图像产生稳定的输出结果。与计算最后s个像素的均值不同,本文所述算法计算中心像素周围的s×s邻域内像素均值。这种处理方法表现更加稳定因为它考虑了所有方向的相邻像素。通过使用积分图,邻域均值的计算为线性复杂度。第一次遍历图像时计算图像的积分图,第二次遍历时,通过积分图为每个像素以恒定计算次数计算邻域均值,然后将此均值与当前像素点的数值进行比较。如果当前像素的值比邻域均值低t %则设为黑,否则设为白。


以下伪代码中,in 为输入图像,out为输出的二值图像, 和 分别代表图像的宽度和高度.


procedure AdaptiveT hreshold(in, out, w, h)

1: for = 0 to do

2:       sum ← 0

3:       for = 0 to do

4:            sum ← sum in[i, j]

5:            if = 0 then

6:                 intImg[i,j← sum

7:            else

8:                 intImg[i, j]← intImg[i −1, j] + sum

9:            end if

10:       end for

11:  end for


12: for = 0 to do

13:     for = 0 to do

14:         x← i − s/{此处未显示边界处理}

15:        x← i s/2

16:          y← j − s/2

17:        y← j s/2

18:           count ← (x− x1)×(y2− y1)

19:      sum ← intImg[x2, y2]− intImg[x2, y11]− intImg[x1− 1, y2]+ intImg[x11, y− 1]

20:           if (in[i, j]× count)(sum × (100 − t)/100) then

21:               out[i, j← 0

22:            else

23:               out[i, j← 255

24:          end if

25:       end for

26:  end for

 

 

 

4      实验结果


本文所述算法在3.4GHz 的 Pentium 4 处理器上测试,采用Point GrayDragonfly相机捕捉640×480像素的图像。测试结果为,每帧的平均处理时间为15毫秒,帧率约为65帧每秒。因为该算法需要遍历图像两次,而不是像Wellner算法一样只遍历一次,因此会慢一些。测试发现,该算法比Wellner算法慢了2.5倍,但是依然达到了实时性的要求。


图1和图3展示了本算法的测试结果,同时展示了Wellner算法的效果。图1展示了一张文本图像,其中一个区域平均灰度值极小,本文算法依然可以完整地切分出所有的文字。图3是一个增强现实的例子,显示的是在一段视频中用于追踪的平面标记。本例中,虽然光照变化明显,本文提出的算法依然达到了近乎完美的效果。Wellner算法在底部中心区域因为反射影像表现不佳,在上部的角落处也产生了明显的阴影。

 


  使用积分图像进行自适应二值化[Derek Bradley, Gerhard Roth, 2007]_第3张图片

 

图 3: 增强现实例子.

左: 输入图像. 中: Wellner算法. 又: 本文算法.


5      分析讨论

我们以前在增强现实方面的工作[Bradley and Roth 2004]论证了应用于视频的实时的、高鲁棒性的、自适应二值化算法的需要 。本文所述的算法完全适应强光照变化的场景。


短暂的光照变化可以自动处理,而这种情况全局的阈值方法无法处理。本算法的主要缺点在于需要遍历图像两次。不过,对于当前的处理器而言,这并不是很大的缺点,该算法依然可以满足实时性需求。

可以通过以下方法将计算处理的次数降到最低:在(i, j)位置计算积分图的同时在(i − s/2, j − s/2) 位置进行二值化操作。这种情况下,以下数目的像素将需要执行常数次计算:


该方法假设图像主要包含背景像素(标记为白色),前景零散地分布于整张图像。当一个前景部分大于s×s像素时,前景的中心将被错分为背景。使用更大的核(比如增大s)将减轻这种影响,但是这种情况下将丢失更多的图片细节。核的大小应当根据不同应用设定相应的值。

 

 

参考文献

BERNSEN, J.  1986. Dynamic thresholding of gray-level images.  In Int. Conf. Pattern Recognition, vol. 2, 1251– 1255.


BILLINGHURST, M., KATO, H., AND POUPYREV, I. 2001. Themagicbook - moving seamlessly betweenreality and virtuality.IEEE Comput. Graph. Appl.21, 3, 6–8.


BRADLEY, D., AND  ROTH, G. 2004. Augmenting non-rigid objects with realistic lighting.Tech. Rep. NRC 47398, National Research Council of Canada, October.


CHAN, F. H. Y., LAM, F. K., AND ZHU, H. 1998. Adaptive thresholding by variational method.IEEE Transactions on Image Processing7, 3 (March),468–473.


CROW, F. C. 1984. Summed-area tablesfor texture mapping. SIGGRAPH Comput.Graph. 18, 3, 207–212.


FIALA, M.   2005.  ARTag, a fiducialmarker system using digitaltechniques.  InProc. of Computer Vision and Pattern Recognition, vol. 2, 590–596.


GLASBEY, C. A. 1993. An analysisof histogram-based thresholding algorithms.  CVGIP: Graph. ModelsImage Process. 55, 6, 532–537.


LEE, S., CHUNG, S., AND PARK, R. 1990. A comparative performance study of several global thresholding techniques for segmentation.Computer Vision Graphics Image Processing52, 2 (Nov.), 171–190.

PALUMBO, P. W., SWAMINATHAN, P., AND  SRIHARI, S. N. 1986. Document image binarization: Evaluationof algorithms.SPIE 697, 278–285.

 

PARKER, J. R. 1991. Gray level thresholding in badly illuminated images. IEEE Trans. Pattern Anal. Mach. Intell.

13, 8, 813–819.

 

PINTARIC, T. 2003. An adaptive thresholding algorithmfor the augmented reality toolkit.InIEEE Int. Augmented Reality Toolkit Workshop.

 

SAHOO, P. K., SOLTANI, S., WONG, A. K., AND CHEN, Y. C.  1988.  A survey of thresholding techniques.

Comput. Vision Graph. Image Process. 41, 2, 233–260.

 

SAUVOLA, J., AND PIETIKAINEN, M. 2000. Adaptive document image binarization. PR 33,2 (February), 225–236.


SAVAKIS, A. E. 1998. Adaptive documentimage thresholding using foregroundand background clustering.  In

ICIP (3), 785–789.

 

SEZGIN, M., AND  SANKUR, B.  2004. Survey over image thresholding techniques and quantitative performance evaluation.Journal of Electronic Imaging 13, 1, 146–168.

 

SHEN, D., AND IP, H. H. S. 1997. A hopfield neural network for adaptive image segmentation: An active surface paradigm.PRL 18, 37–48.

 

TRIER, O. D., AND JAIN, A. K. 1995. Goal-directed evaluationof binarization methods.PAMI 17, 12 (December), 1191–1201.

 

VEKSLER, O. 2003. Fast variable window for stereo correspondence usingintegral images.InIEEE Conference on Computer Vision and Pattern Recognition(CVPR 2003), 556–661.

 

VENKATESWARLU, N. B., ANDBOYLE, R. D. 1995. New segmentation techniques for document image analysis.

IVC 13, 7 (September), 573–583.

 

VIOLA, P., AND JONES, M. J. 2004. Robust real-time face detection. Int. J. Comput.Vision 57, 2, 137–154.

 

WARD, G. 2003. Fast, robust image registration for compositing high dynamic range photographs from hand-held exposures.journal of graphics tools 8, 2, 17–30.

 

WELLNER, P. D. 1993. Adaptive thresholding for the digitaldesk. Tech. Rep. EPC-93-110, EuroPARC.

 

WESZKA, J. S., AND ROSENFELD, A.  1978. Threshold evaluationtechniques.  IEEE Trans. on System, Man and Cybernetics SMC-8, 8, 622–629.

 

WHITE, J. M., AND ROHRER, G. D. 1983.Image thresholding for optical characterrecognition and other applica- tions requiringcharacter image extraction.IBMRD 27, 4 (July), 400–411.

 

YANG, Y., AND YAN, H. 2000. An adaptive logical method for binarization of degraded document images.PR 33, 5 (May), 787–807.

 

YANG, J. D., CHEN, Y. S., AND HSU, W. H.  1994.Adaptive thresholding algorithmand its hardware implemen- tation.PRL 15, 141–150.

 

 

 

其他信息:

 

 // 链接貌似失效了

本文源码及更多图像实例见于 www.derekbradley.ca/AdaptiveThresholding/index.html.

你可能感兴趣的:(算法)