cv2 показывает видеопоток и добавляет оверлей после завершения другой функции - PullRequest
0 голосов
/ 01 ноября 2018

В настоящее время я работаю над проектом по распознаванию лиц в реальном времени.

Что я сделал, так это то, что я фиксирую кадр с помощью cv2, выполняю обнаружение и затем показываю результат с помощью cv2.imshow (), что приводит к низкой частоте кадров в секунду.

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

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

Любая помощь приветствуется!

Спасибо!

1 Ответ

0 голосов
/ 01 ноября 2018

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

Так, например, у вас есть алгоритм обнаружения лиц, обрабатывайте каждый 15-й кадр для обнаружения лиц, но в каждом кадре создавайте ограничивающую рамку из предсказаний. Даже если прогнозы обновляются каждые 15 кадров.

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

Надеюсь, это имело смысл.

...