Оценка позы — это задача использования модели машинного обучения для оценки позы человека по изображению или видео путем оценки пространственного расположения ключевых суставов тела (ключевых точек).
Начать
Если вы новичок в 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 здесь
Кроме того, ознакомьтесь с этими примерами использования оценки позы.