gpt4 book ai didi

python - 从图像中查找车辆的速度

转载 作者:太空狗 更新时间:2023-10-29 21:32:46 26 4
gpt4 key购买 nike

我正在做一个项目,从图像中找出车辆的速度。我们正在从车内拍摄这些图像。我们将标记第一张图像中的一些对象作为引用。使用下一张图像中同一物体的属性,我们必须计算移动车辆的速度。有人能帮我一下吗???我正在使用 python opencv。我已经成功地使用光流法在第二张图像中找到了标记的像素。谁能帮我解决剩下的问题?

最佳答案

知道采集频率后,您现在必须找到标记的连续位置之间的距离。

要找到这个距离,我建议您估计每个图像的标记的姿势。笼统地说,“姿势”是表示物体相对于相机坐标的变换矩阵。获得这些连续坐标后,您可以计算距离,然后计算速度。

姿态估计是计算已知 3D 对象相对于 2D 相机的位置和方向的过程。生成的位姿是在相机引用中描述对象引用的变换矩阵。

Pose description

OpenCV实现了一个姿态估计算法: Posit 。文档说:

Given some 3D points (in object coordinate system) of the object, at least four non-coplanar points, their corresponding 2D projections in the image, and the focal length of the camera, the algorithm is able to estimate the object's pose.

这意味着:

  1. 你必须知道你相机的焦距
  2. 您必须知道标记的几何形状
  3. 您必须能够在 2D 图像中匹配标记的四个已知点

您可能需要使用 calibration routines 计算相机的焦距由 OpenCV 提供。我认为您有另外两个必需的数据。

编辑:

// Algorithm example

MarkerCoords = {Four coordinates of know 3D points}

I1 = take 1st image
F1 = focal(I1)
MarkerPixels1 = {Matching pixels in I1}
Pose1 = posit(MarkerCoords, MarkerPixels1, F1)

I2 = take 2nd image
F2 = focal(I2)
MarkerPixels2 = {Matching pixels in I2 by optical flow}
Pose2 = posit(MarkerCoords, MarkerPixels2, F2)

o1 = origin_of_camera * Pose1 // Origin of camera is
o2 = origin_of_camera * Pose2 // typically [0,0,0]
dist = euclidean_distance(o1, o2)
speed = dist/frequency

编辑 2:(对评论的回答)

"What is the acquisition frequency?"

计算车辆的速度等同于计算标记的速度。 (在第一种情况下,引用是附着在地球上的标记,在第二种情况下,引用是附着在车辆上的摄像头。)这由以下等式表示:

speed = D/(t2-t1)

与:

  • D 距离 [o1 o2]
  • o1 标记在时间 t1
  • 的位置
  • o2 标记在时间 t2
  • 的位置

您可以通过从照片的元数据中提取 t1t2 或从您的照片的采集频率 中检索耗时成像设备:t2-t1 = T = 1/F

"Won't it be better to mark simple things like posters? And if doing so can't we consider it as a 2d object?"

这对于 Posit 算法(或据我所知任何其他姿势估计算法)是不可能的:它需要四个非共面点。这意味着您不能选择嵌入 3D 空间中的 2D 对象,您必须选择具有一定深度的对象。

另一方面,您可以使用非常简单的形状,只要它是一个体积。 (例如立方体。)

关于python - 从图像中查找车辆的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com