Retinex理解

Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法,它是Edwin.H.Land于1963年提出的。就跟Matlab是由Matrix和Laboratory合成的一样,Retinex也是由两个单词合成的一个词语,他们分别是retina 和cortex,即:视网膜和皮层。Land的retinex模式是建立在以下三个假设之上的:

(1)真实世界是无颜色的,我们所感知的颜色是光与物质的相互作用的结果。我们见到的水是无色的,但是水膜—肥皂膜却是显现五彩缤纷,那是薄膜表面光干涉的结果。

(2)每一颜色区域由给定波长的红、绿、蓝三原色构成的;

(3)三原色决定了每个单位区域的颜色。

Retinex理论的基础理论是物体的颜色是由物体对长波(红色)、中波(绿色)、短波(蓝色)光线的反射能力来决定的,而不是由反射光强度的绝对值来决定的,物体的色彩不受光照非均匀性的影响,具有一致性,即retinex是以色感一致性(颜色恒常性)为基础的。不同于传统的线性、非线性的只能增强图像某一类特征的方法,Retinex可以在动态范围压缩、边缘增强和颜色恒常三个方面打到平衡,因此可以对各种不同类型的图像进行自适应的增强。

40多年来,研究人员模仿人类视觉系统发展了Retinex算法,从单尺度Retinex算法改进成多尺度加权平均的Retinex算法,再发展成彩色恢复多尺度Retinex算法。

一、单尺度SSR(Single Scale Retinex)

一幅给定的图像S(x,y)可以分解为两个不同的图像:反射图像R(x,y)和亮度图像(也有人称之为入射图像)L(x,y),其原理如下图所示:

由于SSR算法中所选用的高斯函数特点,对于动态范围大幅度压缩和对比度增强两个指标,增强后的图像不能同时保证。但是为了平衡两种增强效果,就必须选择一个较为恰当的高斯尺度常量C。C值一般取值在80–100之间。

McCann Retinex 算法是McCann和Frankle一起提出的一种Retinex算法,该算法是一种基于多重迭代策略的Retinex算法,单个点的像素值取决于一条特定路径的环绕的结果,经过多次迭代逼近理想值。通过比较螺旋式路径上的各像素点的灰度值来估计和去除图像的照度分量。

clip_image002[8]

图8.McCann Retinex算法路径选择示意图

这个图是参照人家论文的,不过我准备像论文那样讲,因为太复杂了,不容易懂。从图中我们可以看到,算法沿着这个螺旋式的路径选取用于估计的点,并且越靠近预测的中心点选取的点数越多。这个从实际物理上也解释的通,靠的近的像素点与中心像素点的相关性肯定要要比远处的点要高。

该算法估测图像经过以下几个步骤:

1. 将原图像变换到对数域clip_image004[8],彩色图像对各通道都进行对数变换;

2. 初始化常数图像矩阵clip_image006[8],该矩阵作为进行迭代运算的初始值;

3. 计算路径,如上图8所示,这里令clip_image008[8]为路径上的点,从远到近排列;

4. 对路径上的像素点按照如下公式运算:

clip_image010[8]

clip_image012[8]

公式所表示的大致意思为:从远到近,中心点像素值减去路径上的像素值得到的差值的一半与前一时刻的估计值之间的和。最终,中心像素点的像素大致的形式为

clip_image014[6]

其中clip_image016[6]表示中心位置最终的反射率估计,clip_image018[6]为常数值为转换后的图像中的最大值,在步骤2中被确定。从这里将clip_image020按照Retinex理论进行分解,最终公式中可以看到,最终照度分量被去除了,而中心位置的反射率由路径上各点的反射率之间的差值进行估计,并且从轨迹上可以看到,靠的越近的在最终估计的时候所占比重越大。

就我个人理解,这类估计算法,实质是将中心位置和周围亮度之间的差异作为最终中心位置的反射率的估计。如果中心位置亮度本身高,那么最终的结果还是高亮度的;如果中心位置亮度低,那么中心与其它点的差肯定是负值,最终的结果clip_image016[7]就比较小,亮度就比较低。这就要求路径上的点需要能够很好地代表整幅图像的特性,如果图像本身很规则,那么可能中央与周围计算的结果无法估测该点像素本身的灰度特性,结果就与预期的可能不一样了。如下图9可以看到,算法实质是估计中心和周边的差值,因此图中原本黑色区域的图像由于与周边差别很小,因此呈现高亮度;而在小型的矩形周围随着距离的增大,差别渐渐变小,因此亮度逐渐升高,无法体现原本黑色像素点处原本的亮度特性。

clip_image022

图9.算法的测试图(来自Retinex in Matlab)

从原始算法中可以看到,还有一个重要的步骤,就是迭代。迭代的作用是尽可能保留中央周边差的分量,原本每次只保留中央周边差的一半(见步骤4中最后的除2的处理),迭代次数越多,保留的分量就越多,迭代n次保留的分量就是clip_image024,这样局部的信息就更多,相当于降低动态范围的压缩。这样的操作可以使图像更加自然,但是会增加运算量,下图可以更加明显地看出迭代次数的影响:

clip_image026

图10.迭代次数的影响

三. 带颜色恢复的MSR方法MSRCR(Multi-Scale Retinex with Color Restoration)

在以上的两幅测试图像中,特别是第二幅,我们看到明显的偏色效果,这就是SSR和MSR普遍都存在的问题。

为此,研究者又开发出一种称之为带色彩恢复的多尺度视网膜增强算法(MSRCR,Multi-Scale Retinex with Color Restoration) ,具体讨论的过程详见《A Multiscale Retinex for Bridging the Gap Between Color Images and the Human Observation of Scenes》论文。

1. 原理

在前面的增强过程中,图像可能会因为增加了噪声,而使得图像的局部细节色彩失真,不能显现出物体的真正颜色,整体视觉效果变差。针对这一点不足,MSRCR在MSR的基础上,加入了色彩恢复因子C来调节由于图像局部区域对比度增强而导致颜色失真的缺陷。 
改进算法如下所示:

RMSRCRi(x,y)=Ci(x,y)RMSRi(x,y)RMSRCRi(x,y)=Ci(x,y)RMSRi(x,y) …………(8) 
Ci(x,y)=f[I′i(x,y)]=f[Ii(x,y)∑Nj=1Ij(x,y)]Ci(x,y)=f[Ii′(x,y)]=f[Ii(x,y)∑j=1NIj(x,y)] …………(9) 
f[I′i(x,y)]=βlog[αI′i(x,y)]=β{log[αI′i(x,y)]−log[∑Nj=1Ij(x,y)]}f[Ii′(x,y)]=βlog⁡[αIi′(x,y)]=β{log⁡[αIi′(x,y)]−log⁡[∑j=1NIj(x,y)]} …………(10) 
其中参数说明如下:

  • Ii(x, y)表示第i个通道的图像
  • Ci表示第i个通道的彩色回复因子,用来调节3个通道颜色的比例;
  • f(·)表示颜色空间的映射函数;
  • β是增益常数;
  • α是受控制的非线性强度;

MSRCR算法利用彩色恢复因子C,调节原始图像中3个颜色通道之间的比例关系,从而把相对较暗区域的信息凸显出来,达到了消除图像色彩失真的缺陷。 
处理后的图像局部对比度提高,亮度与真实场景相似,在人们视觉感知下,图像显得更加逼真。

但是MSRCR算法处理图像后,像素值一般会出现负值。所以从对数域r(x, y)转换为实数域R(x, y)后,需要通过改变增益Gain,偏差Offset对图像进行修正。使用公式可以表示为: 
RMSRCRi(x,y)′=G⋅RMSRCRi(x,y)+ORMSRCRi(x,y)′=G⋅RMSRCRi(x,y)+O …………(11) 
式(11)中,G表示增益Gain,O表示偏差Offset。它们的值取决于软件中的算法实现。

2. MSRCR其他实现方法

MSRCR方法如上,且获得了不错的效果。但在博文《MSRCR》中,作者认为论文里的方法不起任何作用,并且论文里为了这个又引入了太多的可调参数,增加了算法的复杂性,不利于自动化实现。 
博文作者认为,GIMP的contrast-retinex.c文件里使用的算法很好,效果也很好。他直接从量化的方式上入手,引入了均值和均方差的概念,再加上一个控制图像动态的参数来实现无色偏的调节过程,简要描述如下:

  • 计算出 log[R(x,y)]中R/G/B各通道数据的均值Mean和均方差Var(注意是均方差)。
  • 类似下述公式计算各通道的Min和Max值。 
    • Min = Mean - Dynamic * Var;
    • Max = Mean + Dynamic * Var;
  • 对Log[R(x,y)]的每一个值Value,进行线性映射: 
    R(x,y) = ( Value - Min ) / (Max - Min) * (255 - 0), 同时要注意增加一个溢出判断,即: 
    • if (R(x, y) > 255) R(x,y) = 255;
    • else if (R(x,y) < 0) R(x,y) = 0;

就是经过这么简单的处理,实践证明可以取得非常好的效果,下面贴出一些处理后的效果

猜你喜欢

转载自blog.csdn.net/weixin_41484240/article/details/81326961
今日推荐