ECCV 2018, Hong Kong University of Science and Technology, Tencent Youtu,  U of Oxford

论文名称:

Deep High Dynamic Range Imaging with Large Foreground Motions

keywords: High Dynamic Range Imaging, CNN(Convolutional Neural Network), Computational Photography

以下大意翻译是自己基于原文的理解:

Abstract:

他们论文的方法是生成大规模前景移动的HDR图像的。用了CNN。没有Optical flow。可以创造由于遮挡过曝光曝光不足的不存在的细节。他们的方法显著的降低了artifact和distortion,而且包括不用radiometric calibration的图片。

论文写作思路理解:

先讲故事,为啥会存在这个合成的问题;以存在的解决方式有什么不足;我们提出的方法可以解决什么未解决的问题;我们的优势在哪等,全写在Intro里。然后文献回顾以往的方法。再介绍自己提出的方法,网络结构,loss func,数据哪来的,输入前怎么处理的,训练的细节等。第五节开始对比结果,对比文献回顾里的方法,但是只对比了3个。PSNR,SSIM和HDR-VDP-2结果并不出众。然后用大量的实际图片对比各种情况。最后说出不足,总结。

故事逻辑线:

市面上的digital cameras fail to capture 全部的DR,专门capture HDR的设备太重太贵,捕捉稍纵即逝的瞬间一般用手机。另一个方法是合成几个不同曝光度的LDR图片。如果这些图片能完美对齐,那么合成问题就解决了。但是除了小的camera motion以外,只要有打的前景运动,前景和前景,后景和后景的错位是不可避免的。后景不对齐可以用单应变换(homography transformation) 解决,前景就难了。很多方法会产生artifact or ghosting,或者对齐失败。

最近[14]提出用CNN合成。他们先用Optical flow对齐,再feed到CNN里。但是Optical flow经常在对齐多个大位移的exposure图片时产生artifact。虽然Kalantari论文里说可以解决,但是问题还是存在。下图里显示有问题。

相反,我们认为合成多个exposure图片到HDR是image translation问题。近年来,[11]提出用GAN学习图像间不同域的映射。[2]提出CNN可以学习对齐。[30]提出CNN可以填补miss details。我们相信Optial flow对齐是杀鸡用宰牛刀了(overkill)。所以我们提出一个网络来translate多个LDR到一个ghost-free的HDR。

我们方法的优势:

  1. 没有Optical flow,也就没有它所带来的artifact问题。是创新,速度快还实用。
  2. 可以hallucinate压根不存在的细节。这些细节通常被遮挡或者在过曝光区域。
  3. 延展性好。几个LDR都能合成。

我们用了大量的质量和数量上的对比来展示我们的效果好。而且对不同的LDR,不同的exposure都不用radiometric calibration。

文献回顾:

LDR配准(Image registration)是在合成HDR之前进行的。配准算法是基于亮度(brightness)一致性的假设。而亮度的改变通常与图像映射到另一个域有关。比如亮度域(luminance domain)或者梯度域(gradient domain)。

物体移动比相机移动男对齐得多。[9, 16]算法在合成过程中用权重来拒绝移动像素。[4, 21]在合成后检测和解决ghosting。这些方法只是忽略了错位的像素,没能成功的完全利用可用内容生成HDR图片。

[15,31]这种更复杂的方法是基于Optical flow或它的变体来解决橡像素间的密集对应。可optical flow在处理打的位移时常常产生artifact和distortion。在合成步骤中引入额外的复杂性。其中[14]的结果可能是最好的。他提出先用optical flow对齐,再用CNN学习合成。我们也差不多。区别是我们压根没用optical flow,也就直接避免了由它所带来的artifact问题。

另两个解决密集对应的方案[10,23]是基于patch的系统。这些方法效果好,但running time巨长。且对大位移和大面积过曝光处理会失败。

最近[3]用CNN,1张LDR重建HDR。虽然它能hallucinate LDR非常weak response的区域细节,但是对它一个固有的限制是它完全依赖于1张LDR输入。如有大规模的过曝光,高对比度场景的处理会失败。也是为什么我们想用多张LDR来合成的原因。

生成HDR也需要其他步骤。像辐射校准(radiometric calibration),色调映射(tone mapping)和动态范围压缩(dynamic range compression)。我们只专注于合成的步骤。[5]里有对问题的完整回顾。

方案内容和操作细节:

有{I1, I2, I3,...,Ik}, 参考图为Ir.  1< r < k。生成HDR为H。H无鬼影,与Ir对齐。

实验中有3张LDR,所以r=3。{I1, I2, I3}。Ir就是中间那张,所以Ir = I2。

他们试了两个结构,Unet和Resnet。

整体结构分为3部分: encoder, merger,decoder。看起来其实merger不是个单独的结构,只是Unet和ResNet里都带有合成的这个功能。

拿到一堆LDR,先做inverse of camera response function(CRF),也就是通常被称为radiometric calibration,然后再用gamma func。

让I={I1, I2, I3}, H={H1, H2, H3},gamma encoding: 。 其中ti是第i张的曝光时间。Ii,Hi,H值域在(0,1)。然后把I和H逐通道对接(concatenate)。也就是说Ii维度是[?,?,3], Hi是[?,?,3],对接之后维度是[?,?,6],再输入网络。输出是 ,它也在(0,1)。

损失的计算是在色调映射以后的HDR。其中TM方法是[14]提出原先是用来做音频压缩μ-law:。μ他们取5000。

那么损失函数就是 。 H是ground truth。

ground truth怎么来的呢?是UCSD[14]里的数据集里的。他们对于每个场景拍3张不同曝光的对象有移动的LDR,再拍3张对象静止的。用3张对象静止的LDR,以中间1张对齐生成HDR做gt。再用中间曝光的静止的LDR替换掉移动的3张中的中间一张。其实意思就是动的和静的3张图的中间一张是一样的。

所有图片resize到1000x1500,并且做了单应变换(homography transformation)来对齐背景。

训练集74张,测试15张。输入是256x256的切下来的块,stride 64。共19000个。用data augmentation方法翻转旋转之后数量乘了8倍。这里没说细节。我的理解是3张输入LDR切同样的坐标,也就是3个输入切相同位置生成3个patches。gt也切同样的位置,就能训练了。注意根据文章说的,中间的patch和真值patch是一模一样的。但是毕竟图片有大量的背景,只有少量的前景。实际上这样切出来会有很多背景在里面。所以他们根据Structual similarity定了个上限检测不同曝光度之间patch是否包含移动。ss值低就说明是移动的位置。移动的patches是被挑出来复制到训练集里的。(这里是我的理解,原文只说thresholding)

他们也在Sen[23]和Tursun[27,28]上测试了自己的训练结果。文章中的图片的tonemapper全是用photomatix显示的HDR,训练是用的上面写的μ-law。

网络结构:

Unet: kernel size 5x5。encoder 8层stride=2,decoder8层stride=1/2。 ,除第一和最后一层,中间有batch-norm,activation func 用的 leaky ReLU。encoder的第三维范围是[64, 512], decoder是[512, 64]。decoder输出前连了一个flat-convolution层。一句带过没说究竟是啥。我猜是全连接层或者全局压缩层。输入从256x256,8层后变1x1x512。

ResNet: 和Unet基本一样,只不过从第三层之后32x32x256加入9个 residual block。kernel size 3x3。decoder 3层回去。

没说输入的[256x256x6]怎么变成第三维64的,也没说输出的64怎么变回rgb的3个通道的。再具体的细节得去看代码。

对比结果:

时间对比:

他们用Titan X Pascal训练的。为了跟别人公平对比,用CPU测试的。测试用的i7-4790K(4.0GHz) 32GB RAM。不知道被对比的用的什么CPU。测试图片大小为896x1408。他们的速度比别人快很多。其中Kalantari光optical flow就跑了59.4秒。

质量对比:

-T是色调映射以后的,不知道是photomatrix还是μ-law。-L是意思可能是用线性方程处理一下的结果。只对比了三个算法。数据一般,没有显著优势。

数量对比:

框出了大量的细节对比。

Fig3对比大位移的时候[10, 14, 23]都有不同程度的artifact。[19]有鬼影,最菜,没法看。[3]没啥问题单不够锐化。

Fig 1,3,4对比flow-based方法。

Fig5对比制造不存在的内容的结果(hallucination)。3张全用中间曝光度之后地上颜色不对。用了3张不同曝光度之后地上有了第一个曝光度里的质地。

Fig7用Sen数据集跟别人对比。

Fig8 用不同的曝光度做中间的reference image会有啥结果。

Fig9对比5个曝光度结果,测试模型延展性。

Fig10测试不同手机,不同CRF下的结果。

讨论不足:

如果不用单应变换对齐背景的话,结果会有模糊,比如fig11。

但是只要用单应变换就好了呀。只不过单应变换也会有不足,比如会产生parallox effect,比如fig12

总结

==========================================================================================

其实论文里说的radiometric calibration和gamma function不是真正意义上的辐射配准和伽马方程,他们写的只是CRF。

文章里有几个词汇不太符合我们对常规使用词汇的认识,还有几个我不熟悉的新概念,我一并总结下来:

  1. Camera response function(CRF)这是啥?
  2. Radiometric calibration 辐射配准是啥?
  3. Radiance vs Reflectance 这俩的区别是啥?
  4. Brightness vs Luminance 两个词具体表现有啥区别?
  5. Gamma function 什么是γ方程?
  6. Image registration 什么是图像配准?
  7. Parallax effect 这个叫视差效应,什么意思呢?

其中1 - 3都跟传感器的知识有关,是数字成像的一部分。他是发生在图像处理之前的。其实做图像处理不一定需要知道这些,不过既然论文里提到了,顺便了解一下也无妨。但是这篇太长了,在这里总结了剩下的东西。

Faster Read: Deep High Dynamic Range Imaging with Large Foreground Motions相关推荐

  1. 论文解读:Deep High Dynamic Range Imaging of Dynamic Scenes

    Deep High Dynamic Range Imaging of Dynamic Scenes Abstract 这篇文章介绍了一种在动态场景中,如何将不同曝光的图像进行融合从而得到高动态图像的方 ...

  2. 3.1 TMO MATLAB 框架(Advanced High Dynamic Range Imaging )

    3.1 TMO MATLAB 框架(Advanced High Dynamic Range Imaging ) 通常,无论属于哪一类TMO,都有两个共同的步骤. 本节描述了大多数但不是全部TMO使用的 ...

  3. 3.2.3 Quantization Techniques(HDR量化)(Advanced High Dynamic Range Imaging)Schlick TMO

    3.2.3 Quantization Techniques(HDR量化)(Advanced High Dynamic Range Imaging)Schlick TMO Schlick [341]提出 ...

  4. 2.1.2 Capturing HDR Videos(Advanced High Dynamic Range Imaging )

    2.1.2 Capturing HDR Videos(Advanced High Dynamic Range Imaging ) 目录 2.1.2 Capturing HDR Videos(Advan ...

  5. 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR)

    1  HDR基本概念 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR),是一种表达超过了显示器所能表现的亮度范围的图像映射技术,已成为目前游戏应用不可或缺的 ...

  6. High Dynamic Range Imaging

    High Dynamic Range Imaging 一.背景介绍 ​ 今天,大多数数字图像和成像设备每通道使用8位,因此将设备的动态范围限制为两个数量级(实际上是256级),而人眼可以适应变化十个数 ...

  7. HDR(High Dynamic Range Imaging)在摄影中指高动态范围成像

    HDR(High Dynamic RangeImaging)在摄影中指高动态范围成像.国内的教程基本语焉不详,找到一篇比较详尽的国外教程翻译出来,希望对大家有帮助.^_^ 原文地址:http://ph ...

  8. 【论文学习】UPHDR-GAN: Generative Adversarial Network forHigh Dynamic Range Imaging with Unpaired Data

    UPHDR-GAN:基于非配对数据的高动态范围成像生成对抗网络 摘要 introduction 主要贡献 proposed method 网络框图 网络详介 1.输入 2.生成器输出 3.生成器 4. ...

  9. Python+OpenCV:高动态范围(High Dynamic Range, HDR)

    Python+OpenCV:高动态范围(High Dynamic Range, HDR) 目标 Learn how to generate and display HDR image from an ...

最新文章

  1. 通过windows系统封杀IP与端口
  2. PyTorch称霸学界,TensorFlow固守业界,ML框架之争将走向何方?
  3. 10行代码-原生JS双向数据绑定演示
  4. Bmob图片上传遇到的坑
  5. java窗口坐标_如何在Java中获取窗口外部的鼠标单击坐标
  6. springboot ftp 笔记
  7. Balanced Ternary String
  8. 火车头采集php源码不同,防火车头采集的功能
  9. 内存查看工具RAMMAP说明
  10. 后端学习 - 设计模式与设计原则
  11. 使用RxNetty访问Meetup的流API
  12. 一个DEMO让你彻底理解线程池
  13. 对应的ctrl_取消单元格合并,对空白单元格填充数据,学会Ctrl+Enter五秒搞定
  14. ABB机器人VGT文件_ABB机器人与焊机之间通讯方式
  15. App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点
  16. MySQL5.7.的备份恢复方案。
  17. Mac Automator小教程,简单易懂
  18. Hello World 我的第一个VB程序
  19. Scala编译后的class文件反编译的结果
  20. Elasticsearch 技术分享

热门文章

  1. MM32F3277空闲中断+DMA接收不定长数据
  2. 杭州的海王星辰将健美生的保健品全部突然下架拉,有谁知道是什么
  3. 求解1+1/2+1/3+...1/99+1/100的和
  4. TypeError: Descriptors cannot not be created directly解决
  5. 一个好的肖像造型需要学习哪些3D建模知识?
  6. SpringBoot Hanlp的集成
  7. Redis面试完整版
  8. wim文件怎么安装系统 wim文件安装系统教程
  9. C语言文件操作函数总结——超详细
  10. webpack入门学习笔记10 —— 在项目中使用图片资源