Изменения
→DeepPose
{{В разработке}} '''Определение положения человека''' (англ. ''Human pose estimation'') {{---}} продолжающая задача [[Сегментация изображений | сегментации изображения]] из раздела [[Компьютерное зрение | компьютерного зрения]] о нахождении и локализации частей тела человека на изображениях или видео (рассматривается как последовательность изображений). Чаще всего позицией человека называют набор соединённых ключевых точек (англ. ''Joint''), соответствующих суставам (плечи, локти, кисти, тазобедренные суставы, колени, стопы) и видео ДОПИСАТЬдругим ключевым точкам (шея, голова, центр торса). Эту задачу можно рассматривать в двух или трёх измерениях, от чего зависит сложность задачи и практические применения результатов. Также задачу можно разделить на два подтипа: определение положения для одного человека (англ. ''Single Person Estimation''), определение положения для нескольких человек (англ. ''Multi Person Estimation'')
== Постановка задачи ==
=== Single Person Estimation ===
=== Multi Person Estimation ===
{|align="left"
|-valign="top"
|[[file:InputMulti.png|200px|thumb| [https://medium.com/beyondminds/an-overview-of-human-pose-estimation-with-deep-learning-d49eb656739b Исходная картинка с несколькими людьми]]]
|[[file:InnerMulti.png|200px|thumb| [https://medium.com/beyondminds/an-overview-of-human-pose-estimation-with-deep-learning-d49eb656739b Промежуточный этап разделения людей]]]
|[[file:OutputMulti.png|200px|thumb| [https://medium.com/beyondminds/an-overview-of-human-pose-estimation-with-deep-learning-d49eb656739b Итоговый результат работы алгоритма]]]
|}
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
== Область применения ==
# '''Кинематограф и анимация''' {{---}} '''CGI''' <ref name="CGI">[https://ru.wikipedia.org/wiki/CGI_(%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0) CGI]</ref> (англ. ''computer-generated imagery'', букв. «изображения, сгенерированные компьютером») и захват движения <ref name="motion-capture">[https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D1%85%D0%B2%D0%B0%D1%82_%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F Захват движения]</ref> (англ. ''Motion capture''). Несмотря на то, что в настоящий момент чаще используется маркерный способ, при котором человек надевает костюм с датчиками движения, в последние годы большое развитие получил безмаркерный способ, основанный на компьютерном зрении.# '''Видеоигры''' {{---}} широко применяется в дополненной реальности (англ. ''Augmented Reality'', '''AR'''<ref name="AR">[https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C Дополненная реальность]</ref>) и виртуальной реальности (англ. ''Virtual Reality'', '''VR'''<ref name="VR">[https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C Виртуальная реальность]</ref>). Захват движения (англ. ''Motion tracking'') также используется в консольных игровых решениях. Помимо этого, определение положения человека необходимо непосредственно в производстве видеоигр, для этого, опять же, используется технология CGI<ref name="CGI"/>.
# '''Человеко-компьютерное взаимодействие''' (англ. ''Human-computer interaction'') {{---}} здесь определение положения человека используется для взаимодействия с роботами или компьютерами, для отдачи команд компьютерным системам. Примером такого взаимодействия можно назвать уже упомянутый захват движения при игре на консолях.
# '''Биомеханика спорта''' (англ. ''Sport motion analysis'') {{---}} анализ движений при тренировке и соревнованиях. Используется для лучшего понимания процессов, происходящих при занятии спортом, для предотвращения травм и растяжений, и для установления новых рекордов. Информация, полученная в ходе анализа, используется также для создания профессионального инвентаря.
== Методы решения ==
===DeepPose===
Первая значимая разработка с использованием [[глубокое обучение|глубокого обучения]] для задачи определения положения человека. Модель продемонстрировала высокую эффективность и превзошла существовавшие на тот момент решения. В этом подходе оценка позы формулируется как задача [[Сверточные нейронные сети|CNN]]-[[линейная регрессия|регрессии]] по суставам (ключевым точкам) тела. Для большей эффективности используется каскад из нескольких [[Сверточные нейронные сети|CNN]]. Важной особенностью является то, что обрабатывается человек целиком, что позволяет корректно определять позу, даже если некоторые суставы скрыты.
Если рассматривать архитектуру, модель основана на AlexNet<ref name="alexNet">[https://neurohive.io/ru/vidy-nejrosetej/alexnet-svjortochnaja-nejronnaja-set-dlja-raspoznavanija-izobrazhenij/ Сверточная нейросеть AlexNet]</ref> (7 слоёв) и дополнительном финальном слое, выводящем пары координат ключевых точек. Обучение модели производится с использованием [[функция потерь и эмпирический риск|функции потерь]] L2<ref name="regularization">[http://neerc.ifmo.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F L2 регуляризация]</ref> для регрессии (англ. ''L2 loss for regression'').
{|align="left"
|-valign="top"
|[[file:challenging.png|400px|thumb| [https://arxiv.org/pdf/1312.4659.pdf Примеры результатов работы алгоритма]]]
|}
<br><br><br><br><br><br><br><br><br><br><br>
===DeepCut===
Решает задачу определения поз для нескольких людей (англ. ''Multi person estimation''). Данный подход предполагает одновременное решение задач определения частей тела и отделения друг от друга частей тела разных людей: определяется количество людей в сцене, идентифицируются закрытые части тела и устраняется неоднозначность частей тела людей, находящихся в непосредственной близости друг от друга. Это отличает данное решение от многих других, сначала выявляющих людей, а затем оценивающие их положения. Авторы предлагают разделение и разметку набора гипотез о частях тела, созданных с помощью детекторов частей на основе [[сверточные нейронные сети|CNN]]. Неявно выполняется не-максимальное подавление (англ. ''Non-maximum Suppression'', '''NMS'''<ref name="NMS">[https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c Non-maximum Suppression]</ref>) для набора возможных частей и производится группировка, чтобы сформировать конфигурации частей тела с учетом геометрических ограничений и ограничений внешнего вида.
===OpenPose===
Первая система, решающая задачу определения задачу определения поз для нескольких людей (англ. ''Multi person estimation'') в режиме реального времени. Определяет 135 ключевых точек для каждого человека. Поддерживает определение не только крупных частей, но и отдельных пальцев и их движений. Для обучения использовался CMU Panoptic Studio dataset<ref name===DeepCut======DeepPose==="CMU Panoptic Studio dataset">[http://domedb.perception.cs.cmu.edu/ CMU Panoptic Studio dataset]</ref>, состоящий из съемок людей с большого числа ракурсов в специальном куполе, оснащенном 500 камерами.
== См. также ==
* [[Компьютерное зрение | Компьютерное зрение]]
* [[Обнаружение и обработка дорожных знаков и пешеходов | Обнаружение и обработка дорожных знаков и пешеходов]]
* [[Сверточные нейронные сети]]
== Примечания ==
== Источники информации ==
* [https://nanonets.com/blog/human-pose-estimation-2d-guide/ Guide to Human Pose Estimation]
* [https://arxiv.org/pdf/2006.01423.pdf Monocular Human Pose Estimation]
* [https://arxiv.org/abs/1312.4659 DeepPose: Human Pose Estimation via Deep Neural Networks]
* [https://arxiv.org/abs/1511.06645 DeepCut: Joint Subset Partition and Labeling for Multi Person Pose Estimation]
* [https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md OpenPose github page]