【问题标题】:How to finding distance between camera and detected object using openCV in python?如何在python中使用openCV查找相机和检测到的物体之间的距离?
【发布时间】:2017-10-12 17:52:42
【问题描述】:

我想找出相机和相机前面的人(使用 HOG 描述符检测到)之间的距离。我正在寻找更微妙的方法,而不是校准相机,并且事先不知道任何距离。

这可能属于自动驾驶汽车寻找前车距离的场景。

有人可以帮助我提供示例代码或说明如何操作

【问题讨论】:

  • 欢迎来到 Stack Overflow。请参阅these guidelines,了解如何在您的帖子中创建最小、完整且可验证的代码示例。
  • 您也许可以使用人类特征的平均大小(头部大小?)来估计距离,您可以将其与您检测到的人的特征进行匹配,但这只是一个估计值。 AFAIK 自动驾驶汽车使用测距(即雷达/激光雷达)来确定距离。祝你好运,请在(如果)成功时报告。
  • @barny 没有传感器是目标:(,一个树莓派项目

标签: python opencv image-processing distance


【解决方案1】:

很抱歉,找到距离是一个计量问题,因此您需要校准您的相机。校准是一个相对简单的过程,对于任何测量都是必需的。

假设您只有一个经过校准的相机,如果该相机的方向/位置相对于地平面是固定的,则可以计算相机与某人脚之间的距离(假设脚是可见的) .

【讨论】:

  • 我不认为它像校准相机那么简单。您给出的示例仅有效,因为脚在已知平面上,并且汽车没有脚在地面上。在更一般的情况下,未知尺寸的汽车在未知平面上,这根本是不可能的。这就是你的几何形状。
  • 如果您不校准您的相机,您将永远无法在像素和实际距离之间进行任何转换。关于校准,如果您的相机可以通过针孔相机模型+镜头失真来近似,您可以使用例如。 OpenCV 校准示例代码。您只需拍摄 3 张或更多参考图案的照片。它是全自动的,这就是为什么我说它很容易。如果您的相机更复杂,例如。有一个折反射系统,那么是的,校准更复杂。请注意,没有提供有关相机的详细信息。
  • @VincentVidal 一个普通的针孔摄像头,更具体的树莓派摄像头模块
  • 校准相机不会以任何一般方式建立像素和实际距离之间的关系。一个像素可以代表近处或远处的事物——校准不会改变这一点。
  • 是的。我的意思是校准对于测量是必要的。我没有说校准对于测量来说已经足够了,你需要更多的信息,这些信息会与你的光线从相机中心相交到你的像素。没有校准,你不知道那条射线的方向。
猜你喜欢
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 1970-01-01
  • 2012-12-30
  • 2013-01-07
相关资源
最近更新 更多