2012-09-20 71 views
7

如何告訴BackgroundSubtractorMOG2將哪些像素更新爲背景模型以及哪些像素不應該。BackgroundSubtractorMOG2的遮罩

當對象進入場景並停止幾十秒時,我面臨問題,對象將被吸收到背景模型中。

我想降低學習速度或停止關於特定停止對象的學習,但我該怎麼做? BackgroundSubtractorMOG2是否支持在其更新函數中使用掩碼?

我正在使用OpenCV 2.4.1。

謝謝, Alvin。

+0

好問題...我面對完全一樣的問題。 –

+0

對OpenCV背景減法算法的高級反饋沒有機制。我對某種通用更新功能的建議將包括更新掩碼。 – killogre

回答

3

BackgroundSubtractorMOG2不支持屏蔽輸入。但是,如果您知道要屏蔽哪些像素,則可以屏蔽輸出:假設您調用subtractor(input, fg, learningRate);,並且您知道對象現在在哪裏(可能是您一直使用均值漂移或模式識別來跟蹤它) fg |= mask;其中mask是其中,正如你從某個不同的來源所瞭解的那樣,對象是。

+0

這有助於跟蹤被吸收到背景中的前景。但這不是我正在尋找的答案,我想盡可能保持我的背景模型清潔。 –

+1

即使我的第一句話不是你尋求的答案嗎?如果你的物體是這樣的,它們進來並保持靜止,MOG2模型不足以追蹤它們。你最好將MOG2用於初始物體檢測和一些目標跟蹤算法,以便跟蹤它。或者我誤解你的問題? – artm

2

您可以通過設置學習率降至相當低的做到這一點

即:

mog(input, output, 0.00000001);