ByteTrack算法流程的简单示例

ByteTrack

ByteTrack算法是将t帧检测出来的检测框集合 D t {\mathcal{D}_{t}} Dt 和t-1帧预测轨迹集合 T ~ t − 1 {\tilde{T}_{t-1}} T~t1 进行匹配关联得到t帧的轨迹集合 T t {T_{t}} Tt
ByteTrack算法流程的简单示例_第1张图片

首先使用检测器检测t帧的图像得到检测框集合 D t {\mathcal{D}_{t}} Dt,再根据置信度阈值将检测框集合划分为高置信度检测框集合 D t h {\mathcal{D}^{h}_{t}} Dth 和低置信度检测框集合 D t l {\mathcal{D}^{l}_{t}} Dtl

然后ByteTrack使用卡尔曼滤波,根据t-1帧的轨迹集合 T t − 1 {T_{t-1}} Tt1 预测轨迹在t帧的位置;得到t帧的预测轨迹集合 T ~ t − 1 {\tilde{T}_{t-1}} T~t1

ByteTrack第一阶段,先将高置信度检测框和预测轨迹相匹配;匹配结果有三种情况:

  • 高置信度检测框和预测轨迹匹配成功,则更新到t帧的轨迹集合中。
  • 高置信度检测框没能和预测轨迹匹配,也更新到t帧的轨迹集合中。
  • 预测轨迹没有高置信度检测框与它匹配,则放入到未匹配的预测轨迹 T ~ t − 1 u \tilde{T}^{u}_{t-1} T~t1u

ByteTrack第二阶段,先将未匹配的预测轨迹集合 T ~ t − 1 u \tilde{T}^{u}_{t-1} T~t1u划分为活跃轨迹 T ~ t − 1 u , a \tilde{T}^{u,a}_{t-1} T~t1u,a和非活跃轨迹 T ~ t − 1 u , i \tilde{T}^{u,i}_{t-1} T~t1u,i;非活跃的预测轨迹直接放入到t帧的轨迹集合中,活跃的预测轨迹用于和低置信度检测框进行匹配关联。同样,匹配结果有三种情况:

  • 低置信度检测框和预测轨迹匹配成功,则更新到t帧的轨迹集合中。
  • 低置信度检测框没能和预测轨迹匹配,则删除。
  • 预测轨迹没能和低置信度检测框匹配,也跟新到t帧的轨迹集合中。

到此,t帧的处理结束,视频后续也是如此流程。

活跃轨迹:前一帧中匹配得到检测框;非活跃轨迹:前一帧中没有匹配得到检测框。

你可能感兴趣的:(算法)