Recovering High Dynamic Range Radiance Maps from Photographs
本文以胶片为例,提出了通过多帧非线性RGB图像重建线性的高动态范围图像(High Dynamic Range Image),之后在这篇文章的基础上延伸出来众多标定数码相机的相机响应曲线(Camera Response Function)来重建线性的高动态范围图像方法,本文算法算是计算相机响应曲线的开山之作。
文章目录
几个概念
传感器的非线性响应(Non-Linear Photosite Response)
图像传感器的光电转换是线性过程,一般而言,图像传感器中势肼收集的光生电荷的数量与经过A/D转换后的数字信号之间也呈线性关系,但传感器的动态范围(Dynamic Range)和噪声(Noise)会造成光生电荷与数字信号间的非线性
-
动态范围对传感器响应的影响
文章CMOS图像传感器中的噪声来源分析中分析了图像传感器本身的满肼容量(Full-Well Capacity)决定了图像传感器动态范围(Dynamic Range)的上限,当光生电荷量超过满肼容量时,会造成过曝(Blooming Effect):
y ^ = m i n ( y , d y n a m i c r a n g e ) \hat{y}=min(y,dynamic \ range) y^=min(y,dynamic range)
-
噪声对图像传感器响应的影响
文章噪声噪声分析中分析了图像传感器中噪声的呈现泊松-高斯分布,噪声的跳变会带来传感器响应的非线性,尤其是在接近0或动态范围上限的区域的非线性,具体内容可以参见Foi的论文《Clipped noisy images: Heteroskedastic modeling and practical denoising》,简单来说就是当势肼中的光生电荷数量接近0或动态范围上限时,由于存在均值为0的噪声,使得接近0的点由于负向噪声的影响,被Clipping至0,接近动态范围上限的点由于正向噪声的影响,被Clipping至动态范围上限,从而造成传感器响应的非线性:
y ^ = m a x ( m i n ( y + n o i s e , d y n a m i c r a n g e ) , 0 ) \hat{y}=max(min(y+noise,dynamic \ range),0) y^=max(min(y+noise,dynamic range),0)
其中 y y y为无噪声影响的响应值, y ^ \hat{y} y^为受噪声影响之后的响应值,具体非线性响应曲线如下:
和满肼容量造成传感器响应的非线性不同,由噪声造成的传感器响应的非线性可以通过对噪声的建模进行逆变换,以消除造成 带来的非线性,但整个逆变换过程相对比较复杂,后续ISP(Image Singal Processing)一般不考虑消除这一部分的非线性来提升后 续图像处理的质量。
相机响应曲线(Camera Response Function)
参见文章ISP Pipeline对ISP当中图像处理模块的介绍可知,通过图像传感器采集下来的原始图像信号(Image Raw Data),在后续的图像处理中非进过多次非线性处理,比如Gamma校正、局部对比度增强等,这些非线性处理,造成最终输出的标准RGB图像(Standard RGB)与原始Raw数据间的非线性,即相机响应曲线即是图像传感器采集下来的原始Raw数据与经过一系列非线性处理得到的sRGB图像间全部亮度变换的总和。
胶片的曝光响应曲线(Huter and Driffield Curves)
也称Characteristic Film Curve,是胶片的曝光量与胶片沉积银颗粒的密度的关系。首先简单介绍胶片的构成,如下图所示,胶片由保护膜、感光层(主要是卤化银和明胶)、片基(支撑作用,常用玻璃)、防光晕层(一部分透过感光层的光线会被片基或相机内部反射回胶片,如果被感光层再次吸收会在光源周围的位置产生光晕,防光晕层就是为了吸收这些反射光线)。
当光线通过感光层,胶片上的辐照度为 E E E,在曝光时间 Δ t \Delta{t} Δt内累计曝光量为 X = E Δ t X=E\Delta t X=EΔt, X X X与最终胶片上沉积的银粒子的质量或者密度间的关系即为胶片的曝光响应曲线,可以参考Kodak Pro 800的曝光响应曲线,下图是不同胶片的曝光响应曲线,其中Fog是由自然界的背景辐射造成,Base是由胶片的自然衰减造成。另外,也常使用胶片的显影率曲线来作为胶片的曝光响应曲线。
可以观察到在胶片的动态范围当中大部分响应是接近线性的,因此同时假设胶片机与数码相机采集到的原始图像数据与曝光量之间近似是线性关系。
Film Response Recovery
如上述,除欠曝和过曝区域,胶片曝光后产生的银与曝光量 X X X间的关系为: D ∝ l n ( X ) = l n ( E Δ t ) D\propto ln (X)=ln(E \Delta t) D∝ln(X)=ln(EΔt),经过一列处理后得到最终的数字图像 Z Z Z和曝光量间不再是简单的对数关系,可以用一种更复杂的非线性函数 f f f来表示,即:
Z i j = f ( X ) = f ( E i Δ t j ) (1) Z_{ij} = f(X)=f(E_{i}\Delta t_{j})\tag{1} Zij=f(X)=f(EiΔtj)(1)
即有:
f − 1 ( Z i j ) = E i Δ t j (2) f^{-1}(Z_{ij})=E_{i}\Delta t_{j} \tag{2} f−1(Zij)=EiΔtj