文章目录
本报告这里只探讨基于深度学习的跟踪算法,相关滤波的跟踪算法不予考虑,目标追踪算法主要有两个分支,一个分支是基于深度学习的方案,一个分支是基于相关滤波的方案。由于基于深度学习的方案实时性以及准确率目前都要高一些,所以后文中主要讨论基于深度学习的方案。
多目标跟踪
基于检测的MOT
经典算法 DeepSort
基本流程
(1)给定视频的原始帧;(2)运行对象检测器以获得对象的边界框;(3)对于每个检测到的物体,计算出不同的特征,通常是视觉和运动特征;(4)之后,相似度计算步骤计算两个对象属于同一目标的概率;(5)最后,关联步骤为每个对象分配数字ID。
因此绝大多数MOT算法无外乎就这四个步骤:①检测 ②特征提取、运动预测 ③相似度计算 ④数据关联。**其中影响最大的部分在于检测,检测结果的好坏对于最后指标的影响是最大的。**但是,多目标追踪的研究重点又在相似度计算和数据关联这一块。
经典算法
1.DeepSort
论文链接
Pytorch实现
检测框来自于各种常见的OD算法比如YOLO3,作为卡尔曼滤波器的测量值,卡尔曼滤波器作为运动模型来描述帧与帧目标运动状态之间的关系,更新模块则是包括匹配,跟踪器更新和特征集更新,这部分根本方法还是使用IOU来进行匈牙利算法匹配,但修改了数据顺序,优先匹配与当前帧更接近的轨迹,防止检测结果与遮挡时间更长的轨迹相关联,这种做法的缺点是:可能导致一些新的轨迹被连接到一些旧的轨迹上。
创新点:1.基于匈牙利算法里的代价矩阵。它在IOU Match之前做了一次额外的级联匹配,利用了外观特征和马氏距离。2.用深度学习求得外观特征,外观特征就是通过一个Re-ID的网络提取的,而提取这个特征的过程和NLP里词向量的嵌入过程(embedding)很像。然后是因为欧氏距离忽略空间域分布的计算结果,所以增加里马氏距离作为运动信息的约束。
缺陷
1.因为相机抖动明显,卡尔曼预测所基于的匀速运动模型并不work,所以马氏距离其实并没有什么作用。
2.跟踪的两个目标,其中一个将另一个遮挡了连续多帧后,被遮挡目标的ID会被改变。
3.没有考虑用跟踪来弥补漏检问题
最大优点
1.检测速度快
改进
1.用更好的运动模型,比如不匀速的卡尔曼滤波?
2.对于轨迹段来说,时间越长的轨迹可能不应该得到更多信任,引入轨迹评分机制,《Real-Time Multiple People Tracking with Deeply Learned Candidate Selection And Person Re-ID》的创新点基于这个评分就可以把轨迹产生的预测框和检测框放一起做一个NMS,相当于是用预测弥补了漏检。
未来展望
感觉工业上的应用就是ReID+Kalma的思路去做
不基于检测的MOT
与基于检测的追踪相比建模复杂,很难实时运行,比如蒙特卡洛,光流,多假设追踪等
单目标跟踪
与MOT不同,SOT的研究内容是第一帧给一个bbox,然后进行跟踪,相比MOT,SOT的目标类别不做限定,难以区分相似的类内对象,另一个不同点是SOT的研究趋势逐步从基于Detection的跟踪的思维中摆脱,采用多分支多通道你和目标的位置、姿态等信息。
经典算法
Siam系列
孪生网络是使用深度学习进行目标追踪的重要解决方案,孪生网络家族的最新论文