Эффективное обнаружение движения с OpenCV с потоком, полученным от IP-камеры - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть два вопроса, на которые я пытался найти ответы в сети более недели.

Я пишу службу Windows на Visual C ++ 2017, которая подключается к IP-камерам Axis в нашей сети и выполняет запросыMJPEG потоки с использованием обычных сокетов.Он успешно анализирует потоки и декодирует изображения JPEG.Декодирование сделано с помощью OpenCV;frame = cv :: imdecode (data, IMREAD_GRAYSCALE)).

Q1.Хотя OpenCV использует библиотеку JPEG с производительностью, как заявляет: build-libjpeg-turbo (версия 1.5.3-62), производительность декодирования на удивление ниже, чем у .Net System.Drawing.Image.FromStream (мс).Есть ли у вас какие-либо рекомендации по быстрой декомпрессии JPEG?

Q2.Все, что мне нужно сделать с полученными JPEG, - это проверить «области интереса», если там есть движение.На самом деле это производственные линии на заводе.Завод работает 24 часа и шесть дней в неделю, поэтому условия освещения будут меняться.Иногда света не будет вообще, поэтому JPEG будет иметь много шума на них.Какие операции и алгоритмы OpenCV вы бы порекомендовали применить к кадрам, чтобы понять, есть ли движение в ROI?Конечно, вы можете использовать множество операций с вашими матрицами одну за другой, но мне нужен самый короткий и эффективный способ сохранить требования к ресурсам на низком уровне, поскольку он будет выполнять эту операцию для множества камер и рентабельности инвестиций одновременно.

Моя система с видеокартой NVIDIA (я могу использовать CUDA), Intel i7-7700, RAM 16 ГБ.

Спасибо!

1 Ответ

0 голосов
/ 04 декабря 2018

Это не совсем ответ на ваш вопрос, но он может даже быть более подходящим.

IP-камеры Axis уже давно имеют встроенный механизм обнаружения движения, который можно настроить как с помощью камеры.веб-интерфейс (в старых моделях камер / версиях встроенного ПО для этого может потребоваться использование Internet Explorer и использование встроенного элемента управления ActiveX) и через API-интерфейс камеры VAPIX Axis.

Тот же HTTP-API VAPIX также имеетКоманды для получения уровней движения и порога для каждой настроенной области движения / окна на камере.

Если у вас нет последней модели, поддерживающей VAPIX версии 3, вы все равно можете полагаться на VAPIX версии 2, вы можетепопробуйте выполнить запрос HTTP GET, например:

http: ///axis-cgi/motion/motiondata.cgi? group = 0,1

, чтобы получитьМногокомпонентный поток HTTP данных об уровне и пороге движения (т. Е. Для области движения 0 и 1).

Для получения более подробной информации вы можете скачать соответствующую документацию VAPIX PDF свеб-сайт Axis (может потребоваться учетная запись и логин).

...