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

Задача MediaPipe Image Embedder позволяет создавать числовое представление изображения, что полезно при выполнении различных задач изображения на основе машинного обучения. Эта функция часто используется для сравнения сходства двух изображений с использованием методов математического сравнения, таких как косинусное сходство. Эта задача оперирует данными изображения с моделью машинного обучения (ML) в виде статических данных или непрерывного потока и выводит числовое представление данных изображения в виде списка многомерных векторов признаков, также известных как векторы внедрения, в плавающем формате. -точечная или квантованная форма.

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

Начать

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

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

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

Функции

  • Обработка входного изображения . Обработка включает в себя поворот изображения, изменение размера, нормализацию и преобразование цветового пространства.
  • Область интереса — выполняет встраивание области изображения, а не всего изображения.
  • Встраивание вычисления сходства — встроенная служебная функция для вычисления косинусного сходства между двумя векторами признаков.
  • Квантование — поддерживает скалярное квантование векторов признаков.
Входные данные задачи Результаты задачи
Входные данные могут быть одним из следующих типов:
  • Неподвижные изображения
  • Декодированные видеокадры
  • Живое видео
Image Embedder выводит список вложений, состоящий из:
  • Встраивание: сам вектор признаков, либо в форме с плавающей запятой, либо в форме скалярного квантования.
  • Индекс головы: индекс головы, создавшей это встраивание.
  • Имя головы (необязательно): имя головы, создавшей это внедрение.

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

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

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

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

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

LIVE_STREAM: режим прямой трансляции входных данных, например, с камеры. В этом режиме необходимо вызвать resultListener, чтобы настроить прослушиватель на асинхронное получение результатов.
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
l2_normalize Нормализовать ли возвращенный вектор признаков по норме L2. Используйте эту опцию, только если модель еще не содержит встроенный L2_NORMALIZATION TFLite Op. В большинстве случаев это уже так, и нормализация L2, таким образом, достигается посредством вывода TFLite без необходимости использования этой опции. Boolean False
quantize Следует ли квантовать возвращенное внедрение в байты посредством скалярного квантования. Неявно предполагается, что вложения имеют единичную норму, и поэтому любое измерение гарантированно имеет значение в [-1.0, 1.0]. Если это не так, используйте опцию l2_normalize. Boolean False
result_callback Настраивает прослушиватель результатов на асинхронное получение результатов внедрения, когда Image Embedder находится в режиме прямого потока. Может использоваться только в том случае, если для режима работы установлено значение LIVE_STREAM Н/Д Не задано

Модели

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

Модель MobileNetV3

В этом семействе моделей используется архитектура MobileNet V3 , и оно было обучено с использованием данных ImageNet . Эта модель использует множитель 0,75 для глубины (количества объектов) в сверточных слоях для настройки компромисса между точностью и задержкой. Кроме того, MobileNet V3 поставляется в двух размерах: маленьком и большом, что позволяет адаптировать сеть к сценариям использования с низким или высоким уровнем ресурсов.

Название модели Форма ввода Тип квантования Версии
MobileNet-V3 (маленький) 224 х 224 Нет (с плавающей запятой32) Последний
MobileNet-V3 (большой) 224 х 224 Нет (с плавающей запятой32) Последний

Тесты задач

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

Название модели Задержка процессора Задержка графического процессора
MobileNet-V3 (маленький) 3,94 мс 7,83 мс
MobileNet-V3 (большой) 9,75 мс 9,08 мс