Algorithm 自动跟踪算法

Algorithm 自动跟踪算法,algorithm,language-agnostic,graphics,image-processing,tracking,Algorithm,Language Agnostic,Graphics,Image Processing,Tracking,我正在尝试编写一个简单的跟踪例程来跟踪电影中的一些点 基本上我有一系列100帧长的电影,在黑暗的背景上显示一些亮点。 我每帧有大约100-150个点,它们会在电影的整个过程中移动。我想跟踪它们,所以我正在寻找一些有效的(但可能不是过度的)例程来实现这一点 更多信息: 斑点的大小只有几个(5倍)像素 运动规模不大。光斑通常不会从其原始位置移动超过5-10个像素。动作一般都很流畅 这些斑点的“形状”通常是固定的,它们不会增长或收缩,但随着电影的发展,它们变得不那么明亮 斑点不会朝特定方向移动。它们

我正在尝试编写一个简单的跟踪例程来跟踪电影中的一些点

基本上我有一系列100帧长的电影,在黑暗的背景上显示一些亮点。 我每帧有大约100-150个点,它们会在电影的整个过程中移动。我想跟踪它们,所以我正在寻找一些有效的(但可能不是过度的)例程来实现这一点

更多信息:

  • 斑点的大小只有几个(5倍)像素
  • 运动规模不大。光斑通常不会从其原始位置移动超过5-10个像素。动作一般都很流畅
  • 这些斑点的“形状”通常是固定的,它们不会增长或收缩,但随着电影的发展,它们变得不那么明亮
  • 斑点不会朝特定方向移动。它们可以左右移动
  • 用户将在每个点周围选择一个区域,然后跟踪该区域,因此我不需要自动查找点
由于视频是黑白的,我想我应该依靠Brightness。例如,我想我可以在区域周围移动,并计算前一帧中区域面积与下一帧中不同位置区域面积的相关性。我知道这是一个相当幼稚的解决方案,但你认为它可能有效吗?有人知道具体的算法吗?不需要太快,只要准确,我很高兴

多谢各位


尼科

这一定是一个研究得很好的话题,我怀疑不会有任何100%准确的解决方案

一些可能有用的链接:

。麻省理工学院的两个人写的论文

。特别是计算机视觉部分

。一个学生项目,其中也有代码和样本视频,我相信


当然,这对你来说可能有些过分,但希望它能帮助你找到其他线索。

简单就是好的。我会开始做这样的事情:

1) over a small rectangle, that surrounds a spot: 2) apply a weighted average of all the pixel coordinates in the area 3) call the averaged X and Y values the objects position 4) while scanning these pixels, do something to approximate the bounding box size 5) repeat next frame with a slightly enlarged bounding box so you don't clip spot that moves 1) 在围绕一个点的小矩形上: 2) 应用区域中所有像素坐标的加权平均值 3) 将平均的X和Y值称为对象位置 4) 扫描这些像素时,请执行一些操作以近似边界框的大小 5) 使用稍微放大的边界框重复下一帧,这样就不会剪辑移动的点 对于低于某个阈值的像素,平均值的权重应为零。数字4可以像跟踪比同一阈值更亮的任何对象的最小/最大位置一样简单


这当然会有重叠或交叉点的问题。但出于某种原因,我一直认为你在用未知的摄像机运动跟踪恒星,在这种情况下,这应该没问题。

对我来说听起来像是一项工作。

我担心斑点跟踪并不简单,如果你想做好这项工作的话就不简单了

正如genpfault所说,从水滴检测开始

现在,每一帧上都有斑点,需要将它们连接起来。如果水滴独立移动,可以使用某种对应算法将它们连接起来。例如,见

现在可能会发生碰撞。您可以使用混合高斯来尝试分离它们,放弃并让轨迹交叉,使用任何其他前后信息来解决碰撞(例如,如果A和B碰撞,A在碰撞之前更亮,之后也会更亮,您可以跟踪A;如果A和B沿着可预测的轨迹移动,您也可以使用该信息)

或者你可以和一个一直在做这类事情的实验室合作。

我建议。使用模型(可以是任何模板图像),可以测量模板与帧的任何部分的相关性

结果是确定样本与模板相关性的概率因子。它特别适用于二维情况。 它的优点是独立于样本绝对值,因为结果取决于与样本平均值相关的协方差

一旦检测到高概率,就可以跟踪原始位置附近的连续帧,并选择最佳相关因子

然而,模板的大小和旋转很重要,但我能理解的不是这种情况。您可以使用任何形状自定义检测,因为模板图像可以表示任何配置

这是一个,我已经使用并正确工作。

Zdenek Kalal的捕食者(TLD算法)也适用于自动跟踪

见此:


这些形状独特吗?如果没有,您可能会在精度方面有问题,尤其是当形状彼此之间的距离在10像素以内时。@Anon:您的观点很好。我想你可以说这些斑点彼此都不一样,但在像这样的小事上,你知道差异不可能如此巨大。我已经有了一个“手动跟踪”例程,它允许用户在一段时间内手动移动区域,因此在这些困难区域的情况下,用户可能必须手动操作,这不是问题。我只是不想手动跟踪每张图像的所有150个区域……是的,你是对的,这是一个很好的研究,甚至可能太多,因为我可以找到大量关于它的论文。问题是,如果你不知道从哪里看,从哪里开始,那么太多的信息往往会让人困惑。你提供的链接似乎是一个有趣的起点,我想我会在周末读一些东西。。。特别是卡尔曼滤波器,似乎是一个好东西。我正在跟踪荧光显微镜图像,但你的想法无论如何都适用+我同意。听起来像是我参与的自适应后视镜控制项目。我通过斑点分析找到了“点”的原始位置。然后以每秒1000帧的速度运行,我有一个自定义算法,根据简单的质量“质心”查找点位置的微小变化