【问题标题】:How do I train the DeepSORT tracker for custom class?如何为自定义类训练 DeepSORT 跟踪器?
【发布时间】:2021-05-11 10:03:04
【问题描述】:

我想使用深度学习和计算机视觉技术检测和计算葡萄园中的葡萄藤数量。我正在使用 YOLOv4 对象检测器并在 darknet 框架上进行训练。我已经能够将 SORT 跟踪器集成到我的应用程序中并且运行良好,但我仍然遇到以下问题:

  • 跟踪器有时会为对象重新分配一个新 ID
  • 检测器有时会错误识别对象(导致不正确的跟踪)
  • 跟踪器有时不会跟踪检测到的对象。

您可以在以下image 中查看重新分配问题的示例。如您所见,在第 40 帧中,id 9 是一根金属柱,从第 42 帧开始,它被分配给一棵树

在寻找这些问题的原因时,我了解到DeepSORT 是 SORT 的改进版本,旨在通过使用神经网络将轨迹与检测相关联来处理此问题。

问题:

我面临的问题是为 Deepsort 训练这个特定模型。我看到作者使用cosine metric learning 来训练他们的模型,但我无法为我的自定义类自定义学习。我的问题如下:

  1. 我有一个带注释的 (YOLO TXT 格式) 图像数据集,我用它来训练 YOLOv4 模型。我可以为 Deepsort 跟踪器重复使用相同的数据集吗?如果是,那怎么办?

  2. 如果我不能重用数据集,那么如何创建自己的数据集来训练模型?

提前感谢您的帮助!

【问题讨论】:

  • 嗨,我现在也有同样的问题。您找到任何有用的解决方案了吗?
  • 嗨@M.Akyuzlu,我发现khaylang 的答案对于理解如何传递数据非常有用,而且我还遵循了这个特定的教程:github.com/abhyantrika/nanonets_object_tracking
  • 谢谢@Sampreet Sarkar,我刚刚意识到我们不需要 YOLO TXT FORMAT 来进行余弦度量学习。我们只是实现图像我对吗?
  • 嘿@M.Akyuzlu,如果您查看他们使用的数据集(一些汽车数据集),您会发现他们只是将图像裁剪为仅包含图像中的汽车。因此,也许您可​​以使用带注释的基本事实来创建类似的裁剪数据集。

标签: python tensorflow computer-vision object-detection


【解决方案1】:

是的,您可以对 DeepSORT 使用相同的类。 SORT 分 2 个阶段工作,而 DeepSORT 增加了第 3 个阶段。第一阶段是检测,由 YOLOv3 处理,接下来是轨迹关联,由卡尔曼滤波器和 IOU 处理。 DeepSORT 实现了第三阶段,一个 Siamese 网络,用于比较当前检测之间的外观特征和每个轨道的特征。我见过使用 ResNet 作为特征嵌入网络的实现

基本上,一旦 YOLO 检测到您的类,您就会将检测到的裁剪图像传递给您的孪生网络,它会将其转换为特征嵌入,并使用余弦距离将这些特征与过去的特征进行比较。

总之,您可以对 DeepSORT 和 SORT 使用相同的 YOLO 类,因为它们都需要一个由 YOLO 处理的检测阶段。

【讨论】:

  • 嘿@khaylang,感谢您的回复。在这种情况下,我如何为图像提供检测?我的意思是,一旦我从 YOLO 获得对图像的检测,我是否将它们保存为文本文件并传递它们?在这种情况下,我该如何处理视频?能否提供一些示例代码?
猜你喜欢
  • 2022-10-19
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 2021-10-29
相关资源
最近更新 更多