【问题标题】:Triangulation to find distance to the object- Image to world coordinates三角测量以查找到对象的距离-图像到世界坐标
【发布时间】:2014-02-24 14:21:38
【问题描述】:
             Localization of an object specified in the image.

我正在从事计算机视觉项目,以使用立体图像查找对象的距离。我使用 OpenCV 遵循以下步骤来实现我的目标 1. 相机校准 2. 冲浪匹配找到基本矩阵 3. Zisserman 和 Hartley 书中描述了使用 svd 作为方法的旋转和平移向量。 4. StereoRectify得到投影矩阵P1、P2和旋转矩阵R1、R2。旋转矩阵也可以使用 Homography R=CameraMatrix.inv() H Camera Matrix 找到。

问题: 我使用最小二乘三角法对点进行三角测量,以找到到物体的真实距离。它以 [ 0.79856 , .354541 .258] 的形式返回值。我将如何将其映射到现实世界坐标以找到到对象的距离。

http://www.morethantechnical.com/2012/01/04/simple-triangulation-with-opencv-from-harley-zisserman-w-code/

替代方法: 查找两个图像中对象之间的差异,并使用给定的公式查找深度 深度=(焦距*基线)/视差

对于视差,我们必须先进行校正,并且点必须不失真。我的整改图像是黑色的。

请帮帮我,这很重要

这是我如何实现代码的详细说明。

  • 使用圆形网格校准相机以获得相机矩阵和失真系数。代码在 Github (Andriod) 上给出。

    2.拍两张汽车的照片。首先从左到右。取子图像,计算-基本矩阵-基本矩阵-旋转矩阵-平移矩阵....

    3.我尝试了两种投影方式。

  • 将第一个图像投影作为单位矩阵,通过旋转和平移矩阵制作第二个 3x4d 投影并进行三角剖分。

  • 从 Stereo Rectify 获取投影矩阵 P1 和 P2 以执行三角测量。

我的对象距离相机 65 米,我不知道如何根据 [0.79856 , .354541 .258] 形式的三角测量结果来计算这一点

问题:我是否需要做一些额外的校准才能得到结果。我的代码不是基于了解对象几何尺寸的细节。

【问题讨论】:

    标签: opencv matrix computer-vision distance triangulation


    【解决方案1】:

    所以你已经计算了三角测量?好吧,那么您在相机坐标中就有了点,即在以其中一个相机为中心的坐标系中(左侧或右侧取决于您的代码的编写方式以及将图像提供给它的顺序)。

    你还想要什么?这些点的向量长度(平方坐标和的平方根)是它们与同一摄像机的估计距离。如果您希望它们在其他“世界”坐标系中的位置,您需要在该系统和相机之间进行坐标变换 - 大概是通过校准程序。

    【讨论】:

    • 我在上述问题中添加了更多细节,说明我是如何实现代码的。我想知道距离我的相机 65 米的物体的真实距离。我想知道这些坐标将如何帮助我估算距离。任何计算或参考?
    • @SameedTariq 如果您没有得到答案,那么为什么您标记为答案?如果你得到了你想要的,那就不要编辑问题并使用新线程
    • @Ahmad 。据我所知,他指向正确的方向。我没有得到答案。我的物体距离相机 65 米。这些坐标将如何帮助我显示估计 65 米的距离。
    • 您的相机已经过校准,并且您已经根据基本矩阵计算了相机的相对位姿。现在,你需要一张密集的视差图,还是只需要几个对应点的位置?如果是后者,则无需校正图像。只需对相应的像素进行三角测量。如果结果仍然没有意义(即它们的距离太小,就像您的示例中一样),则可能意味着您在校准中的缩放比例错误。您是否为校准对象输入了正确的物理尺寸?
    • @user3601754 我无法对你发表评论。请打开一个新问题,而不是评论这个旧问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2014-04-18
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多