什么是 DeepSORT 以及如何使用 DeepSORT 实现 YOLOv7 对象跟踪

什么是对象跟踪?

对象跟踪是一种利用空间和时间特征在整个帧中跟踪检测到的对象的方法。

我们在跟踪中所做的是,我们得到初始的检测集,在下一步中,我们为它们分配唯一的 ID,然后在视频源的整个帧中跟踪它们,同时保持分配的 ID。

因此,我们可以将跟踪视为一个两步过程

  1. 第一步,我们使用任何类型的物体检测器对物体进行检测和定位,可以是 YOLOv7、YOLOR 或任何其他检测器。
  2. 第二步,我们使用运动预测器,根据物体过去的信息预测其未来的运动。

为什么我们需要一个物体追踪器?为什么我们不能只使用一个物体探测器?

当我开始阅读关于物体追踪的文章时,我在想,为什么我们需要一个物体追踪器?为什么不能只用物体检测器?让我们用一个例子来讨论这个问题。

例如,在视频流中,我们检测汽车,每当汽车被遮挡或被其他物体(例如卡车)重叠时,检测器就会失效。但如果我们有一个跟踪器,我们就能预测未来的运动,并通过为汽车分配一个唯一的 ID 来跟踪它。

在对象跟踪中,我们为每个想要跟踪的对象分配一个唯一的 ID,并维护该 ID 直到对象进入框架。

跟踪器类型:单个和多个对象跟踪器:

单目标追踪器:

在单目标跟踪器中,无论帧中有多少个目标,我们只跟踪一个目标。单目标跟踪器通常速度非常快。一些单目标跟踪器包括 CSRT、KCF 等等,它们都是基于计算机视觉构建的。

多目标追踪器:

在多目标跟踪器中,我们可以同时跟踪同一帧中存在的多个目标,即使它们属于不同的类别,也能保持较高的速度。事实证明,多目标跟踪器更加准确。一些常用的多目标跟踪器包括 DeepSORT、JDE 和 CenterTrack。

什么是 DeepSORT?

DeepSORT 是一种计算机视觉跟踪算法,用于跟踪目标并为每个被跟踪目标分配一个唯一的 ID。DeepSORT 是 SORT 的扩展。DeepSORT 将深度学习引入 SORT 算法,通过添加外观描述符来减少身份切换,从而提高跟踪效率。

为了理解 DeepSORT,我们首先看看 SORT 算法是如何工作的

简单在线实时跟踪(SORT):

SORT 是一种对象跟踪方法,使用卡尔曼滤波器和匈牙利算法来跟踪对象。SORT 由以下四个部分组成:

检测:

第一步,使用 YOLOv5、YOLOv7、FrRCNN 检测所有需要跟踪的物体。然后将检测结果传递到下一步。

估计:

在此步骤中,将检测结果从当前帧传递到下一帧,使用高斯分布和恒定速度模型估计目标在下一帧中的位置。估计使用卡尔曼滤波器完成。

数据关联:

我们现在有了目标边界框和检测到的边界框。因此,计算成本矩阵,即每次检测与所有现有目标的预测边界框之间的交并比 (IOU)距离。

创建和删除轨道标识:

当对象进入或离开时,会相应地创建和销毁唯一的对象 ID

SORT 算法的作者提出了 DeepSORT 来解决 SORT 算法中的问题。

SORT 在跟踪精度和准确度方面表现非常出色。

SORT 算法中的问题:

  1. 遮挡跟踪不足/在出现遮挡和不同视点的情况下失败。
  2. 尽管卡尔曼滤波器很有效,但它返回的 ID 开关数量相对较多。

这些问题是由于所使用的关联度量造成的。

在 DeepSORT 中,引入了另一种基于物体外观的距离度量。外观特征向量(深度外观描述符)

DeepSORT 使用了一种更好的关联指标,它结合了运动和外观描述符。

DeepSORT 可以定义为一种跟踪算法,它不仅基于物体的速度和运动来跟踪物体,还基于物体的外观来跟踪物体。

使用 DeepSORT 对象跟踪实现 YOLOv7

代码笔记如下↓

在笔记本中,逐步展示了使用 DeepSORT 对象跟踪实现 YOLOv7 的过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值