本章主要对HDR成像的一整个流程做一个简要描述。

HDR成像的整个流程可以写成:

1、捕获不同曝光时间的图片(便于我们获得不同的亮度范围便于合并来生成一个高动态范围的图像)

2、存储HDR图片(HDR图片的高动态范围的同时带来的是更大的数据量,所以就要找到合适的压缩编码方式和存储方式)

3、HDR显示器(我们知道一般的电脑显示器分辨率不够的话你是看不了HDR图像而只能看LDR图像,所以需要专门的HDR显示器)

4、色调映射(Tone Mapping)后显示到LDR显示器上

流程图

2.1、获得HDR内容

首先我们直接给出获取HDR内容的主要方式,然后进行阐述。

2.1.1、合成多幅图像来获得HDR图像

我们可以通过合成在同一场景不同曝光时间的多幅图像(以此来捕获从最暗到最亮的所有细节)来获得HDR图像,具体见这篇博客:HDR 成像技术学习(一) - 知乎 (zhihu.com)

假设相机具有线性的响应,则具体的合成公式(即恢复原式场景辐射度)为(后面会更正为式2.3):

式2.1计算的是传感器的辐照值而不是场景真实的辐照值,虽然我们通常认为两者成正比。但是更严谨的式子是:

α是像素到透镜光轴的角度,d是透镜到图像平面的距离,R是透镜的半径。看来真实辐照值和传感器辐照值之间还是与空间关系有关的。

下图给出了一些常用的w权重函数:

可以看出来以上三个权重函数都对中间像素值比较重视,因为低像素值相比有更多噪声,高像素值更容易饱和,所以中间像素值更为可靠。

接下来介绍一个重要内容:相机响应函数(Camera Response Function,CRF)

要了解CRF前,我们得了解一下相机成像的过程:

拍摄对象反射回来的光线(场景辐射度)通过相机的镜头转换为传感器辐射度,传感器辐射度通过快门的通电作用转化为传感器曝光度。这是光学变化过程。传感器上的感光器件受到光照激发释放出电荷产生电信号。电信号经过放大和滤波后再进行模数转换得到数字信号,即图像数据。这些数据经过信号处理器进行相应的处理后存储为图像文件得以输出。这是电子成像部分,亦即相机响应过程。

相机响应函数(CRF)就是传感器上曝光度与图像亮度值之间的映射关系,

CRF将现实世界的动态范围尽可能压缩到有限的8/10位存储器或胶片介质中,可以由下图表示。

横坐标:真实亮度。纵坐标:像素亮度
ISO:感光度,底片对光的灵敏程度。当ISO高时,就算真实亮度很小,所成像的像素亮度也会很大,整体会变亮。

回到我们的目的,通过LDR获取HDR,所以我们要尽可能从LDR图片中获得原来的曝光度,即我们要反过来通过

所以我们需要求得是逆相机函数,对CRF求逆即可。

只是传感器曝光度,我们进一步想要得到场景辐射度。

有了逆相机响应函数(inverse CRF),我们恢复场景辐射度公式(2.1)应该更新为:

在式(2.3)中由于数值精度误差可能会产生椒盐噪声,另一种情况是需要减少包含特定噪声像素的黑暗曝光场景。所以为了减少其影响,我们需要对式(2.3)给出其他形式。

对于第一种情况,我们给出在对数域上的公式:

第二种情况:

还有许多估计CRF的方法比如固定来拟合不同曝光时间的像素值等等,这里就不一一列出了。顺便提一下,对于彩色图像的估计CRF,对三个色带可能会用三个不同的CRF,以及估计CRF时我们不会用到所有像素而是对LDR图像采样。

总之,估计CRF是HDR成像的重要一步

怎么去除异常值?

在不同曝光时间的图像中可能会有一些过曝光(太亮了,白乎乎一片)或欠曝光(太暗了,黑漆漆一片)。我们通常设定一个阈值来定为下界,当像素值小于时就定为来防止欠曝光。对于过曝光我们采取取曝光时间最短的第k个曝光(这个不是很确定)。

图像对准与鬼影

我们合成同一场景不同曝光时间的多张LDR图像的一个前提是你的图像要对准。什么意思,人在拍照时难免会手抖,所以尽管是同一场景下的图片也会对不准,这对我们合成HDR图像带来困扰。理想的情况下是有一台固定的相机以及静态场景(人/物体/灯光 不产生移动,通常在实验室等环境才能实现)来拍照。而现实场景中很难有这样的环境,所以不对准所带来的的结果就是照片出现鬼影(ghosting),鬼影会使照片出现模糊。

幸运的是,我们有一些算法可以在“手抖”的情况下也能对准照片去除鬼影,比如通过特征检测的同源对齐、光流方法、基于补丁合成的方法、基于马尔科夫随场的方法等。下图给出由于相机移动的鬼影示例:

眩光

眩光是指入射光在人眼或者相机光学器件内散射导致的降低可见度的现象。当获取HDR内容时,眩光会导致对比度降低。

(a)有眩光 (b)去除眩光

Talvala等人提出了一种去眩光的方法:在相机透镜前加一个掩膜,掩膜可以阻挡图像一部分的眩光,为了获得整个无眩光的图像,掩膜被移动到透镜前的6×6的网格,最终合并这些图像并给定掩膜模式的估计眩光。

眩光也可以变废为宝,眩光可以利用跨屏幕滤光器将场景的高光和高亮部分的HDR信息编码为LDR图像。

2.1.2、捕获HDR视频

最近的捕获HDR视频的方法有:基于多传感器系统(Multi-Sensor System)、空间变化曝光(Spatially varying exposure)、多视图系统(Multi-view System)、时间变化曝光(Temporally varying exposure)、本地传感器(native sensors)。下面简要对这些方法进行介绍。

多传感器系统

(a)多传感器系统 (b)多视图系统

Aggarwal and Ahuja提出一种使用一个或多个分束器(Beam Splitter)将光路分割进几个传感器的系统(如上图所示)。这使得在同一时间捕获两个或更多曝光图像,并且没有鬼影和对不准问题,带来的是高分辨率和高帧率。构建这种系统需要仔细的光学对齐、相机校准和传感器同步。然而,一些小的亚像素(sub-pixel)仍然可能存在对不准问题。

多视图系统中,每个相机拥有不同曝光时间。

空间变化曝光

空间变化曝光即在空间上改变曝光量,这样就不需要处理对不准问题了,因为所有的曝光时间都是同时被捕获的。然而,这种方法牺牲了空间分辨率来换取高动态范围,并且高质量的重建需要复杂的算法。

空间变化曝光

多视图系统

使用多个相机的系统来捕获HDR内容不需要昂贵的亚微米传感器对准,它允许使用深度信息和光场在同一时间捕获不同的曝光。下面给出一个示例图。

(a)一帧图片的伪色图  (b) 将(a)色调映射后的图片

时间变化曝光

Kang et al提出系统在每一帧改变其曝光时间。首先使用运动估计和层次同质将两个相邻的帧对准,然后用式(2.3)将它们合并在一起(这里不是很明白,等以后清楚了再回来填坑)。这种方法不能处理高速运动、明显的遮挡。并且鬼影问题是该技术的主要缺点。研究人员提出了几种方法来解决这个问题,使用运动估计、全局对齐和扩展补丁合成。

本地传感器

本地传感器即使用更高级的器件来代替复杂的技术。比如可以本地捕获HDR值的传感器,近年来,有几家公司已经引入了在线性/对数域内记录到10/12/14位信道中的传感器。相对低成本的传感器/摄像头系统现在已经在市场上上市。

2.1.3节介绍了一些市面上的相机,这里就不做介绍了

2.1.4、HDR内容的合成

书上主要写了射线追踪和栅格化两种渲染方式,渲染方式不大想写(感觉不是重点)

2.1.5、LDR内容的扩展和提升

书上也只是一嘴带过,在第六章会详细讲解。

2.2、HDR内容的存储

一个未压缩的HDR像素使用三个单精度浮点数来表示,假设RGB颜色有三个波段。这意味着一个像素使用12字节的内存,在高清分辨率为1920×1080下,一个图像将占用大约24兆字节。这比存储不需要压缩的等效LDR图像所需的大约6兆字节要大得多。所以寻找有效的存储方式或压缩方式是很有必要的。

使用单精度浮点数,一个图像每像素占用96位。Ward提出了这个问题的第一个解决方案,RGBE。这种方法在这三种颜色之间存储了一个共享的指数并且假设它们之间没有太大的变化(因为三种颜色在RGB空间中有很强的相关性,数值上至少都在同一数量级,因此不需要为每个通道单独存放指数)。RGBE的像素编码格式主要用在Radiance的HDR图像文件格式中,利用四个字节编码,前三个字节表示红绿蓝三种颜色,最后一个字节存储公用的指数。该格式的编码被定义为:

解码为:

RGBE的编码格式覆盖了76个数量级。但是,该编码并不支持全色域的颜色和负值。为了解决这个问题,可以在编码之前将图像转换为XYZ颜色空间,此示例被称为XYZE格式。图形硬件供应商和计算机图形api支持RGBE格式的修改版本(即每个颜色通道的尾数为9位,共享指数为5位)。

另外还有例如LOGLUV和JND steps编码格式等,在此就不细说了。

2.3、本地可视化

主要介绍了一些HDR显示器及其技术,感觉也不是重点,就鸽了嘿嘿。


总结:

本章主要对HDR流水线做出介绍,从获得HDR内容到HDR内容存储到本地显示的一整个流程做出介绍。重点主要在获取HDR内容,包括将多幅LDR合成HDR、相机响应函数CRF、去鬼影 和HDR视频。

Chapter2、HDR流水线相关推荐

  1. Camera和Image sensor技术基础笔记(5) -- HDR相关技术

    动态范围(Dynamic Range) 动态范围最早是信号系统的概念,一种信号系统的动态范围定义为:最大的信号不失真的电平和噪声电平的差,在实际场景中,多用分贝(dB)为单位来衡量一个信号系统的动态范 ...

  2. OpenCV系列之高动态范围 | 六十

    目标 在本章中,我们将 了解如何根据曝光顺序生成和显示HDR图像. 使用曝光融合来合并曝光序列. 理论 高动态范围成像(HDRI或HDR)是一种用于成像和摄影的技术,可以比标准数字成像或摄影技术重现更 ...

  3. 「技美之路」图形 1.1 渲染流水线

    今日起开始分享学习技美之路专栏,文章来源听课笔记以及业界大佬分享的经验文章,主要来自CSDN_知乎等.技美路漫长 一定要坚持  开始吧! 一.整体流程 整体流程(渲染管线可分为四个阶段)每一个阶段的输 ...

  4. 谷歌HDR+研读(三)

    谷歌HDR+研读(一) 谷歌HDR+研读(二) 6整理 对齐和合并捕获的拜耳原始帧会生成具有较高比特深度和SNR的单个原始图像.在实践中,我们的输入是10位原始数据,我们将其合并到12位以保留从合并获 ...

  5. HDR视频中的色调映射算法对比(论文摘要)

    A comparative review of tone-mapping algorithms for high dynamic range video. EUROGRAPHICS 2017 G. E ...

  6. 漫谈HDR和色彩管理

    从2016年以来,各大游戏厂商陆续开始在游戏里支持HDR显示.从早期的声名狼藉系列到使用UE4开发的<战争机器5>,目前市场上3A游戏对HDR显示的支持基本已经是标配.本期课程从色彩空间谈 ...

  7. HDR图片以及色调映射(ToneMapping)

    高动态范围(High-Dynamic Range,简称HDR),相应的,LDR(Low-Dynamic Range),也就是我们常见的8bit存储方式的图片.之前都是在介绍视频方面.但是在高动态图片( ...

  8. 谷歌HDR+研读(二)

    谷歌HDR+研读(一) 4对齐框架 在我们的高分辨率流水线中,对齐包括从我们突发的每个交替(非参考)帧到所选参考帧的密集对应.这种通信问题已经得到充分研究,解决方案包括光流[Horn和Schunk 1 ...

  9. 通用流水线处理器技术参数

    通用流水线处理器技术参数 申威111 • 采用新一代"申威64"核心技术,核心流水线升级为4译码7发射结构,单核性能大幅有提升(整数性能提高62%,浮点性能提高53%): • 采用 ...

最新文章

  1. CSS之定位(定位/相对定位)
  2. quick cocos2dx 3.x 配置win32工程
  3. LeetCode 9 回文数
  4. SAP CRM WebClient UI Selenium UiElementHandler的实现
  5. 从工作中清除代码–使用JUnit 5,Mockito和AssertJ编写可执行规范
  6. 早期计算机的应用主要是( ) (2分),计算机基础第1次作业(含答案)
  7. 最安全的js类型检测
  8. 中海达数据怎么转rinex_cors账号网最新实战教程,中海达 F61 Plus RTK连接千寻cors账号的方法...
  9. 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身
  10. VS2008 sp1中文版下载地址
  11. c 显示服务器相关的图片到对话框,使用MFC CImage类绘制PNG图片时遇到的问题
  12. 对于Python中@property的理解和使用
  13. uva424 Integer Inquiry
  14. iOS开发有关导航条坐标问题
  15. 如何让laravel框架下出现vender文件夹
  16. 请查收!顶会AAAI 2020录用论文之自然语言处理篇
  17. android 插入耳机 使用自身mic录音_苹果iPhone 12携最新系统强势登场,10款主流TWS耳机兼容性测试...
  18. Moco测试知多少?什么是moco?如何使用?
  19. 电脑阅卷显示准考证异常
  20. Java 自定义注解及使用场景

热门文章

  1. SRAM/SDRAM/DDR/Cache
  2. EOFError: marshal data too short
  3. ubuntu ibus输入法 卡顿
  4. psid mysql_浅识MySQL
  5. canal同步mysql数据到rocketmq集群
  6. masonry ajax瀑布流,jquery.masonry瀑布流插件的4个使用步骤
  7. 零基础制作【武林外传】辅助工具(一)
  8. 【考研数学】考研数学一的相关课本电子版资源分享
  9. 计算机专业朋友圈文案,朋友圈文案文艺范简约 很美很好听的文艺句子合集
  10. Oracle----Orcacle简介