3

我正在尝试从头开始编写一个可以估计相机姿势的程序。我对任何编程语言都持开放态度,并使用内置函数/方法进行特征检测......

我一直在探索估计姿势的不同方法,如 SLAM、PTAM、DTAM 等……但我真的不需要跟踪和映射,我只需要姿势。

你们中的任何人都可以提出可以帮助我的方法或任何资源吗?我知道姿势是什么以及如何估计它的粗略想法,但我找不到任何资源来解释它是如何完成的。

我正在考虑从录制的视频开始,从视频中提取特征,然后使用这些特征和几何形状来估计姿势。

(请原谅我的天真,我不是计算机视觉专家,对这一切都还很陌生)

4

2 回答 2

4

为了计算相机姿势,您需要有一个由图像中一些已知点给出的参考框架。这些已知点例如来自校准模式,但也可以是图像中的一些已知地标(例如,Gizeh 金字塔底部的 4 个角)。

给定相机看到的已知地标(即从 2D 点找到 3D 位置)估计相机位姿的问题通常称为PnP。OpenCV 为您提供了一个现成的求解器来解决这个问题。

但是,您首先需要校准您的相机,即您需要确定是什么让它与众不同。您需要估计的参数称为内在参数,因为它们将取决于相机焦距、传感器尺寸……而不是相机位置或方向。这些参数将以数学方式解释世界点如何投影到您的相机传感器框架上。您可以从已知的平面模式估计它们(同样,OpenCV 有一些现成的功能)。

于 2014-11-26T16:44:04.350 回答
0

通常,您只能提取相对于给定参考帧的相机位姿。估计相机的一个视图与另一个视图之间的相对姿势是很常见的。来自两个不同相机的同一场景的两个视图之间最一般的关系由基本矩阵(google it)给出。您可以根据图像之间的对应关系计算基本矩阵。例如查看 Matlab 实现: http ://www.mathworks.com/help/vision/ref/estimatefundamentalmatrix.html 计算完后,您可以使用基本矩阵的分解来获得相机之间的相对位姿. (例如看这里:http ://www.daesik80.com/matlabfns/function/DecompPMatQR.m )。

如果您有一个校准过的相机,您可以执行类似的程序,然后您需要Essential 矩阵而不是 Fundamnetal。

于 2014-11-26T13:14:05.670 回答