Faster Read: Deep High Dynamic Range Imaging with Large Foreground Motions
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。
我们方法的优势:
- 没有Optical flow,也就没有它所带来的artifact问题。是创新,速度快还实用。
- 可以hallucinate压根不存在的细节。这些细节通常被遮挡或者在过曝光区域。
- 延展性好。几个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。
文章里有几个词汇不太符合我们对常规使用词汇的认识,还有几个我不熟悉的新概念,我一并总结下来:
- Camera response function(CRF)这是啥?
- Radiometric calibration 辐射配准是啥?
- Radiance vs Reflectance 这俩的区别是啥?
- Brightness vs Luminance 两个词具体表现有啥区别?
- Gamma function 什么是γ方程?
- Image registration 什么是图像配准?
- Parallax effect 这个叫视差效应,什么意思呢?
其中1 - 3都跟传感器的知识有关,是数字成像的一部分。他是发生在图像处理之前的。其实做图像处理不一定需要知道这些,不过既然论文里提到了,顺便了解一下也无妨。但是这篇太长了,在这里总结了剩下的东西。
Faster Read: Deep High Dynamic Range Imaging with Large Foreground Motions相关推荐
- 论文解读:Deep High Dynamic Range Imaging of Dynamic Scenes
Deep High Dynamic Range Imaging of Dynamic Scenes Abstract 这篇文章介绍了一种在动态场景中,如何将不同曝光的图像进行融合从而得到高动态图像的方 ...
- 3.1 TMO MATLAB 框架(Advanced High Dynamic Range Imaging )
3.1 TMO MATLAB 框架(Advanced High Dynamic Range Imaging ) 通常,无论属于哪一类TMO,都有两个共同的步骤. 本节描述了大多数但不是全部TMO使用的 ...
- 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]提出 ...
- 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 ...
- 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR)
1 HDR基本概念 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR),是一种表达超过了显示器所能表现的亮度范围的图像映射技术,已成为目前游戏应用不可或缺的 ...
- High Dynamic Range Imaging
High Dynamic Range Imaging 一.背景介绍 今天,大多数数字图像和成像设备每通道使用8位,因此将设备的动态范围限制为两个数量级(实际上是256级),而人眼可以适应变化十个数 ...
- HDR(High Dynamic Range Imaging)在摄影中指高动态范围成像
HDR(High Dynamic RangeImaging)在摄影中指高动态范围成像.国内的教程基本语焉不详,找到一篇比较详尽的国外教程翻译出来,希望对大家有帮助.^_^ 原文地址:http://ph ...
- 【论文学习】UPHDR-GAN: Generative Adversarial Network forHigh Dynamic Range Imaging with Unpaired Data
UPHDR-GAN:基于非配对数据的高动态范围成像生成对抗网络 摘要 introduction 主要贡献 proposed method 网络框图 网络详介 1.输入 2.生成器输出 3.生成器 4. ...
- Python+OpenCV:高动态范围(High Dynamic Range, HDR)
Python+OpenCV:高动态范围(High Dynamic Range, HDR) 目标 Learn how to generate and display HDR image from an ...
最新文章
- 通过windows系统封杀IP与端口
- PyTorch称霸学界,TensorFlow固守业界,ML框架之争将走向何方?
- 10行代码-原生JS双向数据绑定演示
- Bmob图片上传遇到的坑
- java窗口坐标_如何在Java中获取窗口外部的鼠标单击坐标
- springboot ftp 笔记
- Balanced Ternary String
- 火车头采集php源码不同,防火车头采集的功能
- 内存查看工具RAMMAP说明
- 后端学习 - 设计模式与设计原则
- 使用RxNetty访问Meetup的流API
- 一个DEMO让你彻底理解线程池
- 对应的ctrl_取消单元格合并,对空白单元格填充数据,学会Ctrl+Enter五秒搞定
- ABB机器人VGT文件_ABB机器人与焊机之间通讯方式
- App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点
- MySQL5.7.的备份恢复方案。
- Mac Automator小教程,简单易懂
- Hello World 我的第一个VB程序
- Scala编译后的class文件反编译的结果
- Elasticsearch 技术分享
热门文章
- MM32F3277空闲中断+DMA接收不定长数据
- 杭州的海王星辰将健美生的保健品全部突然下架拉,有谁知道是什么
- 求解1+1/2+1/3+...1/99+1/100的和
- TypeError: Descriptors cannot not be created directly解决
- 一个好的肖像造型需要学习哪些3D建模知识?
- SpringBoot Hanlp的集成
- Redis面试完整版
- wim文件怎么安装系统 wim文件安装系统教程
- C语言文件操作函数总结——超详细
- webpack入门学习笔记10 —— 在项目中使用图片资源