您好,欢迎来到帮我找美食网。
搜索
您的当前位置:首页retinex

retinex

来源:帮我找美食网


Retinex算法的数学定义与分析

摘要:本文主要详细阐述了Land和McCann提出的最原始的Retinex算法[J.Opt.Soc.Am.61,1(1071)]。为此,我们提出一个分析公式,来描述算法的属性。超过一种Retinex的版本(例如有阈值和没有阈值)都得到了测试和检验。不同的Retinex算法由预测路径来进行区分,其递归迭代过程使用公式来进行分析。数学设定作为各种Retinex算法实现分析的共同途径。其有效性由试验和测试的结果进行验证。

1、引言:

Land和McCann[1]的Retinex模型是使用最广泛的两个模型,解释了人类视觉系统是如何感知色彩。Land和McCann经过多次试验证明了色彩感知并不是简简单单的信息采集。我们的视觉系统对采集到的信息自动进行一种计算,使得我们的感知远比琐碎的的光分不抽样复杂。Land和McCann称这种方法为Retinex算法。

在过去的40年里,Retinex模型得到了各种计算与研究,得到了很多研究的成果[2-28],但是由于某些原因,很难比进行对比。甚至是Land和McCann也提出了两种不同的Retinex版本。[29-32]这个模型似乎正重新得到科学界的青睐,有上面的引文就可以看到这一点。关于Retinex算法的研究现状我们可以参考文献33。

本文,我们讨论最基本Retinex算法的数学定义。利用数学语言进行描述,其完全于实现的特点,而且我们也可以把本文作为研究其他Retinex算法的背景。对于数学定义的需求在文献20中提到。我们很好的证明了基础Retinex的数学定义,就当于由Land和McCann提出的最原始的Retinex算法的计算过程。

因为要讨论更多的细节问题,Retinex算法包含若干个参数(例如阈值、路径数目,迭代过程):对于Retinex的属性定性是通过使用数学定义对各个参数进行调整来实现的。最后我们提出对于若干图像的试验结果证实了理论模型的预测。

2、Retinex算法的公式分析

从基本的Retinex算法开始,我们提出一个公式对算法进行数学定义。将在下一节讨论其特点。

A. 基本Retinex算法

基本的Retinex算法是基于HVS利用三个retinal-cortical系统运行的设想提出来的,其中

每个操作都是的在低,中,高三个频率的可见电磁波谱上进行的。每一个的处理过程形成一个的图像,决定一个指数称作亮度,并由L来进行表示。当Retinex用于数字图像时,三个色彩通道中的三重照度值(LR,LG,LB)是由色彩感知即我们所说的图像中每个像素的色彩的叠加得到的。

经过数次试验,Land和McCann得到了一个很有效的计算像素点亮度值的方法,即确定路径数目,由一个随机点开始,结束于点i,计算出路径上连续相邻点的比值结果的均值,使用以下猜想:

·如果比值与1相差的值不超过一个固定的阈值,那么我们则认为该比率是单一的。

·如果比率链在路径上的一个点的值超过了1,那么累计相对亮度则充值为1,因此计

算由那个点重新开始。

第一个猜想成为阈值机制,正是因为这一机制,该算法忽略了色彩的平滑过程,例如,平滑光源变化。

第二中猜想称为重置机制,他是决定Retinex白斑属性的算法,意味着重置机制使每一个点都是白斑的局部参照点。

唯一可用的公式在文献(例如文献10和文献30)中用Retinex算法在每一个给定通道中每一个像素点得到的亮度值L,如下所示:

其中jk是第k条路径的起始点(i是每一条路径的结束点),并且如下式所示:

本文我们想提出一种改进的公式,这种公式更适合于长远的数学分析。我们希望,这一提法也会刺激其他版本Retinex的研究与发展。

B. 公式的一半背景

给定一个数字图像,考虑用N条路径,其中k是起始点为jk,结束点为i的顺序链。nk 为k路径中像素点的个数,设定tk1,...,nk作为路径中的每一个点,例如

k(tk)xt为了简单化,将路径上的两个连续的像素点记为

tk1,...,nk1k和

k(tk1)xtk1,其中

。在每一个固定的色彩通道(c{R,G,B}),像素点的像素值为

I(xtk),I(xtk1)得到比率

RtkI(xtk1)/I(xtk)。由于技术原因,我们设定R01,并且将图像的像素值标准化

在[0,1]之间。

C. 公式

我们要求对每一个通用的像素点i,采用Retinex得到其亮度值(标准化后的),其公式

如下:

其中值。

k:RR,k1,...,N,函数定义如下:k(R0)1,且tk1,...,nk1,0为固定阈

第一项中满足于在像素点

xtk1略低于像素点

xtk时;然后k重置比值

Rtk。

第二项是发生在两个相邻像素间微小的变化的情况下。这种情况下k(Rtk)定义为1,因此比率值输出仍然还是之前的那一步。这就是阈值机制的数学计算。

第三项就是当比值

Rtk大于1,但是比值输出k(R1)k(R2)...k(Rtk)低于1的情况。在

这种条件下,k和第一种情况是一样的。

最后,当k(R1)k(R2)...k(Rtk)1时,k将比值输出链重置为1,因为达到了一个局部“白斑”的效果。这一项就是算法的重置机制(也正是白斑属性)。

如果将每条路径k的输出值

写为L(i),则公式3就可以简化为如下公式:

D. 公式与Retinex数学性质之间的等价关系的证明

如果可以证明上文中Retinex的定义与其计算的函数等价,那么就可以说明输出Lk(i)和

Retinex计算出的结果是等价的。我们通过感应像素点数量来证明:因为nk2会使得证明很繁琐,因此我们选定nk3,然后我们假设该公式在nk1的是正确的,最后证明其在

nk时的正确性。

31·

nk3:Lk(i)tk1k(Rtk)k(R1)k(R2)。我们应该区分16个相互不同的情况(第三和

第四项简单对应于R11,R11);如表1中所示。在所有情况下,我们修正了Retinex的正确属性。

nk2·

nk1:假设

Lk(i)|nk1tk1k(Rtk)k(R1)k(R2)...k(Rnk2)为L(i)的预期增益。

·nk:

Lk(i)|nktk1k(Rtk)Lk(i)|nk1k(Rnk1)nk1。我们必须分析表2中4种独特的项。即使

在这种情况下,我们恢复了正确的增益(contributions)。

E . 对数公式

我们已经证明了公式3描述了基本Retinex算法的函数计算。现在我们将公式3重新写在对数公式中。实际上大部分Retinex运算都是用这个公式代替原始的retinex公式。原因是对数函数将原来的除法运算转换为减法运算,因此大大减少了计算的复杂度。

在构造对数函数时,应该会注意到对于每一个k=1,……,N;因此在应用于在R上的恒等

函数时,得到的效果很好。这样我们得到公式3的另外一种形式。

这样操作的好处在于对数函数可以写成以下形式:

~~~~~我们可以通过定义I(xtk)log(I(xtk)),RtklogRtkI(xtk1)I(xtk),R00来简化公式。我们定义函数k为k(R0)0,并且tk1,...,nk1,

~~

~其中log(1)。利用这些定义,关于亮度的公式可以写为如下形式:

这个公式只包含和与差,而且对于的小值,恰逢非对数公式。必须对每一个像素点取对数进行运算而且应该进行取幂运算,但是这些运算在每个路径上至进行一次。

3、公式的数学分析

现在我们已经拥有一个公式来表示Retinex算法了,我们应该做出关于这个模型的预测。不幸的是,现有的阈值使这个任务很难实现。事实上,为了预测Retinex的属性,我们必须知道有多少比值是低于阈值的,但这几乎是不可能实现的图像的拓扑路径。

我们现在要证明的是,如果我们忽视阈值,然后用简化后的公式3,是否可以对Retinex的本质属性进行预测,同时也对其参数属性进行预测。

A. 0的简化公式

我们想在0的情况下分析公式3,这样函数k的定义就更简单了:因此当阈值为0 的 时候,k就类似于恒等函数或者重置函数。

为了简单化,我们可以通过讨论一条给定路径(起始点为(1)j,结束于(n)i)来消除下标符号k。H作为的参数,其中(H)xH是整个路径区域最亮的像素点。

我们也可以注意到像素点xH造成重置机制。假设在xH之前没有发生重置机制,那我们就得到:

当第一个比例相互取消后,我们马上可以得到下式:

现在,比值I(xH)/I(xH1)明显大于1,因为经过假设,xH为最亮点;而且,由于取消的原因,这个比率和先前的比率减少为下面的形式:

明显,由于上面的原因,这个比值也是大于1的。

因此,重置机制得到启用,且链式输出减少至:

即使重置机制是由路径上的xH之前的其他像素点激起的,这个结论依然是正确的。这个结论可以通过使用xH前最后一个重置的像素点来取代j,然后使用和之前相同的论据来实现。

结论是:当0时,所有的在路径上且在最亮点之前的像素点完全不会影响到L(i)的计算。

在像素点xH之后,重置机制受到抑制,同时函数简化为简单的恒等函数。这一表述可以证明如下:如果所有的比率在到达路径最后的时候仍然低于1,这个表述就是正确的;

I(xK1)/I(xK)1如果,存在像素点xK(K>H),,重置机制就失去效果,因为比率输出值R1...RK减少至:

如果还存在和xK有相同属性的点,结论就变了。如果多个有比xH亮的点,那么上面的所有假设必须考虑到路径上最亮的最后一个像素点。所有的这些结论表明,路径的增益简化为I(i)/I(xH)。

因为这个论据通用于每一条路径,因而我们可以得到每一条路径的增益为:

其中I(xHk)是k路径上的最亮的像素点(k1,...,N)。因而公式3又可以写为:

或者是:

对数域中进行处理。

由于对于每一个k,I(i)是相互的,i是每一条路径的最后一个点,公式18可以写为改进后的形式:

这准确表明在数学范围内,没有阈值的Retinex对于每一个像素强度是做一个乘法运算,利用路径k上的最亮点的逆反值的均值求出乘法因子。

与von Kries算法有明显的相似之处,最大的区别是在我们的模型中,最大亮度值的不是通过遍历整个图像得到的,而是通过该点所在的相应路径。

这种情况表明了该算法存在着对图像和路径有着强烈的依赖性:对于相应的不同的图

像和不同的路径,对于不同的值I(xHk)得到不同的亮度值L(i)。同时路径1,...,N与i都是相连的,使得Retinex算法的局部属性更好,因为在i附近找到像素xHk的可能性更大。

最后,我们应该想到像素值是标准化的,因此0I(xHk)1,k1,...,N,其次

1/I(xk1NHk)N。对于每一个像素i,我们有L(i)I(i);这也说明了,为什么经过没有阈值的

Retinex处理过的图像总是比原来的图像亮。

B. 与没有阈值的Retinex的区别

我们还记得,阈值的作用是降低低通道像素比值的影响,这个比值与图像中伪影的平滑

有关。现在我们要求出含阈值与不含阈值的Retinex的最大区别,这显然对应于这样一个情况:路径完全是在低于阈值的统一梯度下形成的。

举个例子,在这样一种情况下:路径k按照一个持续减少的梯度运动,在每一个连接处的强度比值是小于等于1的。

没有阈值的算法的每条路径的增益是I(i)/I(jK),而包含阈值的却为1.1与I(i)/I(jK)之

nk11(1)间最大差值为。原因是梯度始终在减小,最大的差值就是设定,每一个比值为

1。通过第一个比值I(x2)/I(jk)1,可以得到I(x2)(1)I(jk);因此I(x3)/I(x2)1可

以写成

I(x3)/[(1)I(jk)]1,例如

I(x3)(1)2I(jk)。进行重复级联运算,得到

I(i)(1)nk1I(jk),因此

1I(i)/I(jk)1(1)nk1。与此相类似,我们可以增加梯度(斜率\\

变化率)。

图1(a)表示了灰度级在50到150区域的梯度;图1(b)表示了经过无阈值Retinex运算后的变化。经过含阈值Retinex运算后的图的梯度呈现出的是一个白色的图像,与此不同的是在图1(b)比较符合之前的预测。

然而对于一张真彩图像,让路径在这样的梯度上实现的可能性很小。例如,通常情况下对于一张320x240的图像来说,0.05,这样的话一条路径连续穿过5120个像素,像素灰度值为0-255之间时。

如果路径的梯度交替减少和增加,有阈值的Retinex和无阈值的Retinex的区别在于互相补偿,全局差异减少到一个较小的值。

而且,因为亮度L(i)是通过平均N条路径的亮度Lk(i)得到的,两种算法的全局差异比路径穿越统一的梯度的差异小(或者是等同于)。

在图象上的测试符合下列考虑:rms差异,3种彩色通道的平均,在两种算法的本文图像测试集的值大约是2%。这些选定的测试集由31幅代表不同物体的图像组成(例如:画像,风景,图形图像)。

4、无阈值Retinex公式结果

下面我们将介绍无阈值Retinex公式是如何预测当算法被迭代应用在图像上和大量路径的亮度值增长到很大的值时。

A. 没有阈值Retinex的多次迭代的收敛性

在公式(18)的帮助下,证明如果一幅图像被无阈值的Retinex重复过滤多次以后,他会以一个简单的方式收敛到一副图像。

数学上来讲,进行m次Retinex运算相当于亮度函数与其自身进行m次的处理组合。为了在m=2的情况下将这个组合最简化,我们将Retinex第一次应用修改后的像素I(i)修改为L(i);因此我们得到:

其中

xHk~是在第一次Retinex运算后的给定通道给定路径上的最亮点的像素值。我们

必须强调的是

xHk~和xHk是不一样的,xHk是在Retinex运算之前的最亮点。

L(i)与下标索引k是不相关的,可以从总和中提取也可以分为两个成员,如下所示:

而且,如果我们用L表示Lm次的的组成,马上就可以得到

m

其中

xHkm1

为m-1次Retinex运算后的路径k上的最亮点。

尤其,i点的亮度在式(23)没达到1时,一直都是增加的,但是这种情况也只发生在

Lm1(xHkm1)1,或者换句话说,也就是当所有路径1,...,N上的一点(至少一点)的亮度达

到1。我们称含这种属性的图像为“图像收敛”,因为每一次Retinex算法的进一步迭代都产生相同的图像。

为了验证我们的结论,我们对图2(a)和2(b)中的原始图像采用无阈值Retinex算法进行级联迭代处理。测试中,我们的每一次迭代采用相同的路径同时也随即的改变路径,如图3(a)和3(b)所示。正如预想中的那样,对于最后图像的组合的速度更高,当路径固定的时候。所有测试的图像表明了这个递减的属性,但是每个图像的曲线的几何形状是不一样的。

最后,我们知道亮度L(i)的值相对于每一个通道(R,G,B)是的,而且在路径1,...,N上值为1的点在R,G,B三个通道时不同的。如果这些像素的坐标是一样的,然后通过叠

加在融合的图像中的每一条路径上会产生孤立的白点。对于无阈值的Retinex,这个想法是正确的,和等式23一致。我们的测试结果证明这一点,如图4(a)和4(b)所示。

含阈值Retinex的多迭代的组合仍然需要进一步研究,还是一个尚未解决的问题。

B. 无阈值Retinex的属性与路径数目的关系

现在我们分析一下当N时的情况,其中N为路径的数目。

从数学角度上说,我们需要研究的条件,

在此我们仅仅是分析了单一色彩的图像。对于这样的图像,每一个k,I(xHk)I(i),因此得到

L(i)I(i)/I(i)lim1/N1limN/N1Nk1NN。

现在我们分析一下非单色条件下更有趣的条件。首先应该注意到,一个先验条件,不能讨论关于N时的情况,因为它依赖于我们正在处理的图像。由于这样,我们不得不通过做出合理的假设来分析问题,这个假设就是路径的数量趋向于无穷大时的情况。

为此,请注意,对同一条路径进行多次运算并不好;事实上,路径k的增益Lk(i)完全由最亮的像素点决定的,这和运算多少次是无关的。

出于这个原因,我们只考虑运算一次的情况,同时包含的自交叉口,该交叉口包含普通点j和目标点i。而且,我们认为路径与路径上的像素点的个数有关。

这些拓扑结构上的约束条件和路径的要求暗示了N的增长,路径在达到目标点i之前占到图像的部分越来越大。因此,在能找到整个图像中的最亮点的概率随着N的增加而增加。我们将这个像素定义为x。

因此,存在一个确定数量N0,索引NN0的像素点将得到增益Lk(i)I(i)/I(x),得到当N区域无穷大时:

当N趋向于无穷大时,收敛于1/I(x),因此得到:

这个公式暗示了该算法,当N趋于无穷大时会失去其局部属性,渐渐转化为“white patch”模型。

对于图4(c)和4(d),在消除主导色(the chromatic dominant)的能力因为使用的路径数不同,图4(c)使用了2个节点,图4(d)使用了2个节点。使用von Kries

410算法处理后的图像与图4(d)的图像的rms距离为0.

特别是当在每一个通道中I(x)1等于1,L(i)I(i);例如,如果图像中有一个白点,在条件下的算法只是复制了原来的图像。

5、 结论与观点

本文我们提出了一个分析公式从数学意义上描述了Retinex算法的特性。该公式所在的背景与遍历征服图像的路径的拓扑结构式无关的,因此,该公式适用于所有的几何路径不同的基本Retinex算法。

我们对这个命题进行了严格的证明,之后我们有详细的分析了它的结果。这个分析不同于参考文献3,因为我们使用了不同的数学机制同时也包含了重置机制。

含阈值的Retinex公式不可预测,从这个意义上讲,我们不能说明没有完全图像细节算法的定性属性。然而,如果消除阈值,公式明显简化了,同时也会引起对于这个模型的定性测试的可能性。

在分析这个简化公式的结果之前,我们尽可能量化阈值Retinex与不含阈值Retinex的差异。我们仅仅提出在由小范围持续增长(减小)梯度的大面积区域有理想的差异的情况。在所有其他的情况下,我们希望这两个算法有相同的属性。我们的测试结果与这个猜想是吻合的:我们对30张不同的全彩图像进行处理,使用两种不同的算法,然后我们就发现平均rms差异接近2%。

无阈值Retinex公式的结果是,该算法对于图像和路径有着本质上的依赖性。从这一事实的结果,我们得到对每一个像素来说算法简单来说就是一个乘法算子,这个乘法因子是每一个通道的像素点中最亮点的逆值的均值;因此,不同的图像和路径将会对最后处理的结果造成很大的影响。

由于人类视觉系统是高效的和信息稳定的,可以在不同光照条件影响相下的环境中准确提取出相应的信息,调查在反复对自身进行处理的时候模型的属性是一件很有意思的事情。这一点,之前讨论的,和我们所知道的,只有试验在此使用数学角度进行处理。分析证实,Retinex的多次迭代会收敛到极限图片,包含以下的所有特征:每一条路径的结束点都是固定点,在每一个通道中,至少有一个点有最大值。这与Retinex的“white patch”属性也是相关的。

这个模型的一个很重要的参数,而且也是影响公式最多的参数就是路径数N。Retinex算法的局部属性与这个参数有很大的关系。之前的研究表明,增加路径的数目会得到更加准确的结果,但这也不是对于每个N值都一样;参数N始终是算法调节的关键因素。

我们的数学公式表明,随着路径数目的增加,Retinex渐渐的就变成了von Kries算法,仅是一个全局“white patch”属性。从实验的结果得知,对于此参数的调整仍然是一个值得研究的问题。

对于路径的研究不仅仅局限于本文,这一课题还将成为我们后面研究的一个重点和热点问题。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- banwoyixia.com 版权所有 湘ICP备2023022004号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务