- BOOSTING Tracker:基于用于支持Haar级联(AdaBoost)的机器学习的相同算法,但是像Haar级联一样,它已有十多年的历史了。该跟踪器运行缓慢,无法正常运行。仅出于遗留原因而感兴趣,并比较其他算法。 (最低OpenCV 3.0.0)
- MIL Tracker:比BOOSTING Tracker更好的准确性,但是报告失败的工作很差。(最低OpenCV 3.0.0)
- KCF Tracker:内核相关过滤器。比BOOSTING和MIL更快。与MIL和KCF相似,不能很好地处理完全遮挡。 (最低OpenCV 3.1.0)
- CSRT跟踪器:判别相关过滤器(具有通道和空间可靠性)。趋向于比KCF更准确,但速度稍慢。 (最低OpenCV 3.4.2)
- MedianFlow Tracker:很好地报告失败;但是,如果运动跳动太大(例如快速移动的对象或外观变化很快的对象),则模型将失败。 (最低OpenCV 3.0.0)
- TLD跟踪器:我不确定TLD跟踪器的OpenCV实现或实际算法本身是否存在问题,但是TLD跟踪器极容易出现假阳性。我不建议使用此OpenCV对象跟踪器。 (最低OpenCV 3.0.0)
- MOSSE Tracker:非常非常快。不如CSRT或KCF准确,但是如果您需要纯速度,则是一个不错的选择。(最低OpenCV 3.4.1)
- GOTURN Tracker: OpenCV中唯一的基于深度学习的对象检测器。它需要其他模型文件才能运行(本文将不介绍)。我的初始实验表明,即使据说可以很好地处理查看更改,使用起来还是有些痛苦的(尽管我的初始实验并未证实这一点)。我将在以后的文章中尝试介绍它,但与此同时,请看一下Satya的文章。 (最低OpenCV 3.2.0)
我个人的建议是:
- 当需要更高的对象跟踪精度并且可以忍受较慢的FPS吞吐量时,请使用CSRT
- 当需要更快的FPS吞吐量但可以处理稍低的对象跟踪精度时,请使用KCF
- 需要纯速度时使用MOSSE
萨蒂亚·马里克(Satya Mallick)在他的文章中还提供了有关这些对象跟踪器的其他信息。。
对象跟踪器已经在OpenCV 3中进行了积极的开发。这是跟踪器出现在哪些版本的OpenCV中的简要概述:
注意:尽管在GitHub上遵循了本期中的说明并关闭了预编译头,但是我仍无法使OpenCV 3.1进行编译。