我正在尝试使用视觉里程计估计立体相机系统的相机的 3D 轨迹。现在我只需要从帧到帧的翻译。
问题:我不能使用solvePnPRansac函数的旋转和平移向量来绘制我的轨迹吗?还是需要使用Rodrigues函数来计算旋转矩阵?
为了更好地理解我已经完成的工作,我总结了我的步骤。
我校准了立体相机并获得了所有外在和内在参数。 在特征检测之前重新映射所有图像。
第一张图片的迭代 (t-1):
1.) 图像左右特征检测、描述和匹配得到关键点。
以下图像的迭代 (t):
1.) 对新图像进行左右特征检测、描述和匹配以获得关键点。
2.) 左(t-1)和左(t)以及右(t-1)之间的匹配和正确的(t)。 这样我就可以确保找到的关键点在所有 4 张图像中。
3.) findEssentialMat 使用上一个和当前图像的关键点。
4.) recoverPose 并将同质 3D 点转换为笛卡尔坐标
5.) 过滤内点以获得最佳关键点
6.) solvePnPRansac 得到旋转和平移向量。 distCoeff 数组为空,因为图像已预先重新映射。
7.) rodrigues 用于旋转向量。转置结果旋转并计算 -rotation_inv * 平移。
8.) 保存当前图像的关键点以备下次迭代使用。