目标追踪Deepsort

Catalogue
  1. 1. 目标追踪deepsort
    1. 1.1. 一.主要步骤
    2. 1.2. 二.sort流程
    3. 1.3. 三.Deepsort算法流程

目标追踪deepsort

一.主要步骤

1.获取原始视频帧

2.利用目标检测器对视频帧中的目标继续检测

3.提取检测到的目标的框中的特征,特征包括表观特征(进行特征对比)和运动特征(方便卡尔曼滤波)

4.计算前后两帧目标之间的匹配程度(用匈牙利算法和级联匹配),为每个追踪到的目标分配ID

二.sort流程

sort(Simple Online and Realtime Tracking)算法是deepsort的前身,其核心是卡尔曼滤波算法和匈牙利算法

卡尔曼滤波算法:用当前的一系列运动变量去预测下一时刻的运动变量,第一次检测的结果用来初始化运动变量

匈牙利算法:解决分配问题,把检测框和卡尔曼预测的框做分配,让卡尔曼预测的框找到和自己最匹配的检测框,达到追踪的效果

整个算法的工作流程:

1.将第一帧的detection(通过目标检测检测到的框)创建其对应的track(轨迹信息),将卡尔曼滤波的运动变量初始化,通过卡尔曼滤波预测其对应的框

2.将该帧的detection和上一帧通过track预测的框通过iou进行匹配,再通过iou匹配的结果计算其cost matrix(计算方式是1-iou)

3.将所有cost matrix 作为匈牙利算法的输入,得到线性的匹配的结果,结果有三种:unmatched track(track失效,直接删除),unmatched detections(detections失配,将这样的detections初始化为一个new track),matched track(追踪成功,将其对应的detection通过卡尔曼滤波更新其对应的tracks)

4.反复上述过程直至视频帧结束te

img

三.Deepsort算法流程

sort算法在物体发生遮挡的时候容易丢失自己的ID,deepsort算法在sort算法的基础上增加了matching cascade(级联匹配)和confirmed(新轨迹的确认),track分为confirmed(确定态)和unconfirmed(不确定态),新产生的tracks是不确定态,不确定态的tracks必须要和detections连续匹配一定的次数(默认三次)才可以转化为确定态,确定态的tracks必须和detections连续匹配一定的次数(默认30次)才会被删除

算法流程:

1.初始化运动变量并用卡尔曼滤波预测(track一定是unconfirmed)

2.匹配框并计算cost matrix

3.用匈牙利算法进行线性匹配,得到的结果有三种:unmatched tracks(是不确定态,直接删除),unmatched detections(初始化为一个new tracks),matched tracks

4.重复上述步骤,直至出现confirmed tracks或视频帧结束

5.通过卡尔曼滤波预测confirmed tracks 和confirmed tracks对应的框,将confirmed tracks的框和detections进行级联匹配(只要tracks匹配上都会保存detection的外观特征和运动信息,默认保存前100帧,用外观特征和运动信息与detetions进行级联匹配,因为confirmed tracks,detection匹配的可能性更大)

6.级联匹配的结果有三种:matched tracks,unmatched tracks,unmatched detection,将之前unconfirmed tracks,unmatched tracked和unmatched detections进行iou匹配,并计算cost matrix

7.将上一步得到的cost matrix带入匈牙利算法,将得到的结果进行与3相同的处理

8.重复5~7直到视频帧结束

img