介绍
TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zdenek Kalal在其攻读博士学位期间提出的一种新的单目标长时间跟踪(long term tracking)算法。
TLD 框架
TLD是一个用于针对视频中未知物体长期跟踪的架构。简单来说,TLD算法由三部分组成:跟踪模块、检测模块、学习模块。(图1)
跟踪模块(Tracking):跟踪目标对象在帧与帧之间的动向。
检测模块(Detection):把每张图看成独立的,然后定位目标对象。
学习模块(Learning):利用根据跟踪模块的结果对检测模块的错误进行评估,生成训练样本来对检测模块的目标模型进行更新,避免以后出现类似错误。
图 1 TLD框架示意图
创新之处
- 将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。
- 应用一种改进的在线学习机制,不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、可靠。
TLD实现代码
1、原作者 Zdenek Kalal (Matlab + C 混合编程)
源代码页: https://github.com/zk00006/OpenTLD
2、arthurv版 (C++ 版)
源代码页:https://github.com/arthurv/OpenTLD
详细注释:https://blog.csdn.net/zouxy09/article/details/7893011
3、OpenCV tracking API (C++ 和 Python)
网址:https://www.learnopencv.com/object-tracking-using-opencv-cpp-python/
缺陷:目标物体的尺度(scale)和外观(appearance)变化对算法效果影响很大。
参考文献
[1] Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection[J]. IEEE transactions on pattern analysis and machine intelligence, 2011, 34(7): 1409-1422.