是否可以从图像计算速度?

时间:2015-04-08 15:40:58

标签: c++ frame kinect velocity

我想知道是否可以通过从序列开始起以毫秒为单位计算时间以及包含在场景中移动的人的不同帧来计算人的速度(在Y轴上)。像这样举例如:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以激活骨骼追踪并跟踪头部关节的位置,而不是使用深度数据:它可以为您提供更好的效果。 Kinect骨架跟踪中关节的位置以米为单位,因此只需计算当前帧中头部位置与前一帧中头部位置的距离,并除以经过的时间(以秒为单位)(记住将毫秒除以1000) )应该以每秒米的速度给你。

如果无法激活骨架跟踪,您可以在图像上找到属于用户的最高像素(Kinect的深度数据包含该信息,或者如果您没有深度数据,则使用最高的非黑色图像中的像素),然后使用Kinect SDK的坐标映射器将其映射到3D世界空间。然后如上所述计算速度。

这将为您提供每帧的速度;找到你可以平均最后30个速度的总体速度(这将给你用户在最后一秒的平均速度,它应该比每帧值更平滑地变化)。