【ISP】去雾算法(1)

论文:Optimized contrast enhancement for real-time image and video dehazing

项目与作者主页:http://mcl.korea.ac.kr/projects/dehazing/#userconsent#

推荐一个实现:https://www.cnblogs.com/Imageshop/p/3925461.html

适合vs2022和opencv3.几版本:https://github.com/Accustomer/TheThingsWithImage/tree/main/Code/6_OCEDehazing

目录

1. 摘要

2. 核心算法

2.1 核心思想

2.2 模型

2.3 图像去雾

​编辑2.3.1 大气光预测A

2.3.2 最优传输估计t(x)

2.3.3 传输估计t的微调

2.3.4 实验结果

​2.4 视频去雾

2.4.1 Temporal coherence

2.4.2 Cost function optimization

​2.4.3 Fast transmission refinement

2.4.4 实验结果

​3. 总结

参考


1. 摘要

本文提出了一种针对含有雾的图像和视频快速、完善的去雾算法。观察发现有雾的图像普遍具有低对比度,我们通过增强对比度来修复图像。然后多度的增强这些低对比度会截断像素值以及导致信息丢失。因此,我们提出一个包含对比度和信息损失的损失函数。通过最小化损失函数,该算法不仅增强了对比度而且有效的保留了图像信息。另外,我们将图片去雾算法扩展到视频去雾。我们通过计算透射率的相关性减少对视频去雾时的闪烁程度。实验证明该算法去雾的有效性以及快速地进行实时去雾。

2. 核心算法

2.1 核心思想

首先设计了一个cost function在最小化对比度的同时减少信息丢失;其次,通过最小化cost function找出每个block的最佳场景深度;

对于视频去雾,考虑到一个物体点的场景辐射在相邻帧之间是不变的,在总的损失函数上添加了一个一致性损失;

实现了一个快速并行的计算方法进行快速去雾。

2.2 模型

依旧是常规的基于暗通道的模型:

2.3 图像去雾


2.3.1 大气光预测A


(1)发现雾区域的像素方差一般都很小;

(2)提出一个机遇四叉树细分的分级方法:.

  1. 我们将图片分为四个矩形区域。
  2. 计算该区域的得分score = 每个区域的平均像素值➖该区域的标准差。
  3. 将score最高的区域划分为四个小区域。
  4. 重复2~3步骤,直到最高score区域的size小于预先设定的阈值。
  5. 计算可以最小化距离的颜色向量作为大气光值A.

2.3.2 最优传输估计t(x)

(1) Mean squared error (MSE) contrast【最终选取的t的损失函数】

(2) Michelson contrast

经常用于周期性图案和纹理,计算最大值和最小值之间的差别。

(3) Weber contrast

背景颜色和物体颜色的归一化差;经常英语人眼视觉系统。

因为对比度测量与传输值t成反比,选取较小的t会增强图像对比度。但是在增强对比度的同时,会有图像信息的丢失,根据作者的观察,选取一个一般来说相对较大的t值会减少信息损失(information loss)。

如图,将输入像素映射到输出像素,红色区域部分的像素值会产生信息丢失。

因此在增强对比度的同时应该减少信息丢失

推导过程略。

2.3.3 传输估计t的微调

出现的问题(1)由于我们的估计是基于每个块的传输值相同的假设来做的,所以会产生”块效应”。作者采用导向滤波来解决这个问题。

假设:


通过计算下面的公式来获得每个窗口W的最优参数:

 

>>>对应解决方法:centered window scheme:该窗口按像素逐次移动,每个像素的传输值取每个窗口在该像素计算出t的平均值。

出现的问题(2):centered window scheme会产生模糊,尤其是在深度变化比较显著的物体边界。在图像久久表现为“halo现象”。

>>>对应解决方法:shiftable window scheme,可以减少来自边缘区域的不可靠传输值的贡献,因此可以减轻模糊的伪影。

注意:

  • 限制t>0.1(太小会产生噪声);
  • 采用gamma矫正优化去雾后图像(会有部分比原图像黑的部分);

2.3.4 实验结果


 
2.4 视频去雾

静态图像去雾破坏了视频的时间连续性,因此提出一个针对视频序列的快速且时间连续的去雾算法。

2.4.1 Temporal coherence

物理离摄像机越近获取到的光线就更接近于原来的场景光线,越远则越接近于大气光!

在视频去雾中首先会将视频序列转换到YUV颜色空间,然后仅对luminance(Y)分量进行计算,以减少算法复杂度。

假设1:假设一个场景点在两个连续的图像帧之间的原始辐射是相同的:

假设2:一般整个视频序列的大气光的luminance Ay是一样的,遇到环境突变的可以通过以下方式来重新估计;

传统的motion 评估很耗时,为了省时,我们使用一个简单的概率模型,基于两帧之间的差分图像:

注:σ一般为10。

因此B block的Temporal coherence为:

因此定义Temporal coherence的损失为:

2.4.2 Cost function optimization


2.4.3 Fast transmission refinement

出现问题:blocking artifacts

解决的方法:Gaussian window:窗口中心周围的像素具有较高的权重,而距离中心较远的像素具有较低的权重。然后,通过计算与重叠窗口相关的传输值的高斯加权和,得到每个像素的最终最优传输值。

为了减少复杂度,方法在计算传输值的时候downsamples 一个输入图像。

2.4.4 实验结果


 
3. 总结

在这项工作中,我们提出了一种基于优化对比度增强的去嗪算法。该算法首先利用基于四叉树的细分算法对模糊图像中的大气光线进行选择。然后,由于模糊图像的对比度较低,该算法确定了适合场景深度的传输值,以提高恢复图像的对比度。然而,恢复后的图像中的一些像素可以被饱和,从而导致信息丢失。为了解决这一问题,我们将信息损失加入到优化的传输计算中。利用时间相干代价,将静态图像去雾算法扩展到实时视频去雾算法。实验结果表明,该算法能够有效地去除雾霾,很好地恢复图像,实现实时处理。

参考

Optimized contrast enhancement for real-time image and video dehazing_女王の专属领地的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/u013066730/article/details/130871911