OpenCV持久对象跟踪和滞后策略

时间:2011-10-06 23:06:20

标签: image-processing opencv

我正在为我的团队构建一个对象跟踪API。

我的代码将识别相机场景中的前景对象。随着时间的推移,它将在实现我的侦听器接口的实例上调用addObject(id, pos)updateObject(id, newPos)removeObject(id)的方法。这些是后帧处理事件 - 因此它们可能每秒发生30次。

如何确保对象不会闪烁?我需要给对象一个最小的生命周期。如果一个对象在一帧中消失并重新出现在下一帧中具有新ID的同一位置,那么这也是不希望的闪烁。


(我的想法到目前为止)我已经考虑过使用对象掩码累加器作为实例化的基础。我想象一个灰度图像,其中对象的候选区域将在每帧的累加器中加强,然后一旦对象区域超过阈值,它就被实例化并且我们调用addObject(id, pos)方法。现在,问题是,一个对象可以在累加器中的阈值处徘徊,并且仍然可以表现出flickery行为。那么,我将在对象区域实例化后立即向对象区域添加一些常量值,以便它在累加器中具有生命周期。当该区域超过累加器阈值时,将减去该常数。

1 个答案:

答案 0 :(得分:1)

我最终使用了我的问题中描述的解决方案,几乎没有任何进一步的调整。它对我正在做的事情很有效。但是,有必要保留先前累加器状态的副本,以确定像素值是否在阈值上升或下降。