摘要:论文中用不同的曝光量拍摄了场景的多张照片。算法使用这些不同曝光的照片来恢复成像过程的响应函数,该算法可以将多张照片融合成一个单一的、高动态范围的辐射图,其像素值与场景中的真实辐射值成正比。
简介
下图的数字图像生成过程显示了从场景亮度成为像素值的过程。其中有些过程是非线性映射。
曝光值,因此
,
即为相机响应曲线。
注意:在现代CMOS Image Sensor中,相机响应曲线已经不是那么重要,CMOS Sensor的响应曲线理论上来说应该是应该是线性的(得到的原始Bayer格式像素值相对于场景亮度),此时我们估计的其实是ISP Pipeline中的一系列非线性变换。例如在对JPEG图像(已经经过了ISP的一系列处理)进行HDR处理,那么估计的其实是RAW--->JPEG过程中的一系列非线性变换,因此在ISP HDR图像/视频处理中,在Bayer域进行多帧图像HDR的合成操作应该是效果最好的。
下图表示现代CMOS Image Sensor的Bayer格式四个通道的响应曲线,均为线性曲线。
响应曲线的计算
算法的输入是同一位置拍摄的一系列不同曝光时间(已知条件)的图像帧,并且假设场景是静态的,且在拍摄过程中足够快(防止运动伪影和相机抖动带来的误差)。
因此图像中每个像素处对应的辐照度
是恒定的,使用
表示第
张图像中位置
处的像素值。
就表示第
张图像的曝光时间。则以下成立
如果是单调可逆的,则
两边取对数则:
令则
在此方程中,和
是已知的,照度E和相机响应曲线的反函数是未知的,通过上式可以列出一组方程组,求解过程用到了最小二乘法,并添加条件约束条件(详细参考最优化理论中求解含约束的最小二乘法)。最小化以下函数即可得到想要求解的响应函数。
其中,N为每张图像的像素总数,P为图像张数。
上述函数的优化变种为如下:
w(z)为一个帽子函数,像素值越接近中值(正确曝光可能性大)权重越大。
例如使用3张不同曝光时间的图像,每张图像使用其中的5个点绘制的如下函数形成的散点图。
左图中未知照度被假设为0,随后后可以垂直移动来拼合曲线,右图为3条曲线垂直移动拼合得出的最终曲线。
论文中使用了11张不同曝光的图像来对相机的响应曲线进行拟合。曝光时间从1/30~30。
多曝光HDR融合
一旦求出相机响应曲线,就可以将像素值转换为场景中亮度的照度值:
对于多张图像,融合照度图采用加权的方式,权重也是上述的帽子函数。该函数保证像素值越接近中值处的图像帧占比越大,因为中值处的像素值正确曝光的可能性最大。
注意:融合过程只是让欠曝光区域(黑区)和过曝光区域(饱和区)同时恢复了对于场景的表现能力,原先黑区暗黑一片,即使怎么处理也看不到纹理,同理饱和区亮白一片,即使怎么处理也看不到纹理,也就是所谓的信息量低。而融合后信息量增加,但此时还不能作为显示,通过处理可以增加层次感,例如自适应色调映射等算法。
论文中融合了11张不同曝光帧的图像,得到辐照度图以后再进行对数映射(色调映射的一种) 来讲照度重新映射到像素值。结果如下所示,暗区和亮区同时可以看清了。