3D中的多个对象三角剖分,与右向量(光线)相交

时间:2015-07-11 21:44:14

标签: math 3d computer-vision linear-algebra triangulation

我正在开展一个项目,在这个项目中,当(至少)两个摄像机看到多个物体时,我应该可以对其进行三角测量。

单个对象

目前我能够对一个对象进行三角测量。这是通过以下几个步骤完成的:

  1. 对于每个摄像机,计算指向对象中心所在像素的向量。这是通过在Y轴和X轴上正确旋转指向图像中心(0,0,1)的矢量来完成的。
  2. 然后每个方向向量从摄像机自己的坐标转换为世界坐标(通过glm数学库),以便有一个共同的坐标系来执行微积分。
  3. 计算每对光线之间minimum length segment的端点。此处的光线定义为相机的位置+λ*方向向量,λ> = 0
  4. 段的中心点的平均值是近似物体在世界中的位置。
  5. 多个对象

    我对多个物体的问题是我找不到合适的方法来确定一对光线是否指向同一个物体,因此它们应该匹配,或者不匹配。

    example of intersections

    我认为我接近解决方案,但我仍然缺少最后一块。我的部分解决方案是经验性的,并且涉及所涉及的各种角度,特别是我使用以下四个角度:

    • α:光线方向之间的角度
    • β1,β2:相机方向与自身光线方向之间的角度(x2)
    • δ:摄像机方向之间的角度

    angles involved

    我找到的关系是

    y.eval({z : 3.})

    我做了一些测试,有时候它会起作用,有时它会改变β1和/或β2的符号。问题是我不知道如何确定何时。我有一个附加信息,使用步骤2中使用的(x,y)角度来生成(0,0,1)光线的方向。

    这两个值是有符号且严格相关到βn,因为(0,0,1)基本上是相机自身坐标系中相机的方向,对于计算光线也是如此方向。所以我认为他们会确定β的符号,但我不知道如何。

    有关如何完成它的任何想法?这个模型在数学上是否正确?

0 个答案:

没有答案
相关问题