设为首页 加入收藏

TOP

Python图像处理丨详解图像去雾处理方法(一)
2023-07-25 21:29:23 】 浏览:124
Tags:Python 解图像 方法
摘要:本文主要讲解ACE去雾算法、暗通道先验去雾算法以及雾化生成算法。

本文分享自华为云社区《[Python图像处理] 三十.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)丨【拜托了,物联网!】》,作者:eastmount 。

一.图像去雾

随着社会的发展,环境污染逐渐加剧,越来越多的城市频繁出现雾霾,这不仅给人们的身体健康带来危害,还给那些依赖图像信息的计算机视觉系统造成了不良影响,因为在雾天采集到的图像对比度和饱和度均较低,颜色易发生偏移与失真等。因此,寻找一种简单有效的图像去雾方法,对计算机视觉的后续研究至关重要。

该部分主要从下列几篇论文摘取对图像去雾算法进行普及,引用及参考中文论文:

  • 魏红伟, 等. 图像去雾算法研究综述[J]. 软件导刊, 2021.
  • 王道累, 等. 图像去雾算法的综述及分析[J]. 图学学报, 2021.
  • OpenCV图像增强万字详解(直方图均衡化、局部直方图均衡化、自动色彩均衡化)- Eastmount

图像增强(Image Enhancement)是指按照某种特定的需求,突出图像中有用的信息,去除或者削弱无用的信息。图像增强的目的是使处理后的图像更适合人眼的视觉特性或易于机器识别。 在医学成像、遥感成像、人物摄影等领域,图像增强技术都有着广泛的应用。图像增强同时可以作为目标识别、目标跟踪、特征点匹配、图像融合、超分辨率重构等图像处理算法的预处理算法。

近些年来,出现了众多的单幅图像去雾算法,应用比较广泛的有:

  • 直方图均衡化去雾算法
  • Retinex去雾算法
  • 暗通道先验去雾算法
  • 基于卷积神经网络的DehazeNet去雾算法

其主要可以分为 3 类:基于图像增强的去雾算法、基于图像复原的去雾算法和基于 CNN 的去雾算法。

(1) 基于图像增强的去雾算法

通过图像增强技术突出图像细节,提升对比度,使之看起来更加清晰,这类算法的适用性较广。具体的算法有:

  • Retinex 算法
    根据成像原理,消除了反射分量的影响,达到了图像增强去雾的效果
  • 直方图均衡化算法
    使图像的像素分布更加均匀,放大了图像的细节
  • 偏微分方程算法
    将图像视作一个偏微分方程,通过计算梯度场提高对比度
  • 小波变换算法
    对图像进行分解,放大有用的部分

此外,在这类算法的基础上出现了众多的基于图像增强原理的改进算法。

(2) 基于图像复原的去雾算法

主要是基于大气散射物理学模型,通过对大量有雾图像和无雾图像进行观察总结,得到其中存在的一些映射关系,然后根据有雾图像的形成过程来进行逆运算,从而恢复清晰图像。其中最经典的要属何恺明大佬提出的:

  • 暗通道先验去雾算法
    通过对大量无雾图像进行特征分析,找到了无雾图像与大气散射模型中某些参数的先验关系。该算法复杂度低,去雾效果好,因此在其基础上出现了大量基于暗通道先验的改进算法。

(3) 基于CNN的去雾算法

使用 CNN 建立一个端到端的模型,通过有雾图像恢复出无雾图像,目前使用神经网络进行去雾的算法主要有两种思路:

  • 使用 CNN 生成大气散射模型的某些参数,然后再根据大气散射模型来恢复无雾图像
  • 使用 CNN (例如 GAN)直接根据模糊图像生成无雾的清晰图像

CNN 因其强大的学习能力在多个领域得到应用,因此也出现了采用 CNN 进行去雾的算法。2016年CAI等首次提出了一种名为DehazeNet的去雾网络,用于估计有雾图像的透射率。DehazeNet 将有雾的模糊图像作为输入,输出其透射率,基于大气散射模型理论恢复出无雾的清晰图像。

下图是分别对直方图均衡化、暗通道先验去雾、DehazeNet和AOD-Net去雾算法进行测试,实验结果如图所示。由图可知,基于图像增强的直方图均衡化算法的去雾图像对比度明显增强,由于不考虑降质原因,在增加对比度的同时也对噪声进行了放大,出现细节丢失与色彩偏差现象。基于物理模型的暗通道去雾算法、基于神经网络的 DehazeNet 和 AOD-Net 算法的去雾效果较直方图均衡化算法更佳。

其他去雾算法对比结果如下图所示,比如城市和道路有无图像去雾效果对比。

最后,正如总结王道累老师总结的一样,目前针对有雾图像去雾的算法主要是从基于图像增强、图像复原和 CNN 3 个方向进行的。

  • 基于图像增强的方法不考虑有雾图像的形成过程,而是直接通过突出图像的细节,提高对比度等方式,从而使有雾图像看上去更加清晰。
  • 基于图像复原的方法则是追寻图像降质的物理过程,通过物理模型还原出清晰的图像。
  • 基于 CNN 的方法则是利用神经网络强大的学习能力,寻找有雾图像与图像复原物理模型中某些系数的映射关系或者使用 GAN,根据有雾图像还原出无雾的清晰图像。

上述 3 类去雾算法对于雾天图像都有着明显的去雾效果,尽管其在实际生活中已经得到了广泛的应用,但下述几点仍有可能是今后图像去雾领域的研究重点和难点:

  • 更加真实的雾天图像数据集
    采用神经网络进行去雾的算法在效果上好于图像增强和复原的方法,但是由于在自然界中很难拍摄到一组背景相同的有雾图像和无雾图像,因此目前训练神经网络所采用的数据集均是通过合成得到的,虽然能够在一定程度上拟合自然环境,但是仍然存在着一些差距。所以目前急需一种由在真实环境中获取到的具有相同背景的有雾图像和无雾图像构建的数据集,来提高神经网络去雾算法的鲁棒性和稳定性。
  • 更加简便的去雾算法
    目前各类算法能够有效去除单幅图像上的雾霾,但相对较好的算法都存在着时间复杂度高的问题,很难应用到视频去雾或者需求较多的复杂任务中去。
  • 鲁棒性更强的去雾算法
    上述算法都只对图像上存在的均匀的薄雾有较好的去雾效果,对于浓雾或者分布不均的团雾则效果较差,因此找到一种适用范围更广的去雾方法将会是一个极具挑战性的课题。

二.ACE去雾算法

1.算法原理

该部分主要介绍参考作者书籍以及相关论文进行叙述,简单介绍ACE算法的原理知识。如果读者想详细了解其原理,推荐阅读英文原文,详见下面的参考文献,都是大佬。

引用及参考中文论文:

  • 尹胜楠, 等. 基于快速ACE算法的视觉里程计图像增强方法[J]. 电子测量与仪器学报, 2021.
  • 李景文, 等. 基于暗通道先验改进的自动色彩均衡算法[J]. 科学技术与工程, 2019.
  • 杨秀璋, 等. 一种改进的复杂环境下条形码图像增强和定位算法[J]. 现代计算机, 2020.
  • OpenCV—python 自动色彩均衡(ACE)- SongpingWang
  • OpenCV图像增强万字详解(直方图均衡化、局部直方图均衡化、自动色彩均衡化)- Eastmount

英文原文:

  • https://www.ipol.im/pub/art/2012/g-ace/?utm_source=doi
    Automatic Color Enhancement (ACE) and its Fast Implementation
  • https://www.sciencedirect.com/science/article/abs/pii/S0167865502003239
    A new algorithm for unsupervised global and local color correction(原作者Rizzi大佬)

图像对比度增强的算法在很多场合都有用处,特别是在医学图像中,这是因为在众多疾病的诊断中,医学图像的视觉检查时很有必要的。Retinex算法是代表性的

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Generator(生成器),入门初基,Coro.. 下一篇Python爬虫实战,requests+openpy..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目