第5部分讲tracking
给定两帧RGB, 怎么算它们之间相机的变换矩阵
这里有个前提条件, 知道 两帧中匹配上的相素对于同一世界坐标下的点PjWP_{jW}PjW
那么该点在当前帧中image space的坐标为

可以通过匹配找到该点在当前帧中image space的坐标为

那么目标函数则为

然后目标函数对未知数μ\muμ求导, 用gauss newton, 或者 LM即可解, 算出μ\muμ 即算出相机的变换
那么如何通过匹配找到

5.3有讲
先算A, 怎么算A?
先在source image space空间下, (us,vs)(u_s,v_s)(us,vs), 然后 向右, 向下移一个像素得到(us+1,vs),(us,vs+1)(u_s+1,v_s),(u_s, v_s+1)(us+1,vs),(us,vs+1), 然后投射回世界坐标中, 然后再然后世界 坐标中的点投射到当前相机下的image space, 即可得到A.
注意这里如何投射回世界 坐标中, 因为没有深度, 看前面假设, 我佛了

得到A之后, 先确定在当前金字塔的哪一层去找对应点, 即lll
The target pyramid level l is chosen so that det(A)/4l\det(A)/4^ldet(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中的位置.

博客主要围绕两部分内容展开。一是tracking,给定两帧RGB,在已知匹配像素对应世界坐标点的前提下,介绍了计算相机变换矩阵的方法,包括目标函数求导及求解,还说明了匹配点的寻找方式;二是mapping,先进行stereo initialisation建立2维到3维关系,再通过bundle adjustment计算相机变换和对应点3D位置。
7125

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



