基于Retinex理论的微观驱替图像增强算法
2022-04-28赵文煜滕奇志何海波
赵文煜,滕奇志,何海波,龚 剑
(1四川大学 电子信息学院,成都 610065;2成都西图科技有限公司,成都 610065)
0 引 言
微观驱替实验是石油地质研究人员在实验室进行的模拟实验,目的是研究油层结构提高采收率。实验人员仿照真实岩石薄片图像制作成玻璃刻蚀仿真模型,首先在仿真模型注入深色的石油至饱和,再利用水、化学剂等介质作为驱替剂进行驱替实验。驱替过程的图像通过显微镜连接高速工业相机采集记录下来写入磁盘,后期通过分析序列图像评价驱替剂效果。微观驱替图像采集过程中,不同研究者使用的透射光源、显微镜、工业相机等硬件条件存在差异性,图像会呈现照度不均现象,造成图像分割效果不佳,对后续的目标提取、参数计算等工作造成困难。因此,采用光源校正算法能提高微观动态驱替图像质量,对后续的石油地质研究人员客观准确地评价驱替剂效果具有重要意义。
Retinex理论的主要思想是人眼感知系统的颜色恒常性,即人眼中物体的颜色不会随着照明中红光、绿光和蓝光的相对数量的变化而发生显著变化。1985年,Land等人基于视网膜和大脑皮层的特性提出了Retinex理论。此后,发展出多种基于随机路径、泊松方程等的Retinex算法。Jobson等人提出了基于中心环绕函数的单尺度Retinex算法(SSR),并发现使用高斯滤波作为环绕函数处理效果较好,但是SSR算法存在明显的雾化现象,图像丢失了部分细节;研究者又通过拉普拉斯算法衍生到多尺度Retinex算法(MSR)。SSR和MSR算法处理后的图像会产生色偏和局部色彩失真,从而影响整体的视觉效果。Retinex理论研究者引入色彩恢复因子至色彩恢复多尺度Retinex算法(MSRCR),解决了传统Retinex算法色偏和失色的问题。实验证明,MSRCR能明显改进MSR的色偏问题并扩展图像动态范围,增强暗、亮区域的图像细节,但是MSRCR会产生局部区域过亮的问题。
传统Retinex算法主要使用高斯滤波估计照度分量,因高斯滤波是各向同性滤波,结果会产生光晕效应,导致对比度下降。针对此问题,研究者采用具有各向异性的保边滤波器估计照度分量。Liang等人采用双边滤波替换高斯滤波,对降低光晕效应有不错的效果,但是双边滤波具有较高的时间复杂度,造成算法运行时间过长。肖创柏、许凤麟等人使用引导滤波估计照度以降低光晕效应,其计算有效且高效,但是引导滤波的时间复杂度仍有改进空间。Zotin、冯瑞利等人将图像从RGB颜色空间转换至其他颜色空间,只均衡亮度分量获得了不错的效果,但是转换彩色空间对于尺寸较大的微观驱替实验图像会产生额外的运行时间。
本文采用快速引导滤波算法对图像进行照度估计,后使用多尺度Retinex算法对图像照度分量和反射分量计算得出结果。本文算法通过采用快速引导滤波方法克服了高斯滤波光晕现象,保留了边缘信息,较双边滤波等算法的时间复杂度低,解决了原图由于光照不均导致后期二值化不准确的问题。
1 微观驱替图像分析
受研究者实验室透射光源、显微镜等硬件条件影响,以及部分高温高压条件下的微观驱替实验对光源造成的限制,采集到的图像存在照度不均匀的现象,进而导致使用传统阈值分割算法时分割效果较差,也就无法得到驱替实验相关数据。本文采用实际微观驱替实验中光照不均的序列图像为样本进行分析。微观驱替图像使用工业相机采集,均为24位RGB图像,其中浅色的部分是颗粒,深色的部分是颗粒缝隙中注入的石油。图1为均匀照度和光照不均的微观驱替图像和其Otsu算法分割图对比。
图1 微观驱替实验图像和Otsu算法分割图Fig.1 Images of micro-displacement experiment and segmentation diagram of Otsu algorithm
分别对2类光照条件下的微观驱替图像进行分析:
(1)均匀照度条件下,深色的石油部分清晰,浅色的颗粒亮度一致,能够把石油部分完整地分割出来。
(2)不均匀照度条件下,图像中心区域照度过高,四周区域较暗,中心颗粒亮度和四周颗粒亮度不一致,分割结果出现较多的过分割现象。
因此,本文的研究内容是针对照度不均匀的微观驱替图像的光源校正算法,为其后续使用传统阈值分割算法提供基础。
2 Retinex光照自适应均衡算法
针对微观驱替序列图像存在照度不均匀的问题,本文提出一种改进的基于Retinex理论的照度不均校正算法。本文首先使用快速引导滤波算法估计原始图像的照度分量,去除传统高斯滤波算法下的光晕效应;计算反射分量图像获得光照均衡的图像,克服图像分割目标和背景粘连的问题。算法流程如图2所示。
图2 本文算法流程图Fig.2 The algorithm flow chart of this paper
2.1 Retinex算法理论
Retinex算法理论如图3所示。该理论认为,原始图像(,)是由照度分量(,)和反射分量(,)组成,用公式表示如下:
图3 Retinex算法理论图Fig.3 Retinex algorithm theory diagram
观察者看到的原始图像(,),实际是反映物体原本性质的反射分量(,)和光照的照度分量(,)的卷积。使用Retinex算法进行光照均衡的核心步骤就是从原始图像(,)中,估算出照射分量(,),分解出反射图像(,),去除光照不均匀对图像的影响,只保留反射分量,达到改善图像视觉效果的目的。1997年,Jobson等人提出了单尺度Retinex算法(SSR),具体公式表示如下:
其中,表示颜色通道;(,)为原始图像;(,)为反射分量图像;(,)为照度图像分量。照度分量(,)依据式(3)由原始图像(,)卷积环绕函数(,)估计得到,“*”表示卷积运算。(,)的形式如下:
其中,表示归一化因子,是环绕尺度。SSR算法是将原图像(,)转换到对数域代入公式(2)求出反射分量,此后将求出的反射分量转换回实数域完成光照均衡,SSR运算速度较早期的Retinex算法有显著的提高,物理意义更加地明确。
2.2 多尺度Retinex算法
单尺度Retinex算法的处理结果存在如下2个问题:
(1)SSR算法增强后的图像有明显的光晕现象,图像边缘信息损失严重。
(2)图像出现色偏现象,即部分像素点的色彩出现明显偏差。
因此,本文采用多尺度Retinex算法(MSR)对微观驱替图像进行光照均衡。
多尺度Retinex算法是单尺度Retinex算法的改进,将原始图像分为低、中、高三个尺度处理,很大程度上改进了SSR算法色偏和动态范围压缩的问题。MSR公式表示如下:
其中,(,)是环绕函数;w是相关环绕函数的权重;通常为图像、、三个颜色通道。
实际应用中,可以根据情况选择参数环绕尺度(通常分高、中、低三个尺度取值)和的取值。本文针对微观驱替光照不均图像选取参数3,尺度取值为50,120,200,13。本文将原始图像(,)三个通道转至对数域由式(5)分别计算出反射分量,再将反射分量使用式(6)转化至实数域,得到微观驱替图像光照均衡后的结果。
2.3 基于快速引导滤波照度估计
针对微观驱替图像光照不均的现象,Retinex算法的关键步骤是选取一定的算法估计照度分量图像。传统Retinex算法选择高斯模糊函数作为环绕函数,但是高斯滤波函数是各向同性滤波器,仅根据像素点的欧式距离赋予当前像素的照度,其核函数相对于待处理的图像是独立无关的,正是Retinex算法产生光晕效应的原因。运算时间复杂度方面分析,高斯滤波的时间复杂度为(),这里的、为图像尺寸大小,是滤波器窗口大小,对于5 120×5 120等尺寸偏大的微观驱替图像,照度估计整体序列图像时计算时间过长。因此,本文提出使用快速引导滤波作为Retinex算法的照度估计算法,避免微观驱替图像在照度估计时产生光晕效应和运行时间过长问题。
引导滤波在边缘感知、细节增强等应用表现出色,是最快的保边滤波器。引导滤波的原理是建立引导图像与输出图像的线性模型,即设q是中以像素为中心的窗口ω的线性输出,公式表示如下:
其中,是像素点索引;(,b)是窗口ω的线性系数;ω通常取半径为的正方形窗口。对式(7)两边取梯度得到∇∇,表明引导图存在边缘时,输出结果则存在边缘。
假设输出图像是输入图像滤波前的结果,根据线性岭回归求出式(7)中的参数,即:
3 评价
本文实验的计算机配置为IntelI5-6500@3.5 GHz处理器,内存16 GB,Win10操作系统,算法使用VS2010 C++编写。为验证本文算法,选取8组来自各地微观驱替实验室存在光照不均的微观驱替实验序列图像共400余张作为实验数据库。
所有微观驱替图像按组使用本文算法与MSR算法、MSRCR算法、基于双边滤波的Retinex算法进行处理并对比分析。本文算法实验参数设置:MSR算法的高斯核取值为40,权值都为1/3;MSRCR算法的高斯核取值为40,权值都为1/3,色彩恢复参数20,1;双边滤波算法滤波器参数100,40;快速引导滤波算法为20,80,比率32。
3.1 主观评价
微观驱替图像分析的主要关注点在于深色的石油部分的显示和分割提取,本文选择3组具有代表性的微观驱替实验序列图像的Retinex算法增强图和其使用Otsu算法分割图像进行展示。研究中按照基于高斯滤波的MSR算法、MSRCR算法、基于双边滤波的Retinex算法和本文算法的顺序进行比较分析。图4、图5、图6是3组实验结果,每组中图像(a)为原图,(b)是使用高斯滤波的MSR算法结果图,(c)是使用MSRCR算法的结果图,(d)是使用基于双边滤波的Retinex算法的结果图,(e)是使用快速引导滤波的本文算法结果图;图像(a1)、(b1)、(c1)、(d1)、(e1)分别是是图像(a)、(b)、(c)、(d)、(e)的经过Otsu算法的分割结果。
图4 处理图像第一组Fig.4 The first group of processed images
图5 处理图像第二组Fig.5 The second group of processed images
图6 处理图像第三组Fig.6 The thrid group of processed images
3组图像中,原图(a)均存在中心照度过高,四周偏暗的情况。由图(a)分割得到的图(a1)四周出现深色的石油和颗粒粘连在一起的情况,这样的分割结果会导致统计石油面积出现误差且无法客观评价驱替效果。3组图像中的(b)是(a)经过基于高斯滤波的MSR算法结果,改善了图像中心照度过高的情况,但处理结果出现明显的光晕效应,造成边缘清晰度损失严重和低对比度,导致视觉效果不佳。图(c)是MSRCR算法结果,光照不均的现象得到明显改善,但存在局部区域过亮的问题。图(d)是基于双边滤波的Retinex算法结果,光照均衡效果理想,边缘保留较好。图(e)是本文算法的运行结果,有效改善图像局部照度过亮的问题,提升了四周较暗的区域亮度,并且明显没有产生光晕效应,目标边缘清晰。
图像(a1)、(b1)、(c1)、(d1)、(e1)是Otsu算法分割的结果,第一组图像(a1)四周、第二组图像(a1)右侧、和第三组图像(a1)右上角均出现明显粘连现象。(b1)是基于高斯滤波的MSR分割结果,3组结果中分割粘连的现象均得到较好的改善,深色石油部分分割基本完整,但是局部仍存在少量欠分割现象。(c1)是MSRCR算法的分割结果相比MSR较好,但仍存在少量的欠分割现象。(d1)是双边滤波算法的分割结果达到要求,无明显误分割现象。(e1)为本文算法光照均衡后Otsu分割后的结果图,分割的完整度和准确度良好,无明显欠分割和过分割的现象。图7是图4和图5实验图像的局部放大图,MSR和MSRCR第一行左上角和第二行右下角存在明显欠分割现象,基于双边滤波的算法和本文算法结果分割结果表现较好,无明显的误分割现象。
图7 分割结果局部放大图Fig.7 A partial enlarged view of the segmentation results
实验结果表明,本文算法能有效改善微观驱替图像光照不均的现象,处理后的图像光照均衡,对比度较好,边缘保留清晰,未产生光晕现象,无明显的局部区域过亮的情况;另外,均衡后的图像使用Otsu分割算法的结果准确性高,无明显的过分割和欠分割区域,对下一步准确分析微观驱替实验参数奠定了基础。
3.2 客观评价
为了进一步验证本文算法的有效性,选择如上3组光照不均的微观驱替实验序列图像,每组随机抽取任意时刻的图像各20张进行客观指标计算。本文从客观评价角度出发,引入图像标准差、平均梯度、运行时间为指标进行对比。
标准差衡量图像的对比度,标准差越大,说明图像的对比度越好,公式表示为;
平均梯度反映了图像的清晰度和纹理变化,其数值越大说明图像越清晰,公式表示为:
针对微观驱替序列图像的光照均衡,算法的运行时间也是考虑的重要因素之一。第一组实验图像大小为5 120×5 120;第二组实验图像大小为2 048×1 536;第三组实验图像大小为1 624×1 236。
算法客观指标对比见表1。表1中3组图像评价结果显示,本文算法的标准差较基于高斯滤波的MSR算法高46.5%、3.10、2.56,较MSRCR高5.7%、7.6%、6.1%,较基于双边滤波的Retinex算法高23.9%、20.5%、11.6%;平均梯度方面,本文算法较MSR高25.7%、2.52、2.11,较MSRCR高30.8%、20.5%、35.1%,略低于基于双边滤波的Retinex算法的数值,说明本文算法对边缘保护有明显作用。本文算法运行时间较双边滤波减少95.7%、97.2%、97.3%,较MSRCR算法减少17.9%、20.6%、23.7%,运行时间优势明显。综合以上指标,进一步证明了本文算法对于微观驱替实验图片光照均衡的优越性。
表1 算法客观指标对比Tab.1 Comparison of objective indicators of the algorithms
4 结束语
本文提出一种改进的Retinex的光照均衡算法,有效解决微观驱替实验图像中光照不均的问题。本文在MSR增强算法的基础上,提出了一种基于快速引导滤波的多尺度Retinex图像增强算法。本文算法对微观驱替实验实际中采集的光照不均的序列图像进行处理,并与MSR、MSRCR和基于双边滤波的Retinex算法进行比较。综合客观实验数据表明,本文算法在标准差、平均梯度综合方面较其他3种算法优势明显,且运算时间较基于双边滤波的Retinex算法提高92%以上。视觉角度上,本文算法克服了传统Retinex算法存在的光晕效应和局部区域过亮的问题,且运行时间方面优势明显,其结果使用传统阈值分割算法能够较准确地分割出图像中的石油部分,分割效果相较于MSR、MSRCR优势明显且接近基于双边滤波的Retinex算法,为下一步准确计算采收率等参数提供了有效支撑。