单目标跟踪 代码原文:
[OpenCV实战]14 使用OpenCV实现单目标跟踪_You and Me-CSDN博客_opencv单目标跟踪
多目标跟踪 代码原文:
[OpenCV实战]16 使用OpenCV实现多目标跟踪_You and Me-CSDN博客
实际运行效果总结:
跟踪工业元器件,过程中用手进行遮挡实验
BOOSTING : 慢 精度差(跟丢目标或跟到别的目标上)
MIL :慢 精度差(跟丢目标或跟到别的目标上)效果和BOOSTING差不多
TLD:非常非常慢 会跟到其他相似物体上 前三个方法约等于没法用
MEDIANFLOW: 速度还可以 但是会出现目标框偏移,而且无法对抗遮挡(目标框跟着手跑了)
CSRT: 从帧中取一部分来进行跟踪的算法,速度很快,但无法对抗遮挡
MOSSE:基于小跟踪窗口的跟踪算法,速度较慢,精度更高,但无法对抗遮挡
KCF: 鉴别类算法,速度快,可对抗遮挡(唯一的目标框不会跟着手跑的算法!),综合来说最好
Multitracker:多目标检测,效果和上述算法一致,只是跑起来会很慢,无法满足实时性
总结
对于工业元器件检测,想在工人维修时能随时跟踪不合格元器件的场景,只有KCF、MOSSE、CSRT算法可以在实时性和精度上满足要求,但是MOSSE、CSRT对于遮挡没有抗性,KCF算法看起来是唯一也许可行的方案。多目标检测速度太慢,没法满足实时性要求。
同时,没法解决元器件修复后,检测框就消失的需求。
只在最开始进行一次基于传统模板匹配的目标检测,之后进行目标跟踪的方法,确实在精度上没法保证,且后续有需求变化时,无法拓展功能。