2011-10-06 40 views
1

我正在爲我的團隊構建一個對象跟蹤API。OpenCV持久對象跟蹤和滯後策略

我的代碼將識別相機場景中的前景物體。隨着時間的推移,它將在實現偵聽器接口的實例上調用方法addObject(id, pos)updateObject(id, newPos)removeObject(id)。這些是後期處理事件 - 所以它們可能每秒發生30次。

我該如何確保對象不閃爍和不閃爍?我需要給物體一個最小的壽命。如果一個物體在一幀內消失,並在下一個幀中出現在同一個點上,並出現新的ID,那也是不希望的閃爍。


(我到目前爲止的想法)我曾考慮過使用一個對象掩碼累加器作爲實例化的基礎。我想象一個灰度圖像,其中每個對象的候選區域將在累加器中被加強,然後只要對象區域超過閾值,它就會被實例化,我們稱之爲addObject(id, pos)方法。現在,這個問題是,一個對象可以懸停在累加器的閾值附近,並且仍然可以呈現閃爍的行爲。那麼,一旦它被實例化,我就會在對象區域添加一些常量值,以便它在累加器中有一個生命週期。當該區域跨越累加器閾值時,該常數將被減去。

回答

1

我最終使用了我的問題中描述的解決方案,幾乎沒有任何進一步的調整。它爲我所做的工作很好。儘管如此,仍然需要保留前一個累加器狀態的副本,以確定像素值是跨閾值上升還是下降。