文章目录
Introduction1
直接法依赖于光度恒定假设,但是多帧之间的曝光时间和辐照衰减都会破坏假设。
光度模型
物体通过反射光线从而被看见,一点反射的光量叫辐射(radiance) L L L。如果辐射和观测的角度独立,则是朗伯反射(漫反射)。
传感器在 x x x位置接收的能量值叫辐照(Irradiance) I ( x ) I(x) I(x).
不同的空间点的辐射与辐照应是一一对映的。但是相机都会存在渐晕,它符合cos的四阶关系,因此用 V : Ω → [ 0 , 1 ] V:\Omega\to[0,1] V:Ω→[0,1]建模:
I ( x ) = V ( x ) L (1) I(x)=V(x) L \tag{1} I(x)=V(x)L(1)
传感器在曝光时间 e e e内对辐照进行积分,假设期间辐照恒定,因此建模为:
I a c c ( x ) = e I ( x ) (2) I_{a c c}(x)=e I(x) \tag{2} Iacc(x)=eI(x)(2)
经过相机响应函数(CRF) f : R → [ 0 , 255 ] f:\R\to[0,255] f:R→[0,255]后输出图像强度,CRF限制了动态范围,过曝会设为255,欠曝会设置为0.我们无法得到决对尺度,因此把CRF归一化到单位区间 [ 0 , 1 ] [0,1] [0,1]。
因此辐射 L L L映射为图像强度 O O O:
O = f ( e V ( x ) L ) (3) O=f(e V(x) L) \tag{3} O=f(eV(x)L)(3)
跟踪前端
使用金字塔KLT跟踪,在此基础上增加帧间的增益比,使用舒尔补来高效的实现。
为了恢复渐晕需要将特征点覆盖整个图像,因此使用网格来使特征均匀分布,使用长特征跟踪来更好的覆盖径向。
为了改善长期跟踪,使用双向光流剔除误匹配。同时还在特征附近使用小patch来一起加入优化,引入低梯度图像区域,降低对于几何误差的敏感。
优化后端
能量函数:
E = ∑ p ∈ P ∑ i ∈ F p w i p ∥ O i p − f ( e i V ( x i p ) L p ) ⏟ r ( f , V , e i , L p ) ∥ h (4) E=\sum_{p \in P} \sum_{i \in F_{p}} w_{i}^{p}\left\|\underbrace{O_{i}^{p}-f\left(e_{i} V\left(x_{i}^{p}\right) L^{p}\right)}_{r\left(f, V, e_{i}, L^{p}\right)}\right\|_{h} \tag{4} E=p∈P∑i∈Fp∑wip∥∥∥∥∥∥∥r(f,V,ei,Lp)
Oip−f(eiV(xip)Lp)∥∥∥∥∥∥∥h(4)
假设点都是在朗伯平面上。
CRF建模:
f G ( x ) = f 0 ( x ) + ∑ k = 1 n c k h k ( x ) (5) f_{G}(x)=f_{0}(x)+\sum_{k=1}^{n} c_{k} h_{k}(x) \tag{5} fG(x)=f0(x)+k=1∑nckhk(x)(5)
选择 n = 4 n=4 n=4,它满足 f G ( 0 ) = 0 , f G ( 1 ) = 255 f_G(0)=0,f_G(1)= 255 fG(0)=0,fG(1)=255。
假设衰减因子是中心对称:
V ( x ) = 1 + v 1 R ( x ) 2 + v 2 R ( x ) 4 + v 3 R ( x ) 6 (6) V(x)=1+v_{1} R(x)^{2}+v_{2} R(x)^{4}+v_{3} R(x)^{6} \tag{6} V(x)=1+v1R(x)2+v2R(x)4+v3R(x)6(6)
使用LM算法,将辐射的估计与其它参数解耦。
第一步
固定 L p L^p Lp,求雅克比
J = ( ∂ r ∂ c , ∂ r ∂ v , ∂ r ∂ e i ) (7) J=\left(\frac{\partial r}{\partial \boldsymbol{c}}, \frac{\partial r}{\partial \boldsymbol{v}}, \frac{\partial r}{\partial e_{i}}\right) \tag{7} J=(∂c∂r,∂v∂r,∂ei∂r)(7)
通过求解公式(8)获得:
( J T W J + λ diag ( J T W J ) ) Δ x = − J T W r (8) \left(\boldsymbol{J}^{T} \boldsymbol{W} \boldsymbol{J}+\lambda \operatorname{diag}\left(\boldsymbol{J}^{T} \boldsymbol{W} \boldsymbol{J}\right)\right) \Delta \boldsymbol{x}=-\boldsymbol{J}^{T} \boldsymbol{W} \boldsymbol{r} \tag{8} (JTWJ+λdiag(JTWJ))Δx=−JTWr(8)
权重矩阵由两部分的权重因子组成,第一是Huber函数,第二是降低高梯度图像位置的权重,防止小的不准确导致大的错误,即:
w r ( 2 ) = μ μ + ∥ ∇ F i ( x i p ) ∥ 2 2 (9) w_{r}^{(2)}=\frac{\mu}{\mu+\left\|\nabla F_{i}\left(x_{i}^{p}\right)\right\|_{2}^{2}} \tag{9} wr(2)=μ+∥∇Fi(xip)∥22μ(9)
公式(9)会降低图像块中心的权重,增加附近残差的权重。
第二步
固定其他的参数,每个点都是独立更新:
J p = ( ∂ r ∂ L p ) (10) \boldsymbol{J}^{p}=\left(\frac{\partial r}{\partial L^{p}}\right) \tag{10} Jp=(∂Lp∂r)(10)
Δ L = − J p T W p r p ( 1 + λ ) J p T W p J p (11) \Delta L=\frac{-\boldsymbol{J}_{p}^{T} \boldsymbol{W}_{p} \boldsymbol{r}_{p}}{(1+\lambda) \boldsymbol{J}_{p}^{T} \boldsymbol{W}_{p} \boldsymbol{J}_{p}} \tag{11} ΔL=(1+λ)JpTWpJp−J

1731

被折叠的 条评论
为什么被折叠?



