之前一直没看DSO1,前阵子对应光度模型的论文和代码研究了一下,做了简单的总结。
1. 相机光度模型(Photometric Model)
在光度标定的论文2中,作者给出光度模型如下:
这里的 G G 为相机的响应函数(response function), 为(归一化的)渐晕函数(vignette), B B 是辐照度图像(irradiance image), 是我们从相机获取的图像。在论文中,使用的是非参数化(non-parametric)的求解方式,也就是说我们不是求出函数的表达式,而是得到一个映射表。
2. 相机响应函数标定(Response Calibration)
在标定相机响应函数的时候,作者是将相机固定,逐渐变换相机曝光时间,对一个静止的场景进行采集。也就是说,在这个过程中,相机的辐照度图像 B B 是不变的。由于相机的渐晕是相机固有的属性,在标定相机响应函数的时候,把相机的光度模型转换成:
这里 B′(x):=V(x)B(x) B ′ ( x ) := V ( x ) B ( x ) 。在求响应函数的时候,为了方便起见,作者求的是响应函数的反函数: U:=G−1 U := G − 1 ,给定一个图像 Ii I i ,其对应的曝光时间为 ti t i ,假设在 U(I(x)) U ( I ( x ) ) 上有一个零均值的高斯噪声,则模型有如下形式:
通过最大似然估计,我们近似给出如下最小二乘的形式:
第一个求和是对所有(不同曝光时间的)图像,第二个求和是对图像平面上所有的像素点。对上式最小化,通过轮流最小化求解 U U 和 得到: