直接法根据像素的亮度信息来估计相机运动,不需要知道点之间的对应关系,而是通过最小化光度误差来求得。
光流是一种描述像素随时间在图像之间运动的方法,计算部分像素运动的称为稀疏光流,计算所有像素的成为稠密光流。其中系数光流以Lucas-Kanade光流为代表(LK光流)。其常用来跟踪角点的运动。
灰度不变假设:同一个空间点的像素灰度值,在各个图像中是固定不变的。
在t时刻,某一图像位于(x,y)处的灰度为
I ( x , y , t ) \boldsymbol{I}(x, y, t) I(x,y,t)
根据灰度不变假设,有 I ( x + d x , y + d y , t + d t ) = I ( x , y , t ) \boldsymbol{I}(x+\mathrm{d} x, y+\mathrm{d} y, t+\mathrm{d} t)=\boldsymbol{I}(x, y, t) I(x+dx,y+dy,t+dt)=I(x,y,t)
泰勒展开得 I ( x + d x , y + d y , t + d t ) ≈ I ( x , y , t ) + ∂ I ∂ x d x + ∂ I ∂ y d y + ∂ I ∂ t d t \boldsymbol{I}(x+\mathrm{d} x, y+\mathrm{d} y, t+\mathrm{d} t) \approx \boldsymbol{I}(x, y, t)+\frac{\partial \boldsymbol{I}}{\partial x} \mathrm{~d} x+\frac{\partial \boldsymbol{I}}{\partial y} \mathrm{~d} y+\frac{\partial \boldsymbol{I}}{\partial t} \mathrm{~d} t I(x+dx,y+dy,t+dt)≈I(x,y,t)+∂x∂I dx+∂y∂I dy+∂t∂I dt
由于灰度不变假设,消去两项得 ∂ I ∂ x d x + ∂ I ∂ y d y + ∂ I ∂ t d t = 0 ∂ I ∂ x d x d t + ∂ I ∂ y d y d t = − ∂ I ∂ t \begin{array}{c} \frac{\partial \boldsymbol{I}}{\partial x} \mathrm{~d} x+\frac{\partial \boldsymbol{I}}{\partial y} \mathrm{~d} y+\frac{\partial \boldsymbol{I}}{\partial t} \mathrm{~d} t=0 \\ \frac{\partial \boldsymbol{I}}{\partial x} \frac{\mathrm{d} x}{\mathrm{~d} t}+\frac{\partial \boldsymbol{I}}{\partial y} \frac{\mathrm{d} y}{\mathrm{~d} t}=-\frac{\partial \boldsymbol{I}}{\partial t} \end{array} ∂x∂I dx+∂y∂I dy+∂t∂I dt=0∂x∂I dtdx+∂y∂I dtdy=−∂t∂I
dx/dt表示像素点在x轴上得运动速度,dy/dt表示在y轴上的速度,分别设为u,v,∂I/∂x表示图像在该点处x方向上的梯度,∂I/∂y表示y方向上的梯度,设为Ix, Iy,图像灰度对时间的变化量记为It,写成矩阵形式:
[ I x I y ] [ u v ] = − I t \left[\begin{array}{ll} \boldsymbol{I}_{x} & \boldsymbol{I}_{y} \end{array}\right]\left[\begin{array}{l} u \\ v \end{array}\right]=-\boldsymbol{I}_{t} [Ix
计算相机位姿——直接法
最新推荐文章于 2023-09-16 20:22:58 发布