OpenPose — одна из самых популярных библиотек оценки позы. Его функции обнаружения ключевых точек в 2D и 3D широко используются исследователями данных во всем мире.

Вот анализ его особенностей, областей применения, стоимости коммерческого использования и альтернатив. Это должно помочь вам решить, является ли OpenPose правильным выбором для вашего проекта в области искусственного интеллекта.

Что такое OpenPose?

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

Это подход, основанный на глубоком обучении, который позволяет определить двухмерное расположение ключевых суставов тела (например, локтей, коленей, плеч и бедер), ориентиров лица (например, глаз, носа, рта) и ключевых точек рук (например, кончиков пальцев). , запястье и ладонь) из изображений или видео RGB.

Библиотека была создана группой исследователей из Университета Карнеги-Мелон, и сейчас ее поддерживают двое ее первоначальных создателей.

OpenPose известен своей устойчивостью к настройкам оценки поз нескольких человек и является победителем конкурса COCO 2016 Keypoints Challenge.

Как работает OpenPose?

Начальный шаг библиотеки OpenPose включает извлечение функций из изображения с использованием начальных слоев.‍

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

Одновременно другой отдел прогнозирует набор из 38 полей сходства частей (PAF), которые указывают уровень связи между различными частями тела. Последующие этапы используются для уточнения прогнозов, полученных этими подразделениями.‍

Карта достоверности помогает строить двудольные графы между парами частей тела, а значения Affinity Field PAF помогают выявлять и устранять более слабые связи внутри этих двудольных графов.

Следуя этим шагам, становится возможным оценить и распределить скелеты человеческих поз для каждого человека, изображенного на изображении.‍

Этапы конвейера OpenPose

Итак, OpenPose выполнит эти задачи последовательно:

  1. Изначально в качестве входных данных принимается все изображение, будь то изображение или видеокадр.
  2. Затем двухветвевые сверточные нейронные сети (CNN) работают вместе, чтобы предсказать карты достоверности, которые помогают в обнаружении частей тела.
  3. Далее следует оценка полей сродства частей (PAF), которая позволяет связывать различные части тела.
  4. Затем создается коллекция двусторонних совпадений для связи кандидатов на части тела.
  5. Наконец, эти подобранные части тела собираются в полные позы для всех людей, присутствующих на изображении.

Возможности OpenPose

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

2D-обнаружение ключевых точек нескольких человек в режиме реального времени

2D-оценка позы человека — одна из наиболее важных задач, которую может решить модель OpenPose. Вот несколько часто используемых оценок, которые можно получить с помощью OpenPose:

  • Оценка ключевых точек тела/ступни по 15, 18 или 25 точкам, включая 6 ключевых точек ног. Время выполнения инвариантно к количеству обнаруженных людей.
  • Оценка ключевой точки руки 2x21. Время выполнения зависит от количества обнаруженных людей.
  • Оценка ключевых точек лица по 70 точкам. Время выполнения зависит от количества обнаруженных людей. См. «Обучение OpenPose» для альтернативы, инвариантной во время выполнения.

3D-обнаружение ключевых точек одного человека в режиме реального времени

Оценка 3D-позы — еще одна функция OpenPose, которая делает эту библиотеку очень мощной алгоритмов.

  • 3D-триангуляция из нескольких отдельных изображений.
  • Синхронизация камер Flir реализована.
  • Совместим с камерами Flir/Point Grey.

Набор инструментов для калибровки

Оценка искажений, внутренних и внешних параметров камеры.

Отслеживание одного человека для дальнейшего ускорения или визуального сглаживания.

Вход OpenPose

Ввод может быть изображением, видео, веб-камерой, Flir/Point Grey, IP-камерой и поддержкой добавления собственного источника входного сигнала (например, камеры глубины). Это означает, что вы можете оценивать движения человека в реальном времени, а также анализировать неподвижные изображения.

Выход OpenPose

Базовое изображение + отображение/сохранение ключевых точек (PNG, JPG, AVI, …), сохранение ключевых точек (JSON, XML, YML, …), ключевые точки в виде класса массива и поддержка добавления собственного пользовательского кода вывода (например, какой-нибудь необычный пользовательский интерфейс). .

OpenPose может выводить ключевые точки в виде 2D-координат, 3D-координат или значений тепловой карты, обеспечивая гибкость для различных приложений.

ОС OpenPose

Ubuntu (20, 18, 16, 14), Windows (10, 8), Mac OSX, Nvidia TX2.

Аппаратная совместимость OpenPose

Версии CUDA (Nvidia GPU), OpenCL (AMD GPU) и версии без графического процессора (только процессор).

API-интерфейсы OpenPose

OpenPose имеет API-интерфейсы на нескольких языках программирования, таких как Python, C++ и MATLAB, и может быть интегрирован с другими библиотеками и платформами машинного обучения, такими как TensorFlow, PyTorch и Caffe.

Приложения OpenPose

Прежде чем мы перейдем к областям использования алгоритма оценки позы человека OpenPose, давайте сначала рассмотрим наиболее важные задачи, которые вы можете выполнить с помощью OpenPose.

Оценка позы нескольких человек

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

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

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

Точное обнаружение ключевых точек

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

OpenPose имеет широкий спектр приложений в различных областях. Вот несколько примеров приложений OpenPose в разных областях.

OpenPose в разных отраслях

Благодаря своей выдающейся способности находить и отслеживать позы людей, OpenPose стал основным продуктом компьютерного зрения во многих различных отраслях.

OpenPose для спортивного анализа

Алгоритм OpenPose можно использовать для множества различных спортивных приложений, таких как предотвращение травм и игры.

Анализ кинетики человека

Анализ движений и техники спортсменов для улучшения их результатов в таких видах спорта, как баскетбол, теннис и гольф.

Профилактика травм

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

Игры

Использование отслеживания движений для управления игровыми персонажами с помощью движений тела игрока, как это видно в таких играх, как Kinect Sports и Just Dance.

OpenPose для робототехники

Как вы можете себе представить, OpenPose имеет множество приложений в индустрии робототехники.

Взаимодействие человека и робота

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

Манипулирование объектами

Управление роботизированными руками с помощью движений рук и пальцев, обнаруженных OpenPose, как в производственных и сборочных роботах.

Распознавание жестов

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

OpenPose для здравоохранения

Здравоохранение — еще одна область, в которой OpenPose может помочь с множеством задач.

Физиотерапия

Мониторинг движений пациентов во время реабилитационных упражнений и предоставление обратной связи в режиме реального времени для улучшения их осанки и техники.

Уход за пожилыми людьми

Обнаружение падений и мониторинг активности пожилых людей в их домах с помощью камер на базе OpenPose.

Операция

Предоставление хирургам обратной связи в режиме реального времени о положении и движении рук во время хирургических процедур.

OpenPose для безопасности и наблюдения

Когда дело доходит до безопасности и наблюдения, OpenPose находит множество областей применения для людей, объектов и животных.

Обнаружения вторжений

Обнаружение и отслеживание перемещений людей в зонах ограниченного доступа или выявление подозрительных действий в режиме реального времени.

Мониторинг толпы

Анализ поведения толпы, обнаружение аномалий и предоставление информации для управления толпой и обеспечения общественной безопасности.

Охрана периметра

Мониторинг и анализ присутствия людей по периметру охраняемых территорий, выявление попыток несанкционированного проникновения или потенциальных нарушений.

Анализ поведения толпы

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

Наблюдение за дорожным движением

Отслеживание и анализ движения пешеходов на перекрестках, пешеходных переходах или узлах общественного транспорта, что упрощает управление дорожным движением и повышает безопасность пешеходов.

OpenPose для развлечений

OpenPose используется индустрией развлечений для различных приложений.

Виртуальная реальность

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

Анимация

Захват движений тел и мимики актеров для создания реалистичных и выразительных анимированных персонажей.

Кино и телевидение

Отслеживание движений актеров во время сеансов захвата движения и применение их к цифровым персонажам в фильмах и телешоу.

OpenPose для розничной торговли и электронной коммерции

Виртуальная примерка

Помогая покупателям виртуально примерить одежду, аксессуары или косметику, обеспечивая более персонализированный и привлекательный опыт покупок.

Анализ поведения клиентов

Отслеживайте и анализируйте перемещения покупателей внутри магазина, что позволяет ритейлерам оптимизировать планировку магазинов и размещение товаров.

Сколько стоит OpenPose?

OpenPose доступен для бесплатного некоммерческого использования и может распространяться на этих условиях.

Лицензионное соглашение может быть использовано только для некоммерческих исследований академических или некоммерческих организаций.‍

Имеется неисключительная коммерческая лицензия. Для этого требуется невозвращаемый ежегодный роялти в размере 25 000 долларов США.

Обратите внимание, что коммерческую лицензию нельзя использовать в сфере спорта.‍

Как использовать OpenPose?

База кода находится в открытом доступе на Github и очень хорошо документирована.

Вы можете прочитать официальную документацию по установке.

Установить OpenPose

Первым шагом является установка OpenPose в вашей системе. OpenPose доступен для различных платформ, включая Windows, Linux и macOS.

Вы можете скачать последнюю версию пакета OpenPose с официального сайта.‍

Пакет включает предварительно обученные модели и конфигурации, которые готовы к использованию, но также могут быть дополнительно настроены в соответствии с потребностями вашего приложения.‍

Подготовьте входные данные

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

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

Настроить OpenPose

Настройка OpenPose — важный шаг в оптимизации производительности и точности модели. OpenPose предоставляет различные параметры конфигурации, которые можно настроить.

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

Запустите OpenPose

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

Визуализируйте результат

Последний шаг — визуализировать выходные данные OpenPose. OpenPose предоставляет различные форматы вывода, включая JSON, XML и CSV, которые можно использовать для отображения обнаруженных ключевых точек в реальном времени или при анализе постобработки. Вывод можно визуализировать с помощью различных инструментов, таких как OpenCV, Matplotlib или Unity.

Альтернативы и сравнения OpenPose

Каким бы мощным ни был OpenPose, всегда стоит изучить альтернативные алгоритмы оценки позы, чтобы определить, какой из них лучше всего подходит для вашего случая использования.‍

Вот несколько альтернатив OpenPose, которые стоит рассмотреть.

OpenPose против Mediapipe

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

Одним из основных преимуществ MediaPipe является то, что он оптимизирован для мобильных устройств и может работать на устройствах с ограниченными ресурсами.

Однако он имеет ограниченную поддержку оценки 3D-позы и требует значительного объема предварительной обработки входных данных.

OpenPose против Detectron2

Предоставляет предварительно обученные модели для обнаружения ключевых точек и оценки позы. Detectron2 обладает широкими возможностями настройки и поддерживает широкий спектр моделей, включая Mask R-CNN и RetinaNet.

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

OpenPose против MMPose

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

Однако для него может потребоваться больше вычислительных ресурсов, чем для некоторых других алгоритмов, и в настоящее время он доступен только в PyTorch.

OpenPose против Lightweight-human-pose-estimation.pytorch

Алгоритм оценки позы на основе PyTorch, который спроектирован так, чтобы быть легким и быстрым. Он использует модель оценки позы человека, оптимизированную для работы на устройствах с ограниченными вычислительными ресурсами, таких как мобильные устройства и платы Raspberry Pi.

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

Однако его точность может быть ниже, чем у некоторых более сложных алгоритмов.

OpenPose против Freemocap

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

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

‍Однако для этого может потребоваться больше вычислительных ресурсов, чем для некоторых других алгоритмов, а его точность может быть ниже в сложных условиях освещения или при окклюзиях.

OpenPose против AlphaPose

Обеспечивает более высокую производительность, чем OpenPose, и может обнаруживать нескольких людей в одном изображении или видеопотоке.

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

OpenPose против DeeperCut

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

Однако он медленнее OpenPose из-за зависимости от графических моделей и требует тщательной настройки гиперпараметров.

OpenPose против HRNet

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

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

OpenPose против EfficientPose

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

Однако из-за своей легкости он может быть не таким точным, как некоторые более сложные алгоритмы.

OpenPose против DensePose

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

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

Сравните OpenPose с другими алгоритмами оценки позы человека

Вот таблица с этими альтернативами OpenPose:

Примечание. Тип лицензии и стоимость могут различаться в зависимости от конкретного варианта использования и условий лицензионного соглашения. Для получения дополнительной информации посетите веб-сайты отдельных проектов.

Лучшие альтернативы OpenPose для коммерческого использования

Если вы планируете создать решение для коммерческого использования, требующее обнаружения ключевых точек несколькими людьми, команда Ikomia советует выбрать Detectron2 или MMPose.

Обе эти альтернативы свободно доступны для коммерческого использования по лицензии Apache 2.0 и активно поддерживаются сильным сообществом. Вы также можете найти эти ресурсы в Ikomia HUB и использовать их либо через Ikomia API с открытым исходным кодом, либо через Ikomia STUDIO.