OpenCV постоянное отслеживание объектов и стратегия гистерезиса - PullRequest
1 голос
/ 07 октября 2011

Я создаю API отслеживания объектов для своей команды.

Мой код распознает объекты переднего плана в сцене камеры.Со временем он вызовет методы для addObject(id, pos), updateObject(id, newPos) и removeObject(id) в экземплярах, которые реализуют мой интерфейс слушателя.Это события после фрейма, поэтому они могут происходить 30 раз в секунду.

Как я могу убедиться, что объекты не мерцают и не исчезают?Мне нужно дать объектам минимальное время жизни.Если объект исчезает в течение одного кадра и появляется в том же месте в следующем кадре с новым идентификатором, это также нежелательное мерцание.


(Мои мысли пока) Я думал об использовании объектаМаска-аккумулятор как основа для реализации.Я представляю себе изображение в градациях серого, где области-кандидаты для объектов будут усиливаться в аккумуляторе каждый кадр, а затем, как только область объекта превышает пороговое значение, оно создается, и мы вызываем метод addObject(id, pos).Теперь проблема в том, что объект может колебаться вокруг порога в аккумуляторе и все еще может проявлять мерцание.Итак, я бы добавил некоторое постоянное значение к объектной области, как только он будет создан, чтобы у него было время жизни в аккумуляторе.Эта константа будет вычтена, когда область пересекает порог аккумулятора.

1 Ответ

1 голос
/ 02 февраля 2012

В итоге я использовал решение, описанное в моем вопросе, почти без каких-либо дополнительных настроек.Это хорошо сработало для того, что я делал.Тем не менее, необходимо сохранить копию предыдущего состояния аккумулятора, чтобы определить, растут или падают значения пикселей через пороговое значение.

...