论文阅读笔记------Deep reverse tone mapping (DrTMO)

Endo Y, Kanamori Y, Mitani J. Deep reverse tone mapping[J]. ACM Trans. Graph., 2017, 36(6): 177:1-177:10.

摘要:

直接从8位LDR图像中推断出32位HDR图像很困难对于培训的困难,采取间接的方法;关键思想是基于监督学习合成不同曝光下拍摄的LDR图像(即包围曝光的图像),然后进行重构合并HDR图像。通过使用3D反卷积网络增加/减少了曝光值,方法不仅可以重现自然色调而不引入可见噪声,还可以重现饱和像素的颜色。

论文的核心idea还是将不同曝光度的LDR图像综合在一起,并且合并它们重建HDR图像。借助3D卷积的方式,提出的方法可以有效保持颜色饱和度并不产生噪声。单纯学习一个LDR图像到HDR图像的转换是一件困难的事情,所以这里使用一系列的不同曝光图像去学习得到高质量图像.

 

motivation:

因为现有方法无法充分补偿由于曝光不足/过度和色彩量化而导致的信息丢失,直接从8位LDR图像中推断出32位HDR图像很困难,因为:

1、即使LDR的曝光度不同,相同的HDR图片应具有输出一致性
2、HDR含有比LDR多得多的变量(3.4x1038对比[0,255]),训练数据集会多到爆炸
3、LDR数据集很多,但是HDR的数据集就很少了
4、即使loss上微小的变化也会影响输出结果,使得训练的模型不稳定

 

算法pipeline:

这个算法流程可分为学习和推理阶段:在学习阶段中,bracketed LDR图片是由HDR的数据库中形成的。之后令我们的网络模型去研究bracketed image的曝光度的变化;在推理阶段中,本文通过神经网络模型可以将原始的LDR图像生成多张曝光度不同的LDR图片。更明亮/更暗的图片分别通过不同的网络生成(上/下曝光网络)。最终的HDR图片则由这些LDR图片生成。
 

3.1 生成训练用的Bracket Images

我们的训练数据集包括基准的HDR图像以及对应的LDR bracketed image数据集。为了解释由不同的非线性相机响应函数(CRF)引起的LDR图像的颜色变化,我们合成了一组具有不同CRF和来自HDR图像的曝光度的LDR图像。

在论文中Zi,j  Ei 分别表示 LDR 和HDR 图片.

相机响应函数CRFs(camera response functions) 使用 DoRF[Grossberg and Nayar 2003 论文]响应函数, 通过k means方法获得5个有代表性的曲线。在我们的实验中,我们使用这5个使用样条插值获得的CRF。如图所示,曲线已被归一化。

在这里插入图片描述

需要定义 Ei , \triangle t_j的相对标准. 例如如果 Ei 在[0, 1000] 的范围, \triangle t_j 为1, 那么许多 Z_{ij} 上的像素点都会变成白色. 这种白色的剪切去域几乎无法用于学习基于曝光的变化, 因此应该避免. 我们适当的调整观察信号 EI, \triangle t_j 的范围

具体将\triangle t_j 设置为停止之间 τ 的幂.  其中, T是偶数整数, j = 1, 2, .....T+1 

归一化 E_i \triangle t_j, 使得E_i \triangle t_{T/2+1} (= E_i 因为 \triangle t_{T/2+1} =1)的平均像素值等于 0.5, 本文使用 T= 8, τ = \sqrt 2 , 效果如下:

尽管 归一化的 E_i  和 \triangle t_j 的选择确定了生成的HDR图像的动态范围, 但是线性缩放E_i  或  \triangle t_j 可以来补偿生成的HDR值 ( 论文附录有说明).  因此,如果生成的HDR图像有点太暗或太亮,则用户可以通过线性缩放像素值来调整它。

3.2 融合生成的Bracket Images

将LDR图片送入神经网络,上曝光网络会输出N张上曝光图片,下曝光网络会输出N张下曝光图片。我们由此获得了2N+1张不同曝光度的LDR图片,我们从中挑选k张来合成HDR图片。
如果输入的LDR图片是过度曝光或者曝光不足的图片,生成的LDR图片可能会因此含有在明亮区/暗区含有错误的像素。为了避免这些瑕疵,我们使用如下的启发式检索:
我们从输入图像开始,选用第j+1张更亮/更暗的图片,直到每个通道上每个像素值v_{j+1} 比 v_{j} 更大或更小, 或是相对差值 | v_{j+1} - v_j | < \eta, 本文中 \eta = 64

我们使用多种融合的方法。某种存在的方法需要对每个bracket image 提供一下曝光时间。曝光时间可以从图片的Exif数据中获得,过曝光/欠曝光图片可以通过乘以曝光时间因子 τ 得到, 如果 Exif数据不可获得, 用户可以设置   τ 为固定值,  然后线性变换 HDR 像素值.  可以采用 [Mertens et al. 2007]的方法, 不需要曝光时间作为输入, 生成LDR图像色调映射, 而不是生成 HDR图像.

 

上/下曝光神经网络
同一个网络结构, 输出不同。

在这里插入图片描述

encoder编码阶段:

输入是一个 W * H* c (宽 * 高 * 通道数)的 LDR图像, 本文使用的是 512 * 512 * 3 的RGB 图像作为输入, 第l个卷积层输出 \frac{W}{2^l} \times \frac{H}{2^l} \times c_l 的三维tensor.

具体来说,编码器由9个4×4卷积层组成,stride为(2,2),padding为(1,1)。从第一层到最后一层,滤波器内核的数量(即,输出通道的数量)分别为64、128、256、512、512、512、512、512和512。在第二层及后续层中,将批处理归一化(BN)应用于卷积输出,以通过归一化每个输入特征的分布来改善网络中的学习。在我们的网络中,批处理归一化(BN)通过仅在学习和推断阶段使用其统计信息来标准化输入批次。每层中的激活函数是leaky ReLU函数. 

decoder解码阶段:

在2D CNN之后,解码器使用卷积特征作为输入来生成N×W×H×c四维张量,由具有不同曝光度的N个图像组成。为了生成具有不同曝光度的图像,我们采用3D反卷积神经网络。 
具体来说,解码器由九层组成。前三层是4×4×4反卷积(以曝光度,宽度和高度的顺序),stride为(2,2,2),padding为(1,1,1)。剩余的层是3×4×4反卷积,步幅为(1,2,2),填充为(1,1,1)。也就是说,前三层使曝光和空间轴上的层输入加倍,而其余层仅在空间轴上执行相同的操作。从第一层到最后一层,过滤内核的数量分别为512,512,512,512,512,256,128,64和3.在最后一层以外的层中,应用批量标准化(Batch Normalization),激活函数是ReLU功能。最后一层通过sigmoid函数输出一个四维张量,其像素值在[0,1]中。
3D CNN通常用于视频分析和分类。对于视频预测,最近的工作产生了更多成功的结果。但是,输出视频大小很小(64×64),并且在时间轴上仍然包含不一致的噪声。这是因为网络比2D CNN更复杂,并且学习比单个图像更难。
在我们的例子中,因为我们使用更大的图像和更深的反卷积网络,这个问题变得更加严重。因此,我们使用skip connection扩展网络.

在上述Encoder-Decoder网络中,解码器使用完全编码的向量,这意味着整个图像的潜在特征。为了将输入图像中的局部和低级信息逐步合并到解码器中,我们在U-Net扩展后添加Skip Connection和残差模块(residual unit)。
Skip Connection:U-Net实现第i层和第n-i层的连接(n是总层数),连接两个相连层的所有通道。这种网络结构可以使得解码器利用局部信息并加速学习。

Residual Module:  残差模块可以用一般形式表现为x_{l+1} = f(h(x_l) + F(x_l)), 其中 x_l, x_{l+1} 分别表示第l层的输入和输出, f表示激活函数, F表示残差函数.直观的来说,残差单元可以从输入图片中学习变化。我们假设,从输入图片中学习到曝光量的变化要比学习如何从头开始学习一张图片要简单。

由于具有跳连接的层上输出的尺寸不同,因此无法直接应用于2D卷积和3D逆卷积, 我们复制和连接输入图片和ecoded features 使每个张量的尺寸与解码器相应层的尺寸匹配, 比如: 将 W * H * c 的输入图片和 \frac{W}{2^l} \times \frac{H}{2^l} \times c_l 的endoder feature 转换为 N * W * H * c 和 N * \frac{W}{2^l} \times \frac{H}{2^l} \times c_l . 对于U-Net,将\frac{W}{2^l} \times \frac{H}{2^l} \times c_l 的encoder feature和相连的deconvolution 层输出的结果相连。

对于 residual 单元,   N * W * H * c 的输入图片 被相加到最后一层激活函数之前.  x_{l+1} = f(h(x_l) + F(x_l)) 其中 x_l , x_{l+1} 分别是输入图片和输出, f 是 sigmoid 函数, h 是恒等映射, F 是没有最后sigmoid 函数的网络.

 

4.2 学习和实现

为每个场景和每个CRF函数生成了一组大小为T+1的bracketed images。令D表示这一组T+1张bracketed images,

I_j \in D 表示曝光时间索引为j 的 LDR图像.

基于 I_j 的上曝光模型通过参考 D 中其他具有更高曝光度的图像来学习由于曝光度增加引起的相对变化, 即把 I_{j+1}, I_{j+2}, ... , I_{j+1+N} 作为 ground-turth.

up-exposure model loss:

                                                        \sum_D \sum^T_{j=1} || I^{up}_{j+1 \rightarrow j+1+N} \oplus O_j - M_j \circ G(I_j, \theta ) ||_1

其中,  I^{up}_{j+1 \rightarrow j+1+N} 表示 通过 concat 图像 从 I_j \quad to \quad I_{min \{ j+1+N, T+1\}} 获得的 min{N, T+1-j} * W * H * c 的tensor

O_j 表示 min{j+N-T-1, 0} * W * H * c 的 0 tensor

\oplus 表示 concatenation 操作

M_j 表示 N * W * H *c tensor 

\circ 表示 元素积

G(I_j, \theta ) 表示 网络输出 N * W * H * c tensor

要掩盖数据不存在的区域,如果第一维的索引小于T + 2-j,则Mj的每个元素为1,否则为零

使用 L1 距离可以减少模糊

down-exposure model loss:

                                             \sum_D \sum^T_{j=1} || I^{down}_{T+1 \rightarrow T+1 -j -N} \oplus O_j - M_j \circ G(I_T+2-j, \theta ) ||_1

 

我们训练网络时,使用学习率为0.0002,动量为0.5的Adam优化参数随机梯度下降。将2D卷积和3D反卷积的初始参数设置为均值为0,标准偏差为0.02的高斯噪声。在解码器的batch normalization后面前三层使用50%的Dropout,从而提高对噪声的鲁棒性。大概60个周期后,L1 loss收敛。
 

实验评估指标:

HDR-VDP-2

结论

本文提出了一种基于数据CNN的数据驱动的反向色调映射方法。现有的大多数方法都是有限制的,因为它们依赖于特定的假设或启发式方法;另一种方法是利用参考图像来解决数据丢失的问题,但是它需要用户标记和非常相似的场景的参考图像。与这些现有方法不同,我们的方法是有监督学习的首次尝试,它通过学习曝光变化自动从单个LDR图像中推断HDR图像。使用HDR图像和 CRF 曲线, 创建了由各种bracketed images 作为训练数据集, 此外,我们提出了基于2D卷积和3D反卷积的神经网络架构,具有跳过连接以生成曝光过度和曝光不足的图像.

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值