DevGang
Авторизоваться

Практическое руководство по обнаружению объектов в видео за 5 шагов 

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

Таким образом, всегда есть поиск простого и быстрого метода обнаружения объекта. В этой статье мы покажем, как обнаружить объекты, видимые в видео, всего за 5 шагов. В этой задаче мы будем использовать библиотеку pixellib, которая обнаруживает объекты с помощью сегментации экземпляра. Мы также будем использовать предварительно обученную модель Mask R-CNN для идентификации объектов, видимых на видео. В этой реализации мы будем обнаруживать объекты транспортных средств в дорожном видео.

Сегментация экземпляра

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

Mask R-CNN

Mask R-CNN - это вариант Deep Neural Network, предложенный Kaiming He и др. В Facebook AI Research. Эта модель используется для решения проблемы сегментации экземпляра объекта в компьютерном зрении. Он обнаруживает объекты на изображении, одновременно генерируя высококачественную маску сегментации для каждого экземпляра. Это расширение Faster R-CNN путем добавления ветви для предсказания маски объекта параллельно существующей ветви для распознавания ограничивающего прямоугольника. Структура mask R-CNN для сегментации экземпляра приведена ниже.

Реализация

Теперь мы обсудим шаги, с помощью которых мы будем обнаруживать объекты в видео.

1. Установите библиотеку и зависимости

На первом этапе нам нужно установить библиотеку pixellib и ее зависимости

pip install pixellib

2. Загрузите предварительно обученные веса Mask-RCNN.

Поскольку мы будем использовать модель Mask R-CNN для обнаружения объектов, мы будем загружать предварительно обученные веса.

wget --quiet https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5

3. Импорт библиотек

Теперь мы импортируем установленную библиотеку pixellib. Мы также импортируем класс instance_segmentation, потому что мы собираемся обнаружить объекты, используя метод сегментации экземпляра.

import pixellib
from pixellib.instance import instance_segmentation

4. Создание экземпляра модели сегментации и загрузка весов Mask-RCNN.

На этом шаге мы создадим экземпляр класса сегментации экземпляра, предоставляемого pixellib, и загрузим модель Mask R-CNN с предварительно подготовленными весами.

segment_video = instance_segmentation()
segment_video.load_model("mask_rcnn_coco.h5")

5. Обнаружить объекты

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

В этом методе мы устанавливаем количество кадров в секунду, то есть количество кадров в секунду, которое будет иметь выходное видео. 

segment_video.process_video("traffic_vid2.mp4", show_bboxes = True, frames_per_second= 15, output_video_name="object_detect.mp4")

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

Вы можете определить функцию для получения видео с YouTube и передачи их непосредственно вышеупомянутой функции. Таким образом, используя описанные выше шаги, мы могли бы обсудить очень простой способ реализации задачи обнаружения объектов в видео. Человек с очень маленьким знанием глубокого обучения и компьютерного зрения может обнаружить объекты с помощью этого способа.

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

В этом месте могла бы быть ваша реклама

Разместить рекламу