1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/TensorLayer-hyperpose

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

HyperPose

HyperPose — это библиотека для создания систем оценки позы человека, которые могут эффективно работать в реальных условиях.

Примечание: Мы находимся в процессе переноса наших API с версии 1.0 на версию 2.0. Ожидается, что миграция будет завершена к июлю 2020 года.

Особенности

HyperPose имеет две ключевые особенности, которых нет в существующих библиотеках:

  • Гибкая платформа обучения: HyperPose предоставляет гибкие API Python для построения множества полезных моделей оценки позы (например, OpenPose и PoseProposalNetwork). Пользователи HyperPose могут, например, настраивать увеличение данных, использовать параллельные графические процессоры для обучения и заменять глубокие нейронные сети (например, переходить с ResNet на MobileNet), создавая таким образом модели, соответствующие их реальным сценариям.
  • Высокопроизводительная оценка позы: HyperPose обеспечивает оценку позы в реальном времени благодаря высокопроизводительному механизму оценки позы. Этот механизм реализует многочисленные системные оптимизации: параллелизм конвейера, вывод модели с помощью TensorRT, гибридное планирование CPU/GPU и многие другие. Это позволяет HyperPose работать в 4 раза быстрее, чем OpenPose, и в 10 раз быстрее, чем TF-Pose.

Начало работы

Вы можете установить HyperPose и изучить его API через документацию.

Пример

Мы предоставляем пример, демонстрирующий оценку позы человека с помощью HyperPose. Вам необходимо установить CUDA Toolkit 10+, TensorRT 7+, OpenCV 3.2+ и gFlags (версия cmake), а также включить поддержку C++ 17. После подготовки необходимых условий запустите следующий скрипт:

sudo apt -y install subversion curl
sh scripts/download-test-data.sh         # Установить данные для примеров.
sh scripts/download-tinyvgg-model.sh     # Установить модель tiny-vgg.
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE && make -j$(nproc) # Собрать библиотеку и примеры.
./example.operator_api_batched_images_paf    # Выходные изображения будут находиться в папке сборки.

Производительность

Мы сравниваем производительность прогнозирования HyperPose с OpenPose 1.6 и TF-Pose. Мы реализуем алгоритмы OpenPose в HyperPose с различными конфигурациями. Тестовая среда имеет Ubuntu18.04, GPU 1070Ti, процессор Intel i7 (12 логических ядер). Тестовое видео — Crazy Updown Funk (YouTube). Модели HyperPose (в форматах ONNX или Uff) доступны здесь.

Конфигурация HyperPose Размер DNN Форма ввода DNN HyperPose Базовое значение
OpenPose (VGG) 209,3 МБ 656 x 368 27,32 FPS 8 FPS (OpenPose)
OpenPose (TinyVGG) 34,7 МБ 384 x 256 124,925 FPS N/A
OpenPose (MobileNet) 17,9 МБ 432 x 368 84,32 FPS 8,5 FPS (TF-Pose)
OpenPose (ResNet18) 45,0 МБ 432 x 368 62,52 FPS N/A

Как мы видим, HyperPose — единственная библиотека, которая может обеспечить оценку позы человека в реальном времени.

Лицензия

HyperPose является открытым исходным кодом под лицензией Apache 2.0. DistributedOptimizer в Horovod и async-sgd, если вы обучаете модель в кластере с ограниченной пропускной способностью и медленными узлами

(ii) Для запуска на 2 машинах (у которых есть сетевой интерфейс nic eth0 с IP-адресами 192.168.0.1 и 192.168.0.2):

kungfu-run -np 8 -H 192.168.0.1:4,192.168.0.1:4 -nic eth0 python3 train.py --parallel --kf-optimizer=sma

Высокопроизводительный вывод с использованием TensorRT

Вывод в реальном времени на ограниченных ресурсами встраиваемых платформах всегда является сложной задачей. Чтобы решить эту проблему, мы предоставляем совместимый с TensorRT механизм вывода. Механизм имеет два API на C++, оба определены в include/openpose-plus.hpp. Они предназначены для запуска модели TensorFlow с TensorRT и последующей обработки соответственно.

Для получения подробной информации о выводе (зависимости / быстрый старт) см. cpp-inference (doc/markdown-doc/cpp-inference.md).

Мы работаем над улучшением производительности механизма. Первоначальные результаты тестирования для выполнения полной модели OpenPose следующие. На Jetson TX2 скорость вывода составляет 13 кадров в секунду (вариант mobilenet ещё быстрее). На Jetson TX1 скорость составляет 10 кадров в секунду. На Titan 1050 скорость составляет 38 кадров в секунду.

После нашей первой оптимизации мы достигли 50 FPS (float32) на 1070Ti.

У нас также есть привязка Python для механизма. Текущая привязка зависит от внешнего проекта tf-hyperpose-estimation. Мы работаем над предоставлением привязки Python для нашей высокопроизводительной реализации C++. На данный момент, чтобы включить привязку, пожалуйста, соберите библиотеку C++ для последующей обработки с помощью:

./scripts/install-pafprocess.sh
# Требуется swig. Выполните команду `conda install -c anaconda swig`, чтобы установить swig.

См. tf-hyperpose (https://github.com/ildoonet/tf-hyperpose-estimation/tree/master/tf_pose/pafprocess) для получения дополнительной информации.

Пример работы с живой камерой

Вы можете посмотреть примеры в папке examples, чтобы увидеть, как использовать API вывода C++. Запуск ./scripts/live-camera.sh даст вам краткое представление о том, как это работает.

Лицензия

Вы можете использовать код проекта под свободной лицензией Apache 2.0 (https://github.com/tensorlayer/tensorlayer/blob/master/LICENSE.rst) ТОЛЬКО ЕСЛИ вы:

  • Цитируете статью TensorLayer (https://github.com/tensorlayer/tensorlayer#cite) и этот проект в своей исследовательской статье, если вы являетесь академическим пользователем.
  • Признаёте TensorLayer и этот проект на своих веб-сайтах / в статьях, если вы коммерческий пользователь.

Связанные обсуждения

-->

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Коммерческий фреймворк для оценки позы человека в реальном времени. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/TensorLayer-hyperpose.git
git@api.gitlife.ru:oschina-mirror/TensorLayer-hyperpose.git
oschina-mirror
TensorLayer-hyperpose
TensorLayer-hyperpose
master