暗光图像增强,卖问题;
这篇paper卖的问题很直接:作者认为目前大多数做暗光增强的方法,基本都无法同时完成提亮和去噪这两个任务,这导致暗光增强的算法很难投入实际应用中,因为实际的低光照图像信噪比很低,其实受噪声影响很大。
同时,作者指出,简单地在前处理或者后处理步骤中加入降噪的缓解并不能很好的解决这个问题,因为降噪模型难以从极低的信噪比(即使先提亮,信息量也不会增加,即不能改善信噪比)中提取出有效的信息。(注:这句话是作者在原文中的意思,但笔者感觉有点牵强,因为笔者曾经尝试过MPR-Net与NB-Net等降噪方法,其实对于较暗的图像(环境照度5lux左右)仍有较好的降噪效果。)
本文的作者从两个发现入手,设计了一个基于频域的两阶段(先频域分解decomposition,再增强enhancement)方法,同时完成了提亮和降噪两个任务。这两个观察是:
本文核心的主打的点就是这些,剩下的就是文章作者开始介绍本文所提出的方法,先来看看算法流程图:
核心的部分在ACE(Attention to Context Encoding)和CDT(Cross Domain Transformation)两个模块上,下面我们分别简单介绍。
第一点观察提到对图像的低频部分信噪比相对较高,因此是有希望同时完成降噪和提亮两个任务的。因此ACE模块的目的就是模拟图像的频域分解过程,将图像特征中的低频特征和高频特征的特征分离出来。先来看看ACE模块的框图:
我们按照上面的框图进行解释。输入的特征 X i n X_{in} Xin,先经过了两个感受野不同的膨胀卷积的差分操作生成 C a C_a Ca。
C a = s i g m o d ( f d 1 ( x i n ) − f d 2 ( x i n ) ) . (3) C_{a} = \mathit{sigmod}(f_{d1}(x_{in})-f_{d2}(x_{in})). \tag{3} Ca=sigmod(fd1(xin)−fd2(xin)).(3)
这个操作的用以是用不同的感受野的卷积之间差分操作来模拟对比度的计算。一般来说,高对比度的像素或者小区域,更加可能属于图像的高频部分,例如一些明显的边缘等。因此, C a C_{a} Ca可以被认为代表了指出了图像特征中的高频部分的位置,用 C a C_a Ca去和 x i n x_in xin做元素乘法获得的 x c x_c xc,就可以理解为特征的高频部分,那么很自然的,用 C a ‾ = 1 − C a \overline{C_{a}}=1-C_{a} Ca=1−Ca则能获取特征中低频部分 x c ‾ \overline{x_{c}} xc。
是不是感觉有点扯?为了证明 x c x_{c} xc和 x c ‾ \overline{x_{c}} xc真的分别代表图像特征的高频和低频部分,作者用了几张图例来说明:
看上去确实是ok的,但是作者没有提到是如何从特征可视化为图例的,有点可惜。光提取出 x c ‾ \overline{x_{c}} xc还不够,为了增强特征的表示能力,ACE模块还引入了类似于Non-Local的结构(详情可以去看Non-Local文章,在此不做赘述)。
值得一提的是,本文所提出的方法有两个stage。每个stage都有一个ACE模块。其中stage1中的ACE模块所使用Mask是 C a ‾ \overline{C_{a}} Ca,stage2则是 C a C_a Ca.
作者指出,对于低光照图像的全局属性对于后续的提亮任务来说非常重要。因此,这这设计了CDT模块,如下图所示:
图中 X e n X_{en} Xen和 X d e X_{de} Xde分别是U-Net网络中的Encoder和Decoder所对应的特征。那CDT模块到底有什么用呢?作者给出的解释是CDT模块是专门用来解决domain gap的。什么是domain gap呢,作者举了个例子,原文如下:
好吧,我必须得承认我还是没看懂。。。期待有缘人给我解释解释 。
与ACE模块类似,stage1中的CDT模块所使用Mask是 C a ‾ \overline{C_{a}} Ca,stage2则是 C a C_a Ca.
损失函数部分,本文使用了L2损失(为什么不是L1损失?)+感知损失。其中L2损失引入了一个额外的监督信息:
L a c c = λ 1 ∣ ∣ C − I f g t ∣ ∣ + λ 2 ∣ ∣ I c − I g t ∣ ∣ (3) L_{acc} = \lambda_{1}||C-I_{f}^{gt}||+\lambda_{2}||I^c-I^{gt}|| \tag{3} Lacc=λ1∣∣C−Ifgt∣∣+λ2∣∣Ic−Igt∣∣(3)
式中 C , I c , I f g t , I g t C,I^c,I_f^{gt},I^{gt} C,Ic,Ifgt,Igt分别是重建的图像内容(reconstructed image content,其实就是重建的"低频信号"),最终得到的完整图像,重建的“低频信号”的真值以及完整图像的真值。 I f g t I_f^{gt} Ifgt是通过 I g t I^{gt} Igt用引导滤波获取的。
除了上面所述方法之外,本文的另外一个贡献点就是提出了一个数据集。有点特殊的是,这个数据集源数据来自SID数据集。但是作者指出,SID数据集训练数据是Raw数据对。而本文则在SID的基础上,对SID的Raw数据对上通过“Exposure Compensation”,“White balance”,“De-linearization”三个步骤,将Raw数据对转化为了sRGB数据对。
这真是没什么可解释的了,直接看下图就可以了
作者分贝分析了ACE模块和CDT模块的重要性。除此之外,还对比了将ACE模块替换成原始Non-Local模块的效果以及将CDT模块替换成ACE模块的效果。
这篇paper的质量相对来说一般。
优点:
缺点:
本文基本均为原创