Как использовать методы вычитания фона

OpenCV 3.4.19-dev

Компьютерное зрение с открытым исходным кодом

  • Учебники по OpenCV
  • Анализ видео (видеомодуль)

Следующий учебник: Meanshift и Camshift

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

  • Фоновое моделирование состоит из двух основных этапов:

    1. Фоновая инициализация;
    2. Фоновое обновление.

    На первом этапе вычисляется начальная модель фона, а на втором этапе эта модель обновляется, чтобы адаптироваться к возможным изменениям сцены.

  • В этом уроке мы узнаем, как выполнять BS с помощью OpenCV.

Цели

В этом руководстве вы узнаете, как:

  1. Читать данные из видео или последовательностей изображений с помощью cv::VideoCapture ;
  2. Создайте и обновите фоновую модель с помощью класса cv::BackgroundSubtractor;
  3. Получить и показать маску переднего плана с помощью cv::imshow ;

Код

Ниже вы можете найти исходный код. Мы позволим пользователю выбрать обработку либо видеофайла, либо последовательности изображений.

В этом примере мы будем использовать cv::BackgroundSubtractorMOG2 для создания маски переднего плана.

Результаты, а также введенные данные отображаются на экране.

Объяснение

Мы обсудим основные части кода выше:

  • Объект cv::BackgroundSubtractor будет использоваться для создания маски переднего плана.
    В этом примере используются параметры по умолчанию, но также можно объявить определенные параметры в функции создания.
  • Объект cv::VideoCapture используется для чтения входного видео или последовательности входных изображений.
  • Каждый кадр используется как для расчета маски переднего плана, так и для обновления фона. Если вы хотите изменить скорость обучения, используемую для обновления фоновой модели, можно установить конкретную скорость обучения, передав параметр методу apply .
  • Номер текущего кадра можно извлечь из объекта cv::VideoCapture и указать в верхнем левом углу текущего кадра. Белый прямоугольник используется для выделения номера кадра черного цвета.
  • Мы готовы показать текущий входной кадр и результаты.

Результаты

  • С видео vtest.avi , для следующего кадра:

    Вывод программы для метода MOG2 будет выглядеть следующим образом (серые области — обнаруженные тени):

    Вывод программы для метода KNN будет выглядеть следующим образом (серые области — обнаруженные тени):

Каталожные номера

  • Веб-сайт конкурса фоновых моделей (BMC)
  • Набор эталонных данных для извлечения переднего плана/фона [221]

4.

10. Отделение объекта от фона

4.10. Отделение объекта от фона

Рисунок 3.39. Объект с фоном


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

  • «Свободный выбор Инструмент» позволяет рисовать границу с помощью от руки или прямые линии. Используйте это, когда объект имеет относительно простая форма. Подробнее об этом инструменте читайте здесь: Раздел 2. 4, «Свободный выбор (лассо)»

    Рисунок 3.40. Свободный инструмент выбора


  • Интеллектуальный выбор ножниц инструмент» позволяет выбрать границу от руки и использует алгоритмы распознавания краев, чтобы лучше соответствовать границе вокруг объект. Используйте это, когда тема сложная, но достаточно отчетливая. на его нынешнем фоне. Подробнее об этом инструменте читайте здесь: Раздел 2.7, «Умные ножницы»

    Рисунок 3.41. Интеллектуальные ножницы Select Tool


  • «Выбор переднего плана Инструмент» позволяет помечать области как «Передний план» или «Фон» и уточняет выбор автоматически.

    Подробнее об этом инструменте читайте здесь: Раздел 2.8, «Выбор переднего плана»

    Рисунок 3.42. Инструмент выбора переднего плана


4.10.1. После того, как вы выбрали тему

После того, как вы успешно выбрали тему, используйте Выберите → Инвертировать. Сейчас, вместо предмета выбирается фон. Что ты сейчас делаешь зависит от того, что вы намеревались сделать с фоном:

  • Чтобы заполнить фон одним цветом:

    Щелкните образец цвета переднего плана (верхний левый из двух перекрывающиеся цветные прямоугольники) на панели инструментов и выберите желаемый цвет. Затем используйте Раздел 3.4, «Заполнение ведра». чтобы заменить фон выбранным цветом.

    Рисунок 3.