BackgroundSubtractorGMG

BackgroundSubtractorGMG

在Opencv上,我读到BackgroundSubtractorGMG来自文章“在可变照明条件下对观众的视觉跟踪,以进行响应式音频艺术装置”,A。Godbehere,A。Matsukawa,K。Goldberg,美国控制 session ,蒙特利尔,2012年6月。

我读了一下,然后看了一下OpenCv的源代码。

我没有找到标题为“III。文章中的“多个访客跟踪”(卡尔曼过滤器)。
此外,在我看来,每个像素都进行了更新,即使是标记为前景的像素也有所更新(与文章中所述不同)。
如果是这样,则该实现将与OpenCv的其他方法一样,但是存储过去像素的方式略有不同。
我在哪里错了?

编辑
在我仔细阅读的原始文章中,有一张图表说明了该算法的工作原理。 (文章很清楚,我对OpenCv的实现有疑问)

图1。
图像&(前一图像+前景像素)=>分割部分=>多轨部分=>前景像素

原始算法与其他算法的不同之处仅在于嵌入式多轨跟踪部分。
如果您愿意,可以将其删除,但是它将不再有意义。
无论如何,要实现该部分(这确实非常困难)是不可能的,因为它们是集成的,因此也不能修改第一部分。

最佳答案

BackgroundSubtractorGMG不实现跟踪,它仅实现前景检测。因此,对象跟踪是在前景检测之上进行的单独操作。您可以在OpenCV中使用the Kalman filter class自己实现本文的跟踪部分。
前景分割和对象跟踪是本文提出的算法的两个不同步骤,前景分割只是图1所示算法图的一部分。摘自本文(重点是我的):

因此BackgroundSubtractorGMG是前景/背景分割算法,可返回一组检测到的访问者。它由统计背景图像估计,每像素贝叶斯分割组成。
本文的第三部分着重于对前景对象进行分割之后的跟踪。它使用一组Kalman滤波器和Gale-Shapley匹配对多目标跟踪问题进行了近似求解。

关于c++ - BackgroundSubtractorGMG没有卡尔曼滤波器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18854089/

10-12 06:04