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