我如何实时跟踪自由下落的快速移动的小石头?



我正在寻找最快的实时对象跟踪器,用于跟踪垂直自由落体的快速移动的小石头,因为单帧中可以有多达50个对象,并且它们的形状非常相似。

我已经训练了一个YoloV5石头上的对象检测模型和推理速度做得相当不错(120 FPS),但当我将。pt权重文件传递给时,深度排序目标跟踪算法在正常速度的视频上测试一下,它根本没有跟踪到我的目标。然而,我试图将视频放慢到* 0.25的速度,并重新测试DeepSort,它工作了,但无法将石头联系起来并很好地区分它们(一个ID给予多个对象)。

注意:我使用的是DeepSort深度部分的行人预训练权值。

有解决方案吗?

1-使模型在正常视频上工作,而不必慢动作视频?

2-解决ID切换和ID重复的问题?

3-我应该在我的石头数据集上重新训练DeepSort的深度部分吗?或者我可以使用预先训练的重量?

任何形式的帮助都将是非常感激的:)

1-使模型在正常视频上工作而无需慢动作视频?

大多数Github repos实现深度排序执行离线跟踪。也就是说,当某一帧的对象检测+关联过程完成后,它会进行下一帧,以此类推,直到完成。所以视频的FPS不应该影响你的跟踪结果,因为视频中唯一通过减慢速度而改变的是每个视频帧的呈现时间戳(PTS)。

2-解决ID切换和ID重复的问题?

Github上的大多数DeepSort实现(https://github.com/nwojke/deep_sort, https://github.com/ZQPei/deep_sort_pytorch)没有按照文中的Eq(5)实现Lambda。这意味着在执行ID关联时不考虑对象的位置。在你的情况下,这是浪费信息,特别是因为石头正在下落,它们的运动很容易预测。

3-我应该在我的石头数据集上重新训练DeepSort的深度部分吗?或者我可以使用预先训练的重量?

从视觉上看,你的结石很可能看起来非常相似。这意味着在石头上训练自定义ReID模型对最终的跟踪结果影响很小。因此,在您的特定情况下,在执行ID关联时考虑石头的位置更重要,所以我们回到前面的一点。

这里是一个repo,实现了你需要的大部分(https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch)

在为YOLOv5模型供电之前,从计算机视觉基础开始。你听说过大气湍流模型吗?你可以在这里读到它,或者只是检查第5章(图像恢复和重建)的数字图像处理第三版由拉斐尔·冈萨雷斯。

也许这篇论文可以帮助你了解更多关于移动物体的知识:https://openaccess.thecvf.com/content/CVPR2021/html/Rozumnyi_DeFMO_Deblurring_and_Shape_Recovery_of_Fast_Moving_Objects_CVPR_2021_paper.html

祝你好运和享受!