我想使用单个相机来估计帧的相对相机姿势 .
为实现此目的,采用以下步骤 .
-
校准相机获取相机参数K.
-
使用SIFT / SURF查找相应的点
-
基本矩阵识别;使用findFundamentalMat(),输入匹配点2D
-
通过E = K'FK估计基本矩阵并修改E用于奇点约束
-
分解基本矩阵得到旋转,R = UWVt / UW'Vt(U和Vt得到E的SVD),得到平移t;
但是这样做之后,翻译t太小了 . 假设初始摄像机位置是(0,0,0) . 摄像机向前移动20cm后,下一个姿势为(0,0,20),实际平移应为20cm两者的水平差别很大 .
怎么了?如何从翻译矩阵中获取真实的翻译?你能帮帮我吗?
1 回答
基本矩阵仅按比例定义 . 从分解E得到的平移向量是单位向量 . 如果没有更多信息,则无法获得世界单位中摄像机之间的实际距离,例如场景中已知大小的参考对象 .