目标跟踪(object tracking)就是在连续的视频序列中,建立所要跟踪物体的位置关系,得到物体完整的运动轨迹。
目标跟踪分为单目标跟踪和多目标跟踪。本文如无特别指出,均指单目标跟踪。
通常的做法是:
1.在第1帧给一个bbox框住需要跟踪的物体。
2.在不借助重检测(re-detection)的情况下,尽可能长时间的跟住物体。
3.不能使用依赖外部特征的姿态估计(pose estimation)。
当然这是针对目标跟踪算法的要求,至于实际产品中,对象的重检测以及依赖外部特征的姿态估计都是必不可少的。
比如,自动驾驶领域的车辆跟踪,一般都会针对车辆的运动特点建立模型,以辅助目标跟踪。
点跟踪:在连续帧中检测到的目标被表达为点。这种方法需要引入其它方法来进行目标检测。
核跟踪:关联与目标的形状和外观表达。核函数可以是关联与一个直方图的矩形或椭圆模板。目标通过在连续帧中计算核的运动来跟踪。运动可以是参数形式的平移、旋转或仿射等。
轮廓跟踪:由在每帧中估计目标区域进行跟踪。轮廓跟踪方法用到的信息可以是外观密度和形状模型。给定目标模型,轮廓由形状匹配或轮廓推导得到。这些方法都可以视作时域上的目标分割。
按照是否依赖先验知识可分为两类
1.不依赖于先验知识,直接从图像序列中检测到运动目标,并进行目标识别,最终跟踪感兴趣的运动目标;
2.依赖于目标的先验知识,首先为运动目标建模,然后在图像序列中实时找到相匹配的运动目标。
按照摄像机是否固定,可分为:
1.静态背景。
2.运动场。摄像机的运动形式可以分为两种:a)摄像机的支架固定,但摄像机可以偏转、俯仰以及缩放; b)将摄像机装在某个移动的载体上。
经典的目标跟踪算法主要有:meanshift、camshift、Kalman filter、particle filter、Optical flow、TLD、KCF、Struck等。
参考:
https://blog.csdn.net/app_12062011/article/details/48436959
目标跟踪算法的分类(一)
https://blog.csdn.net/app_12062011/article/details/51760256
目标跟踪算法的分类(二)
https://blog.csdn.net/app_12062011/article/details/52277537
目标跟踪算法的分类(三)
参考
https://antkillerfarm.github.io/graphics/2018/07/29/graphics_8.html
meanshif 介绍
https://www.zhihu.com/question/26493945
计算机视觉中,目前有哪些经典的目标跟踪算法?
https://mp.weixin.qq.com/s/Wz-loMz1oOlxtm10gazQRg
目标检测(Object Detection)和目标跟踪(Object Tracking)的区别