计算摄影: 高动态范围成像

在摄影中,曝光是非常重要的一个参数,曝光时间过长,最终拍摄的图像会显得泛白,就是我们常说的 “过曝”,曝光时间不足的话,图像会显得比较暗,也就是所说的 “欠曝” ,现在的拍摄,一般都有一个自动曝光的估计,通过测量环境光照的强度,来设置合适的曝光时间,让最终的图像明亮比较合适。

在真实的场景中,环境光照有一个很宽泛的范围,sensor 一般很难覆盖整个范围,这就是我们所说的高动态范围场景,拍照的人,都有这样的体验,在阳光明媚的时候,在室内拍摄人像,要么就是人像比较清晰,而窗外一片白,要不就是窗外的景色比较清晰,而人像非常暗。这就是 sensor 的动态范围,涵盖不了环境的动态范围,只能捕捉某一段的动态范围所致。

现在的 sensor 一般是 10 bit 或者 12 bit,好的 sensor 可以到 14 bit 甚至 16 bit,这样的一个动态范围,我们以 12 bit 为例,最亮和最暗的比例是 4096 : 1,这个范围在自然场景中,算是非常低的一个范围了,为了捕捉场景中完整的动态范围,目前主流的方法,就是通过多次不同曝光,然后进行合成,如下图所示:

在这里插入图片描述
通过将不同曝光的图像进行融合,最后可以得到一张非常完整的曝光合适图像,能反应整个环境的关照。每张曝光图像,只捕捉某一局部的细节,最后合成出来的图像,就呈现了全部的细节。

图像融合的公式其实很简单,假设有 n n n 张图像,那么融合后的图像,就是这 n n n 张图像的线性叠加:

X F = ∑ i = 1 n W i X i \mathbf{X}_{F} = \sum_{i =1}^{n} W_i \mathbf{X}_i XF=i=1nWiXi

最后的问题,就是要如何求这个融合系数 W i W_{i} Wi

如果是在 RAW 域上做图像融合,那么由于 RAW 图上的像素值和环境关照是线性关系,

I ( x , y ) = clip ( t ∗ L ( x , y ) + e n ) I(x, y) = \text{clip} (t * L(x, y) + e_{n}) I(x,y)=clip(tL(x,y)+en)

I ( x , y ) I(x, y) I(x,y) 表示 RAW 图的像素值, L ( x , y ) L(x, y) L(x,y) 表示环境的辐射值, t t t 表示曝光时间, e n e_n en 表示噪声,基于这个假设,那么 I ( x , y ) I(x, y) I(x,y) 过高或者过低的像素值,应该对应饱和溢出或者暗处的噪声,这种像素值,一般是无效的,所以选择 I ( x , y ) I(x, y) I(x,y) 的时候,都会加一个范围,比如选择动态范围 [0.05, 0.95] 之间的像素值,作为有效的像素值,这个范围的像素值,我们认为是有效的,然后根据上式,我们可以求出环境照度:

L ( x , y ) = I ( x , y ) / t i L(x, y ) = I(x, y) / t_i L(x,y)=I(x,y)/ti

根据环境照度,可以估计出每张 RAW 图的权重,然后归一化,最后进行融合。

如果不是 RAW 图,而是压缩后的图如何融合呢,我们知道 RAW 图一般是 12 bit 表示,而压缩后的图,一般是 8 bit,这意味着动态范围有损失,一般来说,可以估计出这个压缩动态范围的函数,然后求出逆函数,让图像的动态范围,映射回 RAW 图的动态范围,再用上面介绍的方法进行权重的计算。

还有一种融合的方法,就是根据细节的丰富程度来确定权重,每张图像都可以求出一个梯度,然后对不同图的梯度进行归一化,求出每张图的权重,最后再进行融合。

多张图的融合,是非常有效的解决高动态范围的一种方法,不过多张图融合带来的问题就是对运动非常敏感,如果场景中有运动的物体,或者相机在拍摄的时候,有移动,融合的图像,可能会产生 ghost 或者模糊,也就是我们所说的鬼影。

除了多张图的融合,也有针对单张图的 tone-mapping 算法,如下图所示:

在这里插入图片描述
上面这个算法流程,就是利用双边滤波来做 tone-mapping 的,这种方法,就是利用双边滤波,保留细节,对低频部分进行对比度的调整,然后再把细节和颜色铁灰了,最后出来的图像,显得更加细节丰富,色彩饱满。

参考文献: computational photograph, CMU 2018

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值