繁体   English   中英

从不相关的位置数据中提取多个轨迹的最佳方法?

[英]Best way to extract multiple trajectories from uncorelated position data?

TLDR; 我有一些及时的多个粒子的位置数据,我想提取每个粒子的轨迹!

所以,我正在对流化床中的多个粒子进行一些图像检测(基本上是在一个方形盒子中的一堆球体,我们将液体通过,这样粒子开始像“流体”一样移动,也就是球形粒子的流化床) .

这个想法是我们将一些有色粒子与一堆透明粒子一起放入,这样我们就可以跟踪运动中标记粒子的轨迹(目标是获得速度、加速度、碰撞率......)。 标记粒子的图像示例

我们这里从图像处理中得到的数据是一个测试的处理后的位置数据,如您所见,我们为每一帧检测粒子(如您所见,同一帧中可以检测到多个粒子)

绘制的数据如下图所示。 请注意,我们使用单个相机来捕获 3 Position 组件(对于那些好奇的人,使用 45 度角的镜子)绘制“中间”位置数据(我们已经对数据进行了一些清理)我们可以清楚地区分轨迹,但我们也可以看到仍然存在很多“噪音”,主要问题是数据的组织方式是,对于每一帧我们检测粒子并存储它们的位置,并为下一帧重做同样的事情, 问题是我们不确定 X 帧的 Particles1 是否与 X+1 帧中移动的 Particle1 相同? 可以看到每帧每个粒子的索引 Particles index

我的问题是; 给定绘制的数据,提取每个粒子轨迹的最佳方法是什么,记住我最终需要速度(所以我也需要时间分量)?

我考虑过使用类似于 [k-nearest neighbors algorithm][5] 的东西,但它只对它们进行空间分类。

我看到解决这个问题的另一种方法是蛮力它并计算最小距离对并将这些对链接以形成轨迹? 但这对我来说看起来很愚蠢,所以也许有一个聪明的算法可以做到这一点(像算法 xD 这样的旅行推销员问题?)

无论如何,我很乐意得到任何意见!

干杯,

卡梅尔

我不明白你得到的测量结果有多精确。 我知道您在 4-D 空间中有一组点(frame ~ time, area, X, Y) (无论区域是什么),我认为您需要将这些点分成集合,其中集合对应于“轨迹一个粒子”,对吧?

如果是这样,在我看来,您正在寻找的是在这个 4-D 空间中的某种聚类(或者如果该area没有意义,则可能是 3-D)。 K-means不适合这里,我的第一个选择是DBScan algo之类的。

一般策略是从一帧到下一帧预测粒子的位置,并将新帧中的粒子与预测的粒子匹配。

0 阶预测是假设粒子不移动,所以你只需使用前一帧中的位置和最近邻搜索。

一阶预测假设粒子以恒定速度进行线性运动。 您可以估计最后两帧的速度(假设您可以在这些帧之间匹配它们),并推断到新的一帧。

二阶预测将是加速度,依此类推。

您将面临几个困难,其中

  • 获得并保持正确的速度值(从前几帧估计速度可能是有益的),

  • 处理未在所有帧中检测到的粒子(继续估计它们的位置并拒绝“可疑”匹配),

  • 两个粒子相互交叉时的模棱两可的匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM