MIL,BOOSTING,MEDIANFLOW,TLD,KCF的区别

首先介绍一下分类器。分类器的工作是将图像的矩形区域分为对象和背景。分类器将图像补丁作为输入,并返回0,1之间的数值,用来作为图像补丁包含对象的概率。当确定图像补丁是背景是,数值为0,补丁是是对象时,分数为1。
在机器学习中,我们将“在线”用来指代在运行时在运行中训练的算法。离线分类器可能需要多个实例来训练分类器,但是在运行时通常使用非常少的实例训练在线分类器。
分类器通过馈送正(对象)和负(背景)示例来训练。如果你想建立一个分类器来检测猫,你训练它与成千上万包含猫的图像和数千个不包含猫的图像。这样分类器学习区分什么是猫和什么不是猫。你可以在这里了解有关图像分类的更多信息。在建立在线分类器时,我们没有成千上万的正负的例子。
让我们来看看不同的跟踪算法如何处理这个在线训练的问题。

BOOSTING跟踪器
此跟踪器基于AdaBoost的在线版本 - 基于HAAR级联的面部检测器在内部使用的算法。 这个分类器需要在运行时用对象的正和负例子训练。 由用户提供的初始边界框(或由另一个对象检测算法)作为对象的正例,并且边界框外部的许多图像补片被当作背景。 给定新帧,对先前位置的邻域中的每个像素运行分类器,并记录分类器的得分。 对象的新位置是得分最大的位置。 所以现在我们有一个更积极的例子为分类器。 随着更多的帧进入,分类器用该附加数据更新。
优点:无。 这个算法是十年前并且可以运用,但我找不到一个很好的理由使用它,特别是当其他高级跟踪器(MIL,KCF)基于类似的原理可用。
缺点:跟踪性能平庸。

MIL跟踪器
此跟踪器在概念上类似于上述的BOOSTING跟踪器。 最大的区别在于,代替仅考虑对象的当前位置作为积极示例,它在当前位置周围的小邻域中查找以生成若干潜在的正例子。 你可能认为这是一个坏主意,因为在大多数这些“积极”的例子中,对象不是中心。

在MIL中,你没有指定正和负例子,但是有正和负“包”。 正包中的图像集合并不都是积极的例子。 相反,只有一个图像在积极的包里需要一个积极的例子。在我们的示例中,正包包含以对象的当前位置为中心的补丁,以及在其周围的小邻域中的补丁。 即使被跟踪对象的当前位置不准确,当来自当前位置的邻域的样本被放入正包中时,很有可能这个包包含至少一个图像,其中对象被良好地置于居中。
优点:性能相当不错。 它不像BOOSTING跟踪器那样漂移,它在部分遮挡下合理地工作。如果你使用OpenCV 3.0,这可能是你可用的最好的跟踪。 但是如果你使用更高版本,考虑KCF。
缺点:跟踪失败报告不可靠。不能从完全闭塞恢复。

KCF跟踪器
KFC代表内核化相关滤波器。 这个跟踪器建立在前两个跟踪器提出的想法。 该跟踪器利用了这样的事实,即在MIL跟踪器中使用的多个正样本具有大的重叠区域。 这种重叠的数据导致一些良好的数学特性,利用这个跟踪器,使跟踪更快,同时更准确。
优点:准确度和速度都比MIL更好,它报告跟踪失败比BOOSTING和MIL更好。 如果您使用OpenCV 3.1和更高版本,我建议对于大多数应用程序使用这个。
缺点:不能从完全闭塞恢复。 未在OpenCV 3.0中实现。
Bug警告:在OpenCV 3.1(仅限Python)中有一个错误,因为返回了不正确的边界框。 参见错误报告。

TLD跟踪器
TLD代表跟踪,学习和检测。 顾名思义,该跟踪器将长期跟踪任务分解为三个组件 - (短期)跟踪,学习和检测。 从作者的论文,“跟踪器跟踪对象从一帧到帧。 检测器定位到目前为止观察到的所有外观,并在必要时校正跟踪器。 学习估计检测器的错误并更新它以避免未来的这些错误。“这个跟踪器的输出往往会跳一下。 例如,如果你正在跟踪行人,并且场景中还有其他行人,则该跟踪器有时可以临时跟踪与您要跟踪的行人不同的行人。 在积极的一面,这条轨道似乎在更大的规模,运动和遮挡下跟踪物体。 如果你有一个视频序列,其中的对象隐藏在另一个对象后面,这个跟踪器可能是一个不错的选择。
优点:在多个帧的遮挡下工作最好。 此外,跟踪最佳的规模变化。
缺点:很多误报,使它几乎不可用。

MEDIANFLOW跟踪器
在内部,该跟踪器在时间上向前和向后方向上跟踪对象,并且测量这两个轨迹之间的差异。 最小化该ForwardBackward错误使它们能够可靠地检测跟踪失败并在视频序列中选择可靠的轨迹。
在我的测试中,我发现这个跟踪器在运动是可预测和小规模的时候效果最好。 与其他跟踪器不同,即使跟踪明显失败,该跟踪器知道跟踪失败的时间。
优点:优秀的跟踪失败报告。 当运动是可预测的并且没有遮挡时工作得很好。
缺点:在大规模运动下失败。

GOTURN跟踪器
在跟踪器类中的所有跟踪算法中,这是基于卷积神经网络(CNN)的唯一一种。 它也是唯一一个使用离线训练模型,因为它比其他跟踪器更快。 从OpenCV文档,我们知道它“对视点变化,照明变化和变形是强大的”。 但它不能很好地处理遮挡。
Bug警告:不幸的是,在写这篇文章的时候,在使用Goturn时有一个错误在OpenCV 3.2实现使程序崩溃。

猜你喜欢

转载自blog.csdn.net/u013539952/article/details/75578336
KCF
tld
今日推荐