Руководство по сегментации изображений

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

  • Человек и фон
  • Только волосы человека
  • Волосы человека, лицо, кожа, одежда и аксессуары

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

Попробуй это!

Начать

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

Подробности задачи

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

Функции

  • Обработка изображений - обработка включает в себя вращение изображения, изменение размера, нормализацию и преобразование цветового пространства.
Входные данные задачи Выходы задачи
Ввод может быть одним из следующих типов данных:
  • Неподвижные изображения
  • Декодированные видеокадры
  • Живое видео
Выходные данные сегментированного изображения сегментированных
  • CATEGORY_MASK : список, содержащий сегментированную маску в виде изображения формата Uint8. Каждое значение пикселя указывает, является ли это частью определенной категории сегмента, поддерживаемой моделью.
  • CONFIDENCE_MASK : список каналов, содержащих сегментированную маску со значениями пикселя в формате float32. Каждое значение пикселя указывает на уровень уверенности в том, что оно является частью конкретной категории, поддерживаемой моделью.

Варианты конфигурации

Эта задача имеет следующие параметры конфигурации:

Название опции Описание Диапазон значений Значение по умолчанию
running_mode Устанавливает режим выполнения для задачи. Есть три режима:

Изображение: режим для отдельных входов изображения.

Видео: режим декодированных кадров видео.

Live_stream: режим для прямой трансляции входных данных, например, от камеры. В этом режиме Restultistener должен быть вызван для настройки слушателя для получения результатов асинхронно.
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
output_category_mask Если установить на True , вывод включает в себя маску сегментации в качестве изображения UINT8, где каждое значение пикселя указывает значение категории выигрыша. { True, False } False
output_confidence_masks Если установлено значение True , выходные данные включают маску сегментации в виде изображения значения с плавающей запятой, где каждое значение с плавающей запятой представляет карту оценки достоверности категории. { True, False } True
display_names_locale Устанавливает язык меток для использования для отображения имен, представленных в метаданных модели задачи, если таковые имеются. По умолчанию en для английского. Вы можете добавить локализованные этикетки в метаданные пользовательской модели, используя API автора метаданных Tensorflow Lite Код региона ru
result_callback Устанавливает слушатель результатов для получения результатов сегментации асинхронно, когда сегмент изображения находится в режиме прямой трансляции. Можно использовать только тогда, когда режим работы установлен на LIVE_STREAM Н/Д Н/Д

Модели

Сегментер изображения можно использовать с более чем одной моделью ML. Большинство из следующих моделей сегментации созданы и обучены для выполнения сегментации с изображениями людей. Тем не менее, модель Deeplab-V3 построена как сегментер изображений общего назначения. Выберите модель, которая лучше всего подходит для вашего приложения.

Модель сегментации селфи

Эта модель может сегментировать портрет человека и может использоваться для замены или изменения фона на изображении. Модель выводит две категории: фон с индексом 0 и человек с индексом 1. Эта модель имеет версии с различными формами ввода, включая квадратную версию и альбомную версию, которая может быть более эффективной для приложений, где входные данные всегда имеют такую ​​форму, например, для видеозвонков. .

Название модели Введите форму Тип квантования Модель карты Версии
СелфиСегментер (квадратный) 256 х 256 поплавок 16 Информация Последний
Selfiesegmenter (ландшафт) 144 x 256 Поплавок 16 Информация Последний

Модель сегментации волос

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

0 - background
1 - hair
Название модели Входная форма Тип квантования Модель карта Версии
Hairsegmenter 512 x 512 Нет (float32) Информация Последний

Модель сегментации мультиклассов

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

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Название модели Входная форма Тип квантования Модель карта Версии
SelfieMulticlass (256 x 256) 256 x 256 Нет (float32) Информация Последний

Модель Deeplab-V3

Эта модель идентифицирует сегменты для ряда категорий, включая фон, человека, кошку, собаку и горшечное растение. Модель использует Atrous Spatial Pyramid Plase, чтобы захватить информацию о более длительном диапазоне. Для получения дополнительной информации см. Deeplab-V3 .

Название модели Входная форма Тип квантования Версии
Deeplab-V3 257 x 257 Нет (float32) Последний

Задача

Вот задача задачи для всего трубопровода на основе вышеуказанных предварительно обученных моделей. Результатом задержки является средняя задержка на Pixel 6 с использованием процессора / графического процессора.

Название модели Задержка процессора Задержка графического процессора
Selfiesegmenter (квадрат) 33,46 мс 35,15 мс
Selfiesegmenter (ландшафт) 34,19 мс 33,55 мс
Hairsegmenter 57,90 мс 52,14 мс
SelfieMulticlass (256 x 256) 217,76 мс 71,24 мс
Deeplab-V3 123,93 мс 103,30 мс