ByteTrack算法流程的简单示例

发布时间:2024年01月03日

ByteTrack

ByteTrack算法是将t帧检测出来的检测框集合 D {\mathcal{D}} D 和t-1帧预测轨迹集合 T ~ t ? 1 {\tilde{T}_{t-1}} T~t?1? 进行匹配关联得到t帧的轨迹集合 T t {T_{t}} Tt?
在这里插入图片描述

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

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

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

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

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

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

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

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

文章来源:https://blog.csdn.net/maniac_ran/article/details/135361662
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。