Задача MediaPipe Image Segmenter позволяет разделить изображения на регионы на основе предопределенных категорий. Эту функцию можно использовать для идентификации конкретных объектов или текстур, а затем применять визуальные эффекты, например размытие фона. Эта задача включает в себя несколько моделей, специально обученных для сегментации людей и их особенностей в данных изображения, в том числе:
- Человек и происхождение
- Только волосы человека
- Волосы, лицо, кожа, одежда и аксессуары человека.
Эта задача работает с данными изображения с помощью модели машинного обучения (ML) с отдельными изображениями или непрерывным видеопотоком. Он выводит список сегментированных областей, представляющих объекты или области изображения, в зависимости от выбранной вами модели .
Начать
Начните использовать эту задачу, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства для конкретных платформ покажут вам базовую реализацию этой задачи, включая рекомендуемую модель и пример кода с рекомендуемыми параметрами конфигурации:
- Android – Пример кода – Руководство
- Python — Руководство по примеру кода
- Интернет — Пример кода — Руководство
Подробности задачи
В этом разделе описываются возможности, входные данные, выходные данные и параметры конфигурации этой задачи.
Функции
- Обработка входного изображения . Обработка включает поворот изображения, изменение размера, нормализацию и преобразование цветового пространства.
Входные данные задачи | Результаты задачи |
---|---|
Входные данные могут быть одним из следующих типов:
| Image Segmenter выводит сегментированные данные изображения, которые могут включать в себя одно или оба следующих параметра, в зависимости от установленных вами параметров конфигурации:
|
Варианты конфигурации
Эта задача имеет следующие параметры конфигурации:
Название опции | Описание | Диапазон значений | Значение по умолчанию |
---|---|---|---|
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 мс |