Math 三维多对象三角剖分,与右向量(光线)相交

Math 三维多对象三角剖分,与右向量(光线)相交,math,3d,computer-vision,linear-algebra,triangulation,Math,3d,Computer Vision,Linear Algebra,Triangulation,我正在做一个项目,在这个项目中,当(至少)两台摄像机看到多个物体时,我应该能够对它们的位置进行三角测量 单个对象 目前,我能够对单个对象进行三角剖分。这是通过以下步骤完成的: 对于每个摄影机,计算指向对象中心所在像素的矢量。这是通过在Y轴和X轴上正确旋转指向图像中心(0,0,1)的向量来实现的 然后将每个方向向量从相机自身坐标转换为世界坐标(通过glm数学库),以便有一个公共坐标系来执行微积分 计算每对光线之间的端点。这里的光线定义为λ>=0的摄像机位置+λ*方向向量 线段中心点的平均值是对象在

我正在做一个项目,在这个项目中,当(至少)两台摄像机看到多个物体时,我应该能够对它们的位置进行三角测量

单个对象 目前,我能够对单个对象进行三角剖分。这是通过以下步骤完成的:

  • 对于每个摄影机,计算指向对象中心所在像素的矢量。这是通过在Y轴和X轴上正确旋转指向图像中心(0,0,1)的向量来实现的
  • 然后将每个方向向量从相机自身坐标转换为世界坐标(通过glm数学库),以便有一个公共坐标系来执行微积分
  • 计算每对光线之间的端点。这里的光线定义为λ>=0的摄像机位置+λ*方向向量
  • 线段中心点的平均值是对象在世界中的近似位置
  • 多个对象 我对多个对象的问题是,我找不到合适的方法来确定一对光线是否指向同一个对象,因此它们应该匹配,还是不匹配

    我想我已经接近一个解决方案了,但我仍然错过了最后一块。我的部分解是经验性的,适用于涉及的各种角度,特别是我使用以下四个角度:

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

    我找到的关系是

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

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


    你知道怎么完成吗?这个模型在数学上正确吗?

    为什么不选择最小长度段的赋值?它有一些缺点。测量是不精确的,我可以想象这样一种情况:指向同一物体的两条光线没有通过最短的线段连接起来。此外,很难确定看到的物体数量。我觉得有角度的方法(如果数学上正确的话)会更加稳健。然后我可以使用线段的长度进行双重检查。是的,人们可以想象一种不确定的情况,但在具有少量对象的三维中,这种情况很少见。你的角度关系是正确的(如果有人跟踪符号),问题是它适用于真实物体,也适用于用红色标记的虚幻物体。如果最小长度的线段不够好,那么对象是否还有其他特性可供使用?光辉颜色运动?是的,即使是虚幻的物体,这种关系似乎也是真实的。我担心如果没有像素的深度,我能做的就不多了。也许你是对的,这种情况不太可能发生,我将尝试只使用最小段,看看会发生什么。还有其他信息,如运动,但我更喜欢稍后使用最终位置将新检测到的对象与旧对象进行匹配,而不是混淆。抱歉,如果我遗漏了一些明显的信息,但我不知道您如何决定,仅从相机像素位置,当您遇到“OK”情况下的对象或“BAD”情况下的实际对象为红色十字时。这两种情况将在摄影机中产生完全相同的位置。因此,除非你补充一些额外的信息,否则我认为这是不可能的。