从 TrackMate v2.7.z 开始,我们推出了一款新的跟踪器,可以专门处理线性运动或以大致恒定速度移动的粒子。所有粒子的该速度不需要相同。您在 TrackMate 跟踪器选择中找到它,名称为 线性运动 LAP 跟踪器。
尽管与 TrackMate 中的 LAP 跟踪器相比,它处理的运动模型完全不同,但它重用了 Jaqaman LAP 框架,并且也源于 Jaqaman 论文中提出的跟踪器:请参见论文补充注释 7 中的 CD36 跟踪器 1。但同样,TrackMate 中的版本比 u-track 中的版本进行了简化。
原理
线性运动跟踪器依赖Kalman filter至预测进行等快速运动的药剂的最可能位置。
地图从前两帧开始,使用经典的 LAP 框架和 Jaqaman 成本矩阵(见下文),使用平方距离作为成本。用户可以使用初始搜索半径设置来设置初始搜索所允许的最大距离。
从几个点发起的每个仪表都用于创建卡尔曼滤波器的实例。卡尔曼滤波器的数量与仪表一样多。在接下来的帧中,每个卡尔曼用于滤波器生成粒子最可能位置的预测。所有这些都被存储。
然后,再次使用 Jaqaman LAP 框架,以平方距离作为成本,将所有预测位置与帧中的实际点位置联系起来。用户可以通过搜索半径设置来设置实际位置距预测位置的距离。
![]()
当然,现在,以后,卡尔曼滤波器可能无法找到链接到的位置。此事件称为遮挡:预测位置与实际测量(点某些)不对应。卡尔曼滤波器的好处是他们对此很满意,并且即使在丢失检测的情况下仍然能够进行下一个预测帧。如果连续重叠的次数过多,则认为该轨道终止。用户可以使用最大帧间隙设置来设置在轨道终止之前允许的最大连续重叠数。
相反,某些地方可能不会链接到曲目。它们将用于在下一帧中启动新的曲目,就像上面描述的曲目器启动一样。
这里注意的是,我们使用的成本函数是平方距离,但是就像布朗运动一样,从预测位置到实际检测。由于预测位置是假设恒定速度进行的,因此我们确实正在处理线性运动的适当成本函数。但由于我们使用平方距离函数将预测位置与测量位置联系起来,因此需要我们的做法就好像预测位置不是实际粒子位置,且如此遵循高斯分布。这是一个合理的假设,这也是跟踪器稳健的原因。
实施
该代码可以在on GitHub上找到。我们现在用α语言重复上面的部分。当您看到下面的链接时,这意味着:
1.获取第t帧中的所有源检测和第t+1帧中的目标检测。
- 计算源检测和目标检测之间所有可能的物理分配(潜在链接)的成本,将其存储成本放在矩阵中。
- 工作站与该矩阵相关的LAP。
- 找到每个作业创建一个链接。
贷款融资算法如下:
####初始化
- 仅基于四分之一距离成本(例如),将帧 0 的所有检测链接到帧 1 的检测。 2.根据新创建的每个m个链接,计算速度。该速度足以初始化m个卡尔曼滤波器。
- 使用找到的检测和链接初始化 m 个报表,并存储关联的卡尔曼元件。
轨道伸长
- 对于每个卡尔曼分子,运行预测步骤。这将生成 m 个预测位置。 2.根据每一个距离,将m个预测位置链接到第2帧中的n个检测。
- 已链接预测到正确的目标检测将添加到相应的食谱中。 4.接受目标检测用于运行卡尔曼滤波器的更新步骤。 5.循环到下一帧。
跟踪终止
1.某些m个预测位置可能找不到要链接到的实际检测。在这种情况下,我们发现了遮挡。该算法必须确定是否必须终止轨道或跨越间隙。 2.卡尔曼滤波器的连续限制数量低于特定(通常为2到10),则血糖不会终止,并且滤波器将返回到方差延长步骤。希望从新的预测中可以找到目标样本,并且帧 t 中的检测将链接到帧 t+2(或 t+3 等)中的检测。 3.否则,跟踪终止并且卡尔曼滤波器对象被丢弃。
轨道启动
- 相反,帧 t+1 中的某些检测可能与预测位置相关。在这种情况下,这些孤立检测被存储启动新的轨道。但为此,需要在帧 t+2 中进行其他孤儿检测。 2.此与启动步骤相同,但适用于后续帧。它需要存储当前帧和上一帧中的孤立检测。
- 在帧 t+2 中,必须优先考虑通过卡尔曼滤波器链接到预测位置的检测,而不是帧 t+1 中的隔离检测。因此,当您处理帧 t+2 时,首先执行心率延长步骤,获取帧 t+2 中的隔离检测列表,然后将其与帧 t+1 中的隔离检测组合以启动新的卡尔曼滤波器。