Opencv中的卡尔曼滤波如何追踪多个目标?

2024-05-16 12:50:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我不了解使用python跟踪和标记几个移动对象的过程。我能够通过将每一帧转换为灰度,然后模糊,然后做BGS来隔离移动的物体(尽管二值图像仍然包含很多噪声)。在

我找到了带有cv2.findContours()的轮廓,这给了我一个小水滴作为numpy矩阵的列表。我想用Kalman滤波器来跟踪这些斑点,因为它在有噪声的情况下能很好地预测斑点的位置。然而,在我看来,考虑到KF的性质,找到轮廓是一个不必要的步骤,尤其是因为轮廓函数返回了许多高度可疑的斑点。在

我查看了kalman filter的代码,但我不知道如何告诉它跟踪blob,更不用说告诉过滤器blob在哪里(或者如何单独使用KF创建blob)。在

我的问题是,如果KF事先不知道斑点是什么或在哪里,它如何处理多目标跟踪(这就是为什么我得到了轮廓,但这个结果有点可怕)。而且,一旦KF开始跟踪对象,它如何存储这些blob,以便很容易地对其进行标记?在


Tags: 对象标记图像过程cv2噪声blob灰度
1条回答
网友
1楼 · 发布于 2024-05-16 12:50:01

卡尔曼滤波器本身不包含多个目标跟踪机制。为此,您需要一个额外的算法在上面:例如,多假设跟踪(MHT)在reid1979中,如果您有未知/变化的对象数量,或者联合概率数据关联,如果您知道对象的数量。在

注意,为了实际实现MHT,你需要在Cox和Hingorani 1996中引入的额外改进,“Reid的多假设跟踪的有效实现…”

相关问题 更多 >