当前位置: 代码迷 >> 综合 >> Fast Enhancement for Non-Uniform Illumination Images using Light-weight CNNs
  详细解决方案

Fast Enhancement for Non-Uniform Illumination Images using Light-weight CNNs

热度:90   发布时间:2023-12-17 04:43:11.0

重点

暗光增强任务面临着输入图像模糊、信息少、低饱和度、低对比度等退化问题,目前有非常多的方法已经提出来解决问题,但是,并没有一个方法足够轻量化、速度快,以至于将模型部署到移动端上。
全文最最重要的就是说自己的网络轻量化、速度快

作者提出了一种方法:

  • 使用经过预处理(retouching module)的数据集(图选自COCO),以原图+max value of RGB+反 max value of RGB 结合图 作为input,先训练illumination netfushion net,illumination net输出under/over exposed 图,fusion net的输出是权重而不是结果。
  • 固定之前网络参数,将输出的权重和之前的跳接图进行相乘,作为输入restoration net输入,进行训练,得到Neg-Noise /Neg-Artifacts(去除噪声和伪影)并与输入进行跳接,得到结果
  • 其中,总的loss由4种loss组成

在这里插入图片描述

为什么用原图+max value of RGB+ 反 max value of RGB(第一部分)和原图+under/over exposed(第二部分)做输入呢?

这里作者没有细说,但是从自己的理解来看,首先原图和under exposed作为输入自不必说,因为这是最终需要增强的图片,然后over exposed的图像作为输入首先肯定是为了更多的场景考虑,换句话也可以说是不同的light level,或者理解成data augment?同时,暗光增强是需要输出视觉质量高,这肯定包括了不过曝,增加了数据的类型,能够让网络学习到更多信息。

Retouching module和Dataset

在这里插入图片描述
Retouching module是作者提出的如何构建不同曝光level的的方法,如上图,处理公式如下:
在这里插入图片描述
这是因为作者认为现有的LOL、DEEPUPE和SICE数据集分别有不同缺陷:

  • 如LOL和DEEPUPE只能让模型学习如何提亮;
  • 如LOL和SICE数据亮度曲线过于平滑,换句话说就是场景过于simple
  • 暗示经过选择的自己创建和处理的数据集场景丰富,特征更多

在这里插入图片描述
其实,这个dataset的方法,在作者之前的论文也有提及,可以参考:

可以看我之前的博客或者直接自己google论文名称↓
Attention Guided Low-light Image Enhancement with a Large Scale Low-light Simulation Dataset

模型

在这里插入图片描述
框架被作者分为了三个主要部分:Illumination net、Fusion net和Resotration net

这里的bright channel即max value of RGB,即取RGB三个通道里的最大值。这里的最大值能够代表图像的亮度(bright)信息,并且,有文章认为,即使是低分辨率(low-res)的亮度图的数据也非常具有代表性,参考论文为

Underexposed Photo Enhancement using Deep Illumination Estimation(DEEPUPE)(CVPR2019)

所以可以通过不直接计算全分辨率(full-res)输入而是计算low-res的亮度图,然后通过upsampling得到full-res,减小计算量而且不会丢失过多信息,这也是为什么文章的illumination net如此light-weight的原因之一。

将得到的under/over exposured 图像加上原图进入fusion net融合,实际上就是一个U-Net,为了将轻量化进行到底,这里输出的是fusion weight,而不是真实结果。将weight乘以之前的跳接输入,得到下一步的输入。

Restoration net是一个多分枝的轻量化网络,目的是得到质量更高的结果,将输出(去除噪声和伪影)与跳接的输入相加得到最终的输出。

整体上,结构不是很复杂,但是感觉作者画的特别复杂,看都不好看,尤其是跳接输入,不看文章原图都不好发现其虚线。。还有restoration net的结构,反正看起来就很复杂。。

loss

loss分为两部分,一部分是illumination和fusion共用,另一部分是restoration。

先说第一部分
在这里插入图片描述
h代表Huber loss,目的是增强颜色的饱和度,针对于颜色。
在这里插入图片描述

来自:

Real-Time User-Guided Image Colorization with Learned Deep Priors(2017TOG)
Colorwise Attention Network for Low-light Image Enhancement(2019)

p代表perceptual loss,即VGG loss,这个应该都比较熟悉不多说了,主攻视觉质量

s代表SSIM loss,也不多说了,主攻结构质量

i称为illumination smoothness loss,实际上是使用TV loss的变种,目的是使区域足够平滑
在这里插入图片描述
λg=10,ωi\omega_iωi?=0.002

至于第二部分,和第一部分相似,细节参数不同:
在这里插入图片描述
ωg\omega_gωg?=10?410^{-4}10?4

  相关解决方案