OpenCV: как определить, есть ли в видео быстро движущийся объект?



Как лучше всего обнаружить быстро движущийся объект с помощью OpenCV?



Скажем, у меня есть 5 случайных видеофайлов:



1) видеозапись толпы, идущих людей, статическая камера.
2) видео кота, играющего с мячом, дрожащая камера iPhone.
3) видеозапись интервьюируемого лица. Статическая камера.
4) анимация (3D) быстро движущегося автомобиля, фон размыт и т. д. и т.д.
5) размытое видео, снятое камерой iPhone (просто камера помахала вокруг, ничего не видно).

Поэтому я хотел бы чтобы изолировать video5 и обнаружить, что в video4 и video2 есть много движения.



Как лучше всего это сделать? Я думаю использовать OpenCV2, но если есть лучшее решение для этого, я был бы рад узнать об этом.



Любой вход очень ценится. Псевдокод или просто рекомендации конкретных алгоритмов.



Спасибо

713   2  

2 ответов:

Оптический поток это будет один из многих способов обнаружения движения.

Я не знаю, если вы все еще на нем, но я нашел это интересным, чтобы ответить.

Подход 1- Как предлагает user349026, один из самых интуитивных способов-работать с оптическим потоком, он даст вам доминирующее движение, но оптический поток всегда приходит с шумами. Вам придется использовать некоторый фильтр перед использованием оптического потока.

Подход - 2 Это трудно, но дает хорошие результаты. Это из статьи CVPR-2013 ссылка- http://www.irisa.fr/texmex/people/jain/w-Flow/motion_cvpr13.pdf Я думаю, что простое введение этой статьи решит вашу проблему.

Comments

    Ничего не найдено.