开启辅助访问
 找回密码
 立即注册

高动态范围HDR(High Dynamic Range)图像合成技术

guchanghu 回答数0 浏览数720
目前多数学者采用多张不同曝光度的普通数字图像来计算实际的场景亮度,经过计算机高速计算之后得到一幅HDR高动态范围图像,且通过压缩算法将HDR图像显示在低动态范围(LDR)的显示设备上。
这类算法需要解决一台关键问题,就是如何正确的标定相机的响应曲线。高动态范围图像合成技术主要包括相机响应曲线的标定,高动态范围图像的存储以及Tone-Mapping压缩显示算法。
Paul Debevec 和 Jitendra Malik给出了精确的单通道灰度图像相机标定算法,能够很好的标定相机响应曲线。但是彩色图像的合成将RGB三个通道认为是分别独立的数据来恢复RGB三个不同的相机响应曲线,计算量大,合成的RGB彩色图像容易造成颜色失真。
Tomoo Mitsunaga 和 ShreeK. Nayar提出了用N次多项式来模拟相机响应函数,使用曝光度比的估计值来计算多项式的系数,然后用计算出来的多项式重新估计曝光度比,重复迭代,如果算法收敛,就得到了响应函数和精确的曝光度比。该迭代算法稳健性不好,当迭代结束条件精度设置过高时容易发散,且当曝光度比的估计值偏离正确值较大时会收敛到错误的结果。
采用N次多项式来模拟相机响应函数,且给出了一台初始化条件,使得该算法的稳定性得到了提高。
由于单幅图像的曝光度固定得到的场景动态范围非常有限,因此需要通过多次曝光来恢复出实际场景真实的照度数据,从而得到HDR图像。


拍摄图像时,光线通过相机镜头到达图像传感器(一般是CCD或CMOS图像传感器)把接收到的光信号通过图像传感器上的光敏单元离散成正比于曝光量的像素点数据,并转换成模拟电压信号,经过A/D转换后变成数字信号,最后经过微处理器的非线性运算转换成图像的数据,存储成各种格式的图像文件,就是在存储器上得到的数字图像文件。
基于多幅不同曝光度图像的HDR图像合成过程,包括三个基本流程,即
响应曲线标定、
HDR合成、
HDR显示等。



先让四张曝光不同的照片,升序排列。


比较各个照片的曝光比,选取合适的部分,创建蒙版。(直译,不知道如何选,也没图)
然后确定一条 brightness weight curve ,取消掉暗部低信噪比(signal-to-noise)的部分,然后去掉死白的部分(clipped area),曲线如下图。



观察蒙版的重叠情况。


将曲线应用于蒙版,得到如下效果图。


然后把他们合成(这里也没说是加权相加或是如何样)


得到这样的一张图。我们可以改变它的曝光值来观察。


因为显示器能显示的范围有限,所以我们需要将这张HDR图像进行色调映射(如降低对比度)将图像的整体或者部分(过曝欠曝区域)进行压缩(线性或对数),来获得一张显示器可以完全显示细节的图像。
色调映射又是另外一种算法,基本是通过对灰度的归一化,再输出到 [0,255]区间上。算法也有很多种。最终看到的效果图应该是这样


灰灰的,丑丑的。然后再此基础上进行新的调整。增加对比度,增加饱和度等等。
堆栈和HDR算法的区别我懒得找了,但是我又猜了一下:HDR关注的是获得depth-of-field,所以会去注重对亮度的转换。而堆栈的种类有很多,有焦点合成的,有最大最小峰值均值中值等等,这些都是针对一组图像的差异。所以在计算亮度的同时,也会考虑到颜色。


深度学习HDR算法

对于动态场景来说,从一组不同曝光的图像中生成高动态范围(HDR)图像是一台具有挑战性的过程。
这个问题可以分为两个阶段:1)对齐输入的LDR图像,2)合并对齐的图像到HDR图像。
方法主要分为两类:

  • 一种直接基于LDR对齐融合,一种是先通过相机响应函数线性化这些输入图像(一般就是一台单调的非线性函数),将LDR图像转为HDR域,然后在HDR域进行融合得到HDR图像。
  • 另外一种是直接基于LDR(低动态图像,一般8bit)图像合成伪高动态图像HDR(也是8bit,只是效果看起来像高动态范围图像,即过曝光以及欠曝区域减弱)。
1 Deep High Dynamic Range Imaging of Dynamic Scenes
现有HDR技术首先将输入图像对齐到参考图像,然后将对齐的图像合并得到HDR图像。然而,在最终的HDR图像中,对齐的artifact通常以重影和撕裂的形式出现。
而该论文发现,在合并期间,对齐的artifact可以显著减少,它需要检测带有artifact的区域,并将它们从最终结果中排除。
因此该论文也主攻融合这一块,靠融合解决artifact,作者采用CNN进行融合, 论文强调基于学习的系统能够通过检测这些区域并将它们从最终结果中排除,从而生成高质量的HDR图像。


本文三大贡献:

  • 提出了第一种基于机器学习的方法,用于从一组曝光包围的动态场景下的LDR图像重建HDR图像动态场景的HDR图像(创意在于采用了CNN),流程见上图。
  • 展示三种不同的系统架构并对它们进行广泛的比较,充分地探讨本文提出的融合方法。
  • 介绍了第一台适合于HDR重建学习的数据集,可以为今后该领域的学习研究提供便利。(制作过程值得其他图像任务借鉴)
文章主要内容:
一.整个HDR重建流程和主要思想
1)预处理:
输入的LDR图像可以是动态的场景,它们之间有相当大的运动(其实主要是前景运动场景),作者先通过伽玛校正把图像映射到一台更接近我们眼睛感知的区域(场强域),注意,这个过程将原始CRF替换为伽马曲线,伽马曲线用于将图像从LDR映射到HDR域,反之亦然。
2)对齐:
对齐的方法很多,去不一致性,基于特征匹配等,这里作者采用光流法进行对齐。
3)融合:
提出并比较三种不同的系统架构来建模HDR合并过程,其中作者提到,通常,我们需要在LDR和HDR域中对齐图像来测量它们的质量,LDR域内的图像是检测噪声区域或饱和区域所必需的。例如,一台简单的规则是考虑所有较小的像素(小于0.1)以及较大的像素(大于0.9)分别代表噪声和饱和区域。此外,HDR域内的图像可以通过测量与参考图像的偏差量等方法来帮助检测对齐问题。因此输入既需要LDR还需要HDR域图像。
二. 数据集
我们通过提出一种创建一组具有运动的LDR图像及其对应的地面真值图像的方法来解决这个问题,具体地说,我们使用从静态场景中捕获的三张带括号的曝光图像生成ground truth HDR图像。然后,我们捕捉另一组三个包围的曝光图像的同一场景的运动。最后,我们用静态图像代替动态图像中的中等曝光图像。我们用这种方法创建了一台包含74个训练场景的数据集,并通过数据扩充对其进行了扩展。
其样本制作过程值得低级图像处理任务借鉴。我们要求受试者保持静止,在三脚架上捕捉三个曝光包围图像,然后将它们组合起来生成地面真值图像。我们还要求受试者移动并捕捉另一组曝光包围图像。我们通过从这个动态集合中获取高曝光和低曝光的图像,以及从静态集合中获取中曝光的图像来构建我们的输入集合。采用这种数据集可以学习融合具有前景运动的场景图像。


我们以原始格式捕获了所有的图像,使用佳能EOS-5D Mark III相机进行获取,分辨率为5760×3840。减少在静态设置中可能的偏差,我们downsampled图像(包括动态集)的分辨率为1500×1500。为了保证训练集的多样性,我们拍摄了由两个或者三个停顿的包围曝光图像。在采集数据的过程中,我们仍然不得不放弃其中四分之一的场景,主要是因为它们包含了令人无法接受的动作(树叶或者人物)。真值融合方法:Debevec and Malik [1997]。
2 Deep High Dynamic Range Imaging with Large Foreground Motions
该论文利用Deep High Dynamic Range Imaging of Dynamic Scenes提供的数据集设计了一台端到端的HDR重建网络,
该论文认为网络也可以具有对齐功能,因此只是简单地采用单映射将输入图像进行背景对齐。然后直接输入三张LDR图像,输出HDR图像。
对齐问题涉及到前景运动和背景运动,即全局运动和局部运动,而且这些运动也是不可避免的,而全局运动的问题通过一些变换可以解决,局部运动则不好解决。因此解决这个问题的许多现有解决方案都倾向于在最终的HDR映像中引入工件或重影,或仅将未对齐区域中的像素作为离群值剔除,未能合并未对齐的HDR内容。
该论文将HDR成像问题表述为图像转换问题。框架本质上是一台对称的编码器-解码器架构,有两个变体,Unet和ResNet。


整个操作流程:

  • 预处理,LDR+HDR:作者根据上一篇论文,通过辐射校准获得HDR域图像,这里作者采用伽马校正来近似。这样输入包含3张LDR图像和3张HDR域图像,并且为了使HDR域图像的强度相同,作者将转换得到的HDR域图像除以相应的系数,这里系数由曝光值得到,曝光值采用相对值(0,2,4)或者(0,3,6),这样使得HDR域图像尽量强度接近。对齐:作者会简单的将背景对齐一下,单应性可能不会产生完美对齐的一台特殊情况是饱和区域存在视差效应。最终的HDR输出可能比较模糊。
  • 网络结构:U-Net等一般图像转换采用的网络结构,或者残差网络。
  • 损失函数:作者采用了简单的tonemapping函数对HDR图像进行范围压缩,计算tonemapping后的图像之间的L2 loss
原模型的反卷积不行,存在马赛克问题,数据集制作:SIGGRAPH17_HDR_Deep High Dynamic Range Imaging of Dynamic Scenes。可以考虑采用亚像素进行上采样。
该网络结构可以扩充到更多输入图像情况。
论文最后提到:虽然该论文的优势很明显,但这还不是一台完美的解决方案。他们也观察到用最小输入LDR恢复大量饱和区域的挑战。今后,我他们努力结合高级知识来促进这种恢复,并设计一种更强大的解决方案。
3 A Deep Unsupervised Approach for Exposure Fusion with Extreme Exposure Image PAIrs

提出了一种新的融合静态多曝光图像的深度学习体系结构。
主要观点就是人工特征不如深度学习的特征。同时提到MEF领域没有相应的训练样本。因此作者通过提出一种无监督的深学习方法来避免需要真值图像。即无参考质量度量作为损失函数,该模型融合了从每幅图像中提取的一组常见的低层特征,从而产生无人工的、令人愉悦的结果。同时作者设计了一台新的基准数据集,可用于比较各种MEF方法。
作者采用CNN融合Y通道,这是因为图像的结构细节存在于亮度通道中,亮度通道的亮度变化比色度通道更明显。关于特征的融合操作,作者采用加法(均值,max等操作供选)。
SSIM: 结构相似度指数从图像组成的角度将结构信息定义为独立于亮度、对比度的反映场景中物体结构的属性,并将失真建模为亮度、对比度和结构三个不同因素的组合。用均值作为亮度的估计,标准差作为对比度的估计,协方差作为结构相似程度的度量。而在实际应用中,一般采用高斯函数计算图像的均值、方差以及协方差,而不是采用遍历像素点的方式,以换来更高的效率。需要参考图;MEF-SSIM基于结构相似度指标度量(SSIM)框架设计的,不需要参考图,直接基于输入图与融合图之间。
数据集:没有真值,Empa HDR Image Database,另外作者自个设计了50组图像,
作者测试了一种基于CNN的有监督的方法,真值来自Image fusion with guided filtering和Exposure fusion。并对比了损失函数的选择L1 L2 SSIM。“1损失”的结果比“2损失”的结果更清晰,但它在边缘有晕轮效应。与“1”和“2”不同的是,经过SSIM函数训练的CNN的结果既清晰又无人工痕迹。Application to MultiFocus Fusion


1 ExpandNet: A Deep Convolutional Neural Network for High Dynamic Range Expansion from Low Dynamic Range Content

该网络重点放在网络设计上,设计了三种不同网络分别获取图像的高频细节,中等细节,和整体轮廓信息。另外就是作者认为网络中的上采样和降采样会导致结构出现各种artifact,例如色块,马赛克等问题。因此其中两个网络不存在将采用和上采样操作。
整个框架的三个分支是局部分支、扩展分支和全局分支。每个分支本身就是一台接受RGB的CNN,LDR图像作为输入。
这三个分支中的每一台都负责一台特定的方面,本地分支处理本地细节,维护和扩展高频细节,扩展分支处理中级细节,学习关于较大像素邻域的信息,全局分支负责更高级别的图像范围的特性,通过学习输入的全局上下文提供总体信息。这样设计体系结构旨在避免对下采样特征进行上采样,这样是为了减少马赛克或者光晕artifact。例自动编码器架构。


下面分别解释三个分支:

  • global branch: 全局分支寻求减少输入的维数并捕获抽象特征,输入图像为256256,经过7个步长为2输出通道64的卷积,这样降采样到11,特征层数为64。
  • Local branch:局部分支的小接受域提供像素级的学习,保持高频细节,一根两个卷积,分别为5564 和 33128,步长都为1。
  • dilation branch:扩张支具有较宽的接受野,采用17*17,并且采用空洞卷积,空洞卷积间隔为2。空洞卷积是一种大而稀疏的卷积核,用于快速增加接收域的。共使用4个膨胀空洞卷积层,每个空洞卷积层具有64个特征。随着接受域的增大,扩张网络捕获的局部特征具有中等范围的频率,而其他两个聚焦于频率两个极端的分支则错过了这些频率。
损失函数采用L1而不是L2,L2会导致结果模糊,
为了保证每个像素的RGB向量的颜色正确性,增加了额外的余弦相似项。余弦相似度通过比较两个向量之间的夹角来度量两个向量之间的距离,而不考虑大小。
这项工作的主要贡献:

  • 提出了一种全新的框架,用于重建HDR图像
  • 与其他测试方法(包括应用于单一曝光的其他CNN架构)相竞争的结果。
  • 通过不同的暴露和位置选择对有限的HDR内容进行数据扩增,获得更多的LDR-HDR训练对。
  • LDR与HDR展开方法的综合定量比较。

2 Image Correction via Deep Reciprocating HDR Transformation
单张LDR重建出HDR,
在本文中,作者再回顾了图像的形成过程,发现这些区域中缺失的细节都存在于相应的高动态范围内(HDR)数据 ,也就是再进行tonemap之前,
因为本获得数据是RAW数据,前期处理时,都是高动态范围了,每一台像素可能为10bit甚至更多,因为要显示在显示器上,被tonemapping,范围被压缩到8bit了,
因此作者觉得可以先将LDR图像转到HDR域图像,然后再进行tonemapping,传统方法中要获得HDR域图像,一般基于相机相应函数,一般用伽马函数来建立模型,
这里作者试图用两个U-net网络来学习出相机相应函数和tonemap操作。



3 Deep Reverse Tone Mapping

单张图像重建HDR,
基于学习,单张图像生成曝光包围的图像序列,然后进行融合得到HDR图像,
该方法利用三维反卷积网络,通过学习曝光增加或减少时,像素值的相对变化,不仅可以在不引入可见噪声的情况下再现自然色调,而且可以再现饱和像素的颜色。ground-truth HDR images 。
作者试图训练出一台网络,当输入一张LDR图像时,其可以输出不同曝光的图像,然后这些不同曝光的图像到达曝光包围的效果,再进行常规的曝光融合得到HDR图像, 融合采用Debc,Mertens。各种Tonemapped,作者的目标是学习.hdr 格式的图像,因此重点是训练出这么个网络。
图像的曝光理论可以再HDR域进行修改,因为在HDR域中,图像的像素值跟光照强度呈线性关系,因此很多人研究相机相应函数CRF,因为通过CRF映射,可以将LDR域映射到HDR域,那么如何选择何使的CRF函数(200多种),作者通过聚类得到了能代表大众的CRF函数,然后基于这5种CRF来训练网络。得到一台可以产生多帧曝光的网络。(因为本事输入只有一张图像,单张图像求CRF的方法确实也有,但是理论上不如多帧求CRF,作者这个网络没有验证,但愿不错)。



Google Camera的 HDR+算法
1.HDR+技术诞生于GOOGLE X实验室,专精计算机图形学的Marc Levoy教授带领的团队;
2.有别于传统的HDR技术,HDR+采用了多张曝光时间相同的欠曝图片进行合成;
3.有别于传统的机内jepg堆栈技术,HDR+采用了采集RAW——堆栈——压缩为jpeg的路径,
先堆栈再压缩,能明显的提升图像细节动态范围;
4.由于上述原因,相比一般的HDR,HDR+需要更多的运算,不同于一般的利用ISP合成的HDR照片,HDR+更多的依靠高通处理器内的HexagonDSP以及CPU进行处理(pixel2使用定制的Pixel Visual Core);
5.HDR+技术一直在不停的更新与升级,所有在谷歌支持周期内的nexus/pixel设备都会获得更新

Nexus 6P 的相机向 Pixel 迈了一步 - 资深 (zhihu.com)
使用道具 举报
| 来自云南 用Deepseek满血版问问看
当贝投影