gpt4 book ai didi

python - 卡尔曼滤波器如何在 Opencv python 中跟踪多个对象?

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:16 26 4
gpt4 key购买 nike

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

我用 cv2.findContours() 找到了等高线,它给了我 blob 作为 numpy 矩阵的列表。我想使用卡尔曼滤波器来跟踪这些 Blob ,因为它非常擅长在存在噪声的情况下预测 Blob 的位置。然而,在我看来,鉴于 KF 的性质,寻找轮廓是一个不必要的步骤,特别是因为轮廓函数返回了很多高度可疑的 Blob 。

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

我的问题是,如果 KF 事先不知道 Blob 是什么或 Blob 在哪里(这就是我得到轮廓的原因,但这个结果有点可怕),它如何处理多目标跟踪。而且,一旦 KF 开始跟踪对象,它如何存储 blob 以便轻松标记?

最佳答案

卡尔曼滤波器本身不包含多个对象跟踪机制。为此,您需要一个额外的算法:例如,如果您有未知/可变数量的对象,则需要 Reid 1979 中的多重假设跟踪 (MHT),如果您有已知数量的对象,则需要联合概率数据关联。

请注意,为了实际实现 MHT,您需要在 Cox 和 Hingorani 1996 年的“Reid 多重假设跟踪的有效实现...”中引入其他改进

关于python - 卡尔曼滤波器如何在 Opencv python 中跟踪多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12879346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com