Kinect - 如何计算 1 秒内手关节的加速度 [关闭]
Posted
技术标签:
【中文标题】Kinect - 如何计算 1 秒内手关节的加速度 [关闭]【英文标题】:Kinect - how to compute the acceleration of hand joints over 1 sec [closed] 【发布时间】:2012-05-02 08:40:49 【问题描述】:我有一个使用 Microsoft Kinect 相机设备的应用程序。
在每一点,我都可以获得我手在 3 维空间 ( X - Y - Z ) 中的位置,并且我想计算我的手在每个轴上每秒的加速度。
基本上,我有一个起点的坐标,以及从该起点开始一秒钟后的坐标,我想计算我的手在这两个点之间的加速度。
StartPoint - (x1, y1, z1)
EndPoint after 1 sec from StartPoint ( 30 frames ) - (x2, y2, z2)
Acceleration between StartPoint and EndPoint = ?
我也可以获得我手随时间的所有其他坐标,但我想计算起点和终点之间的时间段内的加速度。
你能解释一下或者告诉我怎么做吗?
【问题讨论】:
这不是 Kinect 问题。这是一个基本的数学/物理问题。答案是你不能提供你的信息。加速度 (a) 是速度 (v) 随时间的变化 (a = dv/dt),因此您需要两次速度测量,因此 a=(v1-v0)/(t1-t0)。你没有两个速度测量值,你有两个位置测量值,这意味着你可以计算速度,v = dp/dt = (p1-p0)/(t1-t0)。 这就是为什么我提到我有一个 kinect。使用 kinect,我可以每秒获得关节的位置。此外,考虑到 1 秒有 30 帧这一事实,它会计算您的关节在每一帧的位置。所以我有很多位置,不仅仅是那两个。我提到那两个是因为我想计算它们之间的加速度。 我在物理 SX 网站上看到了您的帖子。请勿重复发布。 ugrad.math.ubc.ca/coursedoc/math101/notes/applications/… 【参考方案1】:StartPoint 到 EndPoint 的距离是一个有 3 个值的向量,它可以给你速度(距离单位/秒)
velocity(EndPoint.X - StartPoint.X, EndPoint.Y - StartPoint.Y, EndPoint.Z - StartPoint.Z)
现在,如果您想要加速度,您必须对两个 velocity 值执行相同操作:起点的速度和一秒后的速度。
acceleration(EndVelocity.X - StartVelocity.X, EndVelocity.Y - StartVelocity.Y, EndVelocity.Z - StartVelocity.Z)
acceleration 表示每个轴(X、Y 和 Z)的加速度,用(距离单位/秒²)表示
【讨论】:
以上是关于Kinect - 如何计算 1 秒内手关节的加速度 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有来自 Kinect Window SDK 的 Coordinatemapper 的情况下将 3D 骨骼关节映射回 2D 彩色图像