![c1294f21eb677498ce0b457c7cde4153.png](https://img-blog.csdnimg.cn/img_convert/c1294f21eb677498ce0b457c7cde4153.png)
本文针对一般水下视频图像清晰化方法使图像失真、噪声放大以及视频播放中相邻帧出现闪烁跳跃等现象,提出了基于颜色空间的单幅水下图像清晰化方法和基于时空信息融合的水下视频清晰化方法
简述:鉴于当前大多单幅图像清晰化算法基于局部块先验,清晰化后的图像中仍存在块状效应,研究了基于非局部先验的颜色空间水下图像清晰化方法,对非局部先验的清晰化方法进行改进,以得到更准确的透射率。同时,根据水下图像成像特点,利用暗通道先验与颜色饱和度相结合的方式对水下图像背景光进行修正。
关键效果:能较好地消除视频帧播放时的闪烁现象,同时在相邻视频帧之间的颜色一致性和时间连贯性有较好的保持性,并能成功复原出对比度高、纹理细节清晰的水下视频
水下光学成像模型
光线在水中的传播具有复杂的散射和衰减效应,该模型可以看作直接分量Id,前向散射分量If和后向散射分量Ib的线性叠加。最后目标成像系统接收的光强为:
E r ( x,y )= Id ( x,y )+ If ( x,y )+ Ib ( x,y )(1)
直接分量 Id ( x,y )是物体表面的反射光经过
衰减直接得到的,可表示为:
Id ( x,y )= J ( x,y ) ·t ( x,y )
其中J为成像物体最初反射的光强度,t(x,y)为透射率。
后向散射分量Ib一般表示为:
Ib ( x,y )= I∞ ( 1- t ( x,y ) ) (3)
其中,I∞为全局背景光 。
由于If对成像影响极小,通常忽略其影响,可以将(1)式简化为:
E r ( x,y )= J ( x,y ) t ( x,y )+ I∞ ( 1- t ( x,y ) ) (4)
可得水下清晰图像:
J ( x,y )= (E r ( x,y )- I∞)/t ( x,y ) + I∞ (5)
由式子5可知,我们需要知道背景光估计值与透射率估计值才能得到水下清晰图像,由于视频是连续的单帧图像所构成的,所以水下视频的清晰化离不开单帧的水下图像处理。我们将先探讨单幅水下图像的背景光和透射率的处理。
![10a6095b22fac6c05bb8768c00881d3f.png](https://img-blog.csdnimg.cn/img_convert/10a6095b22fac6c05bb8768c00881d3f.png)
2.1水下视频图像的背景光值估计
本文使用暗通道先验与颜色饱和度相结合对水下图像背景光进行估计,并对视频序列的背景光值提出基于时空信息的融合方法,减少由单帧图像背景光值估计的不同而出现的闪烁现象。
暗通道先验理论在大多数情况下能较好的检测景深最大区域,提高了背景光估计的准确性,但是水下环境较为复杂,图像污染严重,暗通道图像中非背景区域部分的亮度往往较高,而背景区域的暗通道图像亮度不够高,因此,当水下图像中存在大面积高亮度区域时,背景光估计就会出现错误。
同时,水下图像背景区域的RGB三通道的亮度是不均衡的,红色通道的亮度远小于蓝、绿色通道,如果单独使用颜色饱和度对背景光进行估计,也会出现错误,但通过结合暗通道先验理论和颜色饱和度估计背景光,就可以避免背景光估计错误对图像复原的影响。
本文中颜色饱和度的定义:
colorSaturation ( x )= 1-[minC ∈ { r,g,b }( I c ( x ) )]/[maxC ∈ { r,g,b }( I c ( x ) )] (6)
式中:c ∈ { r,g,b }为图像像素点的 3 个不同通道;
I(c x)为水下成像图像 I的 RGB 通道值。
取图像中每个点的RGB三通道最小值,除以图像中每个点的RGB三通道最大值,再用1减去这个值,赋值给新矩阵上的每个点即可。
背景光所在区域是水下图像中距离最远的区域(背景区域),该区域通常具有较高的颜色饱和度。可以认为该区域的颜色饱和度是大于图像中各像素点的颜色饱和度的平均值,因此本文为图像背景光的颜色饱和度设定一个阈值:
clolorSatutation0 = p * avg(colorSatutation) (7)
colorSatutation 0 为水下图像背景光的颜色饱和度的下阈值;avg ( colorSatutation ) 为各像素点的颜色饱和度的平均值;p 为参数,设置为 1. 2,对于特殊情况可自行调整该参数,使其能获取更准确的背景光值。
我们将所有颜色饱和度大于colorSatuation0的像素点筛选出来,作为背景光 的候选区域,随后取这些像素点亮度的平均值作为背景光值,并使用双边滤波器对计算到的颜色饱和度图进行处理,将其亮度值线性拉伸到[0,255]范围内,从而减少水下图像中某些亮度较高的区域对背景光估计带来的影响。
随后,针对暗通道先验方法对水下图像背景光估计可能存在不准确的问题,将颜色饱和度与暗通道先验相结合对水下图像背景光进行估计,以提高背景光估计的准确性。具体方法为:在得到的暗通道图上融合颜色饱和度的思想,选取候选区域中colorSatutation值较大的前0.1%的像素点,在对应的水下图像中筛选出这些像素点,取这些像素点的colorSatuation平均值作为背景光值I∞
2.1.2时空信息融合的视频背景光值估计
目前大多数水下图像增强方法不适合对于水下视频进行清晰化处理,因为没有把视频中的空间和时间信息利用起来,如果只是采用单幅水下图像增强方法,视频图像相邻帧之间的相关性就会被打断,整个视频帧的色彩一致性不能保持,同时时间复杂度将会非常高!
如果在对水下视频进行处理时逐帧模拟水下效应,将会发现视频的闪烁现象不仅是由透射率的变化引起的,同时也是由视频序列中每帧计算的背景光之的频繁变化导致的。在一极短时间区间内,固定位置、角度的背景光值是一常数,但由于水的流动,摄像机角度的变化及视频中物体运动等原因,导致视频帧之间的背景光发生了变化。
针对这一问题,本文提出了一种使用调整因子α计算当前帧背景光的方法:
![d3bd16dd87f5009fe1731ab5a8f75997.png](https://img-blog.csdnimg.cn/img_convert/d3bd16dd87f5009fe1731ab5a8f75997.png)
其中I∞k为最终得到的当前帧背景光,I∞(k-1)为上一帧的背景光,α为影响程度的调整因子,本文实验中将其设定为0.7, I∞ds为当前帧暗通道先验与颜色饱和度相结合的方法获得的当前帧背景光。
对于当前帧k,当k对10取模为1时(即k=1、11、21…),并且k非第一帧时,当前帧背景光为:
![17a841bc3e97cfa96276f998e3e7ca3f.png](https://img-blog.csdnimg.cn/img_convert/17a841bc3e97cfa96276f998e3e7ca3f.png)
β 为影响程度的调整因子,本章实验中,β 值设置为 0. 5。从第一帧开始及每 10 个间隔处的这样两个帧之间的所有视频帧,都采用式(8)进行背景光估计。
2.2 水下视频图像的透射率估计
本节通过对视频序列的透射率值进行时空信息的自适应融合,并基于视频中相邻帧之间的相关性保持颜色一致性,最终实现水下视频清晰化。
2.2.1基于颜色空间的水下图像透射率估计
在雾化图像中原来处于同一颜色簇的像素点在 RGB 空间形成了一条雾线,同样对于水下图像来说,处于同一颜色簇的像素点,在 RGB 空间也会形成一条雾线:
![0828a1cf1cb2d5cf312f7bcaeff376de.png](https://img-blog.csdnimg.cn/img_convert/0828a1cf1cb2d5cf312f7bcaeff376de.png)
由式(4)可知,当 t = 1 时,Er ( x )= J ( x );当t = 0 时,Er ( x )= I∞,即雾线的两个端点是清晰化图像 J 和全局背景 I∞。
E r ( x,y )= J ( x,y ) t ( x,y )+ I∞ ( 1- t ( x,y ) ) (4)
(由上式可知,雾线的两个端点是清晰化图像J和全局背景I∞)
![26131b87e68ebbb739161bb05442ef48.png](https://img-blog.csdnimg.cn/img_convert/26131b87e68ebbb739161bb05442ef48.png)
(笔者用matplotlib库绘制的3D点阵图)
定义Ea(x)为原水下图像到全局背景光的差值:
![b784e24fa42181dbd22eaf57ab167006.png](https://img-blog.csdnimg.cn/img_convert/b784e24fa42181dbd22eaf57ab167006.png)
因此,可以将I∞作为坐标系的原点,用球极坐标系来表示Ea(x):
![f0b6d486ec71a50c1e31f541e3caf3a3.png](https://img-blog.csdnimg.cn/img_convert/f0b6d486ec71a50c1e31f541e3caf3a3.png)
式中,参数r(x)为像素点到球心的距离,则原图像的像素坐标被表示为球极坐标系中以背景光I∞为原点的坐标点,φ为维度,θ为经度。根据式(5):
J ( x,y )= (E r ( x,y )- I∞)/t ( x,y ) + I∞ (5)
和
r(x)=||Er ( x )- I∞ ||
可得:
r( x )= ||J ( x )- I∞ ||·t ( x ) (12)
由式4可知每条雾线都会经过球极坐标系上的原点,再由上式可知:位于同一条雾线上的像素点r值和t值成正比,最大半径对应的透射率t值为1,每条雾线上的r值最大的地方就是受到雾影响最小的像素点位置。当t=1时,最大距离半径Rmax为:
![e0d9c44daa7a486ebbadef014901bba4.png](https://img-blog.csdnimg.cn/img_convert/e0d9c44daa7a486ebbadef014901bba4.png)
根据式12、13,可得透射率的计算式:
![9f0b95aa1a93658724bd56ba26bd8673.png](https://img-blog.csdnimg.cn/img_convert/9f0b95aa1a93658724bd56ba26bd8673.png)
假设每条雾线上的最大半径点为清晰化的点,则对每条雾线进行估计可得最大半径的定义:
![44729eef0da4921e83c786cc12cb0890.png](https://img-blog.csdnimg.cn/img_convert/44729eef0da4921e83c786cc12cb0890.png)
结合式(14)(15),得到每个像素点的透射率估计值:
![507c48d64871686fc30e5dddf816e65e.png](https://img-blog.csdnimg.cn/img_convert/507c48d64871686fc30e5dddf816e65e.png)
但是式(16)是以假设距全局背景光最远的像素点为清晰化的点为依赖的,并且每条雾线上都存在这样清晰化的像素点为前提,但是所有雾线上的半径最大的像素点并不一定都是清晰化的点。 当半径最大的像素点受到水下环境影响时,最大半径 r̂ max 小于理想情况下的r̂ max,因此我们对其作出改进:设定透射率的取值范围: [0.1,1]