【问题标题】:Deprojection without Intrinsic Camera Matrix没有内在相机矩阵的反投影
【发布时间】:2020-04-01 01:28:18
【问题描述】:

我正在尝试验证一种解决方案,将像素点 (u,v) 反投影到 3D 世界位置 (x,y,z) 中,除了 (u,v) 之外,仅使用相机的外部旋转和平移。

The proposed solution

我在 Unreal 中对问题进行了建模,其中我有一个虚拟相机,其世界位置 (1077,1133,450) 和旋转 yaw=90,pitch=345,roll=0 度。我有一个已知 3D 位置 (923,2500,0) 的对象,由 1280x720 相机在像素位置 (771,426) 或帧中心位置 (131,-66) 看到。

我的旋转矩阵的转置是:

[[ 5.91458986e-17  9.65925826e-01 -0.00000000e+00]
[-1.00000000e+00  6.12323400e-17  0.00000000e+00]
[-1.58480958e-17 -2.58819045e-01  9.65925826e-01]]

我的 Tx_Ty_Tz 矩阵是:

[[-1094.39396119]
[ 1077.        ]
[ -141.42464373]]

我的 dx_dy_dz 矩阵是

[[ -63.75110454]
[-131.        ]
[  18.0479828 ]]

我最终将位置 (-1593,50,0) 作为反投影的世界坐标,这显然是错误的。我的矩阵之一是否计算不正确?如果没有,提供的方法是否有缺陷/不完整?

【问题讨论】:

  • 我认为您链接的解决方案不是一个好的解决方案(但也许我遗漏了什么?)。问题是您的世界坐标的单位与相机帧中的单位不同(取决于像素大小)。您链接到的帖子中的 d 向量似乎仍在相机框架中,并且仍然需要乘以视野等才能为您提供世界坐标中的 3d 点。

标签: opencv computer-vision linear-algebra


【解决方案1】:

链接中建议的解决方案似乎并不准确,因为反投影应该需要固有的相机矩阵。

【讨论】:

    猜你喜欢
    • 2015-04-11
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多