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

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

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

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

Попробуйте!

Начать

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

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

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

Функции

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

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

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

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

ИЗОБРАЖЕНИЕ: Режим для ввода одного изображения.

ВИДЕО: Режим декодированных кадров видео.

LIVE_STREAM: режим прямой трансляции входных данных, например с камеры. В этом режиме необходимо вызвать resultListener, чтобы настроить прослушиватель на асинхронное получение результатов.
{ 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 . Может использоваться только в том случае, если для режима работы установлено значение LIVE_STREAM Н/Д Н/Д

Модели

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

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

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

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

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

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

0 - background
1 - hair
Название модели Введите форму Тип квантования Модель карты Версии
Сегментатор волос 512 х 512 Нет (с плавающей запятой32) информация Последний

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

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

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

Модель DeepLab-v3

Эта модель идентифицирует сегменты для ряда категорий, включая фон, человека, кошку, собаку и растение в горшке. Модель использует сложное объединение пространственных пирамид для сбора информации с большего расстояния. Для получения дополнительной информации см. DeepLab-v3 .

Название модели Введите форму Тип квантования Версии
ДипЛаб-В3 257 х 257 Нет (с плавающей запятой32) Последний

Тесты задач

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

Название модели Задержка процессора Задержка графического процессора
СелфиСегментер (квадратный) 33,46 мс 35,15 мс
СелфиСегментер (пейзаж) 34,19 мс 33,55 мс
Сегментатор волос 57,90 мс 52,14 мс
СелфиМультикласс (256 x 256) 217,76 мс 71,24 мс
ДипЛаб-В3 123,93 мс 103,30 мс