作者: 刘浪 https://zhuanlan.zhihu.com/p/67785574 本文已授权,未经允许,不得二次转载
基于深度学习优化光照的暗光下的图像增强
论文地址:http://jiaya.me/papers/photoenhance_cvpr19.pdf
暗光拍照也清晰,这是手机厂商目前激烈竞争的新拍照目标。
提出基于深度学习优化光照的暗光下的图像增强模型,用端到端网络增强曝光不足的照片。
而且不是像以前的工作那样,直接学习图像到图像的映射,而是在新网络中引入中间照明,将输入与预期的增强结果相关联,增强网络从专家修饰的输入/输出图像学习复杂的摄影调整的能力。在此模型的基础上,构造了一个对光照采用约束和先验的损失函数,结果证明,新算法模型,效果超过了市面上一众当红的多摄多硬手机
传统夜景图像增强算法大致可以分为几个方面: 直方图均衡化(Histogram equalization) ,这种方法简单的利用了图像整体的统计性质,通常不能对复杂场景达到理想效果。
基于Retinex理论的增强算法,通常只能用单通道进行光照优化,颜色无法很好地回复,在光照复杂的情况下还容易出现过曝的现象。
这些传统方法还容易在增加图像亮度的同时,放大噪声等瑕疵,影响图像质量。
基于深度学习的方法,通常是直接训练回归(regression)模型,由于数据本身的特性,这种方法得到的结果通常清晰度、对比度比较低,而且会有一些人工痕迹。
效果图
提出了一种新的端到端图像增强网络。特别地,没有直接学习图像到图像的映射,而是设计网络,首先估计一个图像到光照的映射来建模各种光照条件,然后使用光照映射来照亮曝光不足的照片。此外,为了降低计算成本,我们采用了基于双网格的上采样,并设计了一个在光照上采用各种约束条件和先验的损失函数,使我们能够有效地恢复自然曝光、对比度合适、细节清晰、色彩鲜艳的低曝光照片。
图像增强的任务可以被看作是寻求一个映射函数
,这样
就是我们想要的图像,由输入图像
增强得到
,最近基于Retinex方法的图像增强,
的逆函数通常被建模为光照映射S,它与反射率图像
以像素级的方式相乘,生成所观察到的图像
:
这里S建模为RGB三通道是为了增强其对颜色增强的建模能力,特别是对不同颜色通道的非线性处理能力。
是观察图像,
是增强后的图像,因此只要解得
的近似解
即可。为什么这么做有效呢?因为自然图像的光照图有着相对简单的先验,因此使用光照图做中介可以有效应对各种光照情况,同时也可以通过对光照图进行调整,实现个性化增强,例如可以使用局部平滑的光照图增加对比度
网络架构
网络分成了 全分辨率分支 和 低分辨率分支 。其中低分辨率分支用于学习到全图光照的整体信息,低分辨率图像的使用,有助于增大网络感受野,提高算法速度。
低分辨率分支的结果将会传递给高分辨率网络分支,用于重建全分辨率下的亮度图,并最终得到增强后的图像。
损失函数
从N对图片
学习照明映射,学习出S然后增强图像
,在网络训练过程中,我们设计了一个由三个部分组成的损失函数
,并将其最小化。它表示为:
是是三个部分的损失,
是相应部分的权重
Reconstruction Loss:
为了得到预测的S,我们定义
误差度量来测量重建误差为:
其中,
和
中的所有像素通道归一化为[0,1],
表示像素颜色通道,
是多通道光照范围约束。因为
,将
设为
的下界,确保增强结果
中的所有颜色通道(上界)都有一个上界,因此要避免超出色域的颜色,而将1设置为S的上界可以避免错误地使曝光不足的区域变暗。
Smoothness Loss:
根据先验光滑性,自然图像中的光照一般为局部光滑。在我们的网络中采用这种优先级有两个优点。首先,它有助于减少过度拟合,提高网络的泛化能力。其次,它增强了图像的对比度。当相邻像素点p和q的光照值相似时,它们在增强图像中的对比度可以估计为
,它也应该被放大,因为
。因此,我们将图3中预测的全分辨率光照S的平滑度损失定义为:
其中对所有像素的所有通道(c)求和,
为图像空间水平方向和垂直方向的偏导数,
为空间变化(每个通道)的平滑权值,表示为:
这里,
是输入图像
的对数,
是控制图像梯度灵敏度的参数,
是一个小常数,通常设置为0.0001,防止被0整除。
直观地说,平滑度损失鼓励光照在小梯度的像素上是平滑的,而在大梯度的像素上是不连续的。有趣的是,对于曝光不足的照片,图像内容和细节往往很弱。较大的梯度更可能是由不一致的光照造成的。如图4中的第4幅图像所示,通过进一步加入平滑度损失,我们恢复了良好的图像对比度,与仅重建损失的结果相比,细节更加清晰。
Color Loss
接下来,设计颜色损失来使生成的图像
中的颜色与相应的标签图片
中的颜色匹配
表示一个像素,
是一个运算符,它将RGB颜色作为三维向量计算两种颜色之间的夹角。上面等式对
和
中每个像素对的颜色向量夹角求和。
我们在其他颜色空间中使用这个简单的公式而不是L2距离的原因如下。首先,重构损失已经隐含地测量了L2色差。其次,由于L2度规仅用数值方法测量色差,因此不能保证颜色向量具有相同的方向。
并在NVidia Titan X Pascal GPU上以mini-batch为16进行40个epoch的训练。优化器使用Adam,固定学习率为
。为了增加数据,随机裁剪了
的patch,然后随机调整大小和旋转所有patch。下采样输入的固定分辨率为
。编码器网络是一个预先训练的VGG16。局部特征提取器包含两个卷积层,全局特征提取器包含两个卷积层和三个全连通层。此外,使用基于双边网格(bilateral grid)的模块对输出进行向上采样。
与最先进的方法进行可视化比较。
与最先进的方法进行可视化比较
使用了两个常用的度量标准(即,PSNR和SSIM)来定量评估我们的网络性能,根据预测结果和相应的专家润色图像之间的颜色和结构相似性。虽然这不是绝对的指示性,但总的来说,高的PSNR和SSIM值对应着相当好的结果。
在自己制作的数据集上定量比较本文的方法和最先进的方法
在MIT-Adobe FiveK数据集上对我们的方法和最新技术进行了定量比较。
往期文章一览
1、【OpenCV入门之廿】图像矫正技术深入探讨(长文多图)