Вопрос по – opencv как отслеживать объекты после оптического потока?

1

После выполнения оптического потока (lk) на видео, каков наилучший способ найти объекты на основе этих данных и отследить их?

Это, вероятно, звучит очень нудно, но я хотел бы иметь возможность определить четкие контуры вокруг объектов, поэтому, если это бутылка странной формы или что-то еще, чтобы можно было обнаружить края.

Ваш Ответ

2   ответа
11

что LK является лучшим алгоритмом, поскольку он вычисляет движение разреженного набора угловых точек, и отслеживание ведет себя обычно лучше из-за плотного оптического потока (такого как Farneback или Horn Schunck). После вычисления потока, в качестве первого шага, вы можете установить порог по его норме (чтобы сохранить движущиеся части) и попытаться извлечь связанные области из этого результата. Но имейте в виду, что ваши задачи не будут легкими, если у вас нет модели объекта, который вы хотите отслеживать.

С другой стороны, если вас в первую очередь интересует отслеживание, и немного интерактивности приемлемо, вы можете взглянуть на пример кода распредвала, чтобы увидеть, как выбрать и отследить область изображения на основе его внешнего вида.

--- EDIT ---

Если ваша камера статическая, вместо этого используйте вычитание фона. Используя бета-версию OpenCV 2.4, вы должны искать класс BackgroundSubtractor и его подклассы в документации видеомодуля.

Также обратите внимание, что оптический поток может быть в реальном времени (или не очень далеко) с хорошим выбором параметров, а также с реализацией графического процессора. В Windows вы можете использовать flowlib изТУ Грац / Gpu4Vision group, OpenCV также имеет некоторый плотный оптический поток графического процессора, например, класс gpu :: BroxOpticalFlow.

--- EDIT 2 ---

Объединение однопиксельных обнаружений в большие объекты - это задача, которая называетсямаркировка подключенных компонентов, Для этого есть быстрый алгоритм, реализованный в OpenCV. Так что это дает вам конвейер, который:

motion detection (pix level) ---> connected comp. labeling ---> object tracking (adding motion information, possible trajectories for Kalman filtering...).

Но на этом мы должны остановиться, потому что скоро мы выйдем далеко за рамки вашего первоначального вопроса ;-)

Error: User Rate Limit Exceeded MB.
Error: User Rate Limit Exceeded MB.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded MB.
Error: User Rate Limit Exceeded MB.
0

Вы можете использовать TLD или CLM для отслеживания объектов (оно свободно основано на идее одновременного отслеживания оптического потока и обучения модели). Вы можете найти следующие ссылки полезными https://www.gnebehay.com/tld/ https://www.gnebehay.com/cmt/

Похожие вопросы