Оценка позы

Оценка позы — это задача использования модели ML для оценки позы человека по изображению или видео путем оценки пространственного расположения ключевых суставов тела (ключевых точек).

Начать

Если вы новичок в TensorFlow Lite и работаете с Android или iOS, изучите следующие примеры приложений, которые помогут вам начать работу.

Пример Android Пример iOS

Если вы знакомы с API-интерфейсами TensorFlow Lite , загрузите стартовую модель оценки позы MoveNet и вспомогательные файлы.

Скачать стартовую модель

Если вы хотите попробовать оценить позу в веб-браузере, ознакомьтесь с демонстрацией TensorFlow JS .

Описание модели

Как это работает

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

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

Мы предоставляем эталонную реализацию двух моделей оценки позы TensorFlow Lite:

  • MoveNet: современная модель оценки позы, доступная в двух вариантах: Lighting и Thunder. См. сравнение между этими двумя в разделе ниже.
  • PoseNet: модель оценки позы предыдущего поколения, выпущенная в 2017 году.

Различные суставы тела, обнаруженные моделью оценки позы, сведены в таблицу ниже:

Идентификатор Часть
0 нос
1 левый глаз
2 правый глаз
3 левое ухо
4 Правое ухо
5 левое плечо
6 правое плечо
7 левый локоть
8 правый локоть
9 левое запястье
10 правоЗапястье
11 левое бедро
12 правое бедро
13 левоеколено
14 правое колено
15 левая лодыжка
16 правая лодыжка

Пример вывода показан ниже:

Анимация, показывающая оценку позы

Тесты производительности

MoveNet доступен в двух вариантах:

  • MoveNet.Lightning меньше, быстрее, но менее точен, чем версия Thunder. Он может работать в режиме реального времени на современных смартфонах.
  • MoveNet.Thunder — более точная версия, но она крупнее и медленнее Lightning. Это полезно для случаев использования, требующих более высокой точности.

MoveNet превосходит PoseNet на различных наборах данных, особенно на изображениях с изображениями фитнес-действий. Поэтому мы рекомендуем использовать MoveNet вместо PoseNet.

Показатели производительности генерируются с помощью инструмента, описанного здесь . Показатели точности (mAP) измеряются на подмножестве набора данных COCO , в котором мы фильтруем и обрезаем каждое изображение, чтобы оно содержало только одного человека.

Модель Размер (МБ) карта Задержка (мс)
Pixel 5 — процессор 4 потока Пиксель 5 — графический процессор Raspberry Pi 4 — процессор 4 потока
MoveNet.Thunder (квантованный FP16) 12,6 МБ 72,0 155 мс 45 мс 594 мс
MoveNet.Thunder (квантованный INT8) 7,1 МБ 68,9 100 мс 52 мс 251 мс
MoveNet.Lightning (квантованный FP16) 4,8 МБ 63,0 60 мс 25 мс 186 мс
MoveNet.Lightning (квантованный INT8) 2,9 МБ 57,4 52 мс 28 мс 95 мс
PoseNet (магистральная сеть MobileNetV1, FP32) 13,3 МБ 45,6 80 мс 40 мс 338 мс

Дальнейшее чтение и ресурсы

  • Прочтите эту публикацию в блоге , чтобы узнать больше об оценке позы с помощью MoveNet и TensorFlow Lite.
  • Прочтите эту публикацию в блоге , чтобы узнать больше об оценке позы в Интернете.
  • Ознакомьтесь с этим руководством , чтобы узнать о запуске MoveNet на Python с использованием модели из TensorFlow Hub.
  • Coral/EdgeTPU может значительно ускорить оценку позы на периферийных устройствах. Дополнительные сведения см. в разделе «Модели, оптимизированные для EdgeTPU» .
  • Прочтите статью PoseNet здесь.

Также ознакомьтесь с этими вариантами использования оценки позы.