1. 什么是High Dynamic Range
动态范围(Dynamic Range)通常指的是画面里对应真实世界中光亮度最大值和最小值的比值,这里光亮度描述物体单位面积辐射光强的能力,单位为 )���(��/�2) 。我们生活的世界亮度范围很大,比如太阳的亮度达到20亿尼特(nit),室内白炽灯的亮度在200万尼特左右,而夜晚天空的亮度一般都在百分之几尼特。
人眼所能感觉的亮度范围非常宽,从百分之几尼特至几百万尼特,其原因在于眼睛的感光作用有随外界光的强弱而自动调节的能力。我们可以把瞳孔看成一个可变光阑,通过调节孔径大小控制通光量,但实际上这个调节也是有一定范围的,那么当物体亮度超出人眼能感受的亮度区间,会呈现出一种什么状态呢?
可以看到在超出了人眼的动态范围之外的亮度,不管上到1亿尼特还是10亿尼特,人眼已经区分不出来了,都是一片白茫茫的景象。同样在黑夜中也一样,非常暗的物体和稍微有点暗的物体对人眼来说都是一样的黑色,自然也看不到中间的信息了。
接下来介绍一下高动态范围的含义,顾名思义HDR就是指提高能感觉到的亮度范围,获取到更多信息。人眼能接受到的亮度范围在人类进化的过程中差不多已经定型了,因此高动态范围这个词其实是针对成像设备来说的。非常不幸的是,目前相机的感光元件能感受到的动态范围比人眼还要差一大截:
所以平时我们拍照的时候,要求相机把人眼看到的内容都记录下来都是一件相当困难的事情。即使是目前最强大的消费级相机,在拍摄大光比场景时仍然无法完全还原场景细节,比如下面这个场景楼房和地面亮度都在相机的动态范围之外:
相机拍摄阳光直射下的高对比度场景
回顾一下相机成像的原理,光学镜头将物体折射到cmos或ccd上,曝光时间、快门速度、光圈控制着传感器接收光子的一个数量:
举个例子,当曝光时间非常小的时候,传感器还没有充分接收到比较暗的物体,拍摄过程就结束了。最后暗区实际上拍下来就是一片漆黑。但好消息是亮区在传感器没有充分曝光的情况下,刚好可以保留高光处的细节(左图):
同理当曝光时间很长的时候,虽然亮度高的地方传感器接收饱和,区分不出信息了,但亮度低的物体随着充分的曝光却可以获取有区分度的信息(右图)。
说到这里可以发现,虽然相机在单次曝光状态下只能获取一张低动态范围(LDR)的图像,但通过多次不同的曝光得到不同范围的动态区间,把多个LDR的动态区间信息组合起来似乎可以实现动态范围的提升(HDR),最终逼近人眼观察的效果。
2. 影像拍照中的HDR合成技术
首先建立一个表达式,描述真实场景亮度L和传感器接收后感受到的亮度I之间的关系:
ti代表曝光时间,这里暂时以固定的快门速度和光圈大小举例。不同的曝光时间可以采样不同真实场景亮度L的动态范围,曝光时间长暗区信息可以获取到而亮区信息却会丢失(称为过曝光),曝光时间短亮区信息可以获取到而暗区信息却会丢失(称为欠曝光)。超出相机动态范围的亮度最后都会被截断掉(clip),这部分被截断的区域反应在图像上就是全白的像素。
下面展示了在三段曝光时间中相机获取到的热气球这组场景的图像,第二列为图像中处于相机成像动态范围内区域的mask:
可以看到这三段曝光时间获取的图像通过互补的方式,完美涵盖了这组场景从天空到地面的动态范围,接下来我们根据表达式将三组图像都统一到一个曝光时间(0.025s)下对真实世界的采样,最后对于第一帧图像缺失的动态范围内容,依次用后续帧进行补充即可。
这里方便展示高bit位图像都是做了线性压缩,比如一张16bits的HDR图像要在8bit显示设备展示必须要进行压缩
实际上由于大部分显示设备的动态范围只有100:1甚至更低,相机拍摄到的高比特位LDR图像和拼接出来的更高比特位的HDR图像要想展示在显示器上需要做很大比例的压缩。这意味着我们辛辛苦苦的通过成像设备将获取的多帧LDR拼接出HDR图像,最后由于显示设备不给力还是要回归成LDR图像展现出来。
但是相较于单纯的一张LDR图像,拼接出来的HDR图像拥有更多的信息,我们可以灵活的去选择如何压缩。通过判断对重要的信息做保留,不重要的信息做压缩,可以得到一张质量更好的LDR图像,这里的压缩方法具体实现将在第三节的Tone mapping算法进行介绍。
3. 影调映射(Tone mapping)
如第二节结尾所讲,因为有着更丰富的图像层次,HDR处理得到的高动态范围图像位深度一般都是12~16bits,而成像设备的位深度通常只有8~10bits。
以LDR的形式在显示器显示HDR图像就需要对高动态范围数据进行压缩,Tone mapping技术应运而生。实际上如果拍摄到一些动态范围甚至小于影像系统动态范围的场景,tone mapping也可以对图像做拉伸,充分利用好显示设备的容深。
Tone mapping算法在对图像动态范围压缩的时候,需要最大程度的保留HDR图像的对比度和层次感,而且也不能产生如梯度翻转、颜色失真、光晕(halo)等问题。Tone mapping算法可以分为全局处理方法(global tone mapping)和局部处理方法(local tone mapping),GTM对全图所有像素值应用一个统一的映射规律,而LTM会在局部patch根据一定的规律进行映射。
4.多曝光融合(Multi-Exposure Fusion)
第二节提到根据不同曝光时间采样到的不同动态范围区间的LDR帧,它们和真实世界的亮度在非饱和区域是一个线性关系的,从成像设备到显示设备的过程可以描述为:
但是有时根据LDR帧在成像系统中的获取节点不同也会有一些调整,比如我们拿到的LDR数据并不是raw数据,而是经过ISP处理后的yuv或者rgb数据。它们经过一些图像处理后和真实世界亮度不再具有线性关系,这时为了能恢复帧间的线性关系通常会多做一个相机相应曲线的标定:
而多曝光融合(MEF)直接跳过了HDR的过程,直接将多张LDR输入根据一定的审美准则融合成单张LDR:
根据最经典的多曝光融合公式,考虑每个像素的对比度、饱和度、亮度赋予每个像素融合权重:
对比度和饱和度越大的区域,以及灰度值接近128的像素权重越高。实际上根据不同的审美准则和需求,权重公式可以灵活调整,去适应不同的喜好。
5. 主观与客观质量评价
不管是HDR还是多曝光融合,高质量的融合图像不仅要尽可能多地保留输入图像中的重要信息,而且要像场景一样自然。总体来说高质量的融合结果需要接近以下三点:
(1)融合图像需要完好提取不同帧图像之间的互补信息和有效信息。
(2)融合算法不会产生任何可能影响人类肉眼观察或进一步处理任务的artifact。
(3)融合算法应当对例如图像对齐不准和噪声等问题具有鲁棒性。
5.1 主观评价指标
主观上通常可以从摄影界的一些术语评价HDR图像的质量或者artifact:(1)通透感(2)影调(3)过曝/欠曝(4)色彩失真(5)光晕(halo)(6)运动伪影。
5.2 客观评价指标
实际应用中对融合后的每一幅图像进行观测是一项耗时费力的工作,具有不同的标准同时容易产生偏差估计,因此需要进行客观的定量评价,下面罗列一些常见的评价指标:
(1)Structural similarity index measure (MEF-SSIM)
(2)QAB/F
(3)Mutual information (MI)
(4) Peak signal-to-noise ratio (PSNR)
(5)Natural image quality evaluator (NIQE)
(6)Standard deviation (SD)
(7) Entropy (EN)
(8) Average gradient (AG)
(9) Visual information fidelity (VIF)
(10) HDR-VDP-2
6. 论文汇总
6.1 HDR
分类 | 论文名称 | 代码 | 发表时间 |
---|---|---|---|
综述 | High Dynamic Range Imaging- A Review | 2015 | |
综述 | Learned Exposure Selectionfor High Dynamic Range Image Synthesis | 2021 | |
综述 | Deep Learning for HDR Imaging:State-of-the-Art and Future Trends | 2021 | |
综述 | Comparison of single image HDR reconstruction methods — the caveats of quality assessment | 2022 | |
HDR | Burst photography for high dynamic range and low-light imaging on mobile cameras | 2021 | |
HDR | Handheld Mobile Photography in Very Low Light | 2019 |
6.2 MEF
分类 | 论文名称 | 代码 | 发表时间 |
---|---|---|---|
综述 | Multi-Exposure Image Fusion Techniques:A Comprehensive Review | 2022 | |
综述 | Multi-Exposure Image Fusion Algorithm Based on Improved Weight Function | 2022 | |
MEF | Exposure Fusion: A Simple and Practical Alternative to High Dynamic Range Photography | 2009 | |
MEF | Multi-Exposure and Multi-Focus Image Fusion in Gradient Domain | https://ww2.mathworks.cn/matlabcentral/fileexchange/48782-multi-exposure-and-multi-focus-image-fusion-in-gradient-domain | 2016 |
MEF | Fast Multi-Scale Structural Patch Decompositionfor Multi-Exposure Image Fusio | https://github.com/xiaohuiben/fmmef-TIP-2020 | 2020 |
MEF | Image Fusion with Guided Filtering | http://xudongkang.weebly.com/ | 2013 |
MEF | Multi-Exposure Image Fusion by Optimizing AStructural Similarity Index | https://kedema.org/Publications.html | 2017 |
MEF | Multi-scale Guided Image and Video Fusion: A Fastand Efficient Approach | https://ww2.mathworks.cn/matlabcentral/fileexchange/72451-multi-scale-guided-image-and-video-fusion?s_tid=prof_contriblnk | 2019 |
MEF | Multi-Scale Fusion ofTwo Large-Exposure-Ratio Images | https://github.com/emmmyiyang/MEF-Two-Images | 2018 |
MEF | Multi-exposure image fusion a patch-wise approach | https://kedema.org/Publications.html | 2015 |
MEF | Robust Multi-Exposure Image Fusion: A StructuralPatch Decomposition Approach | https://kedema.org/Publications.html | 2017 |
MEF | A Precise Multi-Exposure Image Fusion MethodBased on Low-level Features | https://github.com/zhiqinzhu123/HDR-Multi-exposure-image-Fusion-Source-Code- | 2020 |
MEF | Detail-Preserving Multi-Exposure Fusion withEdge-Preserving Structural Patch Decomposition | https://github.com/xiaohuiben/MESPD_TCSVT-2021 | 2021 |
MEF | Ghost-free multi exposure image fusion technique using dense SIFTdescriptor and guided filter | https://github.com/ImranNust/Source-Code | 2019 |
NN | Deep Guided Learning for Fast Multi-Exposure Image Fusion | https://github.com/makedede/MEFNet | 2020 |
NN | Multi-exposure fusion with CNN features | https://github.com/xiaohuiben/MEF-CNN-feature | 2018 |
更多深度学习相关方法可以参照这个repo:
GitHub - Linfeng-Tang/Image-Fusion: Deep Learning-based Image Fusion: A Survey
6.3 Tone mapping
综述 | A review for Tone-mapping Operators on Wide Dynamic Range Image | 2021 | |
综述 | HDR Tone mapping: System Implementations and Benchmarking | 2015 | |
GTM | Real-time noise-aware tone mapping | https://github.com/NVIDIA/Q2RTX/blob/master/src/refresh/vkpt/shader/tone_mapping_histogram.comp | 2015 |
GTM | Photographic Tone Reproduction for Digital Images | 2002 | |
LTM | Optimizing a tone curve for backward-compatible high dynamic range image and video compression | 2011 |