使用两个非静态相机相对于固定点的 3D 对象位置估计

3D Object Position Estimation Relative to Fix Points Using Two Non-static Cameras

我正在尝试借助 2 个非静态相机(见附图)估计 3D 物体(标记 M)的运动。除了移动标记 M 之外,场景中还有 4 个静态共面标记(m1、m2、m3 和 m4)。静态标记之间的绝对距离(以厘米为单位)是已知的。

两个摄像头可以四处移动,但相对固定。摄像机同时拍摄场景图像。我可以从两个摄像头检测到 2D 图像中的所有标记(静态和移动)。

目标是跨帧计算 3D 中 M 的运动。一种方法是假设 m1 为世界坐标系的原点 (0,0,0),并在两帧中找到 M (x,y,z) 的 3D 位置,然后找到这两个位置之间的距离.

因此,问题解决了跨帧计算 3D 中 M 到 m1 的位置。这意味着跨帧的自我运动(由于相机引起的运动)应该对 M 的位置没有影响,因为它是相对于原点 m1 的。

我正在寻找可以指导我使用 OpenCV 解决此问题的正确方向的人。

我会尝试以下方法:

  1. 估计两个相机的姿势。由于您拥有标记的图像位置及其 3d 位置,因此您可以使用 PnP 执行此操作。
  2. 使用估计的相机位置对 M 的位置进行三角测量。

坐标系将由标记的 3d 位置决定,因此 m1 将是您的原点。

这需要

  1. 每个摄像头图像中至少可以看到三个标记
  2. M 在两个相机图像中都可见
  3. 您的相机已校准

您应该能够找到执行上述两个步骤的 OpenCV 函数。