HyperPose
HyperPose — это библиотека для создания систем оценки позы человека, которые могут эффективно работать в реальных условиях.
Примечание: Мы находимся в процессе переноса наших API с версии 1.0 на версию 2.0. Ожидается, что миграция будет завершена к июлю 2020 года.
HyperPose имеет две ключевые особенности, которых нет в существующих библиотеках:
Вы можете установить 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 механизм вывода. Механизм имеет два 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) ТОЛЬКО ЕСЛИ вы:
-->
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )