OpenCV: как определить, есть ли в видео быстро движущийся объект?
Как лучше всего обнаружить быстро движущийся объект с помощью OpenCV?
Скажем, у меня есть 5 случайных видеофайлов:
1) видеозапись толпы, идущих людей, статическая камера.
2) видео кота, играющего с мячом, дрожащая камера iPhone.
3) видеозапись интервьюируемого лица. Статическая камера.
4) анимация (3D) быстро движущегося автомобиля, фон размыт и т. д. и т.д.
5) размытое видео, снятое камерой iPhone (просто камера помахала вокруг, ничего не видно).
Поэтому я хотел бы чтобы изолировать video5 и обнаружить, что в video4 и video2 есть много движения.
Как лучше всего это сделать? Я думаю использовать OpenCV2, но если есть лучшее решение для этого, я был бы рад узнать об этом.
Любой вход очень ценится. Псевдокод или просто рекомендации конкретных алгоритмов.
Спасибо
2 ответов:
Оптический поток это будет один из многих способов обнаружения движения.
Я не знаю, если вы все еще на нем, но я нашел это интересным, чтобы ответить.
Подход 1- Как предлагает user349026, один из самых интуитивных способов-работать с оптическим потоком, он даст вам доминирующее движение, но оптический поток всегда приходит с шумами. Вам придется использовать некоторый фильтр перед использованием оптического потока.
Подход - 2 Это трудно, но дает хорошие результаты. Это из статьи CVPR-2013 ссылка- http://www.irisa.fr/texmex/people/jain/w-Flow/motion_cvpr13.pdf Я думаю, что простое введение этой статьи решит вашу проблему.
Comments