查找立体图像中匹配关键点的距离

时间:2012-12-03 02:58:41

标签: ios opencv computer-vision triangulation

我目前正在ios设备上从相机中拉帧。从这些帧我使用ORB来查找关键点及其描述符。然后我使用BFMatcher查找图像上关键点之间的匹配。

从这里我希望计算从相机到这些点的距离。我使用的所有点都是平面的(现在我使用墙上的针测试)。在这个阶段没有必要考虑非平面表面,所以这有望使它变得容易。

我目前有:

  • 关键点
  • 关键点描述符
  • 关键点之间的匹配
  • 基本矩阵
  • 基本矩阵
  • 两台相机的投影矩阵(虽然我不知道如何测试第二台相机是否正确)

我认为我必须以某种形式使用三角测量,但我不确定它是如何工作的。我知道我必须通过每个关键点从每个摄像机(由摄像机投影矩阵?定义)传递光线,并找到它们相交的点(或最接近交叉点)。正如我在3D空间中所假设的那样,每条射线相交的可能性极小。此外,我的关键点匹配通常非常好,因为我做了一些基本的过滤,但有时关键点是错误的,所以我需要考虑到这一点。

我之前使用Matlab校准了相机,所以我有焦距,主点和失真。但是,我从图像中提取的所有点都是2D。据推测,有必要用3D表示这些点,但我不确定如何。

或者我完全采取了错误的方法吗?

http://i47.tinypic.com/mt88p1.png

显然,这将针对场景中的每个点进行,但我只画了一个点。平面(正方形)将始终处于相同位置,但摄像机位置将因帧而异。关键点将处于相同位置,但不是每个帧都会拾取每个点。

1 个答案:

答案 0 :(得分:2)

请参阅Hartley-Sturm关于最佳三角测量的着名paper,以及Kanatani's variant