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

Задача MediaPipe Hand Landmarker позволяет обнаруживать ориентиры рук на изображении. Вы можете использовать эту задачу, чтобы найти ключевые точки рук и визуализировать на них визуальные эффекты. Эта задача оперирует данными изображения с моделью машинного обучения (ML) в виде статических данных или непрерывного потока и выводит ориентиры рук в координатах изображения, ориентиры рук в мировых координатах и ​​направление руки (левая/правая рука) нескольких обнаруженных рук.

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

Начать

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

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

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

Функции

  • Обработка входного изображения . Обработка включает в себя поворот изображения, изменение размера, нормализацию и преобразование цветового пространства.
  • Порог оценки — фильтрация результатов на основе оценок прогноза.
Входные данные задачи Результаты задачи
Hand Landmarker принимает ввод одного из следующих типов данных:
  • Неподвижные изображения
  • Декодированные видеокадры
  • Живое видео
Ручной ориентир выдает следующие результаты:
  • Ручность обнаруженных рук
  • Ориентиры обнаруженных рук в координатах изображения
  • Ориентиры обнаруженных рук в мировых координатах

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

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

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

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

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

LIVE_STREAM: режим прямой трансляции входных данных, например с камеры. В этом режиме необходимо вызвать resultListener, чтобы настроить прослушиватель на асинхронное получение результатов.
{ IMAGE, VIDEO, LIVE_STREAM } IMAGE
num_hands Максимальное количество рук, обнаруженных детектором ориентиров рук. Any integer > 0 1
min_hand_detection_confidence Минимальный показатель достоверности, позволяющий считать обнаружение рук успешным в модели обнаружения ладоней. 0.0 - 1.0 0.5
min_hand_presence_confidence Минимальная оценка достоверности для оценки присутствия руки в модели обнаружения ориентиров руки. В режиме видео и режиме прямой трансляции, если показатель достоверности присутствия руки из модели ориентира руки ниже этого порога, Hand Landmarker запускает модель обнаружения ладони. В противном случае упрощенный алгоритм отслеживания рук определяет местоположение руки (рук) для последующего обнаружения ориентиров. 0.0 - 1.0 0.5
min_tracking_confidence Минимальный показатель достоверности, позволяющий считать отслеживание рук успешным. Это порог IoU ограничивающей рамки между руками в текущем кадре и последнем кадре. В режиме видео и потоковом режиме Hand Landmarker, если отслеживание не удается, Hand Landmarker запускает обнаружение руки. В противном случае обнаружение руки будет пропущено. 0.0 - 1.0 0.5
result_callback Настраивает прослушиватель результатов на асинхронное получение результатов обнаружения, когда ручной ориентир находится в режиме прямой трансляции. Применимо только в том случае, если для режима работы установлено значение LIVE_STREAM Н/Д Н/Д

Модели

Hand Landmarker использует комплект моделей с двумя упакованными моделями: модель обнаружения ладоней и модель обнаружения ориентиров рук. Для выполнения этой задачи вам понадобится пакет моделей, содержащий обе эти модели.

Название модели Введите форму Тип квантования Модель карты Версии
HandLandmarker (полная версия) 192 х 192, 224 х 224 поплавок 16 Информация Последний

Пакет моделей ориентиров руки определяет локализацию ключевой точки 21 координаты сустава руки в обнаруженных областях руки. Модель была обучена примерно на 30 тысячах реальных изображений, а также на нескольких визуализированных синтетических моделях рук, наложенных на различный фон.

Пакет моделей ориентировочных ориентиров для рук содержит модель обнаружения ладоней и модель обнаружения ориентиров для рук. Модель обнаружения ладоней находит руки внутри входного изображения, а модель обнаружения ориентиров рук определяет конкретные ориентиры рук на обрезанном изображении руки, определенные моделью обнаружения ладоней.

Поскольку запуск модели обнаружения ладоней занимает много времени, в режиме видео или прямой трансляции Hand Landmarker использует ограничивающую рамку, определенную моделью ориентиров рук в одном кадре, для локализации области рук для последующих кадров. Hand Landmarker повторно запускает модель обнаружения ладоней только в том случае, если модель ориентиров рук больше не идентифицирует присутствие рук или не может отслеживать руки в кадре. Это уменьшает количество раз, когда Hand Landmarker активирует модель обнаружения ладоней.

Тесты задач

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

Название модели Задержка процессора Задержка графического процессора
HandLandmarker (полная версия) 17,12 мс 12,27 мс