背光图像增强论文调研

背光图像增强

M. Akai, Y. Ueda, T. Koga and N. Suetake, “A Single Backlit Image Enhancement Method For Improvement Of Visibility Of Dark Part,” 2021 IEEE International Conference on Image Processing (ICIP), Anchorage, AK, USA, 2021, pp. 1659-1663, doi: 10.1109/ICIP42928.2021.9506526.

  • 这是一篇2021年用传统方法来做背光图像增强的论文。方法如下:

    • 首先对RGB通道取均值得到了intensity image I I I,然后分别做gamma校正和直方图均衡化,把gamma校正的结果和均衡化的结果进行加权平均,得到增强后的intensity image O O O
    • 然后用大津法(Otsu)找到划分黑白像素的阈值 t t t,对强度图 I I I进行二值化得到 W W W。随后对 W W W I I I利用导向滤波做下述计算得到weight map W ~ \tilde{W} W~:
      在这里插入图片描述
      这一步的滤波目的是软化二值图,抑制伪影的同时保持边缘,滤波前后的weight map以及对应的增强结果如下图所示:
      在这里插入图片描述
    • 第三步是利用前两步得到的weight map和intensity map进行增强,公式如下图所示:
      在这里插入图片描述
  • 下面是实验结果:

    • 原图:
      在这里插入图片描述
    • 增强结果:
      在这里插入图片描述
      在这里插入图片描述
    • 速度比较:
      在这里插入图片描述
  • 评价:是传统方法 ,效果看起来欠曝的区域得到了增强的同时过曝区域没有进一步扩散和过曝,但无法抑制过曝。给出了一些图片的NIQE,和一些基于HE的方法进行比较,速度还挺快的。


Xiaoqian Lv, Shengping Zhang, Qinglin Liu, Haozhe Xie, Bineng Zhong, Huiyu Zhou,
BacklitNet: A dataset and network for backlit image enhancement,
Computer Vision and Image Understanding,
Volume 218,
2022,
103403,
ISSN 1077-3142,
https://doi.org/10.1016/j.cviu.2022.103403.
(https://www.sciencedirect.com/science/article/pii/S1077314222000340)

  • 这是CVIU2022的一篇深度学习方法的论文。文章提出了一个背光图像数据集,有3000(2600train,400test)张背光图像以及对应的专家用adobe lightroom调制后的GT。数据集用的是4种单反相机拍摄的高分辨率的图像,并提供了RAW PNG JPEG的格式。图片如下图所示的效果,这说明GT是有做过曝抑制的:
    在这里插入图片描述

  • 网络结构如下图所示:
    在这里插入图片描述

    • 在下采样后的低分辨率图像上预测系数,然后用高分辨率输入图和在高分辨率输入图上提取的高分辨率guidance map的指导下利用Bilateral Guided Upsampling算法对系数进行上采样。从而增强结果是用系数和高分辨率图进行如下公式计算得出的结果(其实很像曲线估计方法(Zero-DCE)):
      在这里插入图片描述
    • 损失函数由如下两部分组成:
      在这里插入图片描述
      在这里插入图片描述
      第一部分是对增强结果和GT的MSE做加权的结果,即当原图和GT的差越大,对增强结果和GT的差的惩罚权重就越高,反之越低;第二部分其实就是VGG16算的感知损失。
  • 实验结果上,与一些背光图像增强方法、一些暗图增强方法和一些通用增强方法在测试集上比较了PSNR SSIM NIQE和颜色距离 Δ E ∗ \Delta E^* ΔE:
    在这里插入图片描述

  • 从可视化效果看,还是没有处理好过曝部分 在这里插入图片描述

  • 同时对LOL数据集也作了比较。

  • 总体上看,数据集部分倒是很有意义的,模型因为涉及Bilateral Guided Upsampling我没有看得太仔细,差不多是个低分辨率曲线估计上采样的方法,损失函数是简单的有监督成对图像损失函数,然后实验结果看还不错,不过因为GT是手调的,模型的训练结果就受限于手调图的质量,从上面这张图就可以看出来其实手调的结果也不咋地,所以模型出来的结果也就一般。这个是未来的一个改进方向


Lin Zhang, Lijun Zhang, Xiao Liu, Ying Shen, Shaoming Zhang, and Shengjie Zhao. 2019. Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning. In Proceedings of the 27th ACM International Conference on Multimedia (MM '19). Association for Computing Machinery, New York, NY, USA, 1623–1631. https://doi.org/10.1145/3343031.3351069

  • 这是ACMMM2019的一篇背光图像增强的论文,是test time training地训练一个小CNN去无监督地估计一个S曲线,用来增强背光图像。

  • 它估计的是一个全局的曲线,曲线公式如下:
    在这里插入图片描述
    在这里插入图片描述

  • 所以它的CNN网络只有两个输出: ϕ s , ϕ h \phi_s, \phi_h ϕs,ϕh,网络名为ExCNet,由几层CNN和几层全连接组成。输入为 I l I_l Il,是输入图像的亮度通道,输出为 I l c I^c_l Ilc

  • 损失函数受马尔可夫随机场启发,为patch-wise的如下损失函数:
    在这里插入图片描述
    其中, Ω ( i ) \Omega(i) Ω(i)表示第 i 个patch的4邻域patch,因此损失函数可以看作是两部分组成,一部分是每个patch各自的损失,第二部分是每对patch之间的损失。其中, E i E_i Ei E i j E_{ij} Eij如下所示
    在这里插入图片描述
    在这里插入图片描述
    E i E_i Ei的形状如下图所示:
    在这里插入图片描述
    其实就是增强结果在0.5能取到最低损失,就训练的梯度来说完全可以用 ∣ I i c − 0.5 ∣ |I_i^c-0.5| Iic0.5∣来替代,搞得花里胡哨的。。而 E i j E_{ij} Eij约束增强前后相邻块的对比度不变。

  • 首先用导向滤波将图像分为base分量和detail分量,base分量图像转换到YIQ空间,取Y通道为亮度通道,送进网络并取得调整结果,根据Y通道调整结果调整结果调整其他两个通道,然后和detail分量用weber contrast方法融合得到最终的增强结果:
    在这里插入图片描述

  • 实验结果看起来很不错:
    在这里插入图片描述
    在这里插入图片描述

    • 指标上在 I E p s D IE_{ps}D IEpsD数据集(Lijun Zhang, Lin Zhang, Xiao Liu, Ying Shen, and Dongqing Wang. 2018. Image exposure assessment: A benchmark and a deep convolutional neural networks based model. In 2018 IEEE International Conference on Multimedia and Expo (ICME ’18). IEEE, San Diego, CA, USA, 1–6. https://doi.org/10.1109/ICME.2018.8486569)上和一些传统方法比较了user study的结果和LOD、CDIQA指标:
      在这里插入图片描述
    • 运行效率上,在Titan X上达到了每秒1张4032x3024图片的速度。
    • 作为一个zero-shot的test time training 的无监督方法,设计的全局曲线估计方法挺有意思,实验结果看起来也还不错。同时由于简单的全局曲线估计,损失函数也可以相应简化。

Gaurav Yadav, Dilip Kumar Yadav,
Contrast enhancement of region of interest of backlit image for surveillance systems based on multi-illumination fusion,
Image and Vision Computing,
Volume 135,
2023,
104693,
ISSN 0262-8856,
https://doi.org/10.1016/j.imavis.2023.104693.

  • 这是Image and Vision Computing这个期刊2023年一篇做背光图像感兴趣区域对比度增强的论文。它先分割出背光的区域(用Z. Li and X. Wu, “Learning-Based Restoration of Backlit Images,” in IEEE Transactions on Image Processing, vol. 27, no. 2, pp. 976-986, Feb. 2018, doi: 10.1109/TIP.2017.2771142.),然后用多种gamma校正和log transform得到多亮度的图片(各5种共10种),然后用这些图片送进亮度估计网络LightenNet(C. Li, J. Guo, F. Porikli, et al., Lightennet: A convolutional neural network for weakly illuminated image enhancement, Pattern Recogn. Lett. 104 (2018) 15–22, https:// doi.org/10.1016/j.patrec.2018.01.010)得到多个亮度估计(即retinex理论中的照度分量,除以亮度估计可以得到增强结果),将这些亮度估计计算得到的增强结果的平均值(相加除以10)作为ROI的增强结果,如下图所示
    在这里插入图片描述
    在这里插入图片描述
  • 虽然方法很简单且大多数方法基于原有方法,但实验结果看起来是不错的:
    在这里插入图片描述
    在这里插入图片描述
  • 此外,文章用的一些衡量指标也有点意思,contrast measure(CM)指的是每个patch增强结果的方差除以原图的方差,再对不同区域加权平均,如下:
    在这里插入图片描述
  • 总体看起来,有点多源融合的思想,但多源数据仅直接gamma校正和log transform得到,融合也仅直接平均,增强的方法还用的是现有方法LightenNet,感觉有改进空间。

Z. Li and X. Wu, “Learning-Based Restoration of Backlit Images,” in IEEE Transactions on Image Processing, vol. 27, no. 2, pp. 976-986, Feb. 2018, doi: 10.1109/TIP.2017.2771142.

  • 这是TIP2018的一篇做背光图像修复的机器学习方法的论文。文章主要思想就是区分背光的前景和背景,分别处理。
  • 用来区分前景和背景的是两个SVM的二分类器。第一个分类器用来区分某个patch是前景还是背景,有人工标注,进行有监督训练。SVM的特征选的是亮度的分布、patch的亮度通道值,平均饱和度和skewness。第二个分类器用来区分一个块是不是前景和背景的边缘所在块。
  • 首先用SILC算法分patch(R. Achanta, A. Shaji, K. Smith, A. Lucchi, P. Fua, and S. Süsstrunk,
    “SLIC superpixels compared to state-of-the-art superpixel methods,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 34, no. 11, pp. 2274–2282, Nov. 2012.
    ),然后用两个SVM分别进行二分类,用条件随机场进一步优化,然后滤波,产生最终的分割结果。(太多复杂的公式和算法了我没有仔细读)
  • 然后对前景和背景区域分别用两条曲线去增强。曲线的定义采用的是向量化定义方式,对每个亮度级别 l j l_j lj都定义一个增量 s j s_j sj,从而对某个亮度的输入 l k l_k lk,其增强结果为如下累加和:
    在这里插入图片描述
  • 曲线的优化目标是最大化全局对比度增益,同时保证不失真,如下:
    在这里插入图片描述
    • 其中G衡量对比度增益,用的是如下的定义方式:
      在这里插入图片描述
      在这里插入图片描述
      即g的加权平均,其中g为增强结果相邻亮度level之间的相对增量
    • 而D则根据(X. Wu, “A linear programming approach for optimal contrast-tone mapping,” IEEE Trans. Image Process., vol. 20, no. 5, pp. 1262–1272, May 2011.)定义为:
      在这里插入图片描述
      等价定义为:
      在这里插入图片描述
      其实就是不能出现很多原图的不同亮度层级被映射到增强结果的相同亮度层级,否则就会失真。
  • 这个优化问题用现有的算法可以直接求最优值,因此可以得到两条最优的tone mapping曲线。
  • 前景背景增强结果的融合方式在非边界patch是直接取其一,而边界patch则根据分割的概率值进行加权平均:
    在这里插入图片描述
  • 实验结果看起来还行:
    在这里插入图片描述
  • 总体看,这是一篇经典的传统机器学习方法的论文,用了非常多的公式和优化算法,将问题一步步分解成机器学习算法能解决和优化的问题。其目标函数和曲线的设计值得参考,前景背景分治的方式也有进一步改进空间,但曲线的增量设计方式意味着这样的算法无法抑制过曝。

Y. Ueda, T. Koga and N. Suetake, “Fusion-Based Backlit Image Enhancement Using Multiple S-Type Transformations For Convex Combination Coefficients,” 2022 IEEE International Conference on Image Processing (ICIP), Bordeaux, France, 2022, pp. 2971-2975, doi: 10.1109/ICIP46576.2022.9897370.3

  • 这是2022ICIP的一篇基于传统方法进行背光增强的论文,基本思想还是先产生多个增强结果,再融合这些结果。
  • 文章定义了一个曲线公式:
    在这里插入图片描述

在这里插入图片描述

  • 文章将图片分解为三个分量:白色 a w a_w aw、黑色 a k a_k ak、彩色 a c a_c ac
    在这里插入图片描述
    其中, x ( i , j ) , a w ( i , j ) , a k ( i , j ) , a c ( i , j ) x(i,j),a_w(i,j),a_k(i,j),a_c(i,j) x(i,j),aw(i,j),ak(i,j),ac(i,j)都是1x3的向量,表示每个位置的三通道值, w = ( 1 , 1 , 1 ) , k = ( 0 , 0 , 0 ) w=(1,1,1),k=(0,0,0) w=(1,1,1),k=(0,0,0),每个分量分别定义如下:
    在这里插入图片描述

    • 根据定义可以推算出 c ( i , j ) c(i,j) c(i,j)如下:
      在这里插入图片描述
    • 从而对各个分量分别用前面定义的曲线进行增强
      在这里插入图片描述
    • 再归一化一下:
      在这里插入图片描述
    • 再组合回去得到增强结果:
      在这里插入图片描述
  • 从曲线的图可以看到,曲线围绕 μ \mu μ来拉伸对比度,因此多个版本的增强结果的核心就是找到不同的 μ \mu μ。为此首先将图像的强度分布画出来,用如下的三轴图表示,然后进行聚类(K-meas++),找到30个聚类中心,以这些聚类中心的三通道值作为三通道各自的 μ \mu μ定义曲线,而 γ \gamma γ是预定义的超参数,用来决定对比度拉伸的程度,大于1时拉伸 μ \mu μ附近的值的对比度,小于1时压缩,但能拉伸0附近的值的对比度,因此可以增强暗图区域。
    在这里插入图片描述

  • 基于这一点呢,分两波进行曲线增强,首先以30个聚类中心作为 μ \mu μ值,以这个 γ = 3 \gamma=3 γ=3作为 γ \gamma γ值,产生30个增强结果。同时,对接近(1,0,0)的聚类中心,额外进行一些以 1 / 3 1/3 1/3作为 γ \gamma γ值的增强,产生D个增强结果,对这30+D个增强结果进行融合(用的是T. Mertens, J. Kautz, and F. Van Reeth, “Exposure fusion,” in 15th Pacific Conference on Computer Graphics and Applications (PG’07), 2007, pp. 382–390.)得到最终的增强结果。

  • 实验结果看起来还不错:
    在这里插入图片描述

  • 文章提出一个观点,黑暗区域有必要拉伸对比度因为内部存在重要的纹理信息,而明亮区域的对比度拉伸不重要因为这些区域内部通常不存在纹理信息和物体,拉伸会导致伪影。这个可能是多数背光图像没有考虑过曝抑制的原因。但我觉得这一点有待商榷。

  • 另外,对图像进行分解的公式,以及画出来的分布很有意思,可能作为一个促进色彩多样性的先验监督,后续再进行探究。基于聚类中心来确定 μ \mu μ值来拉伸也是很有意思。


Liang Z, Li C, Zhou S, et al. Iterative Prompt Learning for Unsupervised Backlit Image Enhancement[J]. arXiv preprint arXiv:2303.17569, 2023.

  • 这篇是李重仪老师所在的S-Lab放在arxiv上的文章,应该是还没发表,用CLIP和提示学习来做无监督背光图像增强的论文:
    在这里插入图片描述
  • 流程图如图所示:
    在这里插入图片描述
  • 第一阶段先用一些 well-lit images 和 backlit images 来优化两个 prompt,最终的结果是得到两个prompt,分别对应well-lit的语义和backlit的语义。这一步用的损失函数如下:
    在这里插入图片描述
  • 第二阶段是训练增强网络。增强网络是一个简单的Unet,最后输出单通道的照度图,用原图除以照度图得到增强结果。第二阶段的损失函数由两部分组成,一个是增强结果的特征和原图的特征之间的L2距离,一个是增强结果的特征与第一阶段获得的两个prompt提取的文本特征之间的对比损失:
    在这里插入图片描述.
    在这里插入图片描述
    这一步的结果是获得了一个训练好的Unet网络。这一阶段可以分为两个子阶段,首先用1k个itertaion训练只有identity loss的,再训练有两个损失的
  • 第三阶段是finetuning,交替得finetune prompt和Unet网络,有点类似对抗训练,希望prompt能区分出增强结果和well-lit images(训练prompt),又希望增强结果不被区分出(训练Unet)。训练prompt用的是rank loss,如下:
    在这里插入图片描述
    • 首先我们看 S S S函数的性质,其实就是其提取的图像特征与 T n T_n Tn的文本特征越接近 S S S值就越大,也就是说衡量的是背光的程度,越背光值越大。这里有三项,第一项是希望 S ( I w ) S(I_w) S(Iw) S ( I b ) S(I_b) S(Ib) m 0 m_0 m0以上,这里 m 0 m_0 m0被设为0.9;第二项是希望 S ( I t ) S(I_t) S(It)也比 S ( I b ) S(I_b) S(Ib) m 0 m_0 m0以上;第三项是希望 S ( I w ) S(I_w) S(Iw) S ( I t ) S(I_t) S(It) m 1 m_1 m1以上, m 1 m_1 m1被设为0.2。其意义在于希望prompt能提供一个正确的顺序,其文本特征与well-lit的图片的相似度最高,与增强结果的相似度排第二,与背光图片的相似度最低。
    • 这个损失函数可以被进一步改进。因为用的是迭代学习的方式,增强网络更新前后,会有两个增强结果,所以可以进一步定义损失函数如下,其中 m 2 = m 1 = 0.2 m_2=m_1=0.2 m2=m1=0.2
      在这里插入图片描述
    • 而增强网络的更新用的损失函数和第二阶段的一样。
  • 文章在BAID训练集里随机找了380张背光图像和DIV2K里384张well-lit图像用来训练模型。在BAID测试集上测试。同时采集了一个测试集叫backlit300,用来测试泛化性。训练用了数据增强,flip,zoom,rotate。prompt的单词数设为16。模型总共训练50k个迭代,其中10k个迭代用来训练第一阶段。
  • 实验结果看起来,Zero-DCE确实是好,而本文的方法也确实指标上比较好:
    在这里插入图片描述
  • 从附录来看增强结果的可视化效果也确实不错:
    在这里插入图片描述
  • 而且根据(Hila Chefer, Shir Gur, and Lior Wolf. Generic attention-model explainability for interpreting bi-modal and encoder-decoder transformers. In ICCV, 2021. 5)可视化的注意力图来看prompt确实是在关注背光区域:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7547.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot中Thymeleaf模板插入Freemarker模板页面

概述 最近在修改springboot架构的项目,项目之前配置的是Thymeleaf模板, 但是在我新加的功能中,我非常想用Freemarker模板来新加一些页面功能。 看到网上很多其他地方描述,要么用不同的文件后缀来区分(如html文件为Thymeleaf&…

C# 交错数组学习

C# 交错数组是元素为数组的数组。 一个示例; using System;class Program {static void Main(string[] args) {string[][] weeks new string[3][];weeks[0] new string[] { "星期日", "星期一", "星期二", "星期三", &…

举例说明什么是循环神经网络

循环神经网络(Recurrent Neural Network, RNN)是一种处理时间序列数据和自然语言等具有顺序信息的数据的神经网络模型。与普通的前馈神经网络(Feedforward Neural Network)不同,RNN具有循环连接,使得网络能…

区块链技术如何改变Web3认证的现状?

随着加密货币和区块链技术的迅猛发展,Web3钱包成为了数字经济时代中的重要组成部分。Web3钱包是一种工具,用于存储、管理和交互加密货币及其他数字资产,以及与去中心化应用程序(DApp)进行交互。它们是实现Web3.0理念的…

谈高考志愿填报

目录 不如先说说我自己。 一、选专业还是选学校: 二、你想推荐/避雷的专业: 三、填报志愿的策略: 四、影响专业选择的因素: 各省高考成绩已出,又到一年高考季。张雪峰提到:“普通家庭不要光谈理想&…

LINUX系统(ubuntu)安装以及应用调试(不定时更新)

一:linux的介绍 Linux是一种基于UNIX操作系统的开源(Open Source)操作系统。它由芬兰计算机科学家 Linus Torvalds 在1991年首次发布,目前已经发展成为最流行和广泛使用的操作系统之一。 Linux以其稳定性、安全性和灵活性而闻名…

探究Vue源码:mustache模板引擎(4) 了解mustache转换概念,简述tokens转换

上文 探究Vue源码:mustache模板引擎(3) 通过编写简单正则了解mustache转换思路我们用正则表达式构建了一个简易版的render模板编译函数 但是 我们有特意强调过 mustache的render函数并非用简单正则实现的 因为这样无法实现循环和一些比较复杂的逻辑处理 它的实现基理可以参考这…

基础的git命令使用

Git区域概念 Git命令行操作 Git单人使用 注意项(务必认真阅读) Git Bash Here”终端 初始化仓库 提交工作区的内容到版本库 查看版本的记录 查看工作区的状态 版本回退 版本前进 Git远程仓库 克隆项目 推送到远程 拉取远程的更新 Git区域概…

mysql的集群和主从的区别

现在的项目使用mysql数据库,要自己设计数据存储架构。所以研究了一下mysql的集群(cluster)和主从(master/slave)这两个概念。两者非常容易混淆,所以需要分辨出这2者之间的区别。 一、Mysql cluster: share-nothing,分布式节点架构…

个性化邮件营销怎么做?试试这几种方法

电子邮件营销是最古老的数字营销形式之一,但也是最有效的营销策略之一。企业不仅可以通过电子邮件来推广产品或服务,也可以用来维护与潜在客户或已有顾客的关系,因此电子邮件营销被广泛应用于网络营销领域。在海量的邮件营销推广中&#xff0…

MySQL数据引擎、建库及账号管理

目录 一、引言 二、MySQL数据库引擎 1、InnoDB(MySQL默认引擎) 2、事务 ACID事务 四种隔离级别 何为脏读,幻读,不可重复读? 脏读 不可重复读 幻读 三、数据库授权 1、查看用户 2、创建用户、用户设置密码 3、设置用户授权 4、…

namecheap 域名服务器 设置为Cloudflare

Namecheap 设置 自定义 域名服务器 登录Namecheap 帐户。进入后,将鼠标悬停在页面右上角的“帐户”选项上,然后选择“域列表”或选择左侧边栏中的“域列表” 参考 如何在 Cloudflare 帐户中域设置 DNS 记录