估计单目相机的运动

3

我已经阅读了讲座和主题,并且已经工作了几周,但是我无法找到描述相机运动的方法。 我不想重建3D世界。 我正在使用OpenCV。

我有一个单目相机和一个未知的单词。 我有内部和失真参数。 我有特征和对应关系。 因此,我正在寻找两个帧之间的旋转和平移。 我想将我的第一张图像视为XYZ轴的原点。

我使用基本矩阵和本质矩阵来查找外部参数(R,T),但我并不确定。 我得到了以下结果:

R [0.040437..., 0.116076..., -0.992416..., 0.076999..., -0.99063..., -0.112731..., -0.996211.., -0.071848.., -0.048994...] T [0.6924183...; 0.081694...; -716885...]

如何检查它们是否好?

我计算了欧几里得距离以查看3D中的距离,但我得到了错误的值。

请问有人可以给我一些详细信息或指导吗? 希望我表达清楚。

问候

2个回答

1
你的意思是“世界”吗?这个问题并不是关于代码的,而是涉及到理论,因此不太适合在stackoverflow上讨论。

https://stackoverflow.com/faq

回答你的问题。如果你有R和T,那么你可以计算每个点的3D坐标。从那里,你可以将每个点重新投影到另一个相机上,并计算观察点和预测点之间的残差误差。如果误差在一个像素左右,那么它可能是有效的。

是的,我的意思是世界抱歉。我忘了说我在使用OpenCV!因此,使用R和T,我必须找到投影矩阵并使用triangulatePoint()找到每个点的3D坐标,就像您所说的那样。我可以使用SolvePnP()进行重新投影吗?我是对的吗? - user1553010

1

基本上,这种方法会使每个连续帧的比例因子未知,因此您可能会得到奇怪的R和T值。但是,您可以使用一些初始化,例如已知运动,以执行场景的第一次三角测量。接下来,您可以使用solvePnP来计算下一个[R|T]。

尝试阅读有关PTAMM的内容,它是单目SLAM最有趣的实现之一。

http://www.robots.ox.ac.uk/~bob/research/research_ptamm.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接