Изменения

Перейти к: навигация, поиск

Определение положения человека

1240 байт добавлено, 20:50, 21 января 2021
Методы решения
== Постановка задачи ==
=== Определение положения одного человека (англ. ''Single Person Estimation '') ===
Задача заключается в определении положения одного человека по фото или видео. Важным условием является то, что на изображении должен быть только один человек, иначе гарантировать корректное выполнение невозможно. В качестве результата необходимо получить набор соединённых точек, указывающих на соответствующие части тела. Сложности заключаются в том, чтобы отделить друг от друга разные части тела, корректно определять положение конечностей, скрытых за другими объектами, а также корректно отличать левые части тела от правых, независимо от поворота человека на изображении.
{|align="left"
|-valign="top"
|[[file:InputSingle.jpg|200px|thumb| [http://sysu-hcp.net/lip/posechallenge.php Рис. Рисунок 1 Исходная картинка]]]|[[file:outputSingle.jpg|200px|thumb| [http://sysu-hcp.net/lip/posechallenge.php Рис. Рисунок 2 Результат работы алгоритма для одного человека]]]
|}
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
=== Определение положений нескольких людей (англ. ''Multi Person Estimation '') ===
Эта задача имеет более высокую сложность, так как необходимо обнаружить множество человек на изображении, а затем определить положение для каждого человека из множества обнаруженных людей. Основная сложность в том, чтобы корректно определить и отличить друг от друга части тела, принадлежащие разным людям, а также решить все сложности связанные с '''Single 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 Рис. Рисунок 3 Исходная картинка с несколькими людьми]]]|[[file:InnerMulti.png|200px|thumb| [https://medium.com/beyondminds/an-overview-of-human-pose-estimation-with-deep-learning-d49eb656739b Рис. Рисунок 4 Промежуточный этап разделения людей]]]|[[file:OutputMulti.png|200px|thumb| [https://medium.com/beyondminds/an-overview-of-human-pose-estimation-with-deep-learning-d49eb656739b Рис. Рисунок 5 Итоговый результат работы алгоритма]]]
|}
== Методы решения ==
===DeepPose===
Первая {|align="right"|-valign="top"|[[file:challenging.png|300px|thumb| [https://arxiv.org/pdf/1312.4659.pdf Рисунок 6 Примеры результатов работы алгоритма]]]|}DeepPose<ref name="DeepPose">[https://arxiv.org/pdf/1312.4659.pdf/ DeepPose: Human Pose Estimation via Deep Neural Networks, Alexander Toshev, Christian Szegedy, 2014]</ref> {{---}} первая значимая разработка с использованием [[глубокое обучение|глубокого обучения]] для задачи определения положения человека. Модель продемонстрировала высокую эффективность и превзошла существовавшие на тот момент решения. В этом подходе оценка позы формулируется как задача [[Сверточные нейронные сети|сверточной нейронной сети (англ. ''CNN'')]]-для [[линейная регрессия|регрессии]] по суставам (ключевым точкам) тела. Для большей эффективности используется каскад из нескольких [[Сверточные нейронные сети|CNN]]. Важной особенностью является то, что обрабатывается человек целиком, что позволяет корректно определять позу, даже если некоторые суставы скрыты.
Если рассматривать архитектуру, модель основана на AlexNet<ref name="alexNet">[https://neurohive.io/ru/vidy-nejrosetej/alexnet-svjortochnaja-nejronnaja-set-dlja-raspoznavanija-izobrazhenij/ Сверточная нейросеть AlexNet, Павел Глек, 2018]</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|300px|thumb| [https://arxiv.org/pdf/1312.4659.pdf Рис. 6 Примеры результатов работы алгоритма]]]|[[file:Deepposeschema.PNG|800px|thumb| [https://arxiv.org/pdf/1312.4659.pdf Рис. Рисунок 7 Слева: схематичное изображение глубокой нейронной сети для регрессии. Мы визуализируем слои сети с соответствующими размерами, где сверточные слои {{---}} голубые, а полностью связные {{---}} зеленые. Параметр свободных слоёв не показан. <br>Справа: на шаге s, a уточняющий регрессор применяется на фрагменте изображения чтобы улучшить результат предыдущего шага]]]
|}
<br><br><br><br><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, Sambasivarao. K, 2019]</ref>) для набора возможных частей и производится группировка, чтобы сформировать конфигурации частей тела с учетом геометрических ограничений и ограничений внешнего вида.{|align="leftright"
|-valign="top"
|[[file:Deepcutexamle.png|400px|thumb| [https://arxiv.org/pdf/1511.06645.pdf Рис. Рисунок 8 (a) начальное определение возможных частей и попарных связей между всеми обнаруженными частями, которые (b) кластеризуются по принадлежности одному человеку (один цвет - один человек) и каждая часть помечается меткой соответствующего этой части класса (разные цвета и символы относятся к разным частям тела); (c) демонстрация результата.]]]
|}
DeepCut<brref name="DeepCut">[https://arxiv.org/pdf/1511.06645.pdf DeepCut: Joint Subset Partition and Labeling for Multi Person Pose Estimation, Leonid Pishchulin, Eldar Insafutdinov, Siyu Tang, Bjoern Andres, Mykhaylo Andriluka, Peter Gehler, and Bernt Schiele, 2016]<br/ref>решает задачу определения поз для нескольких людей (англ. ''Multi person estimation''). Данный подход предполагает одновременное решение задач определения частей тела и отделения друг от друга частей тела разных людей: определяется количество людей в сцене, идентифицируются закрытые части тела и устраняется неоднозначность частей тела людей, находящихся в непосредственной близости друг от друга. Это отличает данное решение от многих других, сначала выявляющих людей, а затем оценивающие их положения. Авторы предлагают разделение и разметку набора гипотез о частях тела, созданных с помощью детекторов частей на основе [[сверточные нейронные сети|CNN]]. Неявно выполняется не-максимальное подавление (англ. ''Non-maximum Suppression'', '''NMS'''<brref name="NMS">[https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c Non-maximum Suppression, Sambasivarao. K, 2019]<br><br><br><br><br><br><br><br><br><br><br><br><br><br/ref>) для набора возможных частей и производится группировка, чтобы сформировать конфигурации частей тела с учетом геометрических ограничений и ограничений внешнего вида. Пример работы алгоритма, рисунок 8: (a) начальное определение возможных частей и попарных связей между всеми обнаруженными частями, которые (b) кластеризуются по принадлежности одному человеку (один цвет - один человек) и каждая часть помечается меткой соответствующего этой части класса (разные цвета и символы относятся к разным частям тела); (c) демонстрация результата.<br><br><br><br><br><br><br><br><br><br><br>
===OpenPose===
Первая система, решающая задачу определения задачу определения поз для нескольких людей (англ. ''Multi person estimation'') в режиме реального времени. Определяет 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>. Важной особенностью является скорость работы данного решения.
{|align="left"
|-valign="top"
|[[file:Openpose.jpg|400px300px|thumb| [https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md Рис. Рисунок 9 Примеры результатов работы алгоритма]]]|}OpenPose<ref name="OpenPose">[https://arxiv.org/pdf/1812.08008.pdf OpenPose: Realtime Multi-Person 2D PoseEstimation using Part Affinity Fields Zhe Cao, Gines Hidalgo, Tomas Simon, Shih-En Wei, and Yaser Sheikh, 2019]</ref> {{---}} первая система, решающая задачу определения поз для нескольких людей (англ. ''Multi person estimation'') в режиме реального времени. Определяет 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="right"|-valign="top"|[[file:Openpose vs competition.png|400px300px|thumb| [https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/README.md РисРисунок 10]]]|} Важной особенностью является скорость работы данного решения. На рисунке 10 Сравнение представлено сравнение времени работы трех доступных библиотек, решающих задачу определения положения человека (в одинаковых условиях на одинаковом аппаратном обеспечении): OpenPose, Alpha-Pose (fast Pytorch version), и Mask R-CNN. Время исполнения OpenPose является константным, в то время как у Alpha-Pose и Mask R-CNN линейно растет с числом людей на исходных данных.]]]|[[file<br><br>Архитектура решения кратко изображена на рисунке 11:Openposeschema.png|400px|thumb| [https://arxiv.org/pdf/1611.08050.pdf Рис. 11 Архитектура решение является многослойной CNN с двумя ветвями. Каждый слой в первой ветви предсказывает карту уверенности S^t, и каждый слой второй ветви предсказывает сходство фрагментов (англ. ''PAFs'') L^t. После каждого слоя, результаты каждой ветви, вместе с признаками изображения, объединяются для следующего слоя.{|align="left"|-valign="top"|[[file:Openposeschema.png|500px|thumb| [https://arxiv.org/pdf/1611.08050.pdf Рисунок 11]]]
|}
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
== См. также ==
Анонимный участник

Навигация