如何确定(倾斜)矩形目标与相机的距离

时间:2013-01-29 07:25:06

标签: image-processing language-agnostic geometry computer-vision

我有一张包含多个不同大小和方向的矩形的照片。 我目前正在尝试查找从相机到图像中存在的任何矩形的距离。实现这一目标的最佳方法是什么?

例如,示例照片看起来可能与此类似(尽管这可能非常不合适):<​​/ p>

example image

我可以找到图像中任何矩形角的像素坐标,以及相机FOV和分辨率。我事先也知道可能在图像中的任何矩形的长度和宽度(但不是它们面对相机的角度)。可以在图像中的每个矩形目标的长度与宽度的比率保证是唯一的。矩形和相机将始终与地面平行。


我尝试了什么:

我基于我在互联网上找到的一些示例代码破解了一个解决方案。我基本上遍历每个矩形并找到平均像素长度和高度。

然后我用它来找到长度与高度的比率,并将其与列表进行比较 所有已知矩形目标的比例,所以我可以找到目标的实际高度,以英寸为单位。然后,我使用此信息来查找距离:

distance formula

...其中actual_height是目标的实际高度(英寸),IMAGE_HEIGHT是图像的高度(以像素为单位),pixel_height是平均高度图像上的矩形(以像素为单位),VERTICAL_FOV是相机沿垂直轴以度为单位的角度(相机上约39.75度)。


我在互联网上找到了这个公式,虽然看起来工作得有点好,但我真的不明白它是如何工作的,而且似乎总是略微低于实际距离。

此外,我不确定如何修改公式,以便它可以处理从一个角度观察它们时非常倾斜的矩形。由于我的算法通过找到长度和高度的比例来工作,它适用于矩形1和2(它们不会太倾斜),但不适用于矩形3,因为它非常倾斜,完全关闭了比率

我考虑使用此StackOverflow问题中列出的关于proportions of a perspective-deformed rectangle的方法找到比率,但我不确定这对我的工作有多好,并且想知道它是否过度或是否有我可以尝试更简单的解决方案。

1 个答案:

答案 0 :(得分:-1)

FWIW我曾经did something similar with triangles(完全6DoF姿势,而不仅仅是距离)。