2015-02-04 2 views
1

У меня есть куча видеороликов с веб-камеры (продолжительность 5, 10, 60 секунд), и я ищу способ обнаружить «имеет ли этот видеоклип движение», решить, должен ли файл быть сохранен или отброшен на будущей фазе обработки.Обнаружить, если в видеофайле есть движение

Я просмотрел motion и OpenCV, но движение, похоже, только хочет работать с необработанным видеопотоком, а OpenCV кажется слишком продвинутым для моего использования.

Мое идеальное решение - это инструмент командной строки linux, в который я могу подать видеофайлы, и получить простой ответ «does/does not have motion», поэтому я могу отбросить ненужные файлы. Ложные срабатывания (в разумном количестве) вполне приемлемы для моего использования.

Существует ли такой инструмент? Или любые простые примеры этого с другими инструментами?

+0

что-то вроде этого? http://www.unixmen.com/how-to-turn-your-webcam-into-a-motion-detecting-security-spy-camera-in-linux/ – Kornel

+1

, пожалуйста, определите, что означает, что видео «содержит движение « – Micka

+0

@ Мика - в основном,« любое «значительное» изменение в пикселях между n кадрами ». Поскольку веб-камера находится в помещении, обычно нет никакого движения, поэтому инструмент не должен быть очень умным в отбрасывании ветра/и т. Д. » –

ответ

1

Если вы хотите обработать уже захваченное видео, то motion может быть полезна.

VLC позволяет передавать или конвертировать медиаданные для использования локально, в вашей частной сети или в Интернете. Таким образом, уже захваченное видео может транслироваться через HTTP, RTSP и т. Д., А motion может обрабатывать его как network camera.

Кроме того: How to Stream using VLC Media Player

1

Если OpenCV является передовым для вас, может быть, вы должны рассмотреть что-то более легкое, которое ... SimpleCV (обертка для OpenCV) «Это компьютерное зрение легко». Существует даже пример обнаружения движения с помощью SimpleCV - https://github.com/sightmachine/simplecv-examples/blob/master/code/motion-detection.py К сожалению, я не могу его протестировать (потому что моя версия OpenCv не совместима с SimpleCV), но в целом это выглядит отлично (и не сложно) - это просто вытесняет предыдущий кадр от текущего и вычислить среднее значение результата. Если это значение больше определенного порога (что, скорее всего, вам придется корректировать), мы можем предположить, что между этими двумя кадрами было некоторое движение. Обратите внимание, что порог установки 0 - действительно плохая идея, потому что всегда есть разница между 2 кадрами consecuitve (изменения освещения, шумы и т. Д.).