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

OSCHINA-MIRROR/TensorLayer-hyperpose

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать

A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

Permissions
  • Commercial use
  • Modification
  • Distribution
  • Patent use
  • Private use
Limitations
  • Trademark use
  • Liability
  • Warranty
Conditions
  • License and copyright notice
  • State changes
README.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 11:19 26b8a37

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 )

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

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