Photometric Calibration
居于特征点法的 vSLAM 通常不太考虑光度标定1的问题,这是由于这些特征描述一般都会具备光照不变性,对图像的亮度值并不敏感。然而在基于光度不变假设的直接法(Direct Method)的 vSLAM 中,由于姿态估计以图像的亮度值为出发点,亮度值的准确度会直接影响算法的精度和稳定性。因此 DSO (Direct Sparse Odometry 2) 的作者引入光度标定的概念,利用精细的相机成像模型,标定成像过程中的光度参数,并用这些参数矫正图像亮度值。
1. 相机成像原理
考虑基于物理的光照模型,相机主要采集的是来自外界环境的辐射度(Radiance,辐射度是给定表面每单位投影面积发射、反射、透射或接收的辐射通量,和方向有关),经过光学镜头(Optics Lens)后转化为感光器件(Sensor)表面所接受到的辐照度(Irradiance,辐照度是单位面积表面接收的辐射通量,和方向无关),然后受到快门(Shutter)控制负责调整曝光时长来使得感光器件积累能量,最后对每个单位积累的能量量化为图像像素光度值(Image Intensity)。整个相机成像过程如下图所示34:
1.1 透镜衰减
光学镜头除了原本熟悉的像素成像位置模型(焦距、光心、畸变),还会有对灰度值影响的晕影现象(Vignetting,原文作者叫做衰减因子(Attenuation Factors)),大致来说是因为光学元件(透镜之类)边缘的非线性以及遮挡等,导致光入射强度随着离主轴的距离拉大而减小。比如想象一下拍摄一面白墙,所得画面边缘会暗一些罢,就这种感觉。所以这个过程有点像给实际图像套了一个核函数,使远离主光轴的像素亮度“衰减”了,因此得名。
1.2 快门影响
快门影响的是曝光时间。自动曝光模式下,不同场景曝光时间并不一样,会导致同一物体在不同场景下的灰度值产生差异。举个例子,根据成像流程图可知,假设同一物体在感器件的辐照度是相同的,那么快门曝光类似一个积分过程,当对相同单位面积的相同辐照度进行不同时间长度的累积能量,那么曝光能量值将不同进而影响图像灰度值。
1.3 感光响应
作者将输入的曝光量和输出的亮度值之间的关系称为响应函数。然而,响应函数一般来说是非线性的,甚至包含人为调整的成分,比如伽马校正、白平衡、色调、饱和度等。
因此作者希望通过光度标定来补偿它们的影响,目的是去除相机成像过程对观测的影响,最好能做到直接取得场景光辐射(或者说传感器表面接收到的辐照度)的真实观测值
2. 相机光度模型
为了决绝成像过程中上述因素的影响,作者将所得的图像数据与我们所需要的真实图像数据通过下式进行建模(注意的是,论文中,使用的是非参数化(non-parametric)的求解方式,也就是说我们不是求出函数的表达式,而是得到对应的映射表):
是通过相机获得的第 i 帧图像(像素灰度矩阵),从公式中看出,数值由相机曝光时间和相机传感器的输入的曝光量和输出的亮度值之间响应函数决定 是自变量为像素坐标 为感光响应函数,是一个标量到标量的映射,为相机固有属性,故与 i 无关。考虑到实际的图像处理,一般设定它的输入输出是离散的,数值取从 0 到 255 的整数(图像灰度值),这样也方便我们使用一个长度 256 的向量来表示它。同时记它的反函数为 是曝光时间 为描述晕影的透镜衰减因子,固有属性与 i 无关。作者将其表示为一个权重矩阵,描述图像中每像素点的衰减情况。其值为标量,定义在 上 表示不受光学影响的第 i 帧辐照度图像(irradiance image),即我们所求的满足光度不变假设的图像像素灰度矩阵
根据式
3. 感光相应函数标定
在标定感光相应函数的时候,作者是将相机固定,逐渐变换相机曝光时间,对一个静止的场景进行采集(如下图),以获取标定感光相应函数的数据
在这个过程中,相机的辐照度图像
对于
源码中作者将数据中所有图像的均值作为
4. 渐晕标定
同样,对于渐晕标定也使用非参数的形式,使用一个晕影映射表
由于要从不同角度拍摄,因此涉及到相机的位姿估计的问题。作者通过 AR Marker 获取相机相对于平面的位姿。定义从 3D 空间到图像平面的映射
同样假设在
Reference
A Photometrically Calibrated Benchmark For Monocular Visual Odometry , J. Engel, V. Usenko, D. Cremers, In arXiv:1607.02555, 2016 ↩︎
Direct Sparse Odometry , J. Engel, V. Koltun, D. Cremers, In arXiv:1607.02565, 2016 ↩︎
Recovering High Dynamic Range Radiance Maps from Photographs, Paul E. Debevec, Jitendra Malik ↩︎