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



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

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

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


(我到目前为止的想法)我考虑过使用对象掩码累加器作为实例化的基础。我想象一个灰度图像,其中对象的候选区域将在每帧的累加器中增强,然后一旦对象区域超过阈值,它就被实例化,我们调用addObject(id, pos)方法。现在,问题是,一个对象可以在累加器的阈值附近悬停,并且仍然可以显示闪烁的行为。然后,我将在对象区域实例化后立即添加一些常量值,以便它在累加器中有一个生命周期。当区域越过累加器阈值以下时,该常数将被减去。

我最终使用了问题中描述的解决方案,几乎没有任何进一步的调整。这对我的工作很有效。但是,有必要保留前一个累加器状态的副本,以确定像素值是在超过阈值时上升还是下降。

最新更新