0

如何使用从两个图像获得的光流信息找到物体的实际真实世界速度?谁能帮我吗?

4

2 回答 2

2

正如评论员已经说过的那样,我们需要有关您的问题的更多信息。基本上:是的,可以从图像计算真实世界的速度

但这一切都取决于以下几点:

  • 你的相机是固定的还是可能在移动
  • 您是否尝试计算在场景中任何位置移动的任何物体的速度,或者您是否有固定车道,例如用安装的摄像机拍摄的街道,并且物体(汽车)将始终沿着一条车道移动?
  • 如果是后者,你能在现实世界的街道上进行测量吗?就像在木板路上标记点(永久或简单地找出在现实世界中 x 米的距离会在您的相机图像上显示多长时间(以像素为单位))
  • 如果您无法在现实世界场景中进行这些测量,则需要提供有关相机与场景/地平面的角度、相机与场景的距离以及相机参数的信息。

为了计算场景中任何被跟踪对象的速度,您可能需要所有后者来真正计算场景中的距离。但这要困难得多。

如果您有固定车道的情况,即想要测量汽车的速度,我更喜欢在现实世界中测量或标记点的方法。

因为如果有这些信息:

x m = y px

并且一个物体已经及时移动y pxt(你可以通过计算的刷新率得到那个时间)你可以计算出它在 1 秒内移动了多少像素,因为你知道一米有多少像素,你就会知道它的速度米每秒(或您喜欢的任何其他单位。

您也可以在场景中设置两个标记,然后简单地测量对象从一个标记移动到另一个标记需要多少帧(以及因此需要多少时间)。这将为您提供更平均的速度,因为如果您以较小的时间步长进行计算,您可能会由于分段问题或仅仅因为在较短的测量时间跨度之间的变化相当小而得到嘈杂的结果。

好吧,对于分割,您可以简单地尝试减法。彼此减去两个或三个后续帧。移动对象(以及因此发生变化的图像部分)将产生非零值,而稳定图像部分的颜色值应减去大约 0。

也许这可以帮助您解决问题...但是当然这取决于您的设置和您想要的目标...然后您需要提供更多信息...

于 2011-02-07T18:28:49.197 回答
1

这个方法很长,但简而言之:

您可以做的是设置一个值,指定物体与相机的距离。

然后捕获第一帧并将其保存在某处。

捕获最后一帧并将其保存在某处。

在两个框架上应用阈值。

修剪第一帧左侧的所有像素,然后对第二帧执行相同操作。

对于详细教程,我认为这篇文章可能会对您有所帮助。

http://morefunscience.blogspot.in/2012/05/calculating-speed-using-webcam.html

于 2013-07-16T07:07:56.960 回答