125
правок
Изменения
→OpenPose (2018)
OpenPose<ref name="OpenPose">[https://arxiv.org/pdf/1812.08008.pdf OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields Zhe Cao, Gines Hidalgo, Tomas Simon, Shih-En Wei, and Yaser Sheikh, 2019]</ref> {{---}} первая система, решающая задачу определения поз для нескольких людей (англ. ''Multi person Pose estimation'') в режиме реального времени c открытым [https://github.com/CMU-Perceptual-Computing-Lab/openpose исходным кодом]. Определяет 135 ключевых точек для каждого человека. Поддерживает определение не только крупных частей, но и отдельных пальцев и их движений. Для обучения использовался CMU Panoptic Studio dataset<ref name="CMU Panoptic Studio dataset">[http://domedb.perception.cs.cmu.edu/ CMU Panoptic Studio dataset]</ref>, состоящий из съемок людей с большого числа ракурсов в специальном куполе, оснащенном 500 камерами<ref name="OpenPose – ИИ для понимания роботами языка тела из CMU">[https://robotics.ua/news/ai/6256-cmu_openpose_ai_dlya_ponimaniya_robotami_yazyka_tela ИИ для понимания роботами языка тела из CMU, 2017]</ref>.
<br><br><br><br><br><br><br><br>
{|align="left"
|-valign="top"
|[[file:Openpose example.png|800px|thumb|Рисунок 10 [[https://arxiv.org/pdf/1611.08050.pdf x]]]]
|}
<br><br><br><br><br><br><br><br><br><br><br><br>
{|align="right"
|-valign="top"
|[[file:Openposeschema.png|500px|thumb|Рисунок 10 11 [[https://arxiv.org/pdf/1611.08050.pdf x]]]]
|}
Логика архитектуры OpenPose следующая: во-первых, входное RGB-изображение (рисунок 11а10а) подается как вход в многослойную CNN с двумя ветвями. Две ветви означают, что CNN производит два разных вывода. На рисунке 10 11 верхняя ветвь, показанная бежевым цветом, предсказывает карты достоверности (англ. confidence map) (рисунок 11b10b) расположения различных частей тела. Нижняя ветвь, показанная синим цветом, предсказывает поля сходства фрагментов (англ. affinity field, PAFs) (рисунок 11c10c), которые представляют степень связи между различными частями тела.Многоступенчатость: на первом этапе (левая половина рисунка 1011) сеть создает начальный набор карт достоверности обнаружения S и набор полей сходства для части L. Затем на каждой последующей стадии (правая половина рисунка 1011) прогнозы из обеих ветвей на предыдущем этапе, вместе с характеристиками исходного изображения F, объединяются (обозначены знаком + на рисунке 1011) и используются для получения более точных прогнозов. В реализации OpenPose последним этапом t выбран шестой.
На рис. 3 показаны положительные преимущества многослойной архитектуры. В этом примере мы наблюдаем некоторую начальную путаницу между левой и правой частями тела на первых нескольких этапах. Но по мере того, как слой увеличивается, сеть различает их лучше.
В конце карты достоверности и поля сходства обрабатываются методом жадного вывода (рисунок 11d10d) для вывода двумерных ключевых точек для всех людей на изображении (рисунок 11e10e).{|align="left"|-valign="top"|[[file:Openpose example.png|800px|thumb|Рисунок 11 [[https://arxiv.org/pdf/1611.08050.pdf x]]]]|}
Важной особенностью является скорость работы данного решения. На рисунке 12 представлено сравнение времени работы трех доступных библиотек, решающих задачу определения положения человека (в одинаковых условиях на одинаковом аппаратном обеспечении): OpenPose, Alpha-Pose (fast Pytorch version), и Mask R-CNN. Время исполнения OpenPose является константным, в то время как у Alpha-Pose и Mask R-CNN линейно растет с числом людей на исходных данных.
{|align="left"