【问题标题】:How to calculate the Horizontal and Vertical FOV for the KITTI cameras from the camera intrinsic matrix?如何从相机固有矩阵计算 KITTI 相机的水平和垂直 FOV?
【发布时间】:2019-11-28 12:34:10
【问题描述】:

我想从 KITTI 数据集中使用的相机的相机固有矩阵计算水平和垂直视野。我需要视野的原因是将深度图转换为 3D 点云。

【问题讨论】:

    标签: camera fieldofview kitti


    【解决方案1】:

    虽然这个问题很久以前就有人问过了,但我觉得它需要一个答案,因为我遇到了同样的问题并且无法找到任何相关信息。

    不过,我已经使用this document 中提供的信息和一些更通用的相机校准文档解决了这个问题

    首先,我们需要将提供的视差转换为距离。这可以通过它们声明的 dev_kit 中的方法将 disp 图转换为浮点数来完成:

    disp(u,v) = ((float)I(u,v))/256.0;

    然后可以通过默认的立体视觉方程将此视差转换为距离:

    深度 = 基线 * 焦距/视差

    现在来一些棘手的部分。我搜索了高低的焦距,但无法在文档中找到它。 我刚才在编写基线时意识到,基线记录在上述来源中,但是从第 IV.B 部分我们可以看到它可以间接在 P(i)rect 中找到。

    P_rects 可以在校准文件中找到,将用于计算基线以及从图像中的 uv 到现实世界中 xyz 的转换。

    步骤如下:

    对于深度图中的像素:

    xyz_normalised = P_rect \ [u,v,1]

    其中 u 和 v 分别是像素的 x 和 y 坐标

    这将为您提供形状为 [x,y,z,0] 且 z = 1 的 xyz_normalised 然后,您可以将其与在该像素处给出的深度相乘,得到 xyz 坐标。

    为了完整起见,由于 P_rect 是这里的深度图,您需要使用 cam_cam 校准 txt 文件中的 P_3 来获取基线(因为它包含彩色相机之间的基线),并且 P_2 属于左侧相机,即用作 occ_0 文件的参考。

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 2017-02-20
      • 2019-04-12
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多