第5部分讲tracking
给定两帧RGB, 怎么算它们之间相机的变换矩阵
这里有个前提条件, 知道 两帧中匹配上的相素对于同一世界坐标下的点 P j W P_{jW} PjW?
那么该点在当前帧中image space的坐标为
可以通过匹配找到该点在当前帧中image space的坐标为
那么目标函数则为
然后目标函数对未知数 μ \mu μ求导, 用gauss newton, 或者 LM即可解, 算出 μ \mu μ 即算出相机的变换
那么如何通过匹配找到
5.3有讲
先算A, 怎么算A?
先在source image space空间下, ( u s , v s ) (u_s,v_s) (us?,vs?), 然后 向右, 向下移一个像素得到 ( u s + 1 , v s ) , ( u s , v s + 1 ) (u_s+1,v_s),(u_s, v_s+1) (us?+1,vs?),(us?,vs?+1), 然后投射回世界坐标中, 然后再然后世界 坐标中的点投射到当前相机下的image space, 即可得到A.
注意这里如何投射回世界 坐标中, 因为没有深度, 看前面假设, 我佛了
得到A之后, 先确定在当前金字塔的哪一层去找对应点, 即 l l l
The target pyramid level l is chosen so that det ? ( A ) / 4 l \det(A)/4^l det(A)/4l is closest to unity
然后从源空间的8x8的patch映射到该层, 映射方法
找后在这个区域找得分最高的点即可
第6部分是讲mapping
先stereo initialisation, 先通5个匹配点, 建立2维到3维的关系 , 具体算法见:
Recent developments on direct relative orientation,
然后后面就是通过 bundle adjustment, 不断算相机的变换 μ \mu μ, 以及对应点在3D中的位置.